/* 门前 OA 基础样式（Task 10：品牌化，替换 Vite 模板）。
 * 设计令牌见 src/shared/tokens.css（main.ts 先于本文件引入）。 */

/* B-70：全系统固定浅色主题，不跟随设备深色模式。color-scheme 唯一来源在本文件：
   light = 声明页面仅支持浅色，UA 控件（日期选择器/滚动条/表单控件）强制浅色渲染；
   下方 @supports 用 only light 渐进增强，关闭 Chrome Auto Dark Theme 等强制深色覆写。 */
:root {
  color-scheme: light;
  font: 15px/1.5 var(--font-sans);
  color: var(--color-ink);
  background: var(--color-lime);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ===== 微信内置浏览器适配基线（2026-08-01 视觉重构，方案 A：微信为基准） =====
 * - text-size-adjust: 100% 阻止微信/移动端旋转后自动放大字号（用户手动调大
 *   字号由 .wx 层的防溢出规则兜底，见 MobileTodayView 微信专属层）；
 * - tap-highlight-color 全局清除点击高亮灰块（组件内已有局部声明，全局兜底）。 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
* {
  -webkit-tap-highlight-color: transparent;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  /* B-81：百分比高度链根。手机端 MobileShell 等固定高度容器改用
     height:100% 而非 vh/dvh——微信 WebView（Android X5/XWeb、iOS WKWebView
     旧内核）对 vh 按布局视口解析、dvh/svh 可能完全不支持；
     Edge/Chrome 标准 Chromium dvh 正常故表现不一致。
     height:100% 是下限，内容超高时块元素自然撑高（整页滚动不受影响）。 */
  height: 100%;
  min-height: 100%;
  /* B-70：html 层显式声明固定浅色（与 :root 同值，双保险） */
  color-scheme: light;
}

/* B-70：only light 渐进增强——支持该关键字的浏览器强制 UA 控件浅色
   （关闭 Chrome Auto Dark Theme 等对页面的强制深色覆写）；不支持则
   回退到上方 color-scheme: light，行为一致。 */
@supports (color-scheme: only light) {
  :root,
  html {
    color-scheme: only light;
  }
}

body {
  font: inherit;
  color: var(--color-ink);
  background: var(--color-lime);
}

h1,
h2,
h3,
p {
  margin: 0;
}

button {
  font-family: inherit;
}

/* ===== 日期选择控件全局基线（B-65 → B-67 → B-68） =====
 * B-65 统一颜色（深叶墨文字/纸白底/浅色主题）；
 * B-67 统一完整外观；B-68 基准改为「快速录入预定」
 * （QuickReservationForm，B-67 前私有值）：padding 9px 10px、
 * 圆角 8px、字号 15px，全系统唯一基准。
 * 选中日期强调色：该控件从未设置 accent-color，截图左侧的蓝色
 * 选中日是 Chromium 浅色主题默认（color-scheme: light 即达成），
 * 故全局不设 accent-color，保持浏览器默认蓝，全系统一致。
 * 特异性最低（元素选择器），组件内不得再声明日期控件外观，
 * 仅允许布局类（width/box-sizing）与特殊场景高度取舍
 * （MobileTasksView 38px 工具条 / ProcurementList 紧凑筛选栏）。
 * color-scheme 仅在本文件声明（:root/html 继承 + 下方显式兜底），是全项目唯一来源，
 * 防止未来漂移。 */
/* B-70：所有表单控件显式固定浅色（继承自 :root/html，此处兜底防 UA 覆写），
   覆盖原生日历/日期弹窗、datetime-local 与 select 下拉等全部原生控件。 */
input,
select,
textarea {
  color-scheme: light;
}

input[type="date"],
input[type="datetime-local"] {
  padding: 9px 10px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: 15px;
  font-family: inherit;
  color: var(--color-ink);
  background-color: var(--color-paper);
  color-scheme: light;
}

#app {
  /* B-81：原 min-height:100svh 依赖 svh 视口单位，微信老内核不支持时被忽略、
     高度链断；改为跟随 body 的百分比链（html→body→#app 均 100%）。 */
  height: 100%;
}

/* ===== 可访问性（Task 11） ===== */

/* 键盘焦点可见（WCAG 2.4.7）：仅 :focus-visible 时显示高对比描边，
 * 鼠标点击不产生多余焦点圈。朱红在纸白/石灰白背景上 ≥ 4.5:1。 */
:focus-visible {
  outline: 2px solid var(--color-cinnabar);
  outline-offset: 2px;
  border-radius: 4px;
}

/* 触控目标 ≥ 44px（--touch-min 设计令牌）：:where 保持零特异性，
 * 组件可显式覆盖；覆盖须保证可访问性目标不退化。 */
:where(button, input, select, textarea, [role="button"], [role="tab"]) {
  min-height: var(--touch-min);
}

/* 视觉隐藏但保留给读屏（配合 role="status"/aria-label 播报） */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* 动效尊重系统减弱动态偏好（骨架屏等组件内的动画各自遵守） */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* B-185：OA 域微信深色模式覆盖——表单控件钉死浅色（同商城 wx-theme.css 策略）。
 * 微信 XWeb 在系统/微信深色模式下可能无视 color-scheme 反色，导致
 * select/input 弹层与下拉变黑（老爷 2026-08-10 生产实测：档案管理/盘库/采买）。
 */
@media (prefers-color-scheme: dark) {
  html.wx input,
  html.wx select,
  html.wx textarea,
  html.wx .input {
    color-scheme: light !important;
    background-color: var(--color-paper, #fbf5ea) !important;
    color: var(--color-ink, #382a1f) !important;
    border-color: var(--color-border, #e0d3c0) !important;
  }
  html.wx .chip {
    background-color: var(--color-paper, #fbf5ea) !important;
    color: var(--color-ink, #382a1f) !important;
  }
}

/* B-392：Win7 收银机 / Chromium ≤109 字体发虚。
 * 门禁与 B-391 相同（main.ts 探测 oklch 后挂 .legacy-kernel）。
 * 1) 关掉 grayscale 抗锯齿，让 DirectWrite/ClearType 亚像素锐化生效；
 * 2) 令牌改走系统已 hint 的微软雅黑/宋体（特异性压过后续 :root 令牌）；
 * 3) 覆盖 .pos/.mpos 上的 antialiased + font-synthesis:none。
 * 现代内核不进此块，Noto / PingFang 观感不变。 */
html.legacy-kernel {
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
  text-rendering: auto;
  font-synthesis: weight style;
  --font-sans: "Microsoft YaHei", "微软雅黑", SimHei, sans-serif;
  --font-body: "Microsoft YaHei", "微软雅黑", SimHei, sans-serif;
  --font-display: SimSun, "宋体", "STSong", serif;
  --font-serif: SimSun, "宋体", serif;
  --font-mono: Consolas, "Courier New", "Microsoft YaHei", "微软雅黑", monospace;
  --pos-font-sans: "Microsoft YaHei", "微软雅黑", sans-serif;
  --pos-font-serif: SimSun, "宋体", serif;
}

html.legacy-kernel .pos,
html.legacy-kernel .mpos {
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
  font-synthesis: weight style;
}

/* 纸纹 SVG 噪点 + mix-blend-mode:multiply 盖在文字上。
 * Win7 96dpi 会把 ClearType 亚像素搅成灰雾；登录页「忘记密码请联系店长重置」
 * 是 12px 等宽中文 + 全屏 z-index:2000 纸纹，发虚最明显。现代内核不动。 */
html.legacy-kernel .login-stage::before,
html.legacy-kernel .manage-shell-v2::before,
html.legacy-kernel .mq-tasks::before,
html.legacy-kernel .dpos::before,
html.legacy-kernel .paper-grain::before,
html.legacy-kernel .dseat::after {
  content: none !important;
  display: none !important;
}

html.legacy-kernel *::before,
html.legacy-kernel *::after {
  mix-blend-mode: normal !important;
}

/* 视觉基准：docs/design/shop-home-v4.3.html */
.shop-home[data-v-510f1d35] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 8px;
}

/* hero：茶席实拍图 + 压暗渐变（对照 v4.3） */
.hero[data-v-510f1d35] {
  position: relative;
  min-height: 660px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}
.hero-img[data-v-510f1d35] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.62;
}
@supports not (inset: 0) {
.hero-img[data-v-510f1d35] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.hero-mask[data-v-510f1d35] {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(56, 42, 31, 0.42) 0%,
    rgba(56, 42, 31, 0.55) 55%,
    rgba(246, 239, 227, 1) 100%
  );
}
@supports not (inset: 0) {
.hero-mask[data-v-510f1d35] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.hero-top[data-v-510f1d35] {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 14px;
  padding: 44px 30px 0;
}
@supports not (gap: 1px) {
.hero-top[data-v-510f1d35] > * + * {
    margin-left: 14px;
}
}
.vertical[data-v-510f1d35] {
  writing-mode: vertical-rl;
  font-size: 2.1rem;
  font-weight: 500;
  letter-spacing: 0.34em;
  color: var(--shop-card);
  line-height: 1.28;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.3);
}
.stamp[data-v-510f1d35] {
  flex: 0 0 auto;
  margin-top: 10px;
  width: 44px;
  height: 44px;
}

/* hero 底部：slogan + 文字式双入口（左对齐留白） */
.hero-bottom[data-v-510f1d35] {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  padding: 0 32px 60px;
}
@supports not (gap: 1px) {
.hero-bottom[data-v-510f1d35] > * + * {
    margin-top: 20px;
}
}
.slogan[data-v-510f1d35] {
  font-size: 0.86rem;
  color: var(--shop-ink);
  letter-spacing: 0.32em;
  text-indent: 0.32em;
}
.entry[data-v-510f1d35] {
  display: flex;
  align-items: stretch;
}
.entry-item[data-v-510f1d35] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 34px 8px 0;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--shop-ink);
  text-align: left;
}
@supports not (gap: 1px) {
.entry-item[data-v-510f1d35] > * + * {
    margin-top: 12px;
}
}
.entry-item[data-v-510f1d35]:last-of-type {
  padding: 8px 0 8px 34px;
}
.entry-item:active .entry-zh[data-v-510f1d35] {
  opacity: 0.55;
}
.entry-zh[data-v-510f1d35] {
  font-size: 1.18rem;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-indent: 0.32em;
  transition: opacity var(--shop-dur) var(--shop-ease);
}
.entry-sub[data-v-510f1d35] {
  font-size: 0.68rem;
  color: var(--shop-muted);
  letter-spacing: 0.22em;
  text-indent: 0.22em;
}
.entry-div[data-v-510f1d35] {
  width: 1px;
  background: var(--shop-border);
  margin: 6px 0;
}

/* 茶事：仅最新一期 */
.sec[data-v-510f1d35] {
  padding: 56px 32px;
}
.sec-head[data-v-510f1d35] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 28px;
}
@supports not (gap: 1px) {
.sec-head[data-v-510f1d35] > * + * {
    margin-left: 12px;
}
}
.sec-title[data-v-510f1d35] {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-indent: 0.32em;
  color: var(--shop-ink);
}
.sec-en[data-v-510f1d35] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}
.event[data-v-510f1d35] {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  color: inherit;
  padding: 0;
}
@supports not (gap: 1px) {
.event[data-v-510f1d35] > * + * {
    margin-left: 20px;
}
}
.event:active .ev-title[data-v-510f1d35] {
  opacity: 0.55;
}
/* B-134：首页茶事——移动端只显示第一条，PC（≥744）显示 3 条 */
.events .event[data-v-510f1d35]:nth-child(n + 2) {
  display: none;
}
.ev-date[data-v-510f1d35] {
  flex: 0 0 52px;
  text-align: center;
  padding-top: 4px;
}
.ev-d[data-v-510f1d35] {
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.05;
  color: var(--shop-ink);
}
.ev-m[data-v-510f1d35] {
  font-size: 0.62rem;
  color: var(--shop-muted);
  letter-spacing: 0.26em;
  margin-top: 5px;
  font-family: var(--font-sans);
}
.ev-body[data-v-510f1d35] {
  flex: 1;
  border-left: 1px solid var(--shop-border);
  padding-left: 20px;
}
.ev-title[data-v-510f1d35] {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--shop-ink);
}
.ev-tag[data-v-510f1d35] {
  display: inline-block;
  font-size: 0.6rem;
  color: var(--shop-clay);
  border: 1px solid var(--shop-clay);
  border-radius: 2px;
  padding: 2px 8px;
  margin-left: 10px;
  vertical-align: 2px;
  letter-spacing: 0.14em;
  font-family: var(--font-sans);
}
.ev-sum[data-v-510f1d35] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  margin-top: 10px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
.ev-more-btn[data-v-510f1d35] {
  display: inline-block;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  margin-top: 18px;
  font-size: 0.72rem;
  color: var(--shop-muted);
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  transition: color var(--shop-dur) var(--shop-ease);
}
.ev-more-btn[data-v-510f1d35]:active {
  opacity: 0.55;
}

/* 院子四行诗 */
.courtyard[data-v-510f1d35] {
  text-align: center;
  padding: 0 40px;
}
.cy-seal[data-v-510f1d35] {
  width: 46px;
  height: 46px;
  margin: 0 auto 30px;
  border-radius: 50%;
  background: var(--shop-clay);
  color: var(--shop-card);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  font-weight: 500;
}
.cy-poem[data-v-510f1d35] {
  font-size: 0.92rem;
  line-height: 2.3;
  color: var(--shop-ink);
  letter-spacing: 0.1em;
}
.cy-poem em[data-v-510f1d35] {
  font-style: normal;
  color: var(--shop-clay);
}

/* 页脚（定稿 v4.3 foot）：深棕底 */
.home-foot[data-v-510f1d35] {
  background: var(--shop-ink);
  color: var(--shop-card);
  padding: 56px 30px 48px;
  text-align: center;
}
.foot-name[data-v-510f1d35] {
  font-size: 1.1rem;
  letter-spacing: 0.44em;
  text-indent: 0.44em;
  margin-bottom: 14px;
}
.foot-addr[data-v-510f1d35] {
  font-size: 0.74rem;
  color: rgba(251, 245, 234, 0.6);
  letter-spacing: 0.12em;
  line-height: 2;
}
.foot-tel[data-v-510f1d35] {
  color: rgba(251, 245, 234, 0.9);
  text-decoration: none;
  border-bottom: 1px solid rgba(251, 245, 234, 0.3);
}
.foot-tel[data-v-510f1d35]:active {
  opacity: 0.7;
}
.foot-line[data-v-510f1d35] {
  width: 36px;
  height: 1px;
  background: rgba(251, 245, 234, 0.25);
  margin: 24px auto;
}
.foot-note[data-v-510f1d35] {
  font-size: 0.6rem;
  color: rgba(251, 245, 234, 0.36);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}
/* ICP 备案号：小字米白，弱化但清晰可查 */
.foot-icp[data-v-510f1d35] {
  margin-top: 16px;
}
.foot-icp a[data-v-510f1d35] {
  font-size: 0.6rem;
  color: rgba(251, 245, 234, 0.42);
  letter-spacing: 0.1em;
  text-decoration: none;
  font-family: var(--font-sans);
}
.foot-icp a[data-v-510f1d35]:hover {
  color: var(--shop-clay);
}

/* ===== 桌面端渐进增强（方案 A 试点，仅首页，2026-08-07） =====
 * 只做 ≥1024px 增量覆盖，移动端规则原样保留（一行未动）。
 * 版式：hero 全宽 banner → 内容区限宽 1120 居中 → 四行诗居中大字 →
 *       页脚横向两栏。视觉延续 docs/design/shop-home-v4.3.html 语言。 */
@media (min-width: 744px) {
  /* 容器：不再锁 430px 窄栏，全宽 */
.shop-home[data-v-510f1d35] {
    max-width: none;
}

  /* hero：全宽 banner，加高到 700px，竖排标题 + 印章放大 */
.hero[data-v-510f1d35] {
    min-height: 700px;
}
.hero-top[data-v-510f1d35] {
    padding: 76px 72px 0;
}
.vertical[data-v-510f1d35] {
    font-size: clamp(2.4rem, 3.6vw, 3.3rem);
    letter-spacing: 0.3em;
}
.stamp[data-v-510f1d35] {
    width: 60px;
    height: 60px;
    margin-top: 14px;
}

  /* hero 下部：slogan 在上、双入口在下（横排），字号 clamp 流式放大 */
.hero-bottom[data-v-510f1d35] {
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
    padding: 0 72px 68px;
}
.slogan[data-v-510f1d35] {
    font-size: clamp(0.95rem, 1.5vw, 1.25rem);
}
.entry-item[data-v-510f1d35] {
    gap: 14px;
    padding: 10px 40px 10px 0;
}
.entry-item[data-v-510f1d35]:last-of-type {
    padding: 10px 0 10px 40px;
}
.entry-zh[data-v-510f1d35] {
    font-size: clamp(1.3rem, 2vw, 1.8rem);
}
.entry-sub[data-v-510f1d35] {
    font-size: 0.72rem;
}
.entry-div[data-v-510f1d35] {
    margin: 8px 0;
}
  /* 入口 hover：陶土色渐进（桌面专属交互） */
.entry-item:hover .entry-zh[data-v-510f1d35] {
    color: var(--shop-clay);
    transition: color var(--shop-dur) var(--shop-ease);
}
.entry-item:hover .entry-sub[data-v-510f1d35] {
    color: var(--shop-ink);
    transition: color var(--shop-dur) var(--shop-ease);
}

  /* 内容区：限宽 1120px 居中 */
.sec[data-v-510f1d35] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 84px 48px;
}
.sec-head[data-v-510f1d35] {
    margin-bottom: 40px;
}
.sec-title[data-v-510f1d35] {
    font-size: 1.15rem;
}
.sec-en[data-v-510f1d35] {
    font-size: 0.66rem;
}

  /* 茶事：三列网格卡片（日期上 + 标题/徽章 + 摘要），悬停卡纸底；
     B-134：桌面恢复显示全部 3 条（移动端隐藏规则在基础样式中） */
.events[data-v-510f1d35] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 24px;
}
.events .event[data-v-510f1d35]:nth-child(n + 2) {
    display: flex;
}
.event[data-v-510f1d35] {
    flex-direction: column;
    gap: 18px;
    padding: 30px 26px;
    border: 1px solid transparent;
    transition: background var(--shop-dur) var(--shop-ease),
      border-color var(--shop-dur) var(--shop-ease);
}
.event[data-v-510f1d35]:hover {
    background: var(--shop-card);
    border-color: var(--shop-border);
}
.event:hover .ev-title[data-v-510f1d35] {
    color: var(--shop-clay);
}
.event:hover .ev-more-btn[data-v-510f1d35] {
    color: var(--shop-clay);
}
.ev-date[data-v-510f1d35] {
    flex: none;
    text-align: left;
    padding-top: 0;
}
.ev-d[data-v-510f1d35] {
    font-size: 2rem;
}
.ev-m[data-v-510f1d35] {
    font-size: 0.7rem;
    margin-top: 6px;
}
.ev-body[data-v-510f1d35] {
    border-left: none;
    padding-left: 0;
    border-top: 1px solid var(--shop-border);
    padding-top: 18px;
}
.ev-title[data-v-510f1d35] {
    font-size: 1.06rem;
    letter-spacing: 0.08em;
    transition: color var(--shop-dur) var(--shop-ease);
}
.ev-tag[data-v-510f1d35] {
    font-size: 0.6rem;
    padding: 2px 8px;
}
.ev-sum[data-v-510f1d35] {
    font-size: 0.8rem;
    margin-top: 10px;
}
.events-more[data-v-510f1d35] {
    margin-top: 40px;
    text-align: right;
}
.ev-more-btn[data-v-510f1d35] {
    margin-top: 0;
    font-size: 0.78rem;
}

  /* 院子四行诗：7322 圆标放大，诗句居中大字 */
.courtyard[data-v-510f1d35] {
    padding: 8px 0 16px;
}
.cy-seal[data-v-510f1d35] {
    width: 64px;
    height: 64px;
    font-size: 1rem;
    margin-bottom: 36px;
}
.cy-poem[data-v-510f1d35] {
    font-size: clamp(1.1rem, 1.9vw, 1.55rem);
    line-height: 2.15;
    letter-spacing: 0.12em;
}

  /* 页脚：两栏横排（名字+地址 ｜ 竖线 ｜ 英文名） */
.home-foot[data-v-510f1d35] {
    display: grid;
    grid-template-columns: auto 1px auto;
    grid-template-rows: auto auto;
    column-gap: 48px;
    justify-content: center;
    text-align: left;
    padding: 64px 48px 56px;
}
.foot-name[data-v-510f1d35] {
    grid-column: 1;
    grid-row: 1;
    font-size: 1.3rem;
    margin-bottom: 0;
    letter-spacing: 0.4em;
    text-indent: 0.4em;
}
.foot-addr[data-v-510f1d35] {
    grid-column: 1;
    grid-row: 2;
    font-size: 0.78rem;
}
.foot-line[data-v-510f1d35] {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 1px;
    height: 100%;
    margin: 0;
}
.foot-note[data-v-510f1d35] {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
    font-size: 0.72rem;
}
.foot-tel[data-v-510f1d35]:hover {
    color: var(--shop-card);
}
  /* ICP 备案号：跨全宽第三行居中，不参与两栏排布 */
.foot-icp[data-v-510f1d35] {
    grid-column: 1 / -1;
    grid-row: 3;
    margin-top: 18px;
    text-align: center;
}

  /* B-131 平板兜底：html.tablet（iPad mini 竖版 744px 等 <768 平板）强制桌面层关键布局 */
html.tablet .shop-home[data-v-510f1d35] {
  max-width: none;
}
html.tablet .hero[data-v-510f1d35] {
  min-height: 700px;
}
html.tablet .sec[data-v-510f1d35] {
  max-width: 1120px;
  margin: 0 auto;
  padding: 84px 48px;
}
html.tablet .events[data-v-510f1d35] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
}
html.tablet .vertical[data-v-510f1d35] {
  font-size: clamp(2.4rem, 3.6vw, 3.3rem);
}
html.tablet .entry-zh[data-v-510f1d35] {
  font-size: clamp(1.3rem, 2vw, 1.8rem);
}
html.tablet .ev-title[data-v-510f1d35] {
  font-size: 1.06rem;
}

  /* ≥1440px 大屏微调（加分项）：hero 再加高一档 */
@media (min-width: 1440px) {
.hero[data-v-510f1d35] {
      min-height: 740px;
}
.vertical[data-v-510f1d35] {
      font-size: clamp(2.6rem, 3.4vw, 3.6rem);
}
.stamp[data-v-510f1d35] {
      width: 68px;
      height: 68px;
}
.hero-bottom[data-v-510f1d35] {
      padding-bottom: 80px;
}
}
}

/* 2026-08-04 第二轮收紧（老爷验收反馈：字体再小一点、双入口再紧一点）：
 * 只作用于微信内，普通浏览器观感不变。 */
html.wx .shop-home .hero {
  min-height: 540px;
}
html.wx .shop-home .hero-bottom {
  gap: 14px;
  padding-bottom: 36px;
}
html.wx .shop-home .vertical {
  font-size: 1.65rem;
}
html.wx .shop-home .slogan {
  font-size: 0.72rem;
}
html.wx .shop-home .entry-zh {
  font-size: 0.92rem;
}
html.wx .shop-home .entry-sub {
  font-size: 0.62rem;
}
html.wx .shop-home .entry-item {
  gap: 8px;
  padding: 6px 26px 6px 0;
}
html.wx .shop-home .entry-item:last-of-type {
  padding: 6px 0 6px 26px;
}
html.wx .shop-home .entry-div {
  margin: 4px 0;
}

/* 茶事区 + 四行诗 + 页脚（2026-08-04 第二轮收紧，微信专属）：
 * 与 hero 同步降一档密度，普通浏览器不变。 */
html.wx .shop-home .sec {
  padding: 40px 28px;
}
html.wx .shop-home .sec-head {
  margin-bottom: 18px;
}
html.wx .shop-home .sec-title {
  font-size: 0.9rem;
}
html.wx .shop-home .sec-en {
  font-size: 0.55rem;
}
html.wx .shop-home .event {
  gap: 16px;
}
html.wx .shop-home .ev-date {
  flex-basis: 46px;
}
html.wx .shop-home .ev-d {
  font-size: 1.2rem;
}
html.wx .shop-home .ev-m {
  font-size: 0.58rem;
  margin-top: 4px;
}
html.wx .shop-home .ev-body {
  padding-left: 16px;
}
html.wx .shop-home .ev-title {
  font-size: 0.9rem;
}
html.wx .shop-home .ev-sum {
  font-size: 0.7rem;
  margin-top: 7px;
  line-height: 1.85;
}
html.wx .shop-home .ev-more {
  margin-top: 12px;
  font-size: 0.66rem;
}
/* 2026-08-04 第三轮收紧（V2R-11：首页底部字号再降一档，微信专属）：
 * 承接第二轮，courtyard + home-foot 整体再降一档：圆标 40→36px，
 * font-size 各项再降 0.04-0.08rem，留白更紧。普通浏览器不变。 */
html.wx .shop-home .courtyard {
  padding: 0 26px;
}
html.wx .shop-home .cy-seal {
  width: 36px;
  height: 36px;
  margin-bottom: 14px;
  font-size: 0.6rem;
}
html.wx .shop-home .cy-poem {
  font-size: 0.78rem;
  line-height: 2.0;
}
html.wx .shop-home .home-foot {
  padding: 36px 24px 30px;
}
html.wx .shop-home .foot-name {
  font-size: 0.92rem;
  margin-bottom: 8px;
}
html.wx .shop-home .foot-addr {
  font-size: 0.62rem;
}
html.wx .shop-home .foot-line {
  margin: 14px auto;
}
html.wx .shop-home .foot-note {
  font-size: 0.5rem;
}
html.wx .shop-home .foot-icp {
  margin-top: 12px;
}
html.wx .shop-home .foot-icp a {
  font-size: 0.5rem;
}

/* 视觉基准：docs/design/shop-products-v1.html */
.shop-products[data-v-06ff79a7] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 24px;
}
.bar[data-v-06ff79a7] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-06ff79a7] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-06ff79a7]:active {
  opacity: 0.6;
}
.bar-mark[data-v-06ff79a7] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.head[data-v-06ff79a7] {
  padding: 26px 28px 0;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
@supports not (gap: 1px) {
.head[data-v-06ff79a7] > * + * {
    margin-left: 14px;
}
}
.head-zh[data-v-06ff79a7] {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-06ff79a7] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}
.tabs[data-v-06ff79a7] {
  display: flex;
  gap: 0;
  margin: 22px 28px 0;
  border-bottom: 1px solid var(--shop-border);
}
@supports not (gap: 1px) {
.tabs[data-v-06ff79a7] > * + * {
    margin-left: 0;
}
}
.tab[data-v-06ff79a7] {
  flex: 1;
  text-align: center;
  padding: 12px 0 14px;
  font-size: 0.88rem;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  color: var(--shop-muted);
  cursor: pointer;
  position: relative;
  background: none;
  border: none;
  transition: color var(--shop-dur) var(--shop-ease);
}
.tab.on[data-v-06ff79a7] {
  color: var(--shop-ink);
  font-weight: 500;
}
.tab.on[data-v-06ff79a7]::after {
  content: "";
  position: absolute;
  left: 20%;
  right: 20%;
  bottom: -1px;
  height: 2px;
  background: var(--shop-clay);
}
.tags[data-v-06ff79a7] {
  display: flex;
  gap: 8px;
  padding: 16px 28px 4px;
  overflow-x: auto;
  scrollbar-width: none;
}
@supports not (gap: 1px) {
.tags[data-v-06ff79a7] > * + * {
    margin-left: 8px;
}
}
.tags[data-v-06ff79a7]::-webkit-scrollbar {
  display: none;
}
.tag[data-v-06ff79a7] {
  flex: 0 0 auto;
  padding: 7px 14px;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  background: transparent;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: var(--shop-brown);
  cursor: pointer;
  white-space: nowrap;
  transition: all var(--shop-dur) var(--shop-ease);
}
.tag.on[data-v-06ff79a7] {
  border-color: var(--shop-ink);
  color: var(--shop-ink);
  background: rgba(56, 42, 31, 0.05);
}
.tag-all[data-v-06ff79a7] {
  border-color: transparent;
}
.tag-all.on[data-v-06ff79a7] {
  border-color: var(--shop-ink);
  background: transparent;
}
.list[data-v-06ff79a7] {
  padding: 18px 28px 0;
}
.card[data-v-06ff79a7] {
  display: flex;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--shop-border);
  text-decoration: none;
  color: var(--shop-ink);
}
@supports not (gap: 1px) {
.card[data-v-06ff79a7] > * + * {
    margin-left: 16px;
}
}
.card[data-v-06ff79a7]:last-child {
  border-bottom: none;
}
.card-img[data-v-06ff79a7] {
  flex: 0 0 108px;
  height: 108px;
  border-radius: 3px;
  overflow: hidden;
  position: relative;
  background: var(--shop-card);
}
.card-img img[data-v-06ff79a7] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.card-img .ph[data-v-06ff79a7] {
  width: 100%;
  height: 100%;
  background: linear-gradient(160deg, #e9dcc8, #dcc9ae);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--shop-muted);
  font-size: 0.56rem;
  letter-spacing: 0.14em;
  text-align: center;
  padding: 0 8px;
  box-sizing: border-box;
}
.card-body[data-v-06ff79a7] {
  flex: 1;
  padding-top: 2px;
  display: flex;
  flex-direction: column;
}
.card-title[data-v-06ff79a7] {
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--shop-ink);
}
.card-sum[data-v-06ff79a7] {
  font-size: 0.7rem;
  color: var(--shop-brown);
  line-height: 1.8;
  margin-top: 6px;
  letter-spacing: 0.03em;
  flex: 1;
}
/* v2.0 商城售卖单元 chips */
.unit-chips[data-v-06ff79a7] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
@supports not (gap: 1px) {
.unit-chips[data-v-06ff79a7] > * + * {
    margin-left: 6px;
}
}
.unit-chip[data-v-06ff79a7] {
  font-size: 0.68rem;
  padding: 2px 8px;
  border: 1px solid var(--shop-line, #ddd);
  border-radius: 999px;
  color: var(--shop-brown);
  font-variant-numeric: tabular-nums;
}
.card-bottom[data-v-06ff79a7] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 10px;
}
.card-price[data-v-06ff79a7] {
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--shop-ink);
}
.card-price.inquiry[data-v-06ff79a7] {
  color: var(--shop-clay);
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.status[data-v-06ff79a7] {
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  padding: 3px 8px;
  border-radius: var(--shop-radius);
}
.status.ok[data-v-06ff79a7] {
  color: var(--shop-green);
  border: 1px solid rgba(74, 107, 74, 0.5);
}
.status.low[data-v-06ff79a7] {
  color: var(--shop-clay);
  border: 1px solid rgba(181, 113, 74, 0.55);
}
.status.out[data-v-06ff79a7] {
  color: var(--shop-cinnabar);
  border: 1px solid rgba(166, 79, 56, 0.5);
}
.empty[data-v-06ff79a7] {
  padding: 48px 0;
  text-align: center;
  font-size: 0.78rem;
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：内容区限宽 1120 居中 → 分类 tab 横向不拉伸 → 二级标签去横滑可换行 →
 *       商品卡左图右文横排改网格竖卡（auto-fill minmax 260px），hover 卡纸底/陶土色。 */
@media (min-width: 744px) {
.shop-products[data-v-06ff79a7] {
    max-width: none;
}

  /* 返回栏 + 列表头：限宽 1120 居中，标题字号 clamp 流式 */
.bar[data-v-06ff79a7] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-06ff79a7] {
    font-size: 0.8rem;
}
.bar-back[data-v-06ff79a7]:hover {
    color: var(--shop-clay);
}
.head[data-v-06ff79a7] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.head-zh[data-v-06ff79a7] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.head-en[data-v-06ff79a7] {
    font-size: 0.68rem;
}

  /* 一级分类 tab：不再 flex 均分拉伸，改为横向排开（限宽容器内靠左） */
.tabs[data-v-06ff79a7] {
    max-width: 1120px;
    margin: 34px auto 0;
}
.tab[data-v-06ff79a7] {
    flex: none;
    padding: 14px 36px 16px;
    font-size: 0.94rem;
}

  /* 二级标签：去横向滚动，限宽 + 可换行 */
.tags[data-v-06ff79a7] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 22px 48px 6px;
    overflow-x: visible;
    flex-wrap: wrap;
}
.tag[data-v-06ff79a7] {
    padding: 9px 18px;
    font-size: 0.76rem;
}

  /* 商品卡网格：auto-fill minmax(260px,1fr)（744→2 列，1120→3-4 列） */
.list[data-v-06ff79a7] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 48px 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 28px;
}
  /* 卡：横排（图左文右）→ 竖卡（图上方 + 信息下方），hover 卡纸底 + 细线 */
.card[data-v-06ff79a7] {
    flex-direction: column;
    gap: 0;
    padding: 18px;
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background var(--shop-dur) var(--shop-ease),
      border-color var(--shop-dur) var(--shop-ease);
}
.card[data-v-06ff79a7]:hover {
    background: var(--shop-card);
    border-color: var(--shop-border);
}
.card:hover .card-title[data-v-06ff79a7] {
    color: var(--shop-clay);
}
.card-img[data-v-06ff79a7] {
    flex: none;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
}
.card-body[data-v-06ff79a7] {
    padding-top: 16px;
}
.card-title[data-v-06ff79a7] {
    font-size: clamp(1rem, 1.1vw, 1.14rem);
    transition: color var(--shop-dur) var(--shop-ease);
}
.card-sum[data-v-06ff79a7] {
    font-size: 0.76rem;
    margin-top: 8px;
}
.card-price[data-v-06ff79a7] {
    font-size: 1rem;
}
.card-price.inquiry[data-v-06ff79a7] {
    font-size: 0.86rem;
}
.empty[data-v-06ff79a7] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 60px 48px;
}
}

/* 视觉基准：docs/design/shop-product-detail-v3a.html / v3b.html */
.shop-detail[data-v-e6d48134] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
  position: relative;
}
.bar[data-v-e6d48134] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-e6d48134] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-e6d48134]:active {
  opacity: 0.6;
}
.bar-mark[data-v-e6d48134] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
/* 头图（v3a）：4:3 封面 + 深棕角标 */
.cover[data-v-e6d48134] {
  position: relative;
  margin: 18px 16px 0;
  border-radius: var(--shop-radius-lg);
  overflow: hidden;
}
.cover img[data-v-e6d48134] {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.cover-badge[data-v-e6d48134] {
  position: absolute;
  top: 14px;
  left: 14px;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  color: var(--shop-card);
  background: rgba(56, 42, 31, 0.72);
  padding: 5px 12px;
  border-radius: var(--shop-radius);
}
.info[data-v-e6d48134] {
  padding: 22px 28px 20px;
}
/* v3b 形态（无头部）：标题区从更高处开始（对齐设计稿 shop-product-detail-v3b.html padding 26px） */
.info-no-cover[data-v-e6d48134] {
  padding-top: 26px;
}
.info-cat[data-v-e6d48134] {
  font-size: 0.62rem;
  color: var(--shop-clay);
  letter-spacing: 0.22em;
  margin-bottom: 10px;
}
.info-title[data-v-e6d48134] {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--shop-ink);
}
.info-sum[data-v-e6d48134] {
  font-size: 0.78rem;
  color: var(--shop-brown);
  line-height: 1.9;
  margin-top: 10px;
  letter-spacing: 0.04em;
}
.info-row[data-v-e6d48134] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--shop-border);
}
.price[data-v-e6d48134] {
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--shop-ink);
  letter-spacing: 0.04em;
}
.price.inquiry[data-v-e6d48134] {
  color: var(--shop-clay);
  font-size: 0.92rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.stk[data-v-e6d48134] {
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  padding: 4px 10px;
  border-radius: var(--shop-radius);
}
.stk.ok[data-v-e6d48134] {
  color: var(--shop-green);
  border: 1px solid rgba(74, 107, 74, 0.5);
}
.stk.low[data-v-e6d48134] {
  color: var(--shop-clay);
  border: 1px solid rgba(181, 113, 74, 0.55);
}
.stk.out[data-v-e6d48134] {
  color: var(--shop-cinnabar);
  border: 1px solid rgba(166, 79, 56, 0.5);
}

/* v2.0 商城售卖单元 */
.mall-units[data-v-e6d48134] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 18px 26px 0;
}
@supports not (gap: 1px) {
.mall-units[data-v-e6d48134] > * + * {
    margin-top: 8px;
}
}
.mall-unit[data-v-e6d48134] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 14px;
  border: 1px solid var(--shop-line, #ddd);
  border-radius: 6px;
}
.mall-unit-name[data-v-e6d48134] {
  font-size: 0.86rem;
}
.mall-unit-price[data-v-e6d48134] {
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
}

/* 缺货/少量横幅（深朱红状态语言） */
.stock-banner[data-v-e6d48134] {
  margin: 0 28px 16px;
  padding: 10px 14px;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--shop-cinnabar);
  background: rgba(166, 79, 56, 0.08);
  border: 1px solid rgba(166, 79, 56, 0.35);
  border-radius: var(--shop-radius);
}
.stock-banner.low[data-v-e6d48134] {
  color: var(--shop-clay);
  background: rgba(181, 113, 74, 0.08);
  border-color: rgba(181, 113, 74, 0.35);
}

/* 详情长图铁律：零间隔、高度自适应（定稿清单铁律 2） */
.gallery[data-v-e6d48134] {
  width: 100%;
  background: var(--shop-card);
  line-height: 0;
  font-size: 0;
}
.gallery img[data-v-e6d48134] {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
}
/* 长图收尾 2px 深棕线（定稿 .g-end） */
.g-end[data-v-e6d48134] {
  height: 2px;
  background: var(--shop-ink);
}

/* 微信联系区 */
.contact[data-v-e6d48134] {
  border-top: 1px solid var(--shop-border);
  padding: 26px 28px 30px;
  text-align: center;
}
.contact-label[data-v-e6d48134] {
  font-size: 0.72rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  margin-bottom: 16px;
}
.contact-qr[data-v-e6d48134] {
  width: 92px;
  height: 92px;
  margin: 0 auto 14px;
  background: var(--shop-card);
  border: 1px solid var(--shop-border);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--shop-muted);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-align: center;
  line-height: 1.7;
  overflow: hidden;
}
.contact-qr img[data-v-e6d48134] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.contact-note[data-v-e6d48134] {
  font-size: 0.64rem;
  color: var(--shop-muted);
  letter-spacing: 0.12em;
  line-height: 1.8;
}
.contact-btn[data-v-e6d48134] {
  display: inline-block;
  margin-top: 16px;
  padding: 13px 46px;
  background: var(--shop-ink);
  color: var(--shop-card);
  border: 1px solid var(--shop-ink-deep);
  box-shadow: inset 0 0 0 1px rgba(251, 245, 234, 0.16);
  border-radius: 3px;
  font-size: 0.84rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  font-weight: 500;
  cursor: pointer;
  font-family: var(--font-sans);
}
.contact-btn[data-v-e6d48134]:active {
  opacity: 0.85;
}
.state-tip[data-v-e6d48134] {
  padding: 60px 28px;
  text-align: center;
  color: var(--shop-muted);
  font-size: 0.8rem;
  letter-spacing: 0.16em;
}
.toast[data-v-e6d48134] {
  position: fixed;
  left: 50%;
  bottom: 48px;
  transform: translateX(-50%);
  max-width: 84%;
  padding: 12px 18px;
  background: rgba(56, 42, 31, 0.92);
  color: var(--shop-card);
  font-size: 0.76rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  border-radius: 4px;
  white-space: pre-line;
  text-align: center;
  z-index: 30;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：头图+信息区两栏（图左文右，detail-top 包裹层）→ 长图/正文/联系区限宽 1120
 *       居中 → hover 陶土色；详情长图铁律（零间隔）在限宽容器内保持。 */
@media (min-width: 744px) {
.shop-detail[data-v-e6d48134] {
    max-width: none;
}

  /* 返回栏：限宽 1120 居中 */
.bar[data-v-e6d48134] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-e6d48134]:hover {
    color: var(--shop-clay);
}

  /* 图左文右两栏：封面 1.1fr / 信息 1fr（无封面 v3b 时信息单元素自然撑满） */
.detail-top[data-v-e6d48134] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 48px;
    display: flex;
    align-items: flex-start;
    gap: 56px;
}@supports not (gap: 1px) {
.detail-top[data-v-e6d48134] > * + * {
    margin-left: 56px;
}
}
.cover[data-v-e6d48134] {
    flex: 1.1;
    margin: 38px 0 0;
}
.cover-badge[data-v-e6d48134] {
    top: 16px;
    left: 16px;
    font-size: 0.66rem;
    padding: 6px 14px;
}
.info[data-v-e6d48134] {
    flex: 1;
    padding: 42px 0 20px;
}
.info-no-cover[data-v-e6d48134] {
    padding-top: 42px;
}
.info-cat[data-v-e6d48134] {
    font-size: 0.68rem;
    margin-bottom: 14px;
}
.info-title[data-v-e6d48134] {
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
    line-height: 1.4;
}
.info-sum[data-v-e6d48134] {
    font-size: 0.86rem;
    margin-top: 16px;
}
.info-row[data-v-e6d48134] {
    margin-top: 20px;
    padding-top: 18px;
}
.price[data-v-e6d48134] {
    font-size: clamp(1.25rem, 1.6vw, 1.5rem);
}
.price.inquiry[data-v-e6d48134] {
    font-size: 1rem;
}
.stk[data-v-e6d48134] {
    font-size: 0.68rem;
    padding: 5px 12px;
}

  /* 缺货/少量横幅：限宽居中 */
.stock-banner[data-v-e6d48134] {
    max-width: 1120px;
    margin: 24px auto 0;
}

  /* 详情长图：限宽 1120 居中（图内零间隔铁律保持） */
.gallery[data-v-e6d48134] {
    max-width: 1120px;
    margin: 0 auto;
}
.g-end[data-v-e6d48134] {
    max-width: 1120px;
    margin: 0 auto;
}

  /* 微信联系区：限宽居中，留白加大 */
.contact[data-v-e6d48134] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 54px;
}
.contact-label[data-v-e6d48134] {
    font-size: 0.76rem;
}
.contact-qr[data-v-e6d48134] {
    width: 108px;
    height: 108px;
}
.contact-btn[data-v-e6d48134] {
    font-size: 0.9rem;
}
}

/* 正文 Markdown 排版（V2R-25，非 scoped：v-html 节点不受 scoped 匹配）。
 * 与茶事详情 .md-body 同规则（shop-event-detail-v1.html 正文区），
 * 复用 renderEventMarkdown 渲染器故样式直接对齐。 */
.md-body {
  font-size: 0.86rem;
  line-height: 2.15;
  color: var(--shop-brown);
  letter-spacing: 0.04em;
  padding: 24px 30px 0;
}
.md-body p {
  margin-bottom: 18px;
}
.md-body > p:first-child {
  font-size: 0.92rem;
  color: var(--shop-ink);
}
.md-body h2,
.md-body h3 {
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--shop-ink);
  letter-spacing: 0.14em;
  margin: 30px 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
@supports not (gap: 1px) {
.md-body h2 > * + *,
.md-body h3 > * + * {
    margin-left: 10px;
}
}
.md-body h2::before,
.md-body h3::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--shop-clay);
  flex: 0 0 18px;
}
.md-body blockquote {
  border-left: 2px solid var(--shop-clay);
  padding: 2px 0 2px 16px;
  margin: 22px 0;
  color: var(--shop-muted);
  font-size: 0.82rem;
  line-height: 2;
}
.md-body strong {
  font-weight: 500;
  color: var(--shop-ink);
}
.md-body .img-cap {
  margin: 20px 0;
  border-radius: 4px;
  overflow: hidden;
}
.md-body .img-cap img {
  width: 100%;
  display: block;
}
.md-body .cap {
  font-size: 0.62rem;
  color: var(--shop-muted);
  text-align: center;
  letter-spacing: 0.12em;
  margin-top: 10px;
}
.md-body ul,
.md-body ol {
  padding-left: 1.4em;
  margin: 0 0 18px;
}
.md-body li {
  margin-bottom: 6px;
}
.md-body code {
  background: rgba(56, 42, 31, 0.06);
  border-radius: 2px;
  padding: 1px 5px;
  font-size: 0.82em;
}

/* 桌面端：正文限宽 1120 居中（v-html 节点不受 scoped 匹配，放在非 scoped 块） */
@media (min-width: 744px) {
.md-body {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
}

/* 定稿配色 + 衬线气质排版（无独立设计稿，按定稿清单原则） */
.shop-about[data-v-583c3022] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-583c3022] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-583c3022] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-583c3022]:active {
  opacity: 0.6;
}
.bar-mark[data-v-583c3022] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.head[data-v-583c3022] {
  padding: 26px 28px 0;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
@supports not (gap: 1px) {
.head[data-v-583c3022] > * + * {
    margin-left: 14px;
}
}
.head-zh[data-v-583c3022] {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-583c3022] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}

/* 照片占位 */
.photo[data-v-583c3022] {
  margin: 22px 28px 0;
  height: 200px;
  border-radius: var(--shop-radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}
.photo.ph[data-v-583c3022] {
  background: linear-gradient(160deg, #e9dcc8, #dcc9ae);
  color: var(--shop-muted);
  font-size: 0.68rem;
  letter-spacing: 0.24em;
}
.sec[data-v-583c3022] {
  padding: 40px 28px 0;
}
.sec-title[data-v-583c3022] {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  color: var(--shop-ink);
  position: relative;
  padding-left: 16px;
  margin-bottom: 16px;
}
.sec-title[data-v-583c3022]::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.32em;
  bottom: 0.32em;
  width: 2px;
  background: var(--shop-clay);
}
.kw[data-v-583c3022] {
  font-size: 0.92rem;
  letter-spacing: 0.14em;
  color: var(--shop-clay);
  margin-bottom: 16px;
}
.body[data-v-583c3022] {
  font-size: 0.82rem;
  color: var(--shop-brown);
  line-height: 2.1;
  letter-spacing: 0.04em;
}
.closing[data-v-583c3022] {
  text-align: center;
  padding: 48px 32px 12px;
  font-size: 0.92rem;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  color: var(--shop-ink);
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：照片占位放宽为 16:9 横幅限宽 1120 居中 → 正文段落限阅读行宽 800px 居中
 *       （长文行宽 720-800 更易读）→ 段落留白加大、字号随行宽小幅提升。 */
@media (min-width: 744px) {
.shop-about[data-v-583c3022] {
    max-width: none;
}
.bar[data-v-583c3022] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-583c3022] {
    font-size: 0.8rem;
}
.bar-back[data-v-583c3022]:hover {
    color: var(--shop-clay);
}
.head[data-v-583c3022] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.head-zh[data-v-583c3022] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.head-en[data-v-583c3022] {
    font-size: 0.68rem;
}

  /* 照片占位：16:9 横幅限宽 1120 居中（不再 200px 固定高） */
.photo[data-v-583c3022] {
    max-width: 1120px;
    margin: 30px auto 0;
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
}

  /* 正文：限阅读行宽 800px 居中，段落间距加大 */
.sec[data-v-583c3022] {
    max-width: 800px;
    margin: 0 auto;
    padding: 56px 48px 0;
}
.sec-title[data-v-583c3022] {
    font-size: clamp(1.1rem, 1.5vw, 1.3rem);
    margin-bottom: 20px;
}
.kw[data-v-583c3022] {
    font-size: clamp(1rem, 1.3vw, 1.14rem);
    margin-bottom: 20px;
}
.body[data-v-583c3022] {
    font-size: 0.9rem;
    line-height: 2.3;
}
.closing[data-v-583c3022] {
    max-width: 800px;
    margin: 0 auto;
    padding: 64px 48px 20px;
    font-size: clamp(0.98rem, 1.2vw, 1.1rem);
}
}

/* 定稿配色 + 衬线气质排版 */
.shop-contact[data-v-de50ac83] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-de50ac83] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-de50ac83] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-de50ac83]:active {
  opacity: 0.6;
}
.bar-mark[data-v-de50ac83] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  text-decoration: none;
  cursor: pointer;
}
.head[data-v-de50ac83] {
  padding: 40px 26px 0;
}
.head-zh[data-v-de50ac83] {
  font-size: 1.5rem;
  letter-spacing: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-de50ac83] {
  font-size: 0.62rem;
  letter-spacing: 0.4em;
  color: var(--shop-muted);
  margin-top: 8px;
  font-family: var(--font-sans);
}
.sec[data-v-de50ac83] {
  padding: 30px 26px 0;
}
.sec-title[data-v-de50ac83] {
  font-size: 0.86rem;
  letter-spacing: 0.26em;
  color: var(--shop-brown);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--shop-border);
}
.addr[data-v-de50ac83] {
  font-size: 1.05rem;
  letter-spacing: 0.06em;
  color: var(--shop-ink);
  line-height: 1.8;
  margin-top: 16px;
}
.note[data-v-de50ac83] {
  font-size: 0.72rem;
  color: var(--shop-muted);
  line-height: 1.9;
  margin-top: 8px;
}
.trans[data-v-de50ac83] {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
}
.trans li[data-v-de50ac83] {
  display: flex;
  gap: 12px;
  font-size: 0.78rem;
  line-height: 1.8;
  color: var(--shop-brown);
  padding: 10px 0;
  border-bottom: 1px dashed var(--shop-border);
}
@supports not (gap: 1px) {
.trans li[data-v-de50ac83] > * + * {
    margin-left: 12px;
}
}
.t-kw[data-v-de50ac83] {
  flex: 0 0 42px;
  color: var(--shop-clay);
  letter-spacing: 0.2em;
}
.nav-row[data-v-de50ac83] {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.nav-row[data-v-de50ac83] > * + * {
    margin-left: 10px;
}
}
.act-btn[data-v-de50ac83] {
  flex: 1 1 42%;
  min-width: 120px;
  padding: 11px 0;
  background: none;
  border: 1px solid var(--shop-clay);
  border-radius: 2px;
  color: var(--shop-clay);
  font-family: var(--font-sans);
  font-size: 0.78rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  cursor: pointer;
  transition: background var(--shop-dur) var(--shop-ease),
    color var(--shop-dur) var(--shop-ease);
}
.act-btn[data-v-de50ac83]:active {
  background: var(--shop-clay);
  color: var(--shop-card);
}
.tel-row[data-v-de50ac83] {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.tel-row[data-v-de50ac83] > * + * {
    margin-left: 14px;
}
}
.tel-link[data-v-de50ac83] {
  font-size: 1.3rem;
  letter-spacing: 0.08em;
  color: var(--shop-ink);
  text-decoration: none;
}
.tel-link[data-v-de50ac83]:active {
  color: var(--shop-clay);
}
.wx-qr[data-v-de50ac83] {
  margin-top: 16px;
  text-align: center;
}
.wx-qr img[data-v-de50ac83] {
  width: 100px;
  height: 100px;
  object-fit: contain;
}
.wx-qr.ph[data-v-de50ac83] {
  width: 100px;
  height: 100px;
  margin: 16px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--shop-border);
  color: var(--shop-muted);
  font-size: 0.76rem;
  letter-spacing: 0.3em;
  line-height: 2;
}
.map-sec[data-v-de50ac83] {
  padding-bottom: 10px;
}
.guide-note[data-v-de50ac83] {
  letter-spacing: 0.16em;
  color: var(--shop-clay);
}
.campus-map[data-v-de50ac83] {
  display: block;
  margin-top: 16px;
}
.campus-map img[data-v-de50ac83] {
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  display: block;
  border-radius: 2px;
}
.map[data-v-de50ac83] {
  width: 100%;
  height: 280px;
  margin-top: 16px;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.map-loading[data-v-de50ac83] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  background: var(--shop-bg, #f4f5f0);
}
@supports not (inset: 0) {
.map-loading[data-v-de50ac83] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.map-error[data-v-de50ac83] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px dashed var(--shop-border);
  font-size: 0.8rem;
  color: var(--shop-muted);
}
.tip[data-v-de50ac83] {
  margin-top: 34px;
  padding: 0 26px;
  text-align: center;
  font-size: 0.82rem;
  letter-spacing: 0.3em;
  color: var(--shop-brown);
}

/* 高德标记（非 scoped 样式放全局：AMap 注入的 DOM 不在 scoped 内） */
.mq-map-pin {
  position: relative;
  width: 28px;
  height: 36px;
}
.mq-pin-label {
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 12px;
  color: #B5714A;
  letter-spacing: 0.12em;
  font-family: "Noto Serif SC", "Songti SC", serif;
  background: rgba(251, 245, 234, 0.92);
  padding: 2px 8px;
  border-radius: 2px;
}

/* B-132 桌面层（≥744）：两栏信息 + 地图限宽 */
@media (min-width: 744px) {
.shop-contact[data-v-de50ac83] {
    max-width: none;
    padding-bottom: 60px;
}
.cols[data-v-de50ac83] {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    padding: 0 48px;
}
.head[data-v-de50ac83] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 56px 48px 0;
}
.map-sec[data-v-de50ac83] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 40px 48px 0;
}
.map[data-v-de50ac83] {
    height: 380px;
}
.act-btn[data-v-de50ac83]:hover {
    background: var(--shop-clay);
    color: var(--shop-card);
}
.tel-link[data-v-de50ac83]:hover {
    color: var(--shop-clay);
}
}

/* 视觉基准：docs/design/shop-spaces-v1.html */
.shop-spaces[data-v-2a014d98] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-2a014d98] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-2a014d98] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-2a014d98]:active {
  opacity: 0.6;
}
.bar-mark[data-v-2a014d98] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.head[data-v-2a014d98] {
  padding: 30px 28px 6px;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
@supports not (gap: 1px) {
.head[data-v-2a014d98] > * + * {
    margin-left: 14px;
}
}
.head-zh[data-v-2a014d98] {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-2a014d98] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}
.head-line[data-v-2a014d98] {
  width: 28px;
  height: 1px;
  background: var(--shop-clay);
  margin: 16px 28px 0;
}
.intro[data-v-2a014d98] {
  padding: 18px 28px 6px;
  font-size: 0.76rem;
  color: var(--shop-brown);
  line-height: 2;
  letter-spacing: 0.05em;
}
.list[data-v-2a014d98] {
  padding: 6px 28px 0;
}
.item[data-v-2a014d98] {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 20px 0;
  border-bottom: 1px solid var(--shop-border);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: var(--shop-ink);
}
@supports not (gap: 1px) {
.item[data-v-2a014d98] > * + * {
    margin-left: 18px;
}
}
.item[data-v-2a014d98]:last-child {
  border-bottom: none;
}
.item:active .item-title[data-v-2a014d98] {
  opacity: 0.6;
}
.item-img[data-v-2a014d98] {
  flex: 0 0 116px;
  aspect-ratio: 4 / 3; /* B-80：固定 4:3 容器 + cover 铺满居中——统一显示规则，无内边距留白 */
  border-radius: 3px;
  background: linear-gradient(160deg, #e9dcc8, #dcc9ae);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--shop-muted);
  font-size: 0.56rem;
  letter-spacing: 0.14em;
  text-align: center;
  overflow: hidden;
}
.item-img img[data-v-2a014d98] {
  width: 100%;
  height: 100%;
  object-fit: cover; /* B-80：铺满容器、主体居中（4:3 横图零裁切；竖图居中裁切视觉统一） */
  object-position: center;
  display: block;
}
.item-body[data-v-2a014d98] {
  flex: 1;
  padding-top: 2px;
}
.item-title[data-v-2a014d98] {
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  display: flex;
  align-items: baseline;
  gap: 10px;
  color: var(--shop-ink);
}
@supports not (gap: 1px) {
.item-title[data-v-2a014d98] > * + * {
    margin-left: 10px;
}
}
.item-count[data-v-2a014d98] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.1em;
}
.item-sum[data-v-2a014d98] {
  font-size: 0.72rem;
  color: var(--shop-brown);
  line-height: 1.9;
  margin-top: 7px;
  letter-spacing: 0.04em;
}
.item-arrow[data-v-2a014d98] {
  font-size: 0.7rem;
  color: var(--shop-clay);
  margin-top: 9px;
  letter-spacing: 0.12em;
}
.empty[data-v-2a014d98] {
  padding: 48px 28px;
  text-align: center;
  font-size: 0.78rem;
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：标题区限宽 1120 居中 → 分区卡横排改网格竖卡（auto-fill minmax 260px，
 *       参考 ShopProductsView 商品卡）→ hover 卡纸底/陶土色。 */
@media (min-width: 744px) {
.shop-spaces[data-v-2a014d98] {
    max-width: none;
}

  /* 返回栏 + 列表头：限宽 1120 居中，标题字号 clamp 流式 */
.bar[data-v-2a014d98] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-2a014d98] {
    font-size: 0.8rem;
}
.bar-back[data-v-2a014d98]:hover {
    color: var(--shop-clay);
}
.head[data-v-2a014d98] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.head-zh[data-v-2a014d98] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.head-en[data-v-2a014d98] {
    font-size: 0.68rem;
}
.head-line[data-v-2a014d98] {
    margin: 18px auto 0;
    width: 40px;
}
.intro[data-v-2a014d98] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 22px 48px 6px;
    font-size: 0.82rem;
}

  /* 分区卡网格：auto-fill minmax(260px,1fr)（744→2 列，1120→3-4 列） */
.list[data-v-2a014d98] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 14px 48px 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 28px;
}
  /* 卡：横排（图左文右）→ 竖卡（图上方 + 信息下方），hover 卡纸底 + 细线 */
.item[data-v-2a014d98] {
    flex-direction: column;
    gap: 0;
    padding: 18px;
    border: 1px solid transparent;
    border-radius: 6px;
    transition: background var(--shop-dur) var(--shop-ease),
      border-color var(--shop-dur) var(--shop-ease);
}
.item[data-v-2a014d98]:hover {
    background: var(--shop-card);
    border-color: var(--shop-border);
}
.item:hover .item-title[data-v-2a014d98] {
    color: var(--shop-clay);
}
.item-img[data-v-2a014d98] {
    flex: none;
    width: 100%;
    aspect-ratio: 4 / 3;
}
.item-body[data-v-2a014d98] {
    padding-top: 14px;
}
.item-title[data-v-2a014d98] {
    font-size: clamp(0.98rem, 1.1vw, 1.14rem);
    transition: color var(--shop-dur) var(--shop-ease);
}
.item-sum[data-v-2a014d98] {
    font-size: 0.76rem;
    margin-top: 8px;
}
.item-arrow[data-v-2a014d98] {
    font-size: 0.74rem;
    margin-top: 10px;
}
.empty[data-v-2a014d98] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 60px 48px;
}
}

/* 视觉基准：docs/design/shop-space-detail-v1.html */
.shop-space-detail[data-v-b6a9e10a] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-b6a9e10a] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-b6a9e10a] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-b6a9e10a]:active {
  opacity: 0.6;
}
.bar-mark[data-v-b6a9e10a] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.cover[data-v-b6a9e10a] {
  position: relative;
  margin: 18px 16px 0;
  border-radius: var(--shop-radius-lg);
  overflow: hidden;
}
.cover .ph[data-v-b6a9e10a] {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(160deg, #e9dcc8, #dcc9ae);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--shop-muted);
  font-size: 0.56rem;
  letter-spacing: 0.16em;
}
.cover img[data-v-b6a9e10a] {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.cover-badge[data-v-b6a9e10a] {
  position: absolute;
  left: 14px;
  bottom: 12px;
  color: var(--shop-card);
  background: rgba(56, 42, 31, 0.72);
  border-radius: var(--shop-radius);
  padding: 5px 12px;
  font-size: 0.66rem;
  letter-spacing: 0.16em;
}
.head[data-v-b6a9e10a] {
  padding: 26px 30px 0;
}
.head-title[data-v-b6a9e10a] {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  color: var(--shop-ink);
}
.head-meta[data-v-b6a9e10a] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 12px;
  font-size: 0.66rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
}
@supports not (gap: 1px) {
.head-meta[data-v-b6a9e10a] > * + * {
    margin-left: 12px;
}
}
.head-meta b[data-v-b6a9e10a] {
  font-weight: 500;
  color: var(--shop-brown);
}
.head-meta .dot[data-v-b6a9e10a] {
  color: var(--shop-border);
}
.head-line[data-v-b6a9e10a] {
  width: 28px;
  height: 1px;
  background: var(--shop-clay);
  margin-top: 18px;
}
.desc[data-v-b6a9e10a] {
  padding: 26px 30px 0;
}
.desc p[data-v-b6a9e10a] {
  font-size: 0.86rem;
  line-height: 2.15;
  color: var(--shop-brown);
  letter-spacing: 0.05em;
  margin-bottom: 14px;
}
.desc p[data-v-b6a9e10a]:last-child {
  margin-bottom: 0;
}
.desc .lead[data-v-b6a9e10a] {
  font-size: 0.92rem;
  color: var(--shop-ink);
  margin-bottom: 14px;
}
.tables[data-v-b6a9e10a] {
  padding: 28px 30px 0;
}
.t-head[data-v-b6a9e10a] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 16px;
}
@supports not (gap: 1px) {
.t-head[data-v-b6a9e10a] > * + * {
    margin-left: 12px;
}
}
.t-title[data-v-b6a9e10a] {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-indent: 0.26em;
  color: var(--shop-ink);
}
.t-en[data-v-b6a9e10a] {
  font-size: 0.58rem;
  color: var(--shop-muted);
  letter-spacing: 0.24em;
  font-family: var(--font-sans);
}
.t-grid[data-v-b6a9e10a] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.t-cell[data-v-b6a9e10a] {
  border: 1px solid var(--shop-border);
  border-radius: 3px;
  padding: 14px 0;
  text-align: center;
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  color: var(--shop-brown);
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  transition: opacity 0.15s;
}
.t-cell[data-v-b6a9e10a]:active {
  opacity: 0.55;
}
.t-cell.on[data-v-b6a9e10a] {
  border-color: var(--shop-clay);
  color: var(--shop-clay);
  background: var(--shop-paper);
}

/* 选中桌位照片区（2026-08-04：点击桌位后在桌位网格下方展开） */
.seat-photo[data-v-b6a9e10a] {
  position: relative;
  margin-top: 14px;
  border-radius: 6px;
  overflow: hidden;
}
.seat-photo img[data-v-b6a9e10a] {
  display: block;
  width: 100%;
  height: auto;
}
.seat-photo-tag[data-v-b6a9e10a] {
  position: absolute;
  left: 10px;
  bottom: 10px;
  color: var(--shop-card);
  background: rgba(56, 42, 31, 0.72);
  border-radius: 2px;
  padding: 4px 10px;
  font-size: 0.64rem;
  letter-spacing: 0.16em;
}
.cta-wrap[data-v-b6a9e10a] {
  padding: 34px 30px 0;
}
.cta[data-v-b6a9e10a] {
  display: block;
  width: 100%;
  padding: 16px 0;
  background: var(--shop-ink);
  color: var(--shop-card);
  border: 1px solid var(--shop-ink-deep);
  box-shadow: inset 0 0 0 1px rgba(251, 245, 234, 0.16);
  border-radius: 3px;
  font-size: 0.9rem;
  letter-spacing: 0.32em;
  text-indent: 0.32em;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  font-family: var(--font-sans);
}
.cta[data-v-b6a9e10a]:active {
  opacity: 0.85;
}
.cta-hint[data-v-b6a9e10a] {
  text-align: center;
  font-size: 0.62rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
  margin-top: 12px;
}
.back-list[data-v-b6a9e10a] {
  padding: 26px 30px 0;
  text-align: center;
}
.back-list a[data-v-b6a9e10a] {
  font-size: 0.7rem;
  color: var(--shop-clay);
  letter-spacing: 0.18em;
  text-decoration: none;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：封面 16:9 限宽 1120 居中（参考茶事详情）→ 标题/导语/桌位区限宽 1120 →
 *       桌位网格 4 列放宽为 6 列横排（桌位选择区桌面化）→ hover 陶土色。 */
@media (min-width: 744px) {
.shop-space-detail[data-v-b6a9e10a] {
    max-width: none;
}

  /* 返回栏：限宽 1120 居中 */
.bar[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-b6a9e10a] {
    font-size: 0.8rem;
}
.bar-back[data-v-b6a9e10a]:hover {
    color: var(--shop-clay);
}

  /* 封面 16:9：限宽 1120 居中（高度按宽比自适应，不再贴边圆角） */
.cover[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 30px auto 0;
    border-radius: 8px;
}
.cover-badge[data-v-b6a9e10a] {
    left: 18px;
    bottom: 16px;
    font-size: 0.72rem;
    padding: 6px 14px;
}

  /* 标题 + 导语：限宽 1120 居中，留白加大 */
.head[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.head-title[data-v-b6a9e10a] {
    font-size: clamp(1.7rem, 2.6vw, 2.3rem);
}
.head-meta[data-v-b6a9e10a] {
    font-size: 0.72rem;
    margin-top: 16px;
}
.head-line[data-v-b6a9e10a] {
    margin-top: 22px;
    width: 40px;
}
.desc[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 48px 0;
}
.desc p[data-v-b6a9e10a] {
    font-size: 0.92rem;
}
.desc .lead[data-v-b6a9e10a] {
    font-size: clamp(1rem, 1.3vw, 1.14rem);
}

  /* 桌位选择区：限宽 1120，网格 4 列 → 6 列横排（桌面更舒展），hover 陶土色 */
.tables[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 40px 48px 0;
}
.t-head[data-v-b6a9e10a] {
    margin-bottom: 20px;
}
.t-title[data-v-b6a9e10a] {
    font-size: clamp(1rem, 1.2vw, 1.1rem);
}
.t-grid[data-v-b6a9e10a] {
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}
.t-cell[data-v-b6a9e10a] {
    padding: 16px 0;
    font-size: 0.86rem;
    transition: border-color var(--shop-dur) var(--shop-ease),
      color var(--shop-dur) var(--shop-ease),
      background var(--shop-dur) var(--shop-ease);
}
.t-cell[data-v-b6a9e10a]:hover {
    border-color: var(--shop-clay);
    color: var(--shop-clay);
}
.seat-photo[data-v-b6a9e10a] {
    margin-top: 18px;
    border-radius: 8px;
}

  /* CTA + 返回：限宽 1120 居中 */
.cta-wrap[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.cta[data-v-b6a9e10a] {
    max-width: 420px;
    margin: 0 auto;
    font-size: 0.96rem;
}
.back-list[data-v-b6a9e10a] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 48px 0;
}
.back-list a[data-v-b6a9e10a]:hover {
    color: var(--shop-ink);
}
}

/* 触发区：视觉沿用全局 date input 基线（B-68 基准 9px 10px / 8px / 15px），
 * 密度可由父组件以 --dps-* 变量覆盖（MobileTasksView 38px 工具条、
 * ProcurementList 紧凑筛选栏）。外观令牌一律引用 var(--color-*)。 */
.dps-trigger[data-v-c1d14814] {
  width: var(--dps-width, 100%);
  min-height: var(--dps-min-height, auto);
  padding: var(--dps-padding, 9px 10px);
  font-size: var(--dps-font-size, 15px);
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  box-sizing: border-box;
  outline: none;
  cursor: pointer;
}
.dps-trigger[data-v-c1d14814]:focus-visible {
  outline: 2px solid var(--color-cinnabar);
  outline-offset: 2px;
}
.dps-trigger[data-v-c1d14814]::placeholder {
  color: var(--color-text-muted);
}

/* 遮罩：半透明深叶墨，点击关闭（click.self）。 */
.dps-overlay[data-v-c1d14814] {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
@supports not (inset: 0) {
.dps-overlay[data-v-c1d14814] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

/* 居中卡片：白底 / 16px 圆角 / 轻阴影 / 深色文字（B-71 验收点）。 */
.dps-card[data-v-c1d14814] {
  width: min(90vw, 340px);
  max-height: 85vh;
  max-height: calc(100dvh - 12px); /* B-186：键盘弹出时 dvh 收缩，弹窗可滚动 */
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: 16px;
  box-shadow: 0 10px 32px rgba(36, 56, 50, 0.16);
  padding: 16px;
  font-family: var(--font-sans);
}
.dps-head[data-v-c1d14814] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.dps-title[data-v-c1d14814] {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-ink);
}
.dps-nav[data-v-c1d14814] {
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  color: var(--color-green);
  cursor: pointer;
  border-radius: 8px;
}
.dps-nav[data-v-c1d14814]:active {
  background: var(--color-surface-soft);
}
.dps-week[data-v-c1d14814] {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 2px;
}
.dps-week-cell[data-v-c1d14814] {
  text-align: center;
  font-size: 12px;
  color: var(--color-text-muted);
  padding: 4px 0;
}
.dps-grid[data-v-c1d14814] {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  row-gap: 2px;
}
.dps-cell[data-v-c1d14814] {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  color: var(--color-ink);
  border-radius: 999px; /* 圆角胶囊 */
  cursor: pointer;
}
.dps-cell[data-v-c1d14814]:active:not(:disabled) {
  background: var(--color-surface-soft);
}
/* 今天：描边（选中态下描边让位于实底高亮） */
.dps-cell--today[data-v-c1d14814]:not(.dps-cell--selected) {
  box-shadow: inset 0 0 0 1.5px var(--color-green);
}
/* 选中：庭院绿底白字 */
.dps-cell--selected[data-v-c1d14814] {
  background: var(--color-green);
  color: var(--color-paper);
}
.dps-cell[data-v-c1d14814]:disabled {
  color: var(--color-text-muted);
  cursor: not-allowed;
}
.dps-cell--blank[data-v-c1d14814] {
  aspect-ratio: 1;
}
.dps-time[data-v-c1d14814] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
}
@supports not (gap: 1px) {
.dps-time[data-v-c1d14814] > * + * {
    margin-left: 8px;
}
}
.dps-time-select[data-v-c1d14814] {
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: inherit;
  font-size: 15px;
}
.dps-time-colon[data-v-c1d14814] {
  color: var(--color-ink);
  font-weight: 600;
}

/* 操作按钮三布局：清除 / 取消 / 确认（iOS 参考图，项目绿替换蓝） */
.dps-actions[data-v-c1d14814] {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
@supports not (gap: 1px) {
.dps-actions[data-v-c1d14814] > * + * {
    margin-left: 8px;
}
}
.dps-btn[data-v-c1d14814] {
  flex: 1;
  min-height: 40px;
  border-radius: 10px;
  font-family: inherit;
  font-size: 14px;
  cursor: pointer;
}
.dps-btn--primary[data-v-c1d14814] {
  border: none;
  background: var(--color-green);
  color: var(--color-paper);
  font-weight: 600;
}
.dps-btn--primary[data-v-c1d14814]:active {
  opacity: 0.85;
}
.dps-btn--ghost[data-v-c1d14814] {
  border: 1px solid var(--color-border);
  background: var(--color-paper);
  color: var(--color-wood-gray);
}
.dps-btn--clear[data-v-c1d14814] {
  border: 1px solid var(--color-border);
  background: var(--color-paper);
  color: var(--color-cinnabar);
}

.stp-trigger[data-v-7cf3c55a] {
  width: 100%;
  border: none;
  background: transparent;
  border-bottom: 1px solid var(--shop-border);
  border-radius: 0;
  padding: 8px 2px;
  font-size: 0.88rem;
  font-family: inherit;
  color: var(--shop-ink);
  letter-spacing: 0.06em;
  outline: none;
  color-scheme: light;
  cursor: pointer;
}
.stp-trigger[data-v-7cf3c55a]::placeholder {
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}
.stp-trigger[data-v-7cf3c55a]:focus {
  border-bottom-color: var(--shop-clay);
}

/* 弹层（对齐 DatePickerSheet 设计语言） */
.stp-overlay[data-v-7cf3c55a] {
  position: fixed;
  inset: 0;
  background: rgba(42, 31, 21, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 90;
  padding: 0 28px;
}
@supports not (inset: 0) {
.stp-overlay[data-v-7cf3c55a] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.stp-card[data-v-7cf3c55a] {
  width: 100%;
  max-width: 340px;
  background: var(--shop-card);
  border-radius: 12px;
  padding: 20px 18px 22px;
  box-shadow: 0 8px 40px rgba(42, 31, 21, 0.25);
}
.stp-head[data-v-7cf3c55a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.stp-title[data-v-7cf3c55a] {
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: var(--shop-ink);
}
.stp-close[data-v-7cf3c55a] {
  border: none;
  background: transparent;
  font-size: 0.8rem;
  color: var(--shop-muted);
  cursor: pointer;
  padding: 4px;
}
.stp-grid[data-v-7cf3c55a] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.stp-cell[data-v-7cf3c55a] {
  border: 1px solid var(--shop-border);
  background: var(--shop-paper);
  color: var(--shop-ink);
  border-radius: 8px;
  padding: 10px 0;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  font-family: var(--font-sans);
  cursor: pointer;
  transition: opacity 0.15s;
}
.stp-cell[data-v-7cf3c55a]:active {
  opacity: 0.6;
}
.stp-cell.on[data-v-7cf3c55a] {
  background: var(--shop-clay);
  border-color: var(--shop-clay);
  color: var(--shop-card);
}

/* 视觉基准：docs/design/shop-reserve-v2.html */
.shop-reserve[data-v-dc1d1097] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
  position: relative;
}
.bar[data-v-dc1d1097] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-dc1d1097] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-dc1d1097]:active {
  opacity: 0.6;
}
.bar-mark[data-v-dc1d1097] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.head[data-v-dc1d1097] {
  padding: 30px 28px 4px;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
@supports not (gap: 1px) {
.head[data-v-dc1d1097] > * + * {
    margin-left: 14px;
}
}
.head-zh[data-v-dc1d1097] {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-dc1d1097] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}
.form[data-v-dc1d1097] {
  padding: 22px 28px 0;
}
.f-group[data-v-dc1d1097] {
  margin-bottom: 20px;
}
.f-label[data-v-dc1d1097] {
  font-size: 0.7rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  margin-bottom: 10px;
}
.f-label em[data-v-dc1d1097] {
  font-style: normal;
  font-size: 0.56rem;
  color: var(--shop-clay);
  letter-spacing: 0.1em;
  border: 0.5px solid var(--shop-clay);
  border-radius: 2px;
  padding: 1px 5px;
  margin-left: 6px;
  vertical-align: 1px;
}
.f-label-row[data-v-dc1d1097] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.f-link[data-v-dc1d1097] {
  font-size: 0.64rem;
  color: var(--shop-clay);
  letter-spacing: 0.14em;
  text-decoration: none;
}
.f-input[data-v-dc1d1097] {
  border: none;
  background: transparent;
  border-bottom: 1px solid var(--shop-border);
  width: 100%;
  padding: 8px 2px;
  font-size: 0.88rem;
  font-family: inherit;
  color: var(--shop-ink);
  letter-spacing: 0.06em;
  outline: none;
  border-radius: 0;
  color-scheme: light;
}
.f-input[data-v-dc1d1097]::placeholder {
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}
.f-input[data-v-dc1d1097]:focus {
  border-bottom-color: var(--shop-clay);
}

/* 日期 + 时间两列（设计稿 32-34 行）：左列右竖线 + 右侧留白 */
.f-row[data-v-dc1d1097] {
  display: flex;
  gap: 16px;
}
@supports not (gap: 1px) {
.f-row[data-v-dc1d1097] > * + * {
    margin-left: 16px;
}
}
.f-row .f-col[data-v-dc1d1097] {
  flex: 1;
  min-width: 0;
}
.f-row .f-col[data-v-dc1d1097]:first-child {
  border-right: 1px solid var(--shop-border);
  padding-right: 16px;
}

/* 日期列：DatePickerSheet 触发区并入下划线字段（仿 MobileApprovalsView B-104 手法），
 * 密度经 --dps-* 覆盖；微信深色层把表单控件钉成卡纸底，这里压回透明保下划线观感。 */
.reserve-date[data-v-dc1d1097] {
  --dps-min-height: 0;
  --dps-padding: 8px 2px;
  --dps-font-size: 0.88rem;
}
.reserve-date[data-v-dc1d1097] .dps-trigger {
  border: none;
  background: transparent;
  border-bottom: 1px solid var(--shop-border);
  border-radius: 0;
  letter-spacing: 0.06em;
  color: var(--shop-ink);
  font-family: inherit;
  padding: 8px 2px;
}
.reserve-date[data-v-dc1d1097] .dps-trigger::placeholder {
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}
.reserve-date[data-v-dc1d1097] .dps-trigger:focus {
  border-bottom-color: var(--shop-clay);
}
html.wx .reserve-date[data-v-dc1d1097] .dps-trigger {
  background-color: transparent !important;
}

/* 时间列：时段下拉，视觉对齐下划线输入框（保留原生下拉箭头做可点提示） */
.reserve-time[data-v-dc1d1097] {
  width: 100%;
  min-height: 0; /* 压过 style.css 全局 --touch-min:44px，对齐日期列下划线（评审 I-2） */
  border: none;
  background: transparent;
  border-bottom: 1px solid var(--shop-border);
  border-radius: 0;
  padding: 8px 2px;
  font-size: 0.88rem;
  font-family: inherit;
  color: var(--shop-ink);
  letter-spacing: 0.06em;
  outline: none;
  color-scheme: light;
  cursor: pointer;
}
.reserve-time[data-v-dc1d1097]:focus {
  border-bottom-color: var(--shop-clay);
}
html.wx .reserve-time[data-v-dc1d1097] {
  background-color: transparent !important;
}
.regions[data-v-dc1d1097] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@supports not (gap: 1px) {
.regions[data-v-dc1d1097] > * + * {
    margin-left: 8px;
}
}
.region[data-v-dc1d1097] {
  padding: 9px 16px;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  background: transparent;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  color: var(--shop-brown);
  cursor: pointer;
  transition: all var(--shop-dur) var(--shop-ease);
}
.region.on[data-v-dc1d1097] {
  border-color: var(--shop-clay);
  color: var(--shop-clay);
  background: rgba(181, 113, 74, 0.06);
}
.region-more[data-v-dc1d1097] {
  font-size: 0.66rem;
  color: var(--shop-muted);
  letter-spacing: 0.1em;
  padding: 9px 8px;
  border: none;
  background: transparent;
  cursor: pointer;
}
.region-more[data-v-dc1d1097]:active {
  opacity: 0.6;
}
.tables[data-v-dc1d1097] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
@supports not (gap: 1px) {
.tables[data-v-dc1d1097] > * + * {
    margin-left: 8px;
}
}
.table[data-v-dc1d1097] {
  padding: 8px 0;
  width: calc(25% - 6px);
  text-align: center;
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  background: transparent;
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  color: var(--shop-brown);
  cursor: pointer;
  transition: all var(--shop-dur) var(--shop-ease);
}
.table.on[data-v-dc1d1097] {
  border-color: var(--shop-ink);
  background: var(--shop-ink);
  color: var(--shop-card);
}
.table-more[data-v-dc1d1097] {
  padding: 8px 0;
  width: calc(25% - 6px);
  text-align: center;
  border: 1px dashed var(--shop-border);
  border-radius: var(--shop-radius);
  background: transparent;
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  color: var(--shop-muted);
  cursor: pointer;
}
.table-more[data-v-dc1d1097]:active {
  opacity: 0.6;
}
.f-area[data-v-dc1d1097] {
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  width: 100%;
  padding: 10px 12px;
  font-size: 0.84rem;
  font-family: inherit;
  color: var(--shop-ink);
  background: var(--shop-card);
  outline: none;
  resize: none;
  letter-spacing: 0.04em;
  line-height: 1.7;
  box-sizing: border-box;
}
.f-area[data-v-dc1d1097]::placeholder {
  color: var(--shop-muted);
  letter-spacing: 0.1em;
}
.f-area[data-v-dc1d1097]:focus {
  border-color: var(--shop-clay);
}
.submit-wrap[data-v-dc1d1097] {
  padding: 4px 28px 0;
}
.submit[data-v-dc1d1097] {
  width: 100%;
  padding: 16px 0;
  background: var(--shop-ink);
  color: var(--shop-card);
  border: 1px solid var(--shop-ink-deep);
  box-shadow: inset 0 0 0 1px rgba(251, 245, 234, 0.16);
  border-radius: 3px;
  font-size: 0.88rem;
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  font-weight: 500;
  font-family: var(--font-sans);
  cursor: pointer;
}
.submit[data-v-dc1d1097]:disabled {
  opacity: 0.6;
  cursor: default;
}
.submit-hint[data-v-dc1d1097] {
  text-align: center;
  font-size: 0.62rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
  margin-top: 12px;
}
.form-error[data-v-dc1d1097] {
  text-align: center;
  font-size: 0.72rem;
  color: var(--shop-cinnabar);
  letter-spacing: 0.08em;
  margin-top: 10px;
}
.tip[data-v-dc1d1097] {
  border-top: 1px solid var(--shop-border);
  margin-top: 34px;
  padding: 22px 28px;
  display: flex;
  gap: 14px;
  align-items: center;
}
@supports not (gap: 1px) {
.tip[data-v-dc1d1097] > * + * {
    margin-left: 14px;
}
}
.tip-seal[data-v-dc1d1097] {
  flex: 0 0 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--shop-clay);
  color: var(--shop-card);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}
.tip-text[data-v-dc1d1097] {
  font-size: 0.7rem;
  color: var(--shop-brown);
  line-height: 1.9;
}
.tip-text b[data-v-dc1d1097] {
  font-weight: 500;
  color: var(--shop-ink);
}
.toast[data-v-dc1d1097] {
  position: fixed;
  left: 50%;
  bottom: 48px;
  transform: translateX(-50%);
  max-width: 84%;
  padding: 12px 18px;
  background: rgba(56, 42, 31, 0.92);
  color: var(--shop-card);
  font-size: 0.76rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  border-radius: 4px;
  text-align: center;
  z-index: 30;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：表单限阅读宽度 760px 居中（过宽难读）→ 头/表单/提交/底部提示同宽对齐 →
 *       桌位 chip 4 列放宽为 6 列横排（分区/提交行桌面化）→ 输入字号小幅提升。 */
@media (min-width: 744px) {
.shop-reserve[data-v-dc1d1097] {
    max-width: none;
}
.bar[data-v-dc1d1097] {
    max-width: 760px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-dc1d1097] {
    font-size: 0.8rem;
}
.bar-back[data-v-dc1d1097]:hover {
    color: var(--shop-clay);
}
.head[data-v-dc1d1097] {
    max-width: 760px;
    margin: 0 auto;
    padding: 44px 48px 4px;
}
.head-zh[data-v-dc1d1097] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.head-en[data-v-dc1d1097] {
    font-size: 0.68rem;
}

  /* 表单主体：限宽 760 居中 */
.form[data-v-dc1d1097] {
    max-width: 760px;
    margin: 0 auto;
    padding: 36px 48px 0;
}
.f-group[data-v-dc1d1097] {
    margin-bottom: 30px;
}
.f-label[data-v-dc1d1097] {
    font-size: 0.76rem;
    margin-bottom: 12px;
}
.f-input[data-v-dc1d1097] {
    font-size: 0.96rem;
    padding: 10px 2px;
}
.reserve-date[data-v-dc1d1097] {
    --dps-font-size: 0.96rem;
}
.reserve-date[data-v-dc1d1097] .dps-trigger {
    padding: 10px 2px;
}
.reserve-time[data-v-dc1d1097] {
    font-size: 0.96rem;
    padding: 10px 2px;
}
.f-area[data-v-dc1d1097] {
    font-size: 0.9rem;
    padding: 12px 14px;
}

  /* 分区 chip：字号加大，间距舒展 */
.regions[data-v-dc1d1097] {
    gap: 12px;
}
.region[data-v-dc1d1097] {
    padding: 11px 22px;
    font-size: 0.84rem;
}
.region-more[data-v-dc1d1097] {
    font-size: 0.72rem;
    padding: 11px 10px;
}

  /* 桌位 chip：4 列 → 6 列横排（桌面更舒展） */
.tables[data-v-dc1d1097] {
    gap: 12px;
    margin-top: 16px;
}
.table[data-v-dc1d1097] {
    width: calc(16.66% - 10px);
    padding: 12px 0;
    font-size: 0.8rem;
}
.table-more[data-v-dc1d1097] {
    width: calc(16.66% - 10px);
    padding: 12px 0;
    font-size: 0.8rem;
}

  /* 提交行：限宽 760 居中，按钮限宽 420 */
.submit-wrap[data-v-dc1d1097] {
    max-width: 760px;
    margin: 0 auto;
    padding: 10px 48px 0;
}
.submit[data-v-dc1d1097] {
    max-width: 420px;
    margin: 0 auto;
    display: block;
    font-size: 0.94rem;
}
.tip[data-v-dc1d1097] {
    max-width: 760px;
    margin: 44px auto 0;
    padding: 24px 48px;
}
}

/* B-71 DatePickerSheet 复用令牌兜底（2026-08-04，商城暖色版）：
 * 商城域按 main.ts 域互斥只加载 --shop-* 令牌，DatePickerSheet 内部引用 --color-*
 * （OA 庭院绿令牌）。此处把该弹窗用到的别名按商城定稿暖色系挂到 body ——
 * 不动 :root（避免激活 style.css 的 html 层 --color-lime 背景），弹层经 Teleport
 * 到 body 也能继承。
 * 2026-08-04 修复：原兜底沿用 OA 庭院绿（#243832/#4f7768），微信端渲染近黑、
 * 与设计稿暖米深棕不符（老爷实测：日期黑色）；现对齐定稿 token —— 卡纸底/深棕字/陶土强调。
 * 仅含 DatePickerSheet 实际引用项。 */
body {
  --color-ink: #382a1f;          /* 深棕 espresso：主文字 */
  --color-green: #b5714a;        /* 陶土 clay：选中/强调（替换庭院绿） */
  --color-paper: #fbf5ea;        /* 卡纸 card：弹窗表面 */
  --color-border: #e0d3c0;       /* 细线 line */
  --color-surface-soft: #f6efe3; /* 暖米 paper：胶囊/浅底 */
  --color-text-muted: #8a7a68;   /* 弱字 muted */
  --color-wood-gray: #6e5340;    /* 茶褐 brown：辅助文字 */
  --color-cinnabar: #a64f38;     /* 深朱红（定稿同值） */
}

/* 视觉基准：docs/design/shop-reserve-confirm-v2.html */
.shop-confirm[data-v-7dc74b5a] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
  position: relative;
}

/* hero：茶席实拍图压暗（照定稿：opacity .58 + 深棕渐变） */
.hero[data-v-7dc74b5a] {
  position: relative;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.hero-img[data-v-7dc74b5a] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.58;
}
@supports not (inset: 0) {
.hero-img[data-v-7dc74b5a] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.hero-mask[data-v-7dc74b5a] {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(56, 42, 31, 0.5) 0%,
    rgba(56, 42, 31, 0.62) 100%
  );
}
@supports not (inset: 0) {
.hero-mask[data-v-7dc74b5a] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.hero-inner[data-v-7dc74b5a] {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 56px 40px;
}
@supports not (gap: 1px) {
.hero-inner[data-v-7dc74b5a] > * + * {
    margin-left: 18px;
}
}
.vertical[data-v-7dc74b5a] {
  writing-mode: vertical-rl;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  color: var(--shop-card);
  line-height: 1.3;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.3);
}
.hero-side[data-v-7dc74b5a] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
@supports not (gap: 1px) {
.hero-side[data-v-7dc74b5a] > * + * {
    margin-top: 14px;
}
}
.hero-en[data-v-7dc74b5a] {
  font-size: 0.58rem;
  letter-spacing: 0.34em;
  color: rgba(251, 245, 234, 0.6);
  font-family: var(--font-sans);
}
.hero-sub[data-v-7dc74b5a] {
  font-size: 0.72rem;
  letter-spacing: 0.26em;
  color: rgba(251, 245, 234, 0.8);
}
.greet[data-v-7dc74b5a] {
  padding: 26px 32px 0;
}
.greet p[data-v-7dc74b5a] {
  font-size: 0.86rem;
  line-height: 2.1;
  color: var(--shop-brown);
  letter-spacing: 0.04em;
}
.greet b[data-v-7dc74b5a] {
  font-weight: 500;
  color: var(--shop-ink);
}

/* 回执卡 */
.ticket[data-v-7dc74b5a] {
  margin: 20px 28px 0;
  background: var(--shop-card);
  border: 1px solid var(--shop-border);
  border-radius: 6px;
  overflow: hidden;
}
.tk-head[data-v-7dc74b5a] {
  background: var(--shop-bg);
  padding: 12px 20px;
  font-size: 0.7rem;
  color: var(--shop-muted);
  letter-spacing: 0.2em;
  border-bottom: 1px solid var(--shop-border);
}
.tk-row[data-v-7dc74b5a] {
  display: flex;
  padding: 13px 20px;
  border-bottom: 1px solid rgba(224, 211, 192, 0.55);
}
.tk-row[data-v-7dc74b5a]:last-child {
  border-bottom: none;
}
.tk-label[data-v-7dc74b5a] {
  flex: 0 0 76px;
  font-size: 0.7rem;
  color: var(--shop-muted);
  letter-spacing: 0.16em;
  padding-top: 2px;
}
.tk-value[data-v-7dc74b5a] {
  flex: 1;
  font-size: 0.85rem;
  color: var(--shop-ink);
  letter-spacing: 0.06em;
  line-height: 1.7;
}

/* 复制链接区 */
.share-zone[data-v-7dc74b5a] {
  padding: 22px 32px 0;
  text-align: center;
}
.share-btn[data-v-7dc74b5a] {
  padding: 13px 40px;
  background: var(--shop-ink);
  color: var(--shop-card);
  border: 1px solid var(--shop-ink-deep);
  box-shadow: inset 0 0 0 1px rgba(251, 245, 234, 0.16);
  border-radius: 3px;
  font-size: 0.82rem;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  font-weight: 500;
  cursor: pointer;
  font-family: var(--font-sans);
}
.share-note[data-v-7dc74b5a] {
  margin-top: 10px;
  font-size: 0.62rem;
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}

/* 工作微信码（V2R-01） */
.wx-box[data-v-7dc74b5a] {
  padding: 24px 32px 0;
  text-align: center;
}
.wx-qr[data-v-7dc74b5a] {
  width: 128px;
  height: 128px;
  margin: 0 auto;
  border: 1px solid var(--shop-border);
  border-radius: 4px;
  overflow: hidden;
  background: var(--shop-card);
}
.wx-qr img[data-v-7dc74b5a] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.wx-note[data-v-7dc74b5a] {
  margin-top: 12px;
  font-size: 0.68rem;
  color: var(--shop-muted);
  letter-spacing: 0.1em;
}
.notice[data-v-7dc74b5a] {
  padding: 20px 32px 0;
}
.notice p[data-v-7dc74b5a] {
  font-size: 0.73rem;
  line-height: 2;
  color: var(--shop-brown);
  letter-spacing: 0.04em;
}
.notice b[data-v-7dc74b5a] {
  font-weight: 500;
  color: var(--shop-ink);
}

/* 顾城《门前》 */
.about[data-v-7dc74b5a] {
  padding: 32px 32px 0;
}
.about-line[data-v-7dc74b5a] {
  width: 26px;
  height: 1px;
  background: var(--shop-clay);
  margin-bottom: 18px;
}
.poem[data-v-7dc74b5a] {
  font-size: 0.7rem;
  line-height: 2.3;
  color: var(--shop-brown);
  text-align: center;
  padding: 0 8px;
}
.poem .st[data-v-7dc74b5a] {
  margin-bottom: 14px;
}
.poem .st[data-v-7dc74b5a]:last-child {
  margin-bottom: 0;
}
.poem .l1[data-v-7dc74b5a] {
  letter-spacing: 0.12em;
}
.poem .l2[data-v-7dc74b5a] {
  letter-spacing: 0.18em;
}
.poem .l3[data-v-7dc74b5a] {
  letter-spacing: 0.24em;
}
.poem .l4[data-v-7dc74b5a] {
  letter-spacing: 0.24em;
}
.poem-author[data-v-7dc74b5a] {
  text-align: center;
  font-size: 0.56rem;
  color: var(--shop-muted);
  letter-spacing: 0.22em;
  margin-top: 12px;
}
.about-enter[data-v-7dc74b5a] {
  display: block;
  text-align: center;
  font-size: 0.64rem;
  color: var(--shop-clay);
  letter-spacing: 0.2em;
  text-decoration: none;
  margin-top: 18px;
}

/* 导航 */
.nav-box[data-v-7dc74b5a] {
  margin: 26px 28px 0;
  background: var(--shop-card);
  border: 1px solid var(--shop-border);
  border-radius: 6px;
  padding: 18px 20px;
}
.nav-addr[data-v-7dc74b5a] {
  font-size: 0.78rem;
  color: var(--shop-ink);
  letter-spacing: 0.08em;
  line-height: 1.8;
}
.nav-addr small[data-v-7dc74b5a] {
  display: block;
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.1em;
  margin-top: 4px;
}
.nav-btns[data-v-7dc74b5a] {
  display: flex;
  gap: 10px;
  margin-top: 14px;
}
@supports not (gap: 1px) {
.nav-btns[data-v-7dc74b5a] > * + * {
    margin-left: 10px;
}
}
.nav-btn[data-v-7dc74b5a] {
  flex: 1;
  text-align: center;
  padding: 11px 0;
  border: 1px solid var(--shop-clay);
  color: var(--shop-clay);
  border-radius: 3px;
  background: transparent;
  font-size: 0.76rem;
  letter-spacing: 0.16em;
  cursor: pointer;
  font-family: var(--font-sans);
}
.nav-btn.solid[data-v-7dc74b5a] {
  background: var(--shop-clay);
  color: var(--shop-card);
  border-color: var(--shop-clay);
}

/* 茶事/产品入口 */
.promo[data-v-7dc74b5a] {
  padding: 34px 44px 0;
}
.promo-link[data-v-7dc74b5a] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 15px 0;
  border-bottom: 1px solid var(--shop-border);
  text-decoration: none;
  color: var(--shop-ink);
}
.promo-link[data-v-7dc74b5a]:last-child {
  border-bottom: none;
}
.promo-zh[data-v-7dc74b5a] {
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0.18em;
}
.promo-desc[data-v-7dc74b5a] {
  font-size: 0.66rem;
  color: var(--shop-muted);
  letter-spacing: 0.1em;
  margin-top: 6px;
}
.promo-arrow[data-v-7dc74b5a] {
  font-size: 0.7rem;
  color: var(--shop-clay);
  letter-spacing: 0.1em;
}
.closing[data-v-7dc74b5a] {
  padding: 30px 34px 0;
  text-align: center;
}
.closing p[data-v-7dc74b5a] {
  font-size: 0.76rem;
  line-height: 2.2;
  color: var(--shop-brown);
  letter-spacing: 0.08em;
}
.toast[data-v-7dc74b5a] {
  position: fixed;
  left: 50%;
  bottom: 48px;
  transform: translateX(-50%);
  max-width: 84%;
  padding: 12px 18px;
  background: rgba(56, 42, 31, 0.92);
  color: var(--shop-card);
  font-size: 0.76rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  border-radius: 4px;
  white-space: pre-line;
  text-align: center;
  z-index: 30;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：hero 保持全宽并加高（仪式感）→ 问候/回执卡/诗/导航/入口 全部限宽 720
 *       居中（印章与诗句页保持留白与庄重）→ 诗字号加大、茶事/产品入口两栏并排。 */
@media (min-width: 744px) {
.shop-confirm[data-v-7dc74b5a] {
    max-width: none;
}

  /* hero：全宽加高，竖排「预定成功」放大 */
.hero[data-v-7dc74b5a] {
    min-height: 400px;
}
.hero-inner[data-v-7dc74b5a] {
    gap: 24px;
    padding: 80px 48px;
}
.vertical[data-v-7dc74b5a] {
    font-size: clamp(1.9rem, 3vw, 2.4rem);
}
.hero-en[data-v-7dc74b5a] {
    font-size: 0.66rem;
}
.hero-sub[data-v-7dc74b5a] {
    font-size: 0.8rem;
}

  /* 内容区：限宽 720 居中 */
.greet[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.greet p[data-v-7dc74b5a] {
    font-size: 0.94rem;
}
.ticket[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 28px auto 0;
}
.tk-row[data-v-7dc74b5a] {
    padding: 16px 24px;
}
.tk-label[data-v-7dc74b5a] {
    flex-basis: 96px;
    font-size: 0.74rem;
}
.tk-value[data-v-7dc74b5a] {
    font-size: 0.92rem;
}
.share-zone[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 28px 48px 0;
}
.share-btn[data-v-7dc74b5a] {
    padding: 15px 52px;
    font-size: 0.88rem;
}
.wx-box[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 28px 48px 0;
}
.wx-qr[data-v-7dc74b5a] {
    width: 160px;
    height: 160px;
}
.notice[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 26px 48px 0;
}
.notice p[data-v-7dc74b5a] {
    font-size: 0.8rem;
    text-align: center;
}

  /* 顾城《门前》：限宽 720 居中，诗字号加大、留白更足（仪式感） */
.about[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 56px 48px 0;
    text-align: center;
}
.about-line[data-v-7dc74b5a] {
    margin: 0 auto 26px;
}
.poem[data-v-7dc74b5a] {
    font-size: 0.8rem;
    line-height: 2.6;
}
.poem .st[data-v-7dc74b5a] {
    margin-bottom: 20px;
}
.poem-author[data-v-7dc74b5a] {
    font-size: 0.62rem;
}
.about-enter[data-v-7dc74b5a] {
    font-size: 0.7rem;
    margin-top: 24px;
}
.about-enter[data-v-7dc74b5a]:hover {
    color: var(--shop-ink);
}

  /* 导航：限宽 720 居中，按钮限宽不拉满 */
.nav-box[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 34px auto 0;
    padding: 24px 28px;
    text-align: center;
}
.nav-addr[data-v-7dc74b5a] {
    font-size: 0.84rem;
}
.nav-btns[data-v-7dc74b5a] {
    max-width: 380px;
    margin: 16px auto 0;
}
.nav-btn[data-v-7dc74b5a] {
    padding: 13px 0;
    font-size: 0.82rem;
}

  /* 茶事/产品入口：竖排 → 两栏并排 */
.promo[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 44px 48px 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 48px;
}
.promo-link[data-v-7dc74b5a] {
    padding: 18px 0;
}
.promo-zh[data-v-7dc74b5a] {
    font-size: 0.94rem;
}
.promo-desc[data-v-7dc74b5a] {
    font-size: 0.7rem;
}
.closing[data-v-7dc74b5a] {
    max-width: 720px;
    margin: 0 auto;
    padding: 40px 48px 0;
}
.closing p[data-v-7dc74b5a] {
    font-size: 0.84rem;
}
}

/* 视觉基准：docs/design/shop-events-v1.2.html */
.shop-events[data-v-3797bb7e] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-3797bb7e] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-3797bb7e] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-3797bb7e]:active {
  opacity: 0.6;
}
.bar-mark[data-v-3797bb7e] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.head[data-v-3797bb7e] {
  padding: 28px 28px 0;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
@supports not (gap: 1px) {
.head[data-v-3797bb7e] > * + * {
    margin-left: 14px;
}
}
.head-zh[data-v-3797bb7e] {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-3797bb7e] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}

/* 当前活动 */
.now-sec[data-v-3797bb7e] {
  padding: 24px 0 0;
}
.sec-head[data-v-3797bb7e] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 0 28px;
  margin-bottom: 16px;
}
@supports not (gap: 1px) {
.sec-head[data-v-3797bb7e] > * + * {
    margin-left: 12px;
}
}
.sec-title[data-v-3797bb7e] {
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-indent: 0.28em;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--shop-ink);
}
@supports not (gap: 1px) {
.sec-title[data-v-3797bb7e] > * + * {
    margin-left: 10px;
}
}
.sec-badge[data-v-3797bb7e] {
  font-size: 0.56rem;
  color: var(--shop-card);
  background: var(--shop-clay);
  border-radius: 2px;
  padding: 3px 8px;
  letter-spacing: 0.12em;
}
.sec-en[data-v-3797bb7e] {
  font-size: 0.58rem;
  color: var(--shop-muted);
  letter-spacing: 0.26em;
  font-family: var(--font-sans);
}
.sec-count[data-v-3797bb7e] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
  margin-left: auto;
}
.rail[data-v-3797bb7e] {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 4px 28px 10px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
@supports not (gap: 1px) {
.rail[data-v-3797bb7e] > * + * {
    margin-left: 14px;
}
}
.rail[data-v-3797bb7e]::-webkit-scrollbar {
  display: none;
}
.now-card[data-v-3797bb7e] {
  flex: 0 0 82%;
  scroll-snap-align: start;
  display: block;
  text-align: left;
  background: var(--shop-card);
  border: 1px solid var(--shop-border);
  border-radius: 6px;
  padding: 14px;
  box-shadow: 0 2px 10px rgba(56, 42, 31, 0.05);
  color: var(--shop-ink);
  cursor: pointer;
  font-family: var(--font-sans);
}
.now-card:active .now-title[data-v-3797bb7e] {
  opacity: 0.6;
}
.now-img[data-v-3797bb7e] {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
}
.now-img img[data-v-3797bb7e] {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.now-img .ph[data-v-3797bb7e] {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(160deg, #e9dcc8, #dcc9ae);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--shop-muted);
  font-size: 0.56rem;
  letter-spacing: 0.16em;
}
.now-date[data-v-3797bb7e] {
  position: absolute;
  left: 12px;
  bottom: 10px;
  color: var(--shop-card);
  background: rgba(56, 42, 31, 0.72);
  border-radius: 2px;
  padding: 4px 10px;
  font-size: 0.62rem;
  letter-spacing: 0.14em;
}
.now-live[data-v-3797bb7e] {
  position: absolute;
  right: 12px;
  bottom: 10px;
  color: var(--shop-card);
  background: var(--shop-cinnabar);
  border-radius: 2px;
  padding: 4px 9px;
  font-size: 0.58rem;
  letter-spacing: 0.12em;
}
/* B-111：置顶徽标（now-card 左上 / 往期标题旁） */
.pinned-badge[data-v-3797bb7e] {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 2px;
  font-size: 10px;
  line-height: 1.7;
  color: var(--shop-card);
  background: var(--shop-cinnabar);
  letter-spacing: 0.12em;
  vertical-align: 2px;
}
.pinned-badge.past[data-v-3797bb7e] {
  font-size: 9px;
  margin-left: 4px;
}
.now-title[data-v-3797bb7e] {
  font-size: 0.96rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-top: 12px;
}
.now-tag[data-v-3797bb7e] {
  display: inline-block;
  font-size: 0.58rem;
  color: var(--shop-clay);
  border: 1px solid var(--shop-clay);
  border-radius: 2px;
  padding: 1px 7px;
  margin-left: 8px;
  vertical-align: 2px;
  letter-spacing: 0.12em;
  font-family: var(--font-sans);
}
.now-sum[data-v-3797bb7e] {
  font-size: 0.72rem;
  color: var(--shop-brown);
  line-height: 1.85;
  margin-top: 8px;
  letter-spacing: 0.03em;
}
.dots[data-v-3797bb7e] {
  display: flex;
  justify-content: center;
  gap: 7px;
  padding: 6px 0 2px;
}
@supports not (gap: 1px) {
.dots[data-v-3797bb7e] > * + * {
    margin-left: 7px;
}
}
.dot[data-v-3797bb7e] {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--shop-border);
  transition: background 0.2s, width 0.2s;
}
.dot.on[data-v-3797bb7e] {
  background: var(--shop-clay);
  width: 16px;
  border-radius: 3px;
}

/* 往期时间线 */
.past-sec[data-v-3797bb7e] {
  padding: 30px 28px 0;
}
.past-head[data-v-3797bb7e] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
}
@supports not (gap: 1px) {
.past-head[data-v-3797bb7e] > * + * {
    margin-left: 12px;
}
}
.past-title-sec[data-v-3797bb7e] {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-indent: 0.28em;
  color: var(--shop-ink);
}
.past-en[data-v-3797bb7e] {
  font-size: 0.58rem;
  color: var(--shop-muted);
  letter-spacing: 0.26em;
  font-family: var(--font-sans);
}
.past-list[data-v-3797bb7e] {
  border-top: 1px solid var(--shop-border);
}
.past-item[data-v-3797bb7e] {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 18px 0;
  border-bottom: 1px solid var(--shop-border);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: var(--shop-ink);
}
@supports not (gap: 1px) {
.past-item[data-v-3797bb7e] > * + * {
    margin-left: 20px;
}
}
.past-item[data-v-3797bb7e]:last-child {
  border-bottom: none;
}
.past-item:active .past-t2[data-v-3797bb7e] {
  opacity: 0.6;
}
.past-date[data-v-3797bb7e] {
  flex: 0 0 56px;
  text-align: center;
  padding-top: 3px;
}
.past-d[data-v-3797bb7e] {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.1;
  color: var(--shop-ink);
}
.past-m[data-v-3797bb7e] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.24em;
  margin-top: 4px;
  font-family: var(--font-sans);
}
.past-y[data-v-3797bb7e] {
  font-size: 0.54rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
  margin-top: 2px;
  font-family: var(--font-sans);
}
.past-body[data-v-3797bb7e] {
  flex: 1;
  padding-top: 1px;
}
.past-t2[data-v-3797bb7e] {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.past-sum[data-v-3797bb7e] {
  font-size: 0.7rem;
  color: var(--shop-brown);
  line-height: 1.8;
  margin-top: 6px;
  letter-spacing: 0.03em;
}
.empty[data-v-3797bb7e] {
  padding: 56px 28px;
  text-align: center;
  font-size: 0.78rem;
  color: var(--shop-muted);
  letter-spacing: 0.12em;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：页面标题/区域标题限宽 1120 → 当前活动横滑卡改网格（auto-fill minmax
 *       260px，2-3 列，页码点/滑动手势提示隐藏）→ 往期时间线限宽两列 → hover 陶土色。 */
@media (min-width: 744px) {
.shop-events[data-v-3797bb7e] {
    max-width: none;
}

  /* 返回栏 + 页面标题：限宽 1120 居中 */
.bar[data-v-3797bb7e] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-3797bb7e]:hover {
    color: var(--shop-clay);
}
.head[data-v-3797bb7e] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.head-zh[data-v-3797bb7e] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.head-en[data-v-3797bb7e] {
    font-size: 0.68rem;
}

  /* 当前活动：区域标题限宽，横滑卡改网格 */
.now-sec[data-v-3797bb7e] {
    padding: 36px 0 0;
}
.sec-head[data-v-3797bb7e] {
    max-width: 1120px;
    margin: 0 auto 28px;
    padding: 0 48px;
}
.sec-title[data-v-3797bb7e] {
    font-size: 1.05rem;
}
.sec-en[data-v-3797bb7e] {
    font-size: 0.64rem;
}
.sec-count[data-v-3797bb7e] {
    display: none; /* 网格无横滑，隐藏「左右滑动」提示 */
}
.rail[data-v-3797bb7e] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 24px;
    overflow: visible;
    scroll-snap-type: none;
    max-width: 1120px;
    margin: 0 auto;
    padding: 4px 48px 10px;
}
.now-card[data-v-3797bb7e] {
    flex: none;
    padding: 16px;
    transition: border-color var(--shop-dur) var(--shop-ease);
}
.now-card[data-v-3797bb7e]:hover {
    border-color: rgba(181, 113, 74, 0.5);
}
.now-card:hover .now-title[data-v-3797bb7e] {
    color: var(--shop-clay);
    transition: color var(--shop-dur) var(--shop-ease);
}
.now-title[data-v-3797bb7e] {
    font-size: 1.02rem;
}
.now-sum[data-v-3797bb7e] {
    font-size: 0.78rem;
}
.dots[data-v-3797bb7e] {
    display: none; /* 网格布局下页码点无意义 */
}

  /* 往期：区域标题 + 时间线限宽，时间线两列网格 */
.past-sec[data-v-3797bb7e] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 46px 48px 0;
}
.past-head[data-v-3797bb7e] {
    margin-bottom: 18px;
}
.past-title-sec[data-v-3797bb7e] {
    font-size: 1.02rem;
}
.past-en[data-v-3797bb7e] {
    font-size: 0.64rem;
}
.past-list[data-v-3797bb7e] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 0 48px;
}
.past-item[data-v-3797bb7e] {
    padding: 22px 0;
}
.past-item:hover .past-t2[data-v-3797bb7e] {
    color: var(--shop-clay);
    transition: color var(--shop-dur) var(--shop-ease);
}
.past-d[data-v-3797bb7e] {
    font-size: 1.4rem;
}
.past-t2[data-v-3797bb7e] {
    font-size: 0.96rem;
}
.past-sum[data-v-3797bb7e] {
    font-size: 0.76rem;
}
.empty[data-v-3797bb7e] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 64px 48px;
}
}

/* 视觉基准：docs/design/shop-event-detail-v1.html */
.shop-event-detail[data-v-cc77a9f2] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-cc77a9f2] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-cc77a9f2] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-cc77a9f2]:active {
  opacity: 0.6;
}
.bar-mark[data-v-cc77a9f2] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.cover[data-v-cc77a9f2] {
  position: relative;
  margin: 18px 16px 0;
  border-radius: 6px;
  overflow: hidden;
}
.cover img[data-v-cc77a9f2] {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.cover .ph[data-v-cc77a9f2] {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(160deg, #e9dcc8, #dcc9ae);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--shop-muted);
  font-size: 0.56rem;
  letter-spacing: 0.16em;
}
.cover-date[data-v-cc77a9f2] {
  position: absolute;
  left: 14px;
  bottom: 12px;
  color: var(--shop-card);
  background: rgba(56, 42, 31, 0.72);
  border-radius: 2px;
  padding: 5px 12px;
  font-size: 0.66rem;
  letter-spacing: 0.16em;
}
.head[data-v-cc77a9f2] {
  padding: 26px 30px 0;
}
.head-tag[data-v-cc77a9f2] {
  display: inline-block;
  font-size: 0.58rem;
  color: var(--shop-clay);
  border: 1px solid var(--shop-clay);
  border-radius: 2px;
  padding: 2px 8px;
  letter-spacing: 0.14em;
  margin-left: 10px;
  vertical-align: 4px;
  font-family: var(--font-sans);
}
.head-title[data-v-cc77a9f2] {
  font-size: 1.45rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.5;
  color: var(--shop-ink);
}
.head-meta[data-v-cc77a9f2] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--shop-border);
  font-size: 0.66rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
}
@supports not (gap: 1px) {
.head-meta[data-v-cc77a9f2] > * + * {
    margin-left: 12px;
}
}
.head-meta .dot[data-v-cc77a9f2] {
  color: var(--shop-clay);
}
.body[data-v-cc77a9f2] {
  padding: 28px 30px 0;
}
.related[data-v-cc77a9f2] {
  padding: 40px 30px 0;
}
.rel-head[data-v-cc77a9f2] {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
}
@supports not (gap: 1px) {
.rel-head[data-v-cc77a9f2] > * + * {
    margin-left: 12px;
}
}
.rel-title[data-v-cc77a9f2] {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-indent: 0.28em;
  color: var(--shop-ink);
}
.rel-en[data-v-cc77a9f2] {
  font-size: 0.58rem;
  color: var(--shop-muted);
  letter-spacing: 0.26em;
  font-family: var(--font-sans);
}
.rel-list[data-v-cc77a9f2] {
  border-top: 1px solid var(--shop-border);
}
.rel-item[data-v-cc77a9f2] {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 16px 0;
  border-bottom: 1px solid var(--shop-border);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: var(--shop-ink);
}
@supports not (gap: 1px) {
.rel-item[data-v-cc77a9f2] > * + * {
    margin-left: 16px;
}
}
.rel-item[data-v-cc77a9f2]:last-child {
  border-bottom: none;
}
.rel-item:active .rel-t2[data-v-cc77a9f2] {
  opacity: 0.6;
}
.rel-date[data-v-cc77a9f2] {
  flex: 0 0 52px;
  text-align: center;
  padding-top: 2px;
}
.rel-d[data-v-cc77a9f2] {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.1;
  color: var(--shop-ink);
}
.rel-m[data-v-cc77a9f2] {
  font-size: 0.58rem;
  color: var(--shop-muted);
  letter-spacing: 0.22em;
  margin-top: 3px;
}
.rel-body[data-v-cc77a9f2] {
  flex: 1;
  padding-top: 1px;
}
.rel-t2[data-v-cc77a9f2] {
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}
.rel-sum[data-v-cc77a9f2] {
  font-size: 0.68rem;
  color: var(--shop-brown);
  line-height: 1.8;
  margin-top: 5px;
  letter-spacing: 0.02em;
}
.state-tip[data-v-cc77a9f2] {
  padding: 60px 28px;
  text-align: center;
  color: var(--shop-muted);
  font-size: 0.8rem;
  letter-spacing: 0.16em;
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：封面 16:9 横幅限宽 1120 居中 → 标题区限宽 → 正文限宽 → 往期茶事限宽两列，
 *       hover 陶土色。封面横幅形态沿视觉基准 v1.html，不做两栏拆版。 */
@media (min-width: 744px) {
.shop-event-detail[data-v-cc77a9f2] {
    max-width: none;
}

  /* 返回栏：限宽 1120 居中 */
.bar[data-v-cc77a9f2] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-cc77a9f2]:hover {
    color: var(--shop-clay);
}

  /* 封面：16:9 横幅限宽居中，角标微放大 */
.cover[data-v-cc77a9f2] {
    max-width: 1120px;
    margin: 38px auto 0;
}
.cover-date[data-v-cc77a9f2] {
    left: 18px;
    bottom: 16px;
    font-size: 0.72rem;
    padding: 6px 14px;
}

  /* 标题区：限宽居中，标题字号 clamp 流式 */
.head[data-v-cc77a9f2] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 40px 48px 0;
}
.head-title[data-v-cc77a9f2] {
    font-size: clamp(1.7rem, 2.6vw, 2.3rem);
}
.head-tag[data-v-cc77a9f2] {
    font-size: 0.64rem;
    padding: 3px 10px;
}
.head-meta[data-v-cc77a9f2] {
    font-size: 0.72rem;
    margin-top: 18px;
    padding-top: 18px;
}

  /* 正文：限宽居中 */
.body[data-v-cc77a9f2] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 40px 48px 0;
}

  /* 往期茶事：限宽，列表两列网格 */
.related[data-v-cc77a9f2] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 56px 48px 0;
}
.rel-title[data-v-cc77a9f2] {
    font-size: 1.02rem;
}
.rel-en[data-v-cc77a9f2] {
    font-size: 0.64rem;
}
.rel-list[data-v-cc77a9f2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 0 48px;
}
.rel-item[data-v-cc77a9f2] {
    padding: 20px 0;
}
.rel-item:hover .rel-t2[data-v-cc77a9f2] {
    color: var(--shop-clay);
    transition: color var(--shop-dur) var(--shop-ease);
}
.rel-d[data-v-cc77a9f2] {
    font-size: 1.3rem;
}
.rel-t2[data-v-cc77a9f2] {
    font-size: 0.94rem;
}
.rel-sum[data-v-cc77a9f2] {
    font-size: 0.74rem;
}
.state-tip[data-v-cc77a9f2] {
    max-width: 1120px;
    margin: 0 auto;
}
}

/* 正文 Markdown 排版（非 scoped：v-html 节点不受 scoped 匹配）。
 * 视觉基准：shop-event-detail-v1.html .body 区 */
.md-body {
  font-size: 0.86rem;
  line-height: 2.15;
  color: var(--shop-brown);
  letter-spacing: 0.04em;
}
.md-body p {
  margin-bottom: 18px;
}
.md-body > p:first-child {
  font-size: 0.92rem;
  color: var(--shop-ink);
}
.md-body h2,
.md-body h3 {
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--shop-ink);
  letter-spacing: 0.14em;
  margin: 30px 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
@supports not (gap: 1px) {
.md-body h2 > * + *,
.md-body h3 > * + * {
    margin-left: 10px;
}
}
.md-body h2::before,
.md-body h3::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--shop-clay);
  flex: 0 0 18px;
}
.md-body blockquote {
  border-left: 2px solid var(--shop-clay);
  padding: 2px 0 2px 16px;
  margin: 22px 0;
  color: var(--shop-muted);
  font-size: 0.82rem;
  line-height: 2;
}
.md-body strong {
  font-weight: 500;
  color: var(--shop-ink);
}
.md-body .img-cap {
  margin: 20px 0;
  border-radius: 4px;
  overflow: hidden;
}
.md-body .img-cap img {
  width: 100%;
  display: block;
}
.md-body .cap {
  font-size: 0.62rem;
  color: var(--shop-muted);
  text-align: center;
  letter-spacing: 0.12em;
  margin-top: 10px;
}
.md-body ul,
.md-body ol {
  padding-left: 1.4em;
  margin: 0 0 18px;
}
.md-body li {
  margin-bottom: 6px;
}
.md-body code {
  background: rgba(56, 42, 31, 0.06);
  border-radius: 2px;
  padding: 1px 5px;
  font-size: 0.82em;
}

/* 视觉基准：docs/design/shop-visit-v7.html（定稿清单 #11） */
.shop-visit[data-v-4660ad29] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 0;
  background: var(--shop-paper);
  color: var(--shop-ink);
}

/* 顶条 */
.bar[data-v-4660ad29] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 26px 0;
}
.bar-back[data-v-4660ad29] {
  font-size: 0.72rem;
  color: var(--shop-brown);
  letter-spacing: 0.18em;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.bar-mark[data-v-4660ad29] {
  font-size: 0.84rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}

/* 扉页 */
.title-page[data-v-4660ad29] {
  padding: 72px 40px 64px;
  text-align: center;
}
.tp-line[data-v-4660ad29] {
  width: 30px;
  height: 1px;
  background: var(--shop-clay);
  margin: 0 auto 40px;
}
.tp-title[data-v-4660ad29] {
  font-size: 1.9rem;
  font-weight: 500;
  letter-spacing: 0.6em;
  text-indent: 0.6em;
  color: var(--shop-ink);
  line-height: 1.4;
}
.tp-sub[data-v-4660ad29] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  margin-top: 24px;
}
.tp-addr[data-v-4660ad29] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.16em;
  font-family: var(--font-sans);
  margin-top: 46px;
}
.tp-line-bottom[data-v-4660ad29] {
  width: 30px;
  height: 1px;
  background: var(--shop-clay);
  margin: 30px auto 0;
}

/* 引子 */
.intro[data-v-4660ad29] {
  padding: 6px 46px 54px;
  text-align: center;
}
.intro p[data-v-4660ad29] {
  font-size: 0.86rem;
  line-height: 2.3;
  color: var(--shop-brown);
  letter-spacing: 0.14em;
}

/* 钤印导航 */
.seals[data-v-4660ad29] {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 34px;
  padding: 44px 0 6px;
}
@supports not (gap: 1px) {
.seals[data-v-4660ad29] > * + * {
    margin-left: 34px;
}
}
.seal[data-v-4660ad29] {
  writing-mode: vertical-rl;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.4em;
  text-decoration: none;
  color: var(--shop-ink);
  line-height: 1;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.seal-div[data-v-4660ad29] {
  width: 1px;
  background: var(--shop-border);
}

/* 编号目录 */
.toc[data-v-4660ad29] {
  padding: 0 34px;
}
.toc-item[data-v-4660ad29] {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--shop-border);
  text-decoration: none;
  color: var(--shop-ink);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  width: 100%;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.toc-item[data-v-4660ad29] > * + * {
    margin-left: 20px;
}
}
.toc-item[data-v-4660ad29]:last-child {
  border-bottom: none;
}
.toc-item:active .toc-zh[data-v-4660ad29] {
  opacity: 0.55;
}
.toc-no[data-v-4660ad29] {
  flex: 0 0 auto;
  font-size: 0.66rem;
  color: var(--shop-clay);
  letter-spacing: 0.2em;
  padding-top: 7px;
  font-family: Georgia, "Times New Roman", serif;
}
.toc-body[data-v-4660ad29] {
  flex: 1;
}
.toc-zh[data-v-4660ad29] {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  transition: opacity 0.15s;
}
.toc-sub[data-v-4660ad29] {
  font-size: 0.68rem;
  color: var(--shop-muted);
  letter-spacing: 0.16em;
  text-indent: 0.16em;
  margin-top: 11px;
  line-height: 1.9;
}
.toc-arrow[data-v-4660ad29] {
  flex: 0 0 auto;
  font-size: 0.8rem;
  color: var(--shop-clay);
  padding-top: 9px;
  letter-spacing: 0.1em;
}

/* 院子三词 */
.yard[data-v-4660ad29] {
  padding: 48px 34px 60px;
  text-align: center;
}
.yard-words[data-v-4660ad29] {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
@supports not (gap: 1px) {
.yard-words[data-v-4660ad29] > * + * {
    margin-left: 20px;
}
}
.yard-word[data-v-4660ad29] {
  font-size: 1rem;
  letter-spacing: 0.36em;
  text-indent: 0.36em;
  color: var(--shop-ink);
  font-weight: 500;
}
.yard-dot[data-v-4660ad29] {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--shop-clay);
}
.yard-note[data-v-4660ad29] {
  font-size: 0.7rem;
  line-height: 2.1;
  color: var(--shop-brown);
  letter-spacing: 0.12em;
  margin-top: 22px;
}
.yard-more[data-v-4660ad29] {
  display: block;
  margin-top: 22px;
  font-size: 0.66rem;
  color: var(--shop-clay);
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* 页脚（定稿 foot 深棕） */
.foot[data-v-4660ad29] {
  background: var(--shop-ink);
  color: var(--shop-card);
  padding: 36px 30px 34px;
  text-align: center;
}
.foot-name[data-v-4660ad29] {
  font-size: 1rem;
  letter-spacing: 0.4em;
  text-indent: 0.4em;
  margin-bottom: 10px;
}
.foot-addr[data-v-4660ad29] {
  font-size: 0.7rem;
  color: rgba(251, 245, 234, 0.6);
  letter-spacing: 0.1em;
}
/* ICP 备案号：小字米白，弱化但清晰可查 */
.foot-icp[data-v-4660ad29] {
  margin-top: 14px;
}
.foot-icp a[data-v-4660ad29] {
  font-size: 0.6rem;
  color: rgba(251, 245, 234, 0.5);
  letter-spacing: 0.1em;
  text-decoration: none;
  font-family: var(--font-sans);
}
.foot-icp a[data-v-4660ad29]:hover {
  color: var(--shop-clay);
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：扉页/引子/钤印/目录/院子三词 各区块限宽 1120 居中；编号目录横排改
 *       网格卡（auto-fill minmax 260px，五张目录卡平铺）→ hover 卡纸底；页脚全宽深棕横幅。 */
@media (min-width: 744px) {
.shop-visit[data-v-4660ad29] {
    max-width: none;
}
.bar[data-v-4660ad29] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-4660ad29] {
    font-size: 0.76rem;
}
.bar-back[data-v-4660ad29]:hover {
    color: var(--shop-clay);
}

  /* 扉页：限宽 1120 居中，留白拉大，标题 clamp 流式 */
.title-page[data-v-4660ad29] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 110px 48px 90px;
}
.tp-line[data-v-4660ad29] {
    width: 40px;
    margin-bottom: 52px;
}
.tp-title[data-v-4660ad29] {
    font-size: clamp(2.6rem, 5vw, 4rem);
}
.tp-sub[data-v-4660ad29] {
    font-size: 0.9rem;
    margin-top: 30px;
}
.tp-addr[data-v-4660ad29] {
    font-size: 0.68rem;
    margin-top: 64px;
}
.tp-line-bottom[data-v-4660ad29] {
    width: 40px;
    margin: 42px auto 0;
}

  /* 引子：限宽 1120 居中 */
.intro[data-v-4660ad29] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 10px 48px 72px;
}
.intro p[data-v-4660ad29] {
    font-size: 1rem;
    line-height: 2.5;
}

  /* 钤印导航：限宽居中，印章字放大 */
.seals[data-v-4660ad29] {
    max-width: 1120px;
    margin: 0 auto;
    gap: 48px;
    padding: 56px 0 12px;
}
.seal[data-v-4660ad29] {
    font-size: 1.06rem;
    letter-spacing: 0.46em;
}
.seal[data-v-4660ad29]:hover {
    color: var(--shop-clay);
}
.seal-div[data-v-4660ad29] {
    width: 1px;
    background: var(--shop-border);
}

  /* 编号目录：横排列表 → 网格卡（auto-fill minmax 260px，1120 宽 3-4 列） */
.toc[data-v-4660ad29] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 20px 48px 0;
}
.toc-item[data-v-4660ad29] {
    /* 保持手机层样式：竖排每排一个（编号左 + 内容 + 箭头右），仅 hover 字色；
       内容限宽 880 居中——两边留白，不整行拉满 */
    max-width: 880px;
    margin: 0 auto;
    border-bottom: 1px solid var(--shop-border);
    transition: color var(--shop-dur) var(--shop-ease);
}
.toc-item:hover .toc-zh[data-v-4660ad29] {
    color: var(--shop-clay);
}
.toc-no[data-v-4660ad29] {
    font-size: 0.72rem;
}
.toc-zh[data-v-4660ad29] {
    font-size: clamp(1.1rem, 1.2vw, 1.25rem);
}
.toc-sub[data-v-4660ad29] {
    font-size: 0.72rem;
}
.toc-arrow[data-v-4660ad29] {
    font-size: 0.86rem;
}

  /* 院子三词：限宽 1120 居中 */
.yard[data-v-4660ad29] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 64px 48px 84px;
}
.yard-words[data-v-4660ad29] {
    gap: 28px;
}
.yard-word[data-v-4660ad29] {
    font-size: clamp(1.3rem, 1.8vw, 1.6rem);
}
.yard-note[data-v-4660ad29] {
    font-size: 0.78rem;
    margin-top: 28px;
}
.yard-more[data-v-4660ad29] {
    font-size: 0.72rem;
    margin-top: 28px;
}
.yard-more[data-v-4660ad29]:hover {
    color: var(--shop-ink);
}

  /* 页脚：全宽深棕横幅（内容限宽 1120 居中） */
.foot[data-v-4660ad29] {
    padding: 52px 48px 48px;
}
.foot-name[data-v-4660ad29] {
    font-size: clamp(1.1rem, 1.5vw, 1.3rem);
}
.foot-addr[data-v-4660ad29] {
    font-size: 0.74rem;
}
}

html.wx .shop-visit .tp-title {
  font-size: 1.65rem;
}
html.wx .shop-visit .tp-sub {
  font-size: 0.7rem;
  margin-top: 18px;
}
html.wx .shop-visit .title-page {
  padding: 56px 32px 48px;
}
html.wx .shop-visit .intro {
  padding: 4px 38px 40px;
}
html.wx .shop-visit .intro p {
  font-size: 0.78rem;
  line-height: 2.1;
}
html.wx .shop-visit .toc {
  padding: 0 28px;
}
html.wx .shop-visit .toc-item {
  padding: 24px 0;
}
html.wx .shop-visit .toc-zh {
  font-size: 1.08rem;
}
html.wx .shop-visit .toc-sub {
  font-size: 0.62rem;
  margin-top: 8px;
}
html.wx .shop-visit .seals {
  gap: 28px;
  padding: 36px 0 4px;
}
html.wx .shop-visit .seal {
  font-size: 0.82rem;
}
html.wx .shop-visit .yard {
  padding: 38px 28px 46px;
}
html.wx .shop-visit .yard-note {
  font-size: 0.64rem;
}
html.wx .shop-visit .foot {
  padding: 30px 26px 28px;
}
html.wx .shop-visit .foot-name {
  font-size: 0.92rem;
}
html.wx .shop-visit .foot-addr {
  font-size: 0.64rem;
}
html.wx .shop-visit .foot-icp {
  margin-top: 10px;
}
html.wx .shop-visit .foot-icp a {
  font-size: 0.54rem;
}

/* 壳层对齐 ShopContactView（定稿清单原则：暖色香遇、衬线标题、无独立设计稿按定稿走） */
.shop-tea-planning[data-v-22883410] {
  max-width: 430px;
  margin: 0 auto;
  padding-bottom: 30px;
}
.bar[data-v-22883410] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 26px 0;
}
.bar-back[data-v-22883410] {
  font-size: 0.76rem;
  color: var(--shop-brown);
  letter-spacing: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}
.bar-back[data-v-22883410]:active {
  opacity: 0.6;
}
.bar-mark[data-v-22883410] {
  font-size: 0.86rem;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--shop-ink);
  cursor: pointer;
  text-decoration: none;
}
.head[data-v-22883410] {
  padding: 26px 28px 0;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
@supports not (gap: 1px) {
.head[data-v-22883410] > * + * {
    margin-left: 14px;
}
}
.head-zh[data-v-22883410] {
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
}
.head-en[data-v-22883410] {
  font-size: 0.6rem;
  color: var(--shop-muted);
  letter-spacing: 0.3em;
  font-family: var(--font-sans);
}

/* 引子 */
.intro[data-v-22883410] {
  padding: 30px 34px 6px;
  text-align: center;
  font-size: 0.84rem;
  line-height: 2.2;
  color: var(--shop-brown);
  letter-spacing: 0.12em;
}
.sec[data-v-22883410] {
  padding: 36px 28px 0;
}
.sec-title[data-v-22883410] {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  color: var(--shop-ink);
  position: relative;
  padding-left: 16px;
  margin-bottom: 16px;
}
.sec-title[data-v-22883410]::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.28em;
  bottom: 0.28em;
  width: 2px;
  background: var(--shop-clay);
}

/* 服务四项（对齐 contact 交通列表样式） */
.list[data-v-22883410] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
@supports not (gap: 1px) {
.list[data-v-22883410] > * + * {
    margin-top: 14px;
}
}
.list li[data-v-22883410] {
  font-size: 0.78rem;
  color: var(--shop-brown);
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.l-kw[data-v-22883410] {
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  color: var(--shop-clay);
  margin-right: 12px;
}

/* 场地：两种方式，上下两块 */
.venue[data-v-22883410] {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
@supports not (gap: 1px) {
.venue[data-v-22883410] > * + * {
    margin-top: 14px;
}
}
.venue-item[data-v-22883410] {
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius);
  background: var(--shop-card);
  padding: 16px 18px 15px;
}
/* B-116：可点卡片为 button（reset + cursor + 按压反馈）；上门去保持普通 div */
.venue-item.clickable[data-v-22883410] {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.venue-item.clickable[data-v-22883410]:active {
  background: var(--shop-bg);
}
.venue-kw[data-v-22883410] {
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  color: var(--shop-ink);
}
.venue-txt[data-v-22883410] {
  font-size: 0.72rem;
  line-height: 1.9;
  color: var(--shop-muted);
  letter-spacing: 0.06em;
  margin: 8px 0 0;
}
.venue-more[data-v-22883410] {
  display: inline-block;
  margin-top: 10px;
  font-size: 0.66rem;
  color: var(--shop-clay);
  letter-spacing: 0.2em;
  text-indent: 0.2em;
}
.note[data-v-22883410] {
  font-size: 0.78rem;
  color: var(--shop-brown);
  letter-spacing: 0.06em;
  line-height: 2.1;
}

/* 茶事案例（B-116）：日期 + 标题/摘要行 */
.cases[data-v-22883410] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.case[data-v-22883410] {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--shop-border);
  width: 100%;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  text-align: left;
  cursor: pointer;
  font: inherit;
}
@supports not (gap: 1px) {
.case[data-v-22883410] > * + * {
    margin-left: 14px;
}
}
.case.clickable[data-v-22883410]:active {
  opacity: 0.6;
}
.case[data-v-22883410]:first-child {
  padding-top: 2px;
}
.case[data-v-22883410]:last-child {
  border-bottom: none;
}
.case-date[data-v-22883410] {
  flex: 0 0 auto;
  font-size: 0.62rem;
  color: var(--shop-clay);
  letter-spacing: 0.08em;
  font-family: var(--font-sans);
}
.case-body[data-v-22883410] {
  flex: 1;
}
.case-title[data-v-22883410] {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--shop-ink);
}
.case-summary[data-v-22883410] {
  font-size: 0.68rem;
  color: var(--shop-muted);
  letter-spacing: 0.08em;
  margin: 5px 0 0;
  line-height: 1.8;
}
.case-more[data-v-22883410] {
  display: block;
  margin-top: 18px;
  font-size: 0.68rem;
  color: var(--shop-clay);
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

/* 文殊院禅茶体系（重点段） */
.chan[data-v-22883410] {
  border-top: 1px solid var(--shop-border);
  padding-top: 18px;
}
.chan-para[data-v-22883410] {
  font-size: 0.8rem;
  line-height: 2.15;
  letter-spacing: 0.06em;
  color: var(--shop-brown);
  margin: 0 0 14px;
}
.chan-para[data-v-22883410]:last-child {
  margin-bottom: 0;
}
.tip[data-v-22883410] {
  text-align: center;
  padding: 40px 32px 12px;
  font-size: 0.84rem;
  letter-spacing: 0.2em;
  text-indent: 0.2em;
  color: var(--shop-ink);
}

/* ===== 桌面端渐进增强（方案 A，2026-08-07）=====
 * 断点体系 B-131：@media (min-width: 744px) 一层覆盖，移动端规则原样保留（一行未动）。
 * 版式：头部限宽 1120 居中 → 引子/长文段落限阅读行宽 800 居中 →
 *       服务四项两列网格、场地（在院子里 | 上门去）两栏横排 → 卡片 hover。 */
@media (min-width: 744px) {
.shop-tea-planning[data-v-22883410] {
    max-width: none;
}
.bar[data-v-22883410] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 24px 48px 0;
}
.bar-back[data-v-22883410] {
    font-size: 0.8rem;
}
.bar-back[data-v-22883410]:hover {
    color: var(--shop-clay);
}
.head[data-v-22883410] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 44px 48px 0;
}
.head-zh[data-v-22883410] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
}
.head-en[data-v-22883410] {
    font-size: 0.68rem;
}

  /* 引子：限阅读行宽 800 居中 */
.intro[data-v-22883410] {
    max-width: 800px;
    margin: 0 auto;
    padding: 46px 48px 6px;
    font-size: 0.92rem;
    line-height: 2.4;
}
.sec[data-v-22883410] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 52px 48px 0;
}
.sec-title[data-v-22883410] {
    font-size: 0.98rem;
    margin-bottom: 20px;
}

  /* 服务四项：纵向列表 → 两列网格 */
.list[data-v-22883410] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 48px;
    row-gap: 18px;
}
.list li[data-v-22883410] {
    font-size: 0.86rem;
}
.l-kw[data-v-22883410] {
    font-size: 0.88rem;
}

  /* 场地：上下两块 → 左右两栏（在院子里 | 上门去），可点卡 hover */
.venue[data-v-22883410] {
    flex-direction: row;
    gap: 20px;
}
.venue-item[data-v-22883410] {
    flex: 1;
    padding: 24px 26px 22px;
    transition: border-color var(--shop-dur) var(--shop-ease),
      background var(--shop-dur) var(--shop-ease);
}
.venue-item.clickable[data-v-22883410]:hover {
    border-color: var(--shop-clay);
    background: var(--shop-bg);
}
.venue-kw[data-v-22883410] {
    font-size: 0.96rem;
}
.venue-txt[data-v-22883410] {
    font-size: 0.78rem;
}

  /* 活动类型说明 + 文殊院体系：限阅读行宽 800 居中 */
.note[data-v-22883410] {
    max-width: 800px;
    font-size: 0.84rem;
}
.case[data-v-22883410] {
    max-width: 800px;
    padding: 20px 0;
    border-radius: 6px;
}
.case.clickable:hover .case-title[data-v-22883410] {
    color: var(--shop-clay);
}
.case-title[data-v-22883410] {
    font-size: clamp(0.98rem, 1.2vw, 1.1rem);
}
.case-summary[data-v-22883410] {
    font-size: 0.72rem;
}
.case-more[data-v-22883410] {
    max-width: 800px;
    font-size: 0.72rem;
}
.case-more[data-v-22883410]:hover {
    color: var(--shop-ink);
}
.chan[data-v-22883410] {
    max-width: 800px;
    padding-top: 22px;
}
.chan-para[data-v-22883410] {
    font-size: 0.88rem;
    line-height: 2.3;
}
.tip[data-v-22883410] {
    max-width: 800px;
    margin: 0 auto;
    padding: 56px 48px 20px;
    font-size: 0.9rem;
}
}
/* ============================================================
 * 服务号会员中心（客人侧 H5）共享样式
 * 逐字翻译定稿原型 v6（menqian-wechat-member-prototype.html）：
 * 只保留进生产的部分——导览 rail、手机机壳、状态栏/微信胶囊模拟已剔除。
 * 令牌逐字绑定 frontend/src/shop/tokens.css，零新增 hex。
 * ============================================================ */

.member-shell {
  color-scheme: only light;
  min-height: 100vh;
  background: var(--shop-bg);
  color: var(--shop-ink);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
}
.member-shell button {
  font-family: inherit;
  cursor: pointer;
}
.member-shell :focus-visible {
  outline: 2px solid var(--shop-clay);
  outline-offset: 2px;
}

/* 屏幕通用：底部为微信 WebView 安全区留白（36px 基础值原型原样，safe-area 只做加法） */
.member-view {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 28px 30px calc(36px + env(safe-area-inset-bottom, 0px));
}

.serif { font-family: var(--font-serif); }

/* 品牌行 */
.member-brand { text-align: center; margin-bottom: 34px; }
.member-brand .b-name {
  font-family: var(--font-serif);
  font-size: 1.35rem; letter-spacing: 0.34em; text-indent: 0.34em;
  color: var(--shop-ink);
}
.member-brand .b-sub {
  margin-top: 10px;
  font-size: 0.68rem; letter-spacing: 0.42em; text-indent: 0.42em;
  color: var(--shop-muted);
}
.member-brand-row {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 40px;
}
.member-brand-row .b-name { font-family: var(--font-serif); font-size: 0.95rem; letter-spacing: 0.22em; }
.member-brand-row .b-sub { font-size: 0.66rem; letter-spacing: 0.3em; color: var(--shop-muted); }

/* 标题与正文 */
.member-h-title { font-size: 1.62rem; font-weight: 600; line-height: 1.4; letter-spacing: 0.02em; }
.member-lead { margin-top: 14px; font-size: 0.86rem; line-height: 1.9; color: var(--shop-brown); max-width: 30em; }
.member-quiet { font-size: 0.72rem; line-height: 1.9; color: var(--shop-muted); }

/* P1 引导页：两条主路径（细线分区，无表单） */
.bind-path { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--shop-border); }
.bind-path .bp-t { font-family: var(--font-serif); font-size: 1.02rem; letter-spacing: 0.08em; color: var(--shop-ink); }
.bind-path .bp-d { margin-top: 8px; font-size: 0.8rem; line-height: 1.8; color: var(--shop-brown); }
.bind-path .member-contact-card { margin-top: 16px; }

/* 联系方式卡 */
.member-contact-card {
  margin-top: 30px;
  background: var(--shop-card);
  border: 1px solid var(--shop-border);
  border-radius: var(--shop-radius-lg);
  padding: 20px 22px;
  text-align: left;
}
.member-contact-card .c-row { display: flex; justify-content: space-between; align-items: center; font-size: 0.8rem; padding: 7px 0; }
.member-contact-card .c-row + .c-row { border-top: 1px solid var(--shop-border); }
.member-contact-card .c-k { color: var(--shop-muted); font-size: 0.72rem; letter-spacing: 0.1em; flex: none; }
.member-contact-card .c-v { color: var(--shop-ink); font-variant-numeric: tabular-nums; letter-spacing: 0.03em; margin-left: auto; text-align: right; }

/* 复制微信号按钮（描边，非实心） */
.member-copy-btn {
  flex: none; margin-left: 14px;
  background: none;
  border: 1px solid var(--shop-ink);
  border-radius: var(--shop-radius);
  color: var(--shop-ink);
  font-size: 0.7rem; letter-spacing: 0.06em;
  padding: 6px 12px;
  transition: background var(--shop-dur) var(--shop-ease), color var(--shop-dur) var(--shop-ease);
}
.member-copy-btn:hover { background: var(--shop-ink); color: var(--shop-card); }

/* P1 绑定确认页 */
.confirm-member { margin-top: 32px; }
.confirm-member .cm-name { font-family: var(--font-serif); font-size: 1.65rem; letter-spacing: 0.08em; color: var(--shop-ink); }
.confirm-member .cm-name .honorific { font-size: 0.95rem; color: var(--shop-brown); margin-left: 10px; letter-spacing: 0.1em; }
.confirm-member .cm-meta { margin-top: 12px; font-size: 0.74rem; color: var(--shop-muted); letter-spacing: 0.06em; }
.confirm-member .cm-meta span + span::before { content: "·"; margin: 0 9px; }

/* 弱出口（文字按钮，非实心） */
.member-text-btn {
  margin: 16px auto 0;
  display: block;
  background: none; border: none;
  color: var(--shop-brown);
  font-size: 0.78rem; letter-spacing: 0.1em;
  padding: 10px 14px;
  border-bottom: 1px solid transparent;
  transition: color var(--shop-dur) var(--shop-ease), border-color var(--shop-dur) var(--shop-ease);
}
.member-text-btn:hover { color: var(--shop-ink); border-bottom-color: var(--shop-ink); }

/* 主按钮（每屏至多一个实心） */
.member-primary {
  margin-top: 30px;
  width: 100%; height: 52px;
  background: var(--shop-ink);
  color: var(--shop-card);
  border: none;
  border-radius: var(--shop-radius-lg);
  font-size: 0.92rem; letter-spacing: 0.14em; text-indent: 0.14em;
  transition: background var(--shop-dur) var(--shop-ease);
}
.member-primary:hover:not(:disabled) { background: var(--shop-ink-deep); }
.member-primary:disabled { background: var(--shop-border); color: var(--shop-muted); cursor: default; }

/* P1 第三条路径：自助登记（轻于前两条，文字级） */
.reg-path { margin-top: 30px; }
.reg-path .rp-t { font-size: 0.74rem; letter-spacing: 0.16em; color: var(--shop-muted); }
.reg-path .member-text-btn { margin: 4px 0 0; padding-left: 0; padding-right: 0; }

/* P1 自助登记页：两个字段，细线输入，无表单感 */
.reg-form { margin-top: 30px; }
.reg-field + .reg-field { margin-top: 22px; }
.reg-field label {
  display: block;
  font-size: 0.72rem; letter-spacing: 0.2em; color: var(--shop-brown);
}
.reg-field input {
  width: 100%;
  margin-top: 8px;
  background: none;
  border: none;
  border-bottom: 1px solid var(--shop-border);
  border-radius: 0;
  padding: 10px 2px;
  font-family: inherit;
  font-size: 1rem; letter-spacing: 0.04em;
  color: var(--shop-ink);
  transition: border-color var(--shop-dur) var(--shop-ease);
}
.reg-field input::placeholder { color: var(--shop-muted); opacity: 0.7; }
.reg-field input:focus { border-bottom-color: var(--shop-ink); }
.reg-field.has-err input { border-bottom-color: var(--shop-cinnabar); }
.reg-field .f-err { margin-top: 7px; font-size: 0.7rem; line-height: 1.6; color: var(--shop-cinnabar); }
.reg-tip { margin-top: 16px; text-align: center; }

/* ---------- P2 会员首页 ---------- */
.member-modal-mask {
  position: fixed;
  z-index: 60;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background: rgba(42, 32, 24, 0.46);
  background: color-mix(in oklab, #2a2018 46%, transparent);
}
@supports not (inset: 0) {
.member-modal-mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.member-modal {
  width: min(340px, 88vw);
  padding: 26px 22px 18px;
  border-radius: 18px;
  background: var(--shop-surface, #fbf6ee);
  box-shadow: 0 18px 48px rgba(42, 32, 24, 0.28);
  text-align: center;
}
.mm-title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.12rem;
  letter-spacing: 0.08em;
  color: var(--shop-brown);
}
.mm-text {
  margin: 12px 0 18px;
  color: var(--shop-muted);
  font-size: 0.8rem;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.member-modal .member-text-btn { margin-top: 12px; }
.member-head { margin-bottom: 6px; }
.member-name { font-family: var(--font-serif); font-size: 1.5rem; letter-spacing: 0.06em; }
.member-name .honorific { font-size: 0.9rem; color: var(--shop-brown); margin-left: 10px; letter-spacing: 0.1em; }
.member-meta { margin-top: 10px; font-size: 0.74rem; color: var(--shop-muted); letter-spacing: 0.06em; }
.member-meta span + span::before { content: "·"; margin: 0 9px; }
.balance-block { margin-top: 46px; }
.balance-label { font-size: 0.74rem; letter-spacing: 0.24em; color: var(--shop-brown); }
.balance-num {
  margin-top: 12px;
  font-family: var(--font-serif);
  font-size: 3.3rem; line-height: 1.15;
  letter-spacing: 0.01em;
  color: var(--shop-ink);
  font-variant-numeric: tabular-nums;
}
.balance-num .yen { font-size: 1.7rem; margin-right: 8px; color: var(--shop-brown); }
.balance-sub {
  margin-top: 20px; padding-top: 16px;
  border-top: 1px solid var(--shop-border);
  display: flex; gap: 26px;
  font-size: 0.76rem; color: var(--shop-brown);
}
@supports not (gap: 1px) {
  .balance-sub > * + * {
    margin-left: 26px;
  }
}
.balance-sub b { font-weight: 500; color: var(--shop-ink); font-variant-numeric: tabular-nums; margin-left: 6px; }
.balance-sub .disc { color: var(--shop-clay); }
.ledger-entry {
  margin-top: 40px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 2px;
  border-top: 1px solid var(--shop-border);
  border-bottom: 1px solid var(--shop-border);
  background: none; border-left: none; border-right: none;
  width: 100%; text-align: left;
  color: var(--shop-ink);
  transition: background var(--shop-dur) var(--shop-ease);
}
.ledger-entry:hover { background: var(--shop-card); }
.ledger-entry .le-t { font-family: var(--font-serif); font-size: 0.98rem; letter-spacing: 0.1em; }
.ledger-entry .le-d { margin-top: 5px; font-size: 0.72rem; color: var(--shop-muted); }
.ledger-entry .le-arrow { color: var(--shop-brown); flex: none; margin-left: 12px; }
.member-home-foot { margin-top: auto; padding: 26px 0 8px; text-align: center; }
.member-home-foot .member-quiet { letter-spacing: 0.06em; }

/* P2 新会员欢迎行（零余额不显得空） */
.welcome-line { margin-top: 22px; font-size: 0.78rem; line-height: 1.9; color: var(--shop-brown); }

/* ---------- P2 茶烟背景层 ---------- */
img.p2-art, canvas.p2-art {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center bottom;
  opacity: 0.7;
  pointer-events: none;
  z-index: 0;
}
@supports not (inset: 0) {
img.p2-art, canvas.p2-art {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
/* 静态 img 仅作兜底，不做变换动画（变换会撑出滚动区）；动效由着色器承担 */
.member-home > *:not(.p2-art) { position: relative; z-index: 1; }
.member-home .member-home-foot .member-quiet { color: var(--shop-brown); }

/* ---------- P3 账户动态 ---------- */
.member-list-head { margin-bottom: 8px; }
.member-list-head .member-h-title { font-size: 1.3rem; }
.month-group { margin-top: 22px; }
.month-label {
  font-size: 0.7rem; letter-spacing: 0.2em; color: var(--shop-muted);
  padding-bottom: 8px;
}
.tx {
  display: flex; align-items: baseline; gap: 14px;
  padding: 15px 2px;
  border-top: 1px solid var(--shop-border);
}
@supports not (gap: 1px) {
  .tx > * + * {
    margin-left: 14px;
  }
}
.tx .tx-kind { flex: none; width: 62px; font-size: 0.82rem; color: var(--shop-ink); letter-spacing: 0.04em; }
.tx .tx-mid { flex: 1; min-width: 0; }
.tx .tx-time { font-size: 0.72rem; color: var(--shop-muted); font-variant-numeric: tabular-nums; }
.tx .tx-note { margin-top: 4px; font-size: 0.72rem; color: var(--shop-brown); line-height: 1.6; }
.tx .tx-amt { flex: none; text-align: right; font-variant-numeric: tabular-nums; }
.tx .tx-amt .a { font-size: 0.95rem; font-weight: 500; color: var(--shop-ink); }
.tx .tx-amt .a.neg { color: var(--shop-cinnabar); }
.tx .tx-amt .b { margin-top: 4px; font-size: 0.68rem; color: var(--shop-muted); }
.member-load-more {
  margin: 26px auto 8px;
  background: none; border: none;
  color: var(--shop-brown);
  font-size: 0.78rem; letter-spacing: 0.12em;
  padding: 12px 18px;
  border-bottom: 1px solid transparent;
  transition: color var(--shop-dur) var(--shop-ease);
}
.member-load-more:hover { color: var(--shop-ink); border-bottom-color: var(--shop-ink); }
.member-list-end { text-align: center; font-size: 0.7rem; color: var(--shop-muted); letter-spacing: 0.16em; padding: 20px 0 6px; }

/* P3 页头右侧：历史记录小入口（仅老会员） */
.p3-head-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
@supports not (gap: 1px) {
  .p3-head-row > * + * {
    margin-left: 16px;
  }
}
.hist-link {
  flex: none;
  background: none; border: none;
  padding: 12px 2px;
  font-size: 0.72rem; letter-spacing: 0.1em;
  color: var(--shop-muted);
  border-bottom: 1px solid transparent;
  transition: color var(--shop-dur) var(--shop-ease), border-color var(--shop-dur) var(--shop-ease);
}
.hist-link:hover { color: var(--shop-brown); border-bottom-color: var(--shop-brown); }

/* ---------- P5 历史记录 ---------- */
.hist-tabs {
  display: flex; gap: 28px;
  margin-top: 24px;
  border-bottom: 1px solid var(--shop-border);
}
@supports not (gap: 1px) {
  .hist-tabs > * + * {
    margin-left: 28px;
  }
}
.hist-tab {
  background: none; border: none;
  padding: 10px 2px;
  font-size: 0.85rem; letter-spacing: 0.12em;
  color: var(--shop-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color var(--shop-dur) var(--shop-ease), border-color var(--shop-dur) var(--shop-ease);
}
.hist-tab:hover { color: var(--shop-brown); }
.hist-tab.on { color: var(--shop-ink); border-bottom-color: var(--shop-ink); }
.hx {
  display: flex; align-items: baseline; gap: 14px;
  padding: 15px 2px;
  border-top: 1px solid var(--shop-border);
}
@supports not (gap: 1px) {
  .hx > * + * {
    margin-left: 14px;
  }
}
.hist-list .hx:first-child { border-top: none; }
.hx .hx-date { flex: none; width: 78px; font-size: 0.74rem; color: var(--shop-muted); font-variant-numeric: tabular-nums; }
.hx .hx-mid { flex: 1; min-width: 0; }
.hx .hx-name { font-size: 0.82rem; color: var(--shop-ink); line-height: 1.5; }
.hx .hx-meta { margin-top: 4px; font-size: 0.7rem; color: var(--shop-muted); font-variant-numeric: tabular-nums; line-height: 1.6; }
.hx .hx-note { margin-top: 4px; font-size: 0.72rem; color: var(--shop-brown); line-height: 1.6; }
.hx .hx-amt { flex: none; text-align: right; font-variant-numeric: tabular-nums; }
.hx .hx-amt .a { font-size: 0.95rem; font-weight: 500; color: var(--shop-ink); }
.hx .hx-amt .a.neg { color: var(--shop-cinnabar); }
.hx-empty { text-align: center; padding: 66px 24px 60px; }
.hx-empty .hx-empty-t { font-family: var(--font-serif); font-size: 1rem; letter-spacing: 0.12em; color: var(--shop-brown); }
.hx-empty .hx-empty-d { margin-top: 10px; font-size: 0.72rem; color: var(--shop-muted); line-height: 1.8; }
/* 空态落叶小景：径向渐隐融进页面底色，无矩形边界 */
.hx-empty .hx-leaf {
  width: 148px; height: 148px; object-fit: cover; display: block;
  margin: 0 auto 22px;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, black 55%, transparent 78%);
  mask-image: radial-gradient(circle at 50% 50%, black 55%, transparent 78%);
}

/* ---------- P4 空态与异常态 ---------- */
.member-state-wrap { margin-top: 44px; text-align: center; }
.member-state-wrap .member-h-title { font-size: 1.4rem; }
.member-state-wrap .member-lead { margin-left: auto; margin-right: auto; }
.member-state-wrap .member-primary { max-width: 280px; margin-left: auto; margin-right: auto; }
.member-state-wrap .member-quiet { margin-top: 18px; }
.state-mark {
  width: 52px; height: 52px; margin: 0 auto 26px;
  display: grid; place-items: center;
  color: var(--shop-clay);
}

/* 加载中转圈（重试） */
.member-spinner {
  width: 18px; height: 18px;
  border: 2px solid rgba(251, 245, 234, 0.35);
  border-top-color: var(--shop-card);
  border-radius: 50%;
  display: inline-block; vertical-align: -4px; margin-right: 10px;
  animation: member-spin 0.8s linear infinite;
}
@keyframes member-spin { to { transform: rotate(360deg); } }

/* 尊重 prefers-reduced-motion：一切动效静止（茶烟层在 JS 侧不启动） */
@media (prefers-reduced-motion: reduce) {
  .member-shell *, .member-shell *::before, .member-shell *::after {
    animation: none !important;
    transition: none !important;
  }
}

.shop-shell[data-v-44fc4296] {
  min-height: 100%;
  background: var(--shop-bg);
  color: var(--shop-ink);
  /* 定稿 body 全局宋体（font-family: "Noto Serif SC", "Songti SC", "STSong", serif）。
   * 自托管 Noto Serif SC 后三端统一渲染；sans 仅用于英文点缀（见各视图 .sec-en 等）。 */
  font-family: var(--font-serif);
}

/* 深棕 header：品牌行 + 导航行。
 * 定稿铁律 6：移动端不做顶栏导航（微信内打开即为定稿纯页面形态，
 * 顶部是各页自带 bar 或 hero）；桌面端保留导航便于浏览。 */
.shop-header[data-v-44fc4296] {
  background: var(--shop-ink);
  color: var(--shop-card);
}
@media (max-width: 480px) {
.shop-header[data-v-44fc4296] {
    display: none;
}
}
.shop-brand-row[data-v-44fc4296] {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 12px;
  padding: 20px 28px 14px;
}
@supports not (gap: 1px) {
.shop-brand-row[data-v-44fc4296] > * + * {
    margin-left: 12px;
}
}
.shop-brand[data-v-44fc4296] {
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.42em;
  text-indent: 0.42em;
  background: none;
  border: none;
  color: var(--shop-card);
  cursor: pointer;
  padding: 0;
}
.shop-brand-en[data-v-44fc4296] {
  font-size: 0.56rem;
  letter-spacing: 0.3em;
  color: rgba(251, 245, 234, 0.62);
  /* 英文小字点缀用 sans（定稿惯例） */
  font-family: var(--font-sans);
}

/* 导航条：横向滚动（移动端优先），active 陶土 */
.shop-nav[data-v-44fc4296] {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 6px 22px 14px;
  overflow-x: auto;
  scrollbar-width: none;
}
@supports not (gap: 1px) {
.shop-nav[data-v-44fc4296] > * + * {
    margin-left: 22px;
}
}
.shop-nav[data-v-44fc4296]::-webkit-scrollbar {
  display: none;
}
.nav-links[data-v-44fc4296] {
  display: flex;
  gap: 22px;
  flex: 0 0 auto;
}
@supports not (gap: 1px) {
.nav-links[data-v-44fc4296] > * + * {
    margin-left: 22px;
}
}

/* B-132 桌面（≥744）：导航项整体居中 */
@media (min-width: 744px) {
.shop-nav[data-v-44fc4296] {
    justify-content: center;
    padding: 6px 48px 14px;
}
.nav-links[data-v-44fc4296] {
    margin: 0;
}
}
.shop-nav-item[data-v-44fc4296] {
  flex: 0 0 auto;
  padding: 6px 0 8px;
  background: none;
  border: none;
  font-size: 0.74rem;
  letter-spacing: 0.18em;
  color: rgba(251, 245, 234, 0.72);
  cursor: pointer;
  position: relative;
  font-family: var(--font-sans);
  transition: color var(--shop-dur) var(--shop-ease);
}
.shop-nav-item.on[data-v-44fc4296] {
  color: var(--shop-card);
}
.shop-nav-item.on[data-v-44fc4296]::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 0;
  height: 2px;
  background: var(--shop-clay);
}
.shop-main[data-v-44fc4296] {
  min-height: 60vh;
}
.shop-todo[data-v-44fc4296] {
  padding: 72px 28px;
  text-align: center;
}
.shop-todo-title[data-v-44fc4296] {
  font-size: 1rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  color: var(--shop-ink);
  margin-bottom: 12px;
}
.shop-todo-sub[data-v-44fc4296] {
  font-size: 0.7rem;
  color: var(--shop-muted);
  letter-spacing: 0.14em;
}

/* 深棕 footer：工作微信引导 */
.shop-footer[data-v-44fc4296] {
  background: var(--shop-ink);
  color: var(--shop-card);
  text-align: center;
  padding: 40px 28px 44px;
}
.shop-footer-title[data-v-44fc4296] {
  font-size: 0.9rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  margin-bottom: 10px;
}
.shop-footer-muted[data-v-44fc4296] {
  font-size: 0.64rem;
  color: rgba(251, 245, 234, 0.55);
  letter-spacing: 0.12em;
}

/* ICP 备案号：小字米白，弱化但清晰可查，hover 陶土 */
.shop-footer-icp[data-v-44fc4296] {
  margin-top: 16px;
}
.shop-footer-icp a[data-v-44fc4296] {
  font-size: 0.6rem;
  color: rgba(251, 245, 234, 0.5);
  letter-spacing: 0.1em;
  text-decoration: none;
  /* 英文数字小字用 sans（定稿惯例） */
  font-family: var(--font-sans);
  transition: color var(--shop-dur) var(--shop-ease);
}
.shop-footer-icp a[data-v-44fc4296]:hover {
  color: var(--shop-clay);
}
.serif[data-v-44fc4296] {
  font-family: var(--font-serif);
}

html.wx .shop-footer {
  padding: 32px 24px 36px;
}
html.wx .shop-footer-title {
  font-size: 0.84rem;
  margin-bottom: 8px;
}
html.wx .shop-footer-muted {
  font-size: 0.58rem;
}
html.wx .shop-footer-icp {
  margin-top: 12px;
}
html.wx .shop-footer-icp a {
  font-size: 0.54rem;
}

.pc-brand-logo[data-v-04956e87] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  color: var(--paper-ink);
}@supports not (gap: 1px) {
.pc-brand-logo[data-v-04956e87] > * + * {
    margin-top: 3px;
}
}
.pc-brand-logo svg[data-v-04956e87] {
  display: block;
}
.pc-brand-logo-name[data-v-04956e87] {
  font-family: var(--font-display);
  font-size: var(--fs-micro);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 2px;
  text-indent: 2px;
  color: var(--paper-ink);
}

.login-stage[data-v-b2dc2f14] {
  min-height: 100vh;
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  position: relative;
}
.login-stage[data-v-b2dc2f14]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2000;
  pointer-events: none;
  opacity: 0.55;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0.045 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.login-stage[data-v-b2dc2f14]::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.login-box-outer[data-v-b2dc2f14] {
  display: grid;
  place-items: center;
  padding: 48px 24px;
}
.login-box[data-v-b2dc2f14] {
  width: min(400px, 100%);
}
.brand[data-v-b2dc2f14] {
  text-align: center;
  margin-bottom: 28px;
  position: relative;
  z-index: 1;
}
.brand-mark[data-v-b2dc2f14] {
  width: 52px;
  height: 52px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ink-card);
  color: var(--paper-ink);
  border-radius: 14px;
}
.brand h1[data-v-b2dc2f14] {
  margin: 0;
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 2px;
}
.brand p[data-v-b2dc2f14] {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: var(--fs-aux);
}
.login-card[data-v-b2dc2f14] {
  position: relative;
  z-index: 1;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 28px;
  box-shadow: var(--shadow-card, 0 3px 14px rgba(67, 53, 43, 0.06));
  box-shadow: var(--shadow-card, 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent));
}
.login-card h2[data-v-b2dc2f14] {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-title);
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 1px;
}
.card-sub[data-v-b2dc2f14] {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: var(--fs-aux);
}
.banner[data-v-b2dc2f14] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 11px 14px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 18px;
  border: 1px solid var(--border);
  background: var(--soft);
  color: var(--fg);
}
@supports not (gap: 1px) {
.banner[data-v-b2dc2f14] > * + * {
    margin-left: 10px;
}
}
.banner .b-ic[data-v-b2dc2f14] {
  flex: none;
  width: 16px;
  text-align: center;
  font-weight: 700;
}
.banner.warn[data-v-b2dc2f14] {
  background: var(--soft-cinnabar);
  border-color: rgba(170, 77, 48, 0.3);
  border-color: color-mix(in oklab, var(--cinnabar) 30%, transparent);
  color: var(--cinnabar);
}
.banner.warn .b-ic[data-v-b2dc2f14] {
  color: var(--cinnabar);
}
.banner small[data-v-b2dc2f14] {
  display: block;
  color: var(--muted);
  font-size: var(--fs-aux);
  margin-top: 2px;
}
.login-form[data-v-b2dc2f14] {
  display: flex;
  flex-direction: column;
  gap: 0;
}
@supports not (gap: 1px) {
.login-form[data-v-b2dc2f14] > * + * {
    margin-top: 0;
}
}
.field[data-v-b2dc2f14] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
@supports not (gap: 1px) {
.field[data-v-b2dc2f14] > * + * {
    margin-top: 6px;
}
}
.field label[data-v-b2dc2f14] {
  font-size: var(--fs-aux);
  color: var(--muted);
}
.login-input[data-v-b2dc2f14] {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-section);
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.login-input[data-v-b2dc2f14]::placeholder {
  color: var(--muted-2);
}
.login-input[data-v-b2dc2f14]:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--soft-green);
}
/* 乙 · 器物手感按钮：2px 底厚，按下下沉 1px */
.login-btn[data-v-b2dc2f14] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-bottom-width: 2px;
  border-bottom-color: #4F2E1B;
  border-bottom-color: color-mix(in oklab, var(--accent) 60%, black);
  border-radius: 10px;
  background: var(--accent);
  color: var(--paper-ink);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  transition: background 0.16s ease, transform 0.16s ease;
}
.login-btn[data-v-b2dc2f14]:hover:not(:disabled) {
  background: #885334;
  background: color-mix(in oklab, var(--accent) 88%, black);
}
.login-btn[data-v-b2dc2f14]:active:not(:disabled) {
  transform: translateY(1px);
}
.login-btn[data-v-b2dc2f14]:disabled {
  background: var(--soft);
  color: var(--muted);
  border-color: var(--border);
  border-bottom-color: var(--border);
  cursor: not-allowed;
  font-weight: 500;
}
.login-btn[data-v-b2dc2f14]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.req-note[data-v-b2dc2f14] {
  margin: -8px 0 16px;
  font-size: var(--fs-aux);
  color: var(--muted);
}
.form-foot[data-v-b2dc2f14] {
  margin-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.meta[data-v-b2dc2f14] {
  font-family: var(--font-mono);
  font-size: var(--fs-aux);
  color: var(--muted);
}
.pagefoot[data-v-b2dc2f14] {
  position: relative;
  z-index: 1;
  padding: 20px;
  text-align: center;
  color: var(--muted);
  font-size: 12.5px;
  border-top: 1px solid var(--border);
  background: var(--surface);
}

.mobile-shell[data-v-87eec2a4] { display: flex; flex-direction: column; height: 100%; background: var(--color-reservation-bg); font-family: var(--font-sans);
}
.shell-content[data-v-87eec2a4] { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden;
}
.shell-page[data-v-87eec2a4] { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
}
.shell-page[data-v-87eec2a4] > * { flex: 1 1 auto; min-height: 0;
}
.shell-today-return[data-v-87eec2a4] { flex: 0 0 auto; min-height: var(--touch-min); padding: 0 16px; border: 0; border-bottom: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface); color: var(--color-reservation-accent); font: inherit; font-size: 13px; font-weight: 650; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.shell-today-return[data-v-87eec2a4]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: -2px;
}
.shell-today-return[data-v-87eec2a4]:active { opacity: .68;
}
.shell-bottom-nav[data-v-87eec2a4] { flex: 0 0 auto; display: flex; height: 56px; padding-bottom: env(safe-area-inset-bottom, 0px); border-top: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface); z-index: 20;
}
.shell-nav-item[data-v-87eec2a4] { position: relative; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: var(--touch-min); padding: 0; border: 0; background: transparent; color: var(--color-reservation-muted); font: inherit; font-size: 13px; cursor: pointer; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; user-select: none; transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
}
@supports not (gap: 1px) {
.shell-nav-item[data-v-87eec2a4] > * + * {
    margin-top: 2px;
}
}
.shell-nav-item svg[data-v-87eec2a4] { display: block; width: 18px; height: 18px; transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
}
.shell-nav-item.active[data-v-87eec2a4] { color: var(--color-reservation-accent); font-weight: 650;
}
/* 顶部短横标已撤（老爷 2026-09-29：图标文字已变色，横条多余且可能与页面按钮重叠）。 */
.shell-nav-item.active svg[data-v-87eec2a4] { transform: translateY(-2px);
}
.shell-nav-badge[data-v-87eec2a4] { position: absolute; top: 6px; right: calc(50% - 31px); min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--color-reservation-cinnabar); color: var(--color-reservation-surface); font-size: 10px; font-weight: 600; line-height: 16px; text-align: center;
}
.shell-nav-item[data-v-87eec2a4]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: -2px;
}
.shell-nav-item[data-v-87eec2a4]:active { opacity: .65; transform: scale(0.95);
}

/* "我的"导航项，不参与二级导航背景 */
.shell-my-nav[data-v-87eec2a4] { flex: 0 0 60px; margin-left: 4px;
}

/* 一级补位滑入（2026-09-29 对齐小程序）：从点单模块返回时四项从左缘滑入，
 * 与 pos-shell 四格收回右侧成对；「我的」锚点不动。 */
.shell-slots[data-v-87eec2a4] { position: relative; flex: 1; overflow: hidden;
}
.shell-items[data-v-87eec2a4] { display: flex; height: 100%;
}
@keyframes shell-items-in-87eec2a4 {
from { transform: translateX(-100%); opacity: .4;
}
to { transform: translateX(0); opacity: 1;
}
}
.shell-nav-fresh .shell-items[data-v-87eec2a4] { animation: shell-items-in-87eec2a4 280ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
/* 任务页仅让既有壳跟随任务中心已加载的语义令牌，不改动其他移动模块。 */
.mobile-shell.task-shell[data-v-87eec2a4] { background: var(--task-bg); font-family: var(--task-font-body);
}
.task-shell .shell-bottom-nav[data-v-87eec2a4] { border-color: var(--task-border); background: var(--task-surface);
}
.task-shell .shell-nav-item[data-v-87eec2a4] { color: var(--task-muted);
}
.task-shell .shell-nav-item.active[data-v-87eec2a4] { color: var(--task-accent);
}
/* B-277：任务字体只属于任务页内容区；底栏是壳部件，这里补一次字体回落，使五个标签在所有页面同字体。 */
.task-shell .shell-bottom-nav[data-v-87eec2a4] { font-family: var(--font-sans);
}
/* B-277 补：从今日页深链进入时顶部「‹ 今日」返回按钮同属壳部件，一并回落统一字体。 */
.task-shell .shell-today-return[data-v-87eec2a4] { font-family: var(--font-sans);
}

/* B-379：日用与器物工作区——「‹ 今日」是应用导航部件（原型手机壳内无此件），
   保留但对齐该模块 v3 暖色的次要文字规格（12.5px/500 暖灰 + 米纸底）。
   仅作用于 /app/ingredients*，不影响其他深链模块。 */
.inventory-shell .shell-today-return[data-v-87eec2a4] {
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 500;
  min-height: 40px;
  color: #82766C;
  color: oklch(0.575 0.022 65); /* v3 --muted */
  background: #F2ECE0;
  background: oklch(0.945 0.018 85); /* v3 --bg */
}
.inventory-shell .shell-today-return[data-v-87eec2a4]:hover,
.inventory-shell .shell-today-return[data-v-87eec2a4]:active { background: #F4F1E8; background: oklch(0.958 0.012 88); opacity: 1;
}

.pc-rail[data-v-a99aae88] {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 64px;
  z-index: 80;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 0;
  gap: 2px;
  background: var(--ink-card);
  font-family: var(--font-body);
}@supports not (gap: 1px) {
.pc-rail[data-v-a99aae88] > * + * {
    margin-top: 2px;
}
}
/* B-289：全部条目自然高度 = 10×56 条目 + 品牌位 48 + 3×17 分隔线 + 组内间距 14 + rail 间距 12 + 上下 padding 24 = 709px。
   仅当窗口高度低于该值时才启用滚动（如 1366×768 的浏览器视口），保证「管理运营」组仍可达；
   ≥709px 不建立滚动容器，悬停提示条（绝对定位在 rail 右缘外）不被 overflow 裁剪。
   条目几何若变，此阈值需同步重算。 */
@media (max-height: 709px) {
.pc-rail[data-v-a99aae88] {
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(251, 247, 236, 0.16) transparent;
    scrollbar-color: color-mix(in oklab, var(--paper-ink) 16%, transparent) transparent;
}
.pc-rail[data-v-a99aae88]::-webkit-scrollbar {
    width: 6px;
}
.pc-rail[data-v-a99aae88]::-webkit-scrollbar-track {
    background: transparent;
}
.pc-rail[data-v-a99aae88]::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background: rgba(251, 247, 236, 0.16);
    background: color-mix(in oklab, var(--paper-ink) 16%, transparent);
}
}
.pc-rail-logo[data-v-a99aae88] {
  width: 56px;
  display: flex;
  justify-content: center;
  /* 品牌位下方间距由 .pc-rail-logo-sep 自带 margin:8px 0 控制（与分组分隔线一致） */
  margin-bottom: 0;
  flex: none;
}
.pc-rail-logo-sep[data-v-a99aae88] {
  width: 28px;
  height: 1px;
  background: rgba(251, 247, 236, 0.16);
  background: color-mix(in oklab, var(--paper-ink) 16%, transparent);
  margin: 8px 0;
  flex: none;
}
.pc-rail-group[data-v-a99aae88] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  width: 100%;
}
@supports not (gap: 1px) {
.pc-rail-group[data-v-a99aae88] > * + * {
    margin-top: 2px;
}
}
/* B-288：底部分组自身不吃剩余空白（与原型 menqian-oa-shell-v2.html 的 .r-sep-bottom 口径同源）——
   只有底部线 .pc-rail-sep--bottom 带 margin-top:auto 吸收全部空白，线紧贴「管理运营」组、空白在线上方。
   切勿在此恢复 margin-top:auto：flex 中两条 auto margin 会平分空白，线悬在中间。 */
.pc-rail-sep[data-v-a99aae88] {
  width: 28px;
  height: 1px;
  background: rgba(251, 247, 236, 0.16);
  background: color-mix(in oklab, var(--paper-ink) 16%, transparent);
  margin: 8px 0;
  flex: none;
}
.pc-rail-sep--bottom[data-v-a99aae88] {
  margin-top: auto;
}
.pc-rail-btn[data-v-a99aae88] {
  position: relative;
  width: 48px;
  /* B-289：48→56 容纳图标（21px）+ 4px 间距 + 一行 11px 名称；48×56 ≥ 触控目标 44×44 */
  height: 56px;
  border: 0;
  border-radius: 11px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 0;
  background: none;
  color: var(--ink-soft);
  cursor: pointer;
  flex: none;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}
@supports not (gap: 1px) {
.pc-rail-btn[data-v-a99aae88] > * + * {
    margin-top: 4px;
}
}
.pc-rail-icon[data-v-a99aae88] {
  display: grid;
  width: 21px;
  height: 21px;
  place-items: center;
  line-height: 0;
}
/* v-html 注入的 SVG 不带本 SFC 的 scope attribute，必须穿透作用域设置尺寸。 */
.pc-rail-icon[data-v-a99aae88] svg {
  display: block;
  width: 21px;
  height: 21px;
}
/* B-289：一级项名称常显（门店触摸屏无鼠标悬停；颜色随按钮继承，不新增色值）。
   名称栏 56px：rail 64px 内左右各留 4px，5 字名（员工账号下「日用与器物」退化直达）可完整显示，
   2 字名居中显示观感不变；超长名仍按 ellipsis 截断。 */
.pc-rail-label[data-v-a99aae88] {
  font-size: 11px;
  line-height: 1;
  max-width: 56px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}
.pc-rail-btn[data-v-a99aae88]:hover {
  background: rgba(251, 247, 236, 0.08);
  background: color-mix(in oklab, var(--paper-ink) 8%, transparent);
  color: var(--paper-ink);
}
.pc-rail-btn[data-v-a99aae88]:active {
  transform: translateY(1px);
}
.pc-rail-btn.on[data-v-a99aae88] {
  background: rgba(251, 247, 236, 0.13);
  background: color-mix(in oklab, var(--paper-ink) 13%, transparent);
  color: var(--paper-ink);
}
.pc-rail-btn.on[data-v-a99aae88]::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 2px;
  background: var(--accent);
}
.pc-rail-btn.planned[data-v-a99aae88] {
  color: rgba(199, 184, 166, 0.55);
  color: color-mix(in oklab, var(--ink-soft) 55%, transparent);
  cursor: not-allowed;
}
.pc-rail-btn.planned[data-v-a99aae88]:hover {
  background: none;
  color: rgba(199, 184, 166, 0.55);
  color: color-mix(in oklab, var(--ink-soft) 55%, transparent);
}
.pc-rail-btn.planned[data-v-a99aae88]:active {
  transform: none;
}
.pc-rail-btn[data-v-a99aae88]:focus-visible {
  outline: 2px solid var(--paper-ink);
  outline-offset: 2px;
}
.pc-rail-pdot[data-v-a99aae88] {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  border: 1px dashed var(--ink-soft);
}
.pc-rail-tip[data-v-a99aae88] {
  position: absolute;
  left: calc(100% + 8px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--ink-card);
  color: var(--paper-ink);
  font-size: var(--fs-aux);
  padding: 6px 10px;
  border-radius: 7px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.12s ease;
  z-index: 90;
}
.pc-rail-btn:hover .pc-rail-tip[data-v-a99aae88],
.pc-rail-btn:focus-visible .pc-rail-tip[data-v-a99aae88] {
  opacity: 1;
}
.sr-only[data-v-a99aae88] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.pc-flyout[data-v-995ec8df] {
  position: fixed;
  left: 64px;
  top: 0;
  bottom: 0;
  width: 236px;
  z-index: 70;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border-right: 1px solid var(--border);
  transform: translateX(-110%);
  transition: transform 0.22s cubic-bezier(0.3, 0.9, 0.4, 1);
  font-family: var(--font-body);
  visibility: hidden;
}
.pc-flyout.open[data-v-995ec8df] {
  transform: none;
  visibility: visible;
}
.pc-flyout-head[data-v-995ec8df] {
  position: relative;
  padding: 20px 44px 12px 18px;
  border-bottom: 1px solid var(--border);
}
.pc-flyout-group[data-v-995ec8df] {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--muted-2);
}
.pc-flyout-title[data-v-995ec8df] {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 1px;
  margin-top: 5px;
  color: var(--fg);
}
.pc-flyout-close[data-v-995ec8df] {
  position: absolute;
  top: 14px;
  right: 12px;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  color: var(--muted);
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease;
}
.pc-flyout-close[data-v-995ec8df]:hover {
  background: var(--soft-green);
  color: var(--fg);
}
.pc-flyout-close[data-v-995ec8df]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-flyout-list[data-v-995ec8df] {
  padding: 8px;
  overflow: auto;
}
.pc-flyout-seg-line[data-v-995ec8df] {
  height: 1px;
  margin: 6px 10px;
  background: var(--border);
  opacity: 0.55;
}
.pc-flyout-seg-head[data-v-995ec8df] {
  padding: 10px 12px 4px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--muted-2);
}
.pc-flyout-seg-head + .pc-flyout-row[data-v-995ec8df] {
  margin-top: 2px;
}
.pc-flyout-row[data-v-995ec8df] {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--fg);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: background 0.16s ease;
}
@supports not (gap: 1px) {
.pc-flyout-row[data-v-995ec8df] > * + * {
    margin-left: 8px;
}
}
.pc-flyout-row[data-v-995ec8df]:hover {
  background: var(--soft-green);
}
.pc-flyout-row[data-v-995ec8df]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-flyout-row.on[data-v-995ec8df] {
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
  box-shadow: inset 2.5px 0 0 var(--accent);
}
.pc-flyout-row.planned[data-v-995ec8df] {
  color: var(--muted-2);
  cursor: not-allowed;
}
.pc-flyout-row.planned[data-v-995ec8df]:hover {
  background: none;
}
.pc-flyout-tag-plan[data-v-995ec8df] {
  margin-left: auto;
  font-size: 10px;
  line-height: 1;
  color: var(--muted-2);
  border: 1px dashed var(--border);
  border-radius: 3px;
  padding: 2px 4px;
}
.pc-flyout-tag-full[data-v-995ec8df] {
  margin-left: auto;
  font-size: 10px;
  line-height: 1;
  color: var(--accent);
  border: 1px solid rgba(162, 100, 64, 0.45);
  border: 1px solid color-mix(in oklab, var(--accent) 45%, transparent);
  border-radius: 3px;
  padding: 2px 4px;
}
.pc-flyout-foot[data-v-995ec8df] {
  margin-top: auto;
  padding: 10px 18px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-micro);
  color: var(--muted-2);
  line-height: 1.6;
}

.pc-store-chip[data-v-6c843e38] {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--fg);
  font-family: var(--font-body);
  font-size: var(--fs-body);
}@supports not (gap: 1px) {
.pc-store-chip[data-v-6c843e38] > * + * {
    margin-left: 8px;
}
}
.pc-store-chip--switchable[data-v-6c843e38] {
  cursor: pointer;
  transition: background 0.16s ease;
}
.pc-store-chip--switchable[data-v-6c843e38]:hover {
  background: var(--soft-green);
}
.pc-store-chip--switchable[data-v-6c843e38]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-store-chip--busy[data-v-6c843e38] {
  cursor: default;
  color: var(--muted);
}
.pc-store-dot[data-v-6c843e38] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--st-served); /* 苔色：当前店铺在线/同步正常（同点单台 sync-dot） */
  flex: none;
}
.pc-store-name[data-v-6c843e38] {
  font-weight: 600;
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pc-store-chev[data-v-6c843e38] {
  color: var(--muted-2);
  font-size: var(--fs-micro);
}
.pc-store-spin[data-v-6c843e38] {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex: none;
  border: 2px solid var(--border);
  border-top-color: var(--accent);
  animation: pc-store-rot-6c843e38 0.8s linear infinite;
}
@keyframes pc-store-rot-6c843e38 {
to {
    transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: reduce) {
.pc-store-spin[data-v-6c843e38] {
    animation-duration: 2.4s;
}
}

.pc-acct[data-v-af7246f1] {
  position: relative;
  font-family: var(--font-body);
}
.pc-acct-btn[data-v-af7246f1] {
  display: flex;
  align-items: center;
  gap: 9px;
  height: 38px;
  padding: 0 6px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--fg);
  cursor: pointer;
  transition: background 0.16s ease;
}
@supports not (gap: 1px) {
.pc-acct-btn[data-v-af7246f1] > * + * {
    margin-left: 9px;
}
}
.pc-acct-btn[data-v-af7246f1]:hover {
  background: var(--soft-green);
}
.pc-acct-btn[data-v-af7246f1]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-acct-avatar[data-v-af7246f1] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ink-card);
  color: var(--paper-ink);
  font-family: var(--font-display);
  font-size: var(--fs-aux);
  font-weight: 600;
  line-height: 1;
  flex: none;
}
.pc-acct-text[data-v-af7246f1] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.15;
}
.pc-acct-name[data-v-af7246f1] {
  font-weight: 600;
  font-size: var(--fs-body);
}
.pc-acct-role[data-v-af7246f1] {
  font-size: var(--fs-micro);
  color: var(--muted);
}
.pc-acct-chev[data-v-af7246f1] {
  color: var(--muted-2);
  font-size: var(--fs-micro);
}
.pc-acct-pop[data-v-af7246f1] {
  position: absolute;
  top: 44px;
  right: 0;
  min-width: 220px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--shadow-pop, 0 14px 36px rgba(67, 53, 43, 0.16));
  box-shadow: var(--shadow-pop, 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent));
  z-index: 60;
}
.pc-acct-cap[data-v-af7246f1] {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--muted-2);
  padding: 8px 12px 4px;
}
.pc-acct-info[data-v-af7246f1] {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: var(--fs-body);
  color: var(--fg);
}
.pc-acct-sep[data-v-af7246f1] {
  height: 1px;
  background: var(--border);
  margin: 5px 8px;
}
.pc-acct-row[data-v-af7246f1] {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  text-align: left;
  padding: 10px 12px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--fg);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: background 0.16s ease;
}
@supports not (gap: 1px) {
.pc-acct-row[data-v-af7246f1] > * + * {
    margin-left: 10px;
}
}
.pc-acct-row[data-v-af7246f1]:hover {
  background: var(--soft-green);
}
.pc-acct-row[data-v-af7246f1]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.pc-switch-veil[data-v-ab7f89fa] {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(67, 53, 43, 0.32);
  background: color-mix(in oklab, var(--fg) 32%, transparent);
  animation: pc-veil-fade-ab7f89fa 0.18s ease;
  font-family: var(--font-body);
}
@supports not (inset: 0) {
.pc-switch-veil[data-v-ab7f89fa] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
@keyframes pc-veil-fade-ab7f89fa {
from {
    opacity: 0;
}
}
.pc-switch-box[data-v-ab7f89fa] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 28px 36px;
  border-radius: var(--r-layer);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-pop, 0 14px 36px rgba(67, 53, 43, 0.16));
  box-shadow: var(--shadow-pop, 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent));
  text-align: center;
}
@supports not (gap: 1px) {
.pc-switch-box[data-v-ab7f89fa] > * + * {
    margin-top: 10px;
}
}
.pc-switch-spin[data-v-ab7f89fa] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 3px solid var(--border);
  border-top-color: var(--accent);
  animation: pc-veil-rot-ab7f89fa 0.8s linear infinite;
}
@keyframes pc-veil-rot-ab7f89fa {
to {
    transform: rotate(360deg);
}
}
.pc-switch-title[data-v-ab7f89fa] {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-section);
  font-weight: 600;
  color: var(--fg);
}
.pc-switch-sub[data-v-ab7f89fa] {
  margin: 0;
  font-size: var(--fs-aux);
  color: var(--muted);
  line-height: 1.7;
}
@media (prefers-reduced-motion: reduce) {
.pc-switch-veil[data-v-ab7f89fa] {
    animation: none;
}
.pc-switch-spin[data-v-ab7f89fa] {
    animation-duration: 2.4s;
}
}

/* 44px 触控目标（可访问性基线），颜色不依赖全局主题变量，组件可独立复用 */
.bell[data-v-1c6e8eeb] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #6b6375;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.bell[data-v-1c6e8eeb]:hover,
.bell[data-v-1c6e8eeb]:focus-visible {
  background: rgba(107, 99, 117, 0.1);
}
.bell[data-v-1c6e8eeb]:focus-visible {
  outline: 2px solid #2d5a4a;
  outline-offset: 2px;
}
.bell-icon[data-v-1c6e8eeb] {
  width: 24px;
  height: 24px;
  fill: currentColor;
}
.badge[data-v-1c6e8eeb] {
  position: absolute;
  top: 2px;
  right: 0;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: #d84315;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
}

.manage-shell-v2[data-v-6a13f65f] {
  min-height: 100vh;
  font-family: var(--font-body);
  color: var(--fg);
  background: var(--bg);
  position: relative;
}
.manage-shell-v2[data-v-6a13f65f]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2000;
  pointer-events: none;
  opacity: 0.55;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0.045 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.manage-shell-v2[data-v-6a13f65f]::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.stage[data-v-6a13f65f] {
  margin-left: 64px;
  height: 100vh;
  display: flex;
  flex-direction: column;
  transition: margin 0.22s cubic-bezier(0.3, 0.9, 0.4, 1);
}
.stage.shift[data-v-6a13f65f] {
  margin-left: calc(64px + 236px);
}
.topbar[data-v-6a13f65f] {
  height: 56px;
  flex: none;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 20px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: relative;
  z-index: 40;
}
@supports not (gap: 1px) {
.topbar[data-v-6a13f65f] > * + * {
    margin-left: 14px;
}
}
.pos-text[data-v-6a13f65f] {
  font-family: var(--font-mono);
  font-size: var(--fs-aux);
  color: var(--muted-2);
  letter-spacing: 0.5px;
}
.sp[data-v-6a13f65f] {
  flex: 1;
}
.store-area[data-v-6a13f65f] {
  position: relative;
}
.store-pop[data-v-6a13f65f] {
  position: absolute;
  top: 44px;
  right: 0;
  min-width: 240px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--shadow-pop, 0 14px 36px rgba(67, 53, 43, 0.16));
  box-shadow: var(--shadow-pop, 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent));
  z-index: 60;
}
.pop-cap[data-v-6a13f65f] {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--muted-2);
  padding: 8px 12px 4px;
}
.pop-row[data-v-6a13f65f] {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  text-align: left;
  padding: 10px 12px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--fg);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: background 0.16s ease;
}
@supports not (gap: 1px) {
.pop-row[data-v-6a13f65f] > * + * {
    margin-left: 10px;
}
}
.pop-row[data-v-6a13f65f]:hover {
  background: var(--soft-green);
}
.pop-row.cur[data-v-6a13f65f] {
  background: var(--soft-green);
}
.pop-row[data-v-6a13f65f]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pop-dot[data-v-6a13f65f] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--border);
  flex: none;
}
.pop-dot.on[data-v-6a13f65f] {
  background: var(--st-served);
}
.pop-sub[data-v-6a13f65f] {
  margin-left: auto;
  font-size: var(--fs-micro);
  color: var(--muted);
}
.store-banner[data-v-6a13f65f] {
  flex: none;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 20px;
  background: var(--soft-cinnabar);
  border-bottom: 1px solid rgba(170, 77, 48, 0.25);
  border-bottom: 1px solid color-mix(in oklab, var(--cinnabar) 25%, transparent);
  color: var(--cinnabar);
  font-size: 12.5px;
}
@supports not (gap: 1px) {
.store-banner[data-v-6a13f65f] > * + * {
    margin-left: 10px;
}
}
.banner-ic[data-v-6a13f65f] {
  flex: none;
  font-weight: 700;
}
.banner-act[data-v-6a13f65f] {
  margin-left: auto;
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.banner-act[data-v-6a13f65f] > * + * {
    margin-left: 8px;
}
}
.banner-btn[data-v-6a13f65f] {
  height: 30px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: var(--fs-aux);
  color: var(--cinnabar);
  border: 1px solid rgba(170, 77, 48, 0.45);
  border: 1px solid color-mix(in oklab, var(--cinnabar) 45%, transparent);
  background: none;
  cursor: pointer;
  transition: background 0.16s ease, transform 0.16s ease;
}
.banner-btn[data-v-6a13f65f]:hover {
  background: rgba(170, 77, 48, 0.1);
  background: color-mix(in oklab, var(--cinnabar) 10%, transparent);
}
.banner-btn[data-v-6a13f65f]:active {
  transform: translateY(1px);
}
.banner-btn[data-v-6a13f65f]:focus-visible {
  outline: 2px solid var(--cinnabar);
  outline-offset: 2px;
}
.bell-area[data-v-6a13f65f] {
  position: relative;
  color: var(--muted);
}
.bell-pop[data-v-6a13f65f] {
  position: absolute;
  top: 48px;
  right: 0;
  width: 340px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--shadow-pop, 0 14px 36px rgba(67, 53, 43, 0.16));
  box-shadow: var(--shadow-pop, 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent));
  z-index: 60;
}
.bell-pop-state[data-v-6a13f65f] {
  padding: 24px 12px;
  text-align: center;
  font-size: var(--fs-aux);
  color: var(--muted-2);
}
.bell-pop-row[data-v-6a13f65f] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--muted);
  font-size: var(--fs-body);
  text-align: left;
  cursor: pointer;
  transition: background 0.16s ease;
}
@supports not (gap: 1px) {
.bell-pop-row[data-v-6a13f65f] > * + * {
    margin-left: 8px;
}
}
.bell-pop-row[data-v-6a13f65f]:hover {
  background: var(--soft-green);
}
.bell-pop-row.unread[data-v-6a13f65f] {
  color: var(--fg);
  font-weight: 600;
}
.bell-pop-kind[data-v-6a13f65f] {
  flex: none;
  padding: 2px 6px;
  border-radius: 6px;
  background: var(--soft-green);
  color: var(--accent);
  font-size: 11px;
}
.bell-pop-title[data-v-6a13f65f] {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bell-pop-time[data-v-6a13f65f] {
  flex: none;
  font-size: var(--fs-micro);
  color: var(--muted-2);
}
.bell-pop-all[data-v-6a13f65f] {
  display: block;
  width: 100%;
  min-height: 40px;
  margin-top: 4px;
  padding: 8px 10px;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0 0 8px 8px;
  background: none;
  color: var(--accent);
  font-size: var(--fs-body);
  text-align: center;
  cursor: pointer;
}
.bell-pop-all[data-v-6a13f65f]:hover {
  background: var(--soft-green);
}
.content[data-v-6a13f65f] {
  flex: 1;
  overflow: auto;
  /* 顶部 24px 留白放在 .greet-line 上而非滚动容器自身：容器自身的 padding-top
     会把各页 sticky 列头/工具条顶出同样宽的透缝（列表行从缝里穿过去） */
  padding: 0 28px 90px;
}
.greet-line[data-v-6a13f65f] {
  margin: 0 0 14px;
  padding-top: 24px;
  font-size: 12.5px;
  color: var(--muted-2);
}

.platform-shell[data-v-077725ae] { display:flex; min-height:100vh; background:var(--color-lime); color:var(--color-ink); font-family:var(--font-sans);
}
.platform-nav[data-v-077725ae] { flex:0 0 180px; background:var(--color-ink); color:var(--color-paper);
}
.brand[data-v-077725ae] { padding:20px 16px 16px; border-bottom:1px solid rgba(255,255,255,.12);
}
.brand strong[data-v-077725ae],.brand span[data-v-077725ae] { display:block;
}.brand strong[data-v-077725ae] { font-size:18px;
}.brand span[data-v-077725ae] { margin-top:2px; color:var(--color-text-soft); font-size:11px;
}
.platform-nav nav[data-v-077725ae] { padding:12px 8px;
}.platform-nav-item[data-v-077725ae] { width:100%; min-height:44px; padding:10px 12px; border:0; border-radius:var(--radius); color:var(--color-text-soft); background:transparent; text-align:left; cursor:pointer; font:inherit;
}
.platform-nav-item.active[data-v-077725ae] { background:rgba(255,255,255,.12); color:var(--color-paper); font-weight:600;
}
.platform-main[data-v-077725ae] { flex:1; min-width:0; display:flex; flex-direction:column;
}.platform-topbar[data-v-077725ae] { display:flex; align-items:center; gap:16px; height:52px; padding:0 20px; background:var(--color-paper); border-bottom:1px solid var(--color-border); font-weight:600;
}@supports not (gap: 1px) {
.platform-topbar[data-v-077725ae] > * + * {
    margin-left: 16px;
}
}.account[data-v-077725ae] { margin-left:auto; color:var(--color-wood-gray); font-size:13px; font-weight:400;
}.platform-topbar button[data-v-077725ae] { min-height:36px; padding:6px 12px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-paper); color:var(--color-wood-gray); cursor:pointer;
}.platform-content[data-v-077725ae] { flex:1; padding:28px; overflow:auto;
}
@media (max-width:700px) {
.platform-nav[data-v-077725ae] { flex-basis:120px;
}.platform-content[data-v-077725ae] { padding:20px 16px;
}
}

.page[data-v-4c392a42]{max-width:1100px;margin:0 auto}.heading[data-v-4c392a42]{display:flex;justify-content:space-between;margin-bottom:24px}.eyebrow[data-v-4c392a42]{margin:0 0 4px;color:var(--color-green);font-size:11px;letter-spacing:.12em}h1[data-v-4c392a42]{margin:0;font-size:28px}h2[data-v-4c392a42]{font-size:17px}h3[data-v-4c392a42]{font-size:15px}
.workbench[data-v-4c392a42]{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.col[data-v-4c392a42]{padding:20px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.col h2[data-v-4c392a42]{margin:0 0 12px;display:flex;align-items:center;gap:8px}
@supports not (gap: 1px) {
.col h2[data-v-4c392a42] > * + * {
    margin-left: 8px;
}
}
.count[data-v-4c392a42]{min-width:26px;padding:2px 8px;border-radius:999px;background:var(--color-lime);color:var(--color-wood-gray);font-size:13px;font-weight:600;text-align:center}
.col ul[data-v-4c392a42]{padding:0;margin:0;list-style:none}
.col li[data-v-4c392a42]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--color-border)}
@supports not (gap: 1px) {
.col li[data-v-4c392a42] > * + * {
    margin-left: 12px;
}
}
.col li[data-v-4c392a42]:first-child{border-top:0}
.item-main[data-v-4c392a42]{min-width:0}
.item-main strong[data-v-4c392a42]{display:block;font-size:15px}
.item-main small[data-v-4c392a42]{display:block;margin-top:3px;color:var(--color-wood-gray);font-size:12px;line-height:1.6}
.item-main .time[data-v-4c392a42]{font-size:11px}
.col button[data-v-4c392a42]{flex:0 0 auto;min-height:44px;padding:8px 14px;border:1px solid var(--color-green);border-radius:var(--radius);background:var(--color-paper);color:var(--color-green);font-weight:600;cursor:pointer}
.col .empty[data-v-4c392a42]{padding:12px 0}
.followup[data-v-4c392a42]{margin-top:14px;padding:12px 14px;border:1px dashed var(--color-border);border-radius:var(--radius);background:var(--color-lime)}
.followup h3[data-v-4c392a42]{margin:0 0 6px;display:flex;align-items:center;gap:8px;color:var(--color-wood-gray);font-size:13px}
@supports not (gap: 1px) {
.followup h3[data-v-4c392a42] > * + * {
    margin-left: 8px;
}
}
.followup ul[data-v-4c392a42]{padding:0;margin:0;list-style:none}
.followup li[data-v-4c392a42]{padding:8px 0;border-top:1px solid var(--color-border)}
.followup li[data-v-4c392a42]:first-child{border-top:0}
.followup strong[data-v-4c392a42]{font-size:14px}
.count.sub[data-v-4c392a42]{background:var(--color-paper)}
.secondary[data-v-4c392a42]{margin-top:28px;padding-top:8px;border-top:1px dashed var(--color-border)}
.secondary h2[data-v-4c392a42]{color:var(--color-wood-gray);font-size:14px}
.stats[data-v-4c392a42]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stats article[data-v-4c392a42],.recent[data-v-4c392a42]{padding:16px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.stats span[data-v-4c392a42]{display:block;color:var(--color-wood-gray);font-size:13px}.stats strong[data-v-4c392a42]{display:block;margin-top:6px;font-size:26px}
.recent[data-v-4c392a42]{margin-top:12px}.recent ul[data-v-4c392a42]{padding:0;margin:0;list-style:none}.recent li[data-v-4c392a42]{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--color-border)}.recent li[data-v-4c392a42]:first-child{border-top:0}
.muted[data-v-4c392a42]{color:var(--color-wood-gray)}.error[data-v-4c392a42]{padding:12px;background:var(--color-surface-cinnabar);color:var(--color-cinnabar)}
.retry[data-v-4c392a42]{min-height:44px;margin-left:8px;padding:4px 10px;border:1px solid var(--color-cinnabar);border-radius:var(--radius);background:transparent;color:var(--color-cinnabar);cursor:pointer}
@media(max-width:700px){.workbench[data-v-4c392a42]{grid-template-columns:1fr}.stats[data-v-4c392a42]{grid-template-columns:repeat(2,1fr)}.col li[data-v-4c392a42]{flex-wrap:wrap}.col button[data-v-4c392a42]{margin-left:auto}}

.wizard[data-v-783bc643] { display: flex; flex-direction: column; gap: 16px;
}@supports not (gap: 1px) {
.wizard[data-v-783bc643] > * + * {
    margin-top: 16px;
}
}
.steps[data-v-783bc643] { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.steps[data-v-783bc643] > * + * {
    margin-left: 8px;
}
}
.steps li[data-v-783bc643] { display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: var(--radius-pill); font-size: 12px; color: var(--color-wood-gray); background: var(--color-lime);
}
@supports not (gap: 1px) {
.steps li[data-v-783bc643] > * + * {
    margin-left: 6px;
}
}
.steps li.active[data-v-783bc643] { color: var(--color-paper); background: var(--color-green); font-weight: 600;
}
.steps li.done[data-v-783bc643] { color: var(--color-green); background: var(--color-lime);
}
.step-no[data-v-783bc643] { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: rgba(0, 0, 0, 0.08); font-size: 11px;
}
.steps li.active .step-no[data-v-783bc643] { background: rgba(255, 255, 255, 0.25);
}
.step-pane[data-v-783bc643] { display: flex; flex-direction: column; gap: 12px;
}
@supports not (gap: 1px) {
.step-pane[data-v-783bc643] > * + * {
    margin-top: 12px;
}
}
h3[data-v-783bc643] { margin: 0; font-size: 16px; color: var(--color-ink);
}
label[data-v-783bc643] { display: block; font-size: 13px; color: var(--color-wood-gray);
}
input[data-v-783bc643]:not([type="checkbox"]):not([type="radio"]) { display: block; width: 100%; box-sizing: border-box; margin-top: 6px; min-height: 44px; padding: 10px; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-paper); color: var(--color-ink); font: inherit;
}
.mode-field[data-v-783bc643], .pending-box[data-v-783bc643] { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 12px;
}
.mode-field legend[data-v-783bc643], .pending-title[data-v-783bc643] { font-size: 13px; color: var(--color-ink); font-weight: 600; padding: 0 4px;
}
.mode-option[data-v-783bc643], .module-option[data-v-783bc643], .channel-option[data-v-783bc643] { display: flex; align-items: flex-start; gap: 10px; padding: 10px 4px; cursor: pointer;
}
@supports not (gap: 1px) {
.mode-option[data-v-783bc643] > * + *,
.module-option[data-v-783bc643] > * + *,
.channel-option[data-v-783bc643] > * + * {
    margin-left: 10px;
}
}
.mode-option input[data-v-783bc643], .module-option input[data-v-783bc643], .channel-option input[data-v-783bc643] { margin-top: 4px; accent-color: var(--color-green); width: 16px; height: 16px;
}
.mode-option span[data-v-783bc643], .module-option span[data-v-783bc643], .channel-option span[data-v-783bc643] { display: flex; flex-direction: column; gap: 2px; color: var(--color-ink); font-size: 14px;
}
@supports not (gap: 1px) {
.mode-option span[data-v-783bc643] > * + *,
.module-option span[data-v-783bc643] > * + *,
.channel-option span[data-v-783bc643] > * + * {
    margin-top: 2px;
}
}
.mode-option small[data-v-783bc643], .module-option small[data-v-783bc643], .channel-option small[data-v-783bc643] { color: var(--color-wood-gray); font-size: 12px; font-weight: 400;
}
.pending-box ul[data-v-783bc643] { margin: 8px 0 0; padding-left: 18px; color: var(--color-wood-gray); font-size: 13px;
}
.confirm-list[data-v-783bc643] { margin: 0; display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.confirm-list[data-v-783bc643] > * + * {
    margin-top: 8px;
}
}
.confirm-list > div[data-v-783bc643] { display: flex; gap: 12px; align-items: baseline;
}
@supports not (gap: 1px) {
.confirm-list > div[data-v-783bc643] > * + * {
    margin-left: 12px;
}
}
.confirm-list dt[data-v-783bc643] { flex: 0 0 116px; color: var(--color-wood-gray); font-size: 13px;
}
.confirm-list dd[data-v-783bc643] { margin: 0; color: var(--color-ink); font-size: 14px; flex: 1; min-width: 0;
}
.confirm-list code[data-v-783bc643] { font-family: ui-monospace, Menlo, monospace; background: var(--color-lime); padding: 2px 6px; border-radius: 4px;
}
.mod-on[data-v-783bc643], .mod-off[data-v-783bc643] { display: inline-block; margin: 2px 6px 2px 0; padding: 2px 10px; border-radius: var(--radius-pill); font-size: 12px;
}
.mod-on[data-v-783bc643] { background: var(--color-green); color: var(--color-paper);
}
.mod-off[data-v-783bc643] { background: var(--color-lime); color: var(--color-wood-gray);
}
.note[data-v-783bc643] { margin: 0; padding: 10px; background: var(--color-surface-clay); color: var(--color-ink); border-radius: var(--radius); font-size: 13px;
}
.actions[data-v-783bc643] { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 4px;
}
@supports not (gap: 1px) {
.actions[data-v-783bc643] > * + * {
    margin-left: 10px;
}
}
button[data-v-783bc643] { min-height: 44px; padding: 10px 16px; border-radius: var(--radius); font: inherit; cursor: pointer;
}
.btn-primary[data-v-783bc643] { border: 1px solid var(--color-green); background: var(--color-green); color: var(--color-paper); font-weight: 600;
}
.btn-primary[data-v-783bc643]:disabled { border-color: #75857c; background: #75857c; color: var(--color-paper); cursor: not-allowed;
}
.btn-line[data-v-783bc643] { border: 1px solid var(--color-border); background: var(--color-paper); color: var(--color-ink);
}
.btn-line[data-v-783bc643]:disabled { color: var(--color-wood-gray); cursor: not-allowed;
}
.password-block[data-v-783bc643] { display: flex; flex-direction: column; gap: 8px; padding: 14px; background: var(--color-lime); border-radius: var(--radius);
}
@supports not (gap: 1px) {
.password-block[data-v-783bc643] > * + * {
    margin-top: 8px;
}
}
.password-block > p[data-v-783bc643] { margin: 0; font-size: 13px; color: var(--color-ink);
}
.password[data-v-783bc643] { font-family: ui-monospace, Menlo, monospace; font-size: 20px; font-weight: 700; letter-spacing: 0.06em; color: var(--color-ink);
}
.password-block .btn-line[data-v-783bc643], .password-block button[data-v-783bc643] { align-self: flex-start;
}
.muted[data-v-783bc643] { color: var(--color-wood-gray); font-size: 13px; margin: 0;
}
.error[data-v-783bc643] { margin: 0; padding: 10px 12px; background: var(--color-surface-cinnabar); color: var(--color-cinnabar); border-radius: var(--radius); font-size: 13px;
}
@media (max-width: 420px) {
.confirm-list > div[data-v-783bc643] { flex-direction: column; gap: 2px;
}
.confirm-list dt[data-v-783bc643] { flex-basis: auto;
}
.actions[data-v-783bc643] { justify-content: stretch;
}
.actions button[data-v-783bc643] { flex: 1;
}
}

.sheet-backdrop[data-v-c89ac66c]{position:fixed;inset:0;background:rgba(24,25,20,.32);display:grid;place-items:center;z-index:50}
@supports not (inset: 0){
.sheet-backdrop[data-v-c89ac66c]{top:0;right:0;bottom:0;left:0}}.sheet[data-v-c89ac66c]{position:relative;width:min(560px,calc(100vw - 32px));max-height:90vh;overflow:auto;padding:28px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.16)}.close[data-v-c89ac66c]{position:absolute;right:14px;top:12px;min-height:44px;min-width:44px;border:0;background:none;font-size:24px;cursor:pointer;color:var(--color-wood-gray)}
@media(max-width:420px){.sheet[data-v-c89ac66c]{padding:18px 16px;max-height:92vh}}

.page[data-v-769b31c6]{max-width:1100px;margin:0 auto}.heading[data-v-769b31c6]{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px;gap:12px;flex-wrap:wrap}@supports not (gap: 1px) {
.heading[data-v-769b31c6] > * + * {
    margin-left: 12px;
}
}.actions[data-v-769b31c6]{display:flex;gap:8px;align-items:center}@supports not (gap: 1px) {
.actions[data-v-769b31c6] > * + * {
    margin-left: 8px;
}
}.eyebrow[data-v-769b31c6]{margin:0 0 4px;color:var(--color-green);font-size:11px;letter-spacing:.12em}h1[data-v-769b31c6]{margin:0;font-size:28px}select[data-v-769b31c6],button[data-v-769b31c6]{min-height:44px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-paper);color:var(--color-ink);font:inherit}select[data-v-769b31c6]{cursor:pointer}button[data-v-769b31c6]{cursor:pointer}button[data-v-769b31c6]:disabled{color:var(--color-wood-gray);background:var(--color-lime);cursor:not-allowed}.btn-primary[data-v-769b31c6]{border:1px solid var(--color-green);background:var(--color-green);color:var(--color-paper);font-weight:600}.btn-primary[data-v-769b31c6]:disabled{border-color:#75857c;background:#75857c;color:var(--color-paper)}.retry[data-v-769b31c6]{min-height:36px;margin-left:8px;padding:4px 10px}.table-wrap[data-v-769b31c6]{overflow:auto;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}table[data-v-769b31c6]{width:100%;border-collapse:collapse;text-align:left}th[data-v-769b31c6],td[data-v-769b31c6]{padding:14px 16px;border-bottom:1px solid var(--color-border);white-space:nowrap}th[data-v-769b31c6]{color:var(--color-wood-gray);font-size:13px}tr:last-child td[data-v-769b31c6]{border-bottom:0}td strong[data-v-769b31c6],td small[data-v-769b31c6]{display:block}td small[data-v-769b31c6]{color:var(--color-wood-gray);font-size:12px}.muted[data-v-769b31c6]{color:var(--color-wood-gray)}.error[data-v-769b31c6]{padding:12px;background:var(--color-surface-cinnabar);color:var(--color-cinnabar)}
@media(max-width:700px){.heading[data-v-769b31c6]{align-items:start;flex-direction:column}th[data-v-769b31c6],td[data-v-769b31c6]{padding:12px 10px}}
.ledger-backdrop[data-v-769b31c6]{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(45,52,45,.45)}
@supports not (inset: 0){
.ledger-backdrop[data-v-769b31c6]{top:0;right:0;bottom:0;left:0}}
.ledger[data-v-769b31c6]{width:min(560px,100%);max-height:85vh;overflow:auto;padding:20px 24px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.ledger header[data-v-769b31c6]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
@supports not (gap: 1px) {
.ledger header[data-v-769b31c6] > * + * {
    margin-left: 12px;
}
}
.ledger h2[data-v-769b31c6]{margin:0;font-size:17px;display:flex;align-items:center;gap:8px}
@supports not (gap: 1px) {
.ledger h2[data-v-769b31c6] > * + * {
    margin-left: 8px;
}
}
.readonly-tag[data-v-769b31c6]{padding:2px 8px;border-radius:999px;background:var(--color-lime);color:var(--color-wood-gray);font-size:12px;font-weight:600}
.ledger dl[data-v-769b31c6]{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ledger dl div[data-v-769b31c6]{min-width:0}
.ledger dt[data-v-769b31c6]{color:var(--color-wood-gray);font-size:12px}
.ledger dd[data-v-769b31c6]{margin:4px 0 0;font-size:14px;word-break:break-all}
.ledger-note[data-v-769b31c6]{margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--color-border);color:var(--color-wood-gray);font-size:12px;line-height:1.7}
@media(max-width:700px){.ledger dl[data-v-769b31c6]{grid-template-columns:1fr}}

.sheet-backdrop[data-v-fb3ab4c4]{position:fixed;inset:0;background:rgba(24,25,20,.32);display:grid;place-items:center;z-index:10}
@supports not (inset: 0){
.sheet-backdrop[data-v-fb3ab4c4]{top:0;right:0;bottom:0;left:0}}.sheet[data-v-fb3ab4c4]{position:relative;width:min(420px,calc(100vw - 32px));padding:28px;background:var(--color-paper);border-radius:var(--radius-lg)}.close[data-v-fb3ab4c4]{position:absolute;right:14px;top:12px;border:0;background:none;font-size:24px}.sheet h2[data-v-fb3ab4c4]{margin:0 0 20px}label[data-v-fb3ab4c4]{display:block;margin:12px 0;font-size:13px;color:var(--color-wood-gray)}input[data-v-fb3ab4c4],select[data-v-fb3ab4c4]{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit}.confirm[data-v-fb3ab4c4]{padding:10px;background:var(--color-surface-cinnabar);color:var(--color-cinnabar)}.confirm label[data-v-fb3ab4c4]{color:inherit}.confirm input[type=checkbox][data-v-fb3ab4c4],label input[type=checkbox][data-v-fb3ab4c4]{width:auto;display:inline-block}.sheet button[type=submit][data-v-fb3ab4c4]{min-height:42px;padding:8px 16px;background:var(--color-ink);color:var(--color-paper);border:0;border-radius:var(--radius)}.error[data-v-fb3ab4c4]{color:var(--color-cinnabar)}
.panel[data-v-51b96c02]{padding:20px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.panel-head[data-v-51b96c02]{display:flex;align-items:center;justify-content:space-between}.panel-head h2[data-v-51b96c02]{margin:0}.panel-head span[data-v-51b96c02],small[data-v-51b96c02]{color:var(--color-wood-gray);font-size:12px}ul[data-v-51b96c02]{padding:0;margin:12px 0;list-style:none}li[data-v-51b96c02]{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-border)}@supports not (gap: 1px) {
li[data-v-51b96c02] > * + * {
    margin-left: 12px;
}
}small[data-v-51b96c02]{display:block;margin-top:4px}em[data-v-51b96c02]{font-style:normal;color:var(--color-green)}button[data-v-51b96c02],input[data-v-51b96c02]{min-height:38px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-paper);font:inherit}.add[data-v-51b96c02]{display:flex;gap:8px}@supports not (gap: 1px) {
.add[data-v-51b96c02] > * + * {
    margin-left: 8px;
}
}.add input[data-v-51b96c02]{flex:1}.error[data-v-51b96c02]{color:var(--color-cinnabar)}
.page[data-v-7d2d8c4f]{max-width:1100px;margin:0 auto}.eyebrow[data-v-7d2d8c4f]{color:var(--color-green);font-size:11px;letter-spacing:.12em}h1[data-v-7d2d8c4f]{margin:8px 0 4px;font-size:28px}.code[data-v-7d2d8c4f],.muted[data-v-7d2d8c4f],small[data-v-7d2d8c4f]{color:var(--color-wood-gray)}.cards[data-v-7d2d8c4f]{display:flex;gap:12px;margin:28px 0;flex-wrap:wrap}@supports not (gap: 1px) {
.cards[data-v-7d2d8c4f] > * + * {
    margin-left: 12px;
}
}.cards article[data-v-7d2d8c4f]{min-width:120px;padding:18px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.cards strong[data-v-7d2d8c4f],.cards span[data-v-7d2d8c4f],small[data-v-7d2d8c4f]{display:block}.cards strong[data-v-7d2d8c4f]{font-size:26px}.panel[data-v-7d2d8c4f]{margin:16px 0;padding:20px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.panel-head[data-v-7d2d8c4f]{display:flex;justify-content:space-between;align-items:center}.panel h2[data-v-7d2d8c4f]{margin:0 0 12px}button[data-v-7d2d8c4f]{min-height:38px;padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-paper);cursor:pointer}table[data-v-7d2d8c4f]{width:100%;border-collapse:collapse;text-align:left}th[data-v-7d2d8c4f],td[data-v-7d2d8c4f]{padding:10px;border-bottom:1px solid var(--color-border)}td button+button[data-v-7d2d8c4f]{margin-left:8px}.config-row td[data-v-7d2d8c4f]{padding:0 10px 10px}.config-box[data-v-7d2d8c4f]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;background:var(--color-surface);border-radius:var(--radius)}@supports not (gap: 1px) {
.config-box[data-v-7d2d8c4f] > * + * {
    margin-left: 12px;
}
}.config-box label[data-v-7d2d8c4f]{font-size:13px}.config-box input[data-v-7d2d8c4f]{margin-right:5px}.config-box button[data-v-7d2d8c4f]{margin-left:auto}.saved[data-v-7d2d8c4f]{color:var(--color-green);font-size:13px}.user-form[data-v-7d2d8c4f]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--color-border)}@supports not (gap: 1px) {
.user-form[data-v-7d2d8c4f] > * + * {
    margin-left: 12px;
}
}.user-form>div[data-v-7d2d8c4f]{min-width:140px}.user-form label[data-v-7d2d8c4f]{font-size:13px}.user-form button[data-v-7d2d8c4f]{margin-left:auto}.small-note[data-v-7d2d8c4f]{font-size:12px;font-weight:400}td code[data-v-7d2d8c4f]{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--color-wood-gray)}.error[data-v-7d2d8c4f]{padding:12px;background:var(--color-surface-cinnabar);color:var(--color-cinnabar)}
.facts[data-v-7d2d8c4f]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px}.facts article[data-v-7d2d8c4f]{padding:14px;background:var(--color-surface);border-radius:var(--radius)}.fact-label[data-v-7d2d8c4f]{display:block;color:var(--color-wood-gray);font-size:12px;margin-bottom:6px}.facts strong[data-v-7d2d8c4f]{font-size:15px;color:var(--color-ink)}.facts small[data-v-7d2d8c4f]{margin-top:4px;font-size:12px}.delivery-actions[data-v-7d2d8c4f]{display:flex;gap:10px;flex-wrap:wrap}@supports not (gap: 1px) {
.delivery-actions[data-v-7d2d8c4f] > * + * {
    margin-left: 10px;
}
}.delivery-actions button[data-v-7d2d8c4f]{min-height:44px;padding:10px 16px}.btn-primary[data-v-7d2d8c4f]{border:1px solid var(--color-green);background:var(--color-green);color:var(--color-paper);font-weight:600}.btn-primary[data-v-7d2d8c4f]:disabled{border-color:#75857c;background:#75857c;color:var(--color-paper);cursor:not-allowed}.btn-line[data-v-7d2d8c4f]{border:1px solid var(--color-border);background:var(--color-paper);color:var(--color-ink)}.guest-progress[data-v-7d2d8c4f]{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px}.guest-progress article[data-v-7d2d8c4f]{padding:14px;background:var(--color-lime);border-radius:var(--radius)}.guest-progress strong[data-v-7d2d8c4f]{display:block;font-size:14px;color:var(--color-ink);margin-bottom:6px}.guest-progress small[data-v-7d2d8c4f]{font-size:12px;line-height:1.6}
.modal-backdrop[data-v-7d2d8c4f]{position:fixed;inset:0;background:rgba(24,25,20,.4);display:grid;place-items:center;z-index:50}
@supports not (inset: 0){
.modal-backdrop[data-v-7d2d8c4f]{top:0;right:0;bottom:0;left:0}}.modal[data-v-7d2d8c4f]{width:min(520px,calc(100vw - 32px));max-height:88vh;overflow:auto;padding:24px;background:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:14px}@supports not (gap: 1px) {
.modal[data-v-7d2d8c4f] > * + * {
    margin-top: 14px;
}
}.modal h3[data-v-7d2d8c4f]{margin:0;font-size:18px}.modal-note[data-v-7d2d8c4f]{margin:0;padding:12px;background:var(--color-lime);border-radius:var(--radius);font-size:13px;line-height:1.7;color:var(--color-ink)}.modal-note.warn[data-v-7d2d8c4f]{background:var(--color-surface-clay)}.modal .field[data-v-7d2d8c4f]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--color-wood-gray)}@supports not (gap: 1px) {
.modal .field[data-v-7d2d8c4f] > * + * {
    margin-top: 6px;
}
}.modal .field input[data-v-7d2d8c4f],.modal .field textarea[data-v-7d2d8c4f]{min-height:44px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;color:var(--color-ink);background:var(--color-paper)}.modal .field textarea[data-v-7d2d8c4f]{resize:vertical}.check-line[data-v-7d2d8c4f]{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--color-ink)}@supports not (gap: 1px) {
.check-line[data-v-7d2d8c4f] > * + * {
    margin-left: 10px;
}
}.check-line input[data-v-7d2d8c4f]{margin-top:3px;accent-color:var(--color-green);width:16px;height:16px}.modal-actions[data-v-7d2d8c4f]{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}@supports not (gap: 1px) {
.modal-actions[data-v-7d2d8c4f] > * + * {
    margin-left: 10px;
}
}.modal-actions button[data-v-7d2d8c4f]{min-height:44px;padding:10px 16px}
.password-block[data-v-7d2d8c4f]{display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--color-lime);border-radius:var(--radius)}
@supports not (gap: 1px) {
.password-block[data-v-7d2d8c4f] > * + * {
    margin-top: 8px;
}
}.password-block p[data-v-7d2d8c4f]{margin:0;font-size:13px}.password[data-v-7d2d8c4f]{font-family:ui-monospace,Menlo,monospace;font-size:20px;font-weight:700;letter-spacing:.06em;color:var(--color-ink)}.password-block button[data-v-7d2d8c4f]{align-self:flex-start}
@media(max-width:700px){.facts[data-v-7d2d8c4f]{grid-template-columns:1fr 1fr}.modal-actions[data-v-7d2d8c4f]{justify-content:stretch}.modal-actions button[data-v-7d2d8c4f]{flex:1}}

.row[data-v-58d2e9b5] {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 11px 13px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06);
  box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
  text-align: left;
  width: 100%;
  position: relative;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}@supports not (gap: 1px) {
.row[data-v-58d2e9b5] > * + * {
    margin-left: 12px;
}
}
.row[data-v-58d2e9b5]:active { background: var(--soft-green);
}
.row[data-v-58d2e9b5]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}
.row .rr[data-v-58d2e9b5] { flex: 1; min-width: 0;
}
.row .rt[data-v-58d2e9b5] { display: flex; align-items: center; gap: 7px; min-width: 0;
}
@supports not (gap: 1px) {
.row .rt[data-v-58d2e9b5] > * + * {
    margin-left: 7px;
}
}
.row .rname[data-v-58d2e9b5] {
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.row .rmeta[data-v-58d2e9b5] {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
  line-height: 1.55;
}
.row .rgo[data-v-58d2e9b5] {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 12.5px;
  color: var(--accent);
  font-family: var(--font-mono);
}
@supports not (gap: 1px) {
.row .rgo[data-v-58d2e9b5] > * + * {
    margin-left: 2px;
}
}
.row .rgo svg[data-v-58d2e9b5] { width: 14px; height: 14px; display: block;
}
.row.tone-warn[data-v-58d2e9b5] { background: #F6E4D4; background: color-mix(in oklab, var(--soft-clay) 66%, var(--surface));
}
.row.tone-urgent[data-v-58d2e9b5] { background: #F6E1D6; background: color-mix(in oklab, var(--soft-cinnabar) 72%, var(--surface));
}
.row.tone-info[data-v-58d2e9b5] { background: #EAEAE5; background: color-mix(in oklab, var(--st-paid) 7%, var(--surface));
}

/* 待处理页行动行：标题换行可读，标签与时限在上一行 */
.row.ir[data-v-58d2e9b5] { align-items: center; min-height: 64px;
}
.row.ir .rtop[data-v-58d2e9b5] { display: flex; align-items: center; gap: 8px; min-width: 0;
}
@supports not (gap: 1px) {
.row.ir .rtop[data-v-58d2e9b5] > * + * {
    margin-left: 8px;
}
}
.row.ir .rtime[data-v-58d2e9b5] {
  margin-left: auto;
  flex: none;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--muted-2);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}
.row.ir .rtitle[data-v-58d2e9b5] {
  display: block;
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.01em;
  margin-top: 5px;
}
.row.ir .rmeta[data-v-58d2e9b5] { margin-top: 3px;
}

/* 状态签：文字 + 点 + 色（三通道） */
.tag[data-v-58d2e9b5] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: none;
  padding: 2px 8px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  line-height: 1.6;
}
@supports not (gap: 1px) {
.tag[data-v-58d2e9b5] > * + * {
    margin-left: 5px;
}
}
.tag i[data-v-58d2e9b5] { width: 6px; height: 6px; border-radius: 50%; display: block;
}
.tag.t-cinnabar[data-v-58d2e9b5] { background: #EEDCD0; background: color-mix(in oklab, var(--cinnabar) 15%, var(--surface)); color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg));
}
.tag.t-cinnabar i[data-v-58d2e9b5] { background: var(--cinnabar);
}
.tag.t-busy[data-v-58d2e9b5] { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #935433; color: color-mix(in oklab, var(--st-busy) 80%, var(--fg));
}
.tag.t-busy i[data-v-58d2e9b5] { background: var(--st-busy);
}
.tag.t-served[data-v-58d2e9b5] { background: #DEDFCF; background: color-mix(in oklab, var(--st-served) 18%, var(--surface)); color: #656B45; color: color-mix(in oklab, var(--st-served) 78%, var(--fg));
}
.tag.t-served i[data-v-58d2e9b5] { background: var(--st-served);
}
.tag.t-paid[data-v-58d2e9b5] { background: #DDDFDB; background: color-mix(in oklab, var(--st-paid) 14%, var(--surface)); color: #465260; color: color-mix(in oklab, var(--st-paid) 80%, var(--fg));
}
.tag.t-paid i[data-v-58d2e9b5] { background: var(--st-paid);
}
.tag.t-muted[data-v-58d2e9b5] { background: var(--soft); color: var(--muted);
}
.tag.t-muted i[data-v-58d2e9b5] { background: var(--muted-2);
}
@media (prefers-reduced-motion: reduce) {
.row[data-v-58d2e9b5] { transition-duration: 0.01ms;
}
}

.td-head[data-v-ff8cc69d] { position: relative; display: flex; flex-direction: column; align-items: center; padding: 20px 20px 16px; border-bottom: 1px solid var(--border); overflow: hidden;
}
/* 円相水印：居中、透明度 .06、60s 线性旋转；keyframes 必须携带 translate(-50%,-50%)。H5 报头比小程序（min-height 360rpx）矮，円相改为按报头高度等比收缩、上限 200px（=小程序 400rpx÷2），保证圆形不被裁。 */
.td-enso[data-v-ff8cc69d] { position: absolute; left: 50%; top: 50%; width: auto; height: auto; max-width: 200px; max-height: 100%; opacity: .06; pointer-events: none; animation: td-enso-rotate-ff8cc69d 60s linear infinite;
}
@keyframes td-enso-rotate-ff8cc69d {
from { transform: translate(-50%, -50%) rotate(0deg);
}
to { transform: translate(-50%, -50%) rotate(360deg);
}
}
.td-refresh[data-v-ff8cc69d] { position: absolute; top: 10px; right: 10px; z-index: 2; width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: transparent; border-radius: 12px; color: var(--muted); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.td-refresh svg[data-v-ff8cc69d] { width: 19px; height: 19px; display: block;
}
.td-refresh[data-v-ff8cc69d]:active { background: var(--soft); color: var(--fg);
}
.td-refresh[data-v-ff8cc69d]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}
.td-refresh.spin svg[data-v-ff8cc69d] { animation: spin-ff8cc69d 1s linear infinite;
}
@keyframes spin-ff8cc69d {
to { transform: rotate(360deg);
}
}
/* 标题竖排（小程序 72rpx÷2=36px、字距 12rpx÷2）+ 日期一行，居中收束。 */
.td-title-row[data-v-ff8cc69d] { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.td-title-row[data-v-ff8cc69d] > * + * {
    margin-top: 10px;
}
}
.td-title[data-v-ff8cc69d] { margin: 0; font-family: var(--font-display); writing-mode: vertical-rl; font-size: 36px; font-weight: 600; letter-spacing: .17em; line-height: 1.2;
}
.td-date[data-v-ff8cc69d] { font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); letter-spacing: .04em; text-align: center;
}
.td-shop-row[data-v-ff8cc69d] { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 10px;
}
@supports not (gap: 1px) {
.td-shop-row[data-v-ff8cc69d] > * + * {
    margin-left: 8px;
}
}
.td-shop[data-v-ff8cc69d] { font-size: 12px; color: var(--muted); letter-spacing: .04em;
}
.td-biz[data-v-ff8cc69d] { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--fg); padding: 2px 9px 2px 7px; border-radius: 999px; background: #DBDCCC; background: color-mix(in oklab, var(--st-served) 20%, var(--surface)); font-family: var(--font-mono); letter-spacing: .02em;
}
@supports not (gap: 1px) {
.td-biz[data-v-ff8cc69d] > * + * {
    margin-left: 5px;
}
}
.td-biz i[data-v-ff8cc69d] { width: 6px; height: 6px; border-radius: 50%; background: var(--st-served); display: block;
}
.td-tools[data-v-ff8cc69d] { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 12px; position: relative; z-index: 2; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.td-tools[data-v-ff8cc69d] > * + * {
    margin-left: 4px;
}
}
.td-tool[data-v-ff8cc69d] { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 11px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); font-size: 12.5px; color: var(--fg); letter-spacing: .02em; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.td-tool[data-v-ff8cc69d] > * + * {
    margin-left: 6px;
}
}
.td-tool[data-v-ff8cc69d]:active { background: var(--soft-green);
}
.td-tool[data-v-ff8cc69d]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}
/* 分页改为文字链（小程序定稿）：透明底、muted、选中 fg+600+底部 accent 短线（宽度 0→100% 过渡 .3s）。 */
.pg-switch[data-v-ff8cc69d] { margin: 12px 16px 0; display: flex; align-items: center; justify-content: center; gap: 24px;
}
@supports not (gap: 1px) {
.pg-switch[data-v-ff8cc69d] > * + * {
    margin-left: 24px;
}
}
.pg-btn[data-v-ff8cc69d] { position: relative; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 12px; border: 0; background: transparent; border-radius: 0; font-family: var(--font-display); font-size: 13px; letter-spacing: .08em; color: var(--muted); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color .3s ease;
}
@supports not (gap: 1px) {
.pg-btn[data-v-ff8cc69d] > * + * {
    margin-left: 7px;
}
}
.pg-btn[data-v-ff8cc69d]::after { content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1px; background: var(--accent); transition: width .3s ease;
}
.pg-btn[data-v-ff8cc69d]:hover { color: var(--fg);
}
.pg-btn[data-v-ff8cc69d]:active { color: var(--fg);
}
.pg-btn[data-v-ff8cc69d]:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px;
}
.pg-btn.on[data-v-ff8cc69d] { background: transparent; color: var(--fg); font-weight: 600; box-shadow: none;
}
.pg-btn.on[data-v-ff8cc69d]::after { width: 100%;
}
@media (prefers-reduced-motion: reduce) {
.td-refresh.spin svg[data-v-ff8cc69d] { animation-duration: .01ms;
}
.td-enso[data-v-ff8cc69d] { animation-duration: .01ms;
}
.pg-btn[data-v-ff8cc69d], .pg-btn[data-v-ff8cc69d]::after { transition-duration: .01ms;
}
}

.today-v2[data-v-293f2902] {
  display: flex;
  min-height: 0;
  height: 100%;
  flex-direction: column;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
.view[data-v-293f2902] { flex: 1; min-height: 0; display: flex; flex-direction: column; position: relative;
}
.view-scroll[data-v-293f2902] { flex: 1; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; padding: 0 0 20px;
}
.view-scroll[data-v-293f2902]::-webkit-scrollbar { display: none;
}
.today-panel[data-v-293f2902] {
}
.sec[data-v-293f2902] { margin: 20px 20px 0; display: flex; align-items: baseline; gap: 10px;
}
@supports not (gap: 1px) {
.sec[data-v-293f2902] > * + * {
    margin-left: 10px;
}
}
.sec .st[data-v-293f2902] { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.16em; color: var(--muted); text-transform: uppercase;
}
.sec .grow[data-v-293f2902] { flex: 1;
}
.sec-more[data-v-293f2902] { font-size: 12.5px; color: var(--accent); min-height: 30px; padding: 0 4px; display: inline-flex; align-items: center; gap: 3px; border: 0; background: transparent; cursor: pointer; border-radius: 8px; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.sec-more[data-v-293f2902] > * + * {
    margin-left: 3px;
}
}
.sec-more[data-v-293f2902]:active { background: var(--soft);
}
.sec-note[data-v-293f2902] { font-size: 12px; color: var(--muted-2); font-family: var(--font-mono); letter-spacing: 0.02em;
}
.sec-more[data-v-293f2902]:focus-visible, .tlink[data-v-293f2902]:focus-visible, .fc-go[data-v-293f2902]:focus-visible, .led-cell[data-v-293f2902]:focus-visible, .prow[data-v-293f2902]:focus-visible, .ops-hero[data-v-293f2902]:focus-visible, .ibmod[data-v-293f2902]:focus-visible, .tool[data-v-293f2902]:focus-visible, .led-hero[data-v-293f2902]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}

/* 行动行容器（纸面行之间的间隙） */
.rows[data-v-293f2902] { margin: 10px 16px 0; display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.rows[data-v-293f2902] > * + * {
    margin-top: 8px;
}
}

/* 首要焦点：唯一深墨身份卡 */
.focus-card[data-v-293f2902] { margin: 10px 16px 0; background: var(--ink-card); color: var(--paper-ink); border-radius: 16px; padding: 16px 16px 14px; box-shadow: 0 16px 40px rgba(67, 53, 43, 0.15); box-shadow: 0 16px 40px color-mix(in oklab, var(--fg) 15%, transparent); position: relative; overflow: hidden;
}
.focus-card .fc-top[data-v-293f2902] { display: flex; align-items: center; gap: 8px;
}
@supports not (gap: 1px) {
.focus-card .fc-top[data-v-293f2902] > * + * {
    margin-left: 8px;
}
}
.focus-card .fc-top .grow[data-v-293f2902] { flex: 1;
}
.focus-card .fc-time[data-v-293f2902] { font-family: var(--font-mono); font-size: 12px; color: rgba(251, 247, 236, 0.76); color: color-mix(in oklab, var(--paper-ink) 76%, transparent); letter-spacing: 0.02em;
}
.focus-card h2[data-v-293f2902] { font-family: var(--font-display); font-size: 19px; font-weight: 600; letter-spacing: 0.02em; line-height: 1.4; margin: 9px 0 5px; color: var(--paper-ink);
}
.focus-card .fc-meta[data-v-293f2902] { font-size: 12.5px; line-height: 1.65; color: rgba(251, 247, 236, 0.82); color: color-mix(in oklab, var(--paper-ink) 82%, transparent);
}
.focus-card .fc-foot[data-v-293f2902] { display: flex; align-items: center; gap: 8px; margin-top: 13px;
}
@supports not (gap: 1px) {
.focus-card .fc-foot[data-v-293f2902] > * + * {
    margin-left: 8px;
}
}
.focus-card .fc-go[data-v-293f2902] { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 15px; border: 1px solid rgba(251, 247, 236, 0.42); border: 1px solid color-mix(in oklab, var(--paper-ink) 42%, transparent); border-radius: 12px; color: var(--paper-ink); font-size: 13.5px; font-weight: 600; letter-spacing: 0.02em; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.focus-card .fc-go[data-v-293f2902] > * + * {
    margin-left: 6px;
}
}
.focus-card .fc-go[data-v-293f2902]:active { background: rgba(251, 247, 236, 0.14); background: color-mix(in oklab, var(--paper-ink) 14%, transparent);
}
.focus-card .fc-go svg[data-v-293f2902] { width: 15px; height: 15px; display: block;
}
.focus-card .fc-note[data-v-293f2902] { font-size: 11.5px; color: rgba(251, 247, 236, 0.62); color: color-mix(in oklab, var(--paper-ink) 62%, transparent); font-family: var(--font-mono);
}
.focus-card .tag[data-v-293f2902] { background: rgba(251, 247, 236, 0.14); background: color-mix(in oklab, var(--paper-ink) 14%, transparent); color: var(--paper-ink);
}
.focus-card .tag i[data-v-293f2902] { background: currentColor;
}

/* 安静空态 */
.calm[data-v-293f2902] { margin: 10px 16px 0; padding: 14px 15px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; display: flex; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.calm[data-v-293f2902] > * + * {
    margin-left: 10px;
}
}
.calm .ct[data-v-293f2902] { font-family: var(--font-display); font-size: 14px; letter-spacing: 0.04em;
}
.calm .cs[data-v-293f2902] { font-size: 12px; color: var(--muted); margin-top: 1px;
}

/* 待处理模块（独立管理页入口，不挂在任务卡上） */
.ibmod[data-v-293f2902] { margin: 10px 16px 0; width: calc(100% - 32px); min-height: 64px; display: flex; align-items: center; gap: 12px; padding: 13px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.ibmod[data-v-293f2902] > * + * {
    margin-left: 12px;
}
}
.ibmod[data-v-293f2902]:active { background: var(--soft-green);
}
.ibmod .rr[data-v-293f2902] { flex: 1; min-width: 0;
}
.ibmod .im-t[data-v-293f2902] { display: flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 600; letter-spacing: 0.01em;
}
@supports not (gap: 1px) {
.ibmod .im-t[data-v-293f2902] > * + * {
    margin-left: 8px;
}
}
.ibmod .im-m[data-v-293f2902] { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; line-height: 1.55;
}
.ibmod .im-go[data-v-293f2902] { flex: none; display: inline-flex; align-items: center; gap: 2px; font-size: 12.5px; color: var(--accent); font-family: var(--font-mono);
}
@supports not (gap: 1px) {
.ibmod .im-go[data-v-293f2902] > * + * {
    margin-left: 2px;
}
}
.ibmod .im-go svg[data-v-293f2902] { width: 14px; height: 14px; display: block;
}

/* 下一场来客 */
.next-card[data-v-293f2902] { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 14px 15px 12px;
}
.next-card.near[data-v-293f2902] { background: #F6E5D6; background: color-mix(in oklab, var(--soft-clay) 60%, var(--surface)); border-color: #D1B6A1; border-color: color-mix(in oklab, var(--st-busy) 26%, var(--border));
}
.next-top[data-v-293f2902] { display: flex; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.next-top[data-v-293f2902] > * + * {
    margin-left: 10px;
}
}
.next-time[data-v-293f2902] { font-family: var(--font-mono); font-size: 26px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; line-height: 1;
}
.next-in[data-v-293f2902] { font-size: 11.5px; color: var(--muted); font-family: var(--font-mono); letter-spacing: 0.02em;
}
.next-in.hot[data-v-293f2902] { color: var(--st-busy); font-weight: 600;
}
.next-body[data-v-293f2902] { margin-top: 9px; display: flex; flex-direction: column; gap: 3px;
}
@supports not (gap: 1px) {
.next-body[data-v-293f2902] > * + * {
    margin-top: 3px;
}
}
.next-name[data-v-293f2902] { font-size: 15px; font-weight: 600; letter-spacing: 0.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.next-area[data-v-293f2902] { font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.next-note[data-v-293f2902] { font-size: 12px; color: var(--muted); margin-top: 5px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.next-foot[data-v-293f2902] { display: flex; align-items: center; gap: 10px; margin-top: 11px; padding-top: 10px; border-top: 1px dashed var(--border);
}
@supports not (gap: 1px) {
.next-foot[data-v-293f2902] > * + * {
    margin-left: 10px;
}
}
.tlink[data-v-293f2902] { min-height: 38px; display: inline-flex; align-items: center; gap: 4px; padding: 0 11px; border: 0; background: transparent; border-radius: 12px; font-size: 13px; color: var(--accent); font-family: var(--font-body); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.tlink[data-v-293f2902] > * + * {
    margin-left: 4px;
}
}
.tlink[data-v-293f2902]:active { background: var(--soft);
}
.tlink svg[data-v-293f2902] { width: 14px; height: 14px; display: block;
}
.tlink.mut[data-v-293f2902] { color: var(--muted);
}

/* 收尾与日常工具 */
.tool-list[data-v-293f2902] { margin: 10px 16px 0; display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.tool-list[data-v-293f2902] > * + * {
    margin-top: 8px;
}
}
.tool[data-v-293f2902] { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 11px 13px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); width: 100%; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.tool[data-v-293f2902] > * + * {
    margin-left: 12px;
}
}
.tool[data-v-293f2902]:active { background: var(--soft-green);
}
.tool .tt[data-v-293f2902] { flex: 1; min-width: 0;
}
.tool .tn[data-v-293f2902] { font-size: 14px; font-weight: 600; letter-spacing: 0.01em;
}
.tool .tm[data-v-293f2902] { font-size: 12px; color: var(--muted); margin-top: 1px; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tool .rgo[data-v-293f2902] { flex: none; display: inline-flex; align-items: center; gap: 2px; font-size: 12.5px; color: var(--accent); font-family: var(--font-mono);
}
@supports not (gap: 1px) {
.tool .rgo[data-v-293f2902] > * + * {
    margin-left: 2px;
}
}
.tool .rgo svg[data-v-293f2902] { width: 14px; height: 14px; display: block;
}
.tool.review[data-v-293f2902] { background: #F6E4D9; background: color-mix(in oklab, var(--soft-cinnabar) 62%, var(--surface)); border-color: #D4B8A6; border-color: color-mix(in oklab, var(--cinnabar) 22%, var(--border));
}
.tool.done[data-v-293f2902] { background: #ECECE0; background: color-mix(in oklab, var(--st-served) 8%, var(--surface));
}

/* 此刻状态 */
.ops-card[data-v-293f2902] { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 13px 15px 12px;
}
.ops-hero[data-v-293f2902] { display: block; width: 100%; text-align: left; padding: 2px 2px 11px; border: 0; border-bottom: 1px solid var(--border); background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.ops-hero[data-v-293f2902]:active { background: var(--soft-green);
}
.ops-hero .oh-label[data-v-293f2902] { display: block; font-size: 11px; color: var(--muted); letter-spacing: 0.04em;
}
.ops-hero .oh-num[data-v-293f2902] { display: block; font-family: var(--font-mono); font-size: 30px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; margin-top: 2px;
}
.ops-hero .oh-num small[data-v-293f2902] { font-size: 15px; font-weight: 500; color: var(--muted); margin-left: 1px;
}
.ops-hero .oh-sub[data-v-293f2902] { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--muted-2); margin-top: 3px;
}
@supports not (gap: 1px) {
.ops-hero .oh-sub[data-v-293f2902] > * + * {
    margin-left: 4px;
}
}
.ops-hero .oh-sub svg[data-v-293f2902] { width: 11px; height: 11px; display: block;
}
.ops-now[data-v-293f2902] { margin-top: 8px; padding: 9px 10px; background: var(--bg); border-radius: 12px; font-size: 12px; color: var(--muted); letter-spacing: 0.02em; font-variant-numeric: tabular-nums;
}
.ops-un[data-v-293f2902] { display: flex; align-items: center; gap: 9px; margin-top: 6px; padding: 11px 12px; background: var(--soft); border-radius: 12px; font-size: 12.5px; color: var(--muted);
}
@supports not (gap: 1px) {
.ops-un[data-v-293f2902] > * + * {
    margin-left: 9px;
}
}
.ops-un .grow[data-v-293f2902] { flex: 1;
}
.ops-un svg[data-v-293f2902] { width: 16px; height: 16px; flex: none;
}

/* 收支：细线台账格 + 大等宽数字，纯墨色无强调色 */
.ledger[data-v-293f2902] { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 14px 15px 12px;
}
.led-ctx[data-v-293f2902] { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.08em; color: var(--muted-2); font-variant-numeric: tabular-nums; margin: 0 0 6px;
}
.led-hero[data-v-293f2902] { display: block; width: 100%; text-align: left; padding: 4px 2px 11px; border: 0; border-bottom: 1px solid var(--border); background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; color: inherit;
}
.led-hero[data-v-293f2902]:active { background: var(--soft-green);
}
.led-hero .lh-label[data-v-293f2902] { display: block; font-size: 11px; color: var(--muted); letter-spacing: 0.06em;
}
.led-hero .lh-num[data-v-293f2902] { display: block; font-family: var(--font-mono); font-size: 32px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; margin-top: 2px;
}
.led-hero .lh-num small[data-v-293f2902] { font-size: 16px; font-weight: 500; color: var(--muted); margin-right: 2px;
}
.led-hero .lh-sub[data-v-293f2902] { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--muted-2); margin-top: 3px; line-height: 1.5;
}
@supports not (gap: 1px) {
.led-hero .lh-sub[data-v-293f2902] > * + * {
    margin-left: 4px;
}
}
.led-hero .lh-sub svg[data-v-293f2902] { width: 11px; height: 11px; display: block; flex: none;
}
.led-un[data-v-293f2902] { padding: 12px 2px; border-bottom: 1px solid var(--border); color: var(--muted); font-size: 13px; line-height: 1.5;
}
.led-un button[data-v-293f2902] { min-height: 38px; margin: -8px 0 -8px 4px; padding: 0 8px; border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 12px; cursor: pointer;
}
.led-sub[data-v-293f2902] { font-family: var(--font-display); font-size: 12px; letter-spacing: 0.1em; color: var(--muted); margin: 13px 0 1px;
}
.led-cell[data-v-293f2902] { display: block; text-align: left; min-height: 56px; padding: 9px 2px 8px; border: 0; border-top: 1px solid var(--border); color: var(--fg); background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.led-cell[data-v-293f2902]:active { background: var(--soft-green);
}
.led-cell .lc-num[data-v-293f2902] { display: block; font-family: var(--font-mono); font-size: 21px; font-weight: 600; line-height: 1.25; font-variant-numeric: tabular-nums;
}
.led-cell .lc-num small[data-v-293f2902] { font-size: 11.5px; font-weight: 500; color: var(--muted); margin-left: 1px;
}
.led-cell .lc-num small.pre[data-v-293f2902] { margin-left: 0; margin-right: 1px;
}
.led-cell .lc-label[data-v-293f2902] { display: block; font-size: 11px; color: var(--muted); margin-top: 3px; letter-spacing: 0.03em; line-height: 1.5;
}
.led-chan[data-v-293f2902] { margin-top: 2px;
}
.ch-row[data-v-293f2902] { display: flex; align-items: baseline; gap: 10px; padding: 8px 2px; border-top: 1px solid var(--border); font-size: 12.5px;
}
@supports not (gap: 1px) {
.ch-row[data-v-293f2902] > * + * {
    margin-left: 10px;
}
}
.ch-amt[data-v-293f2902] { margin-left: auto; font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.ch-pct[data-v-293f2902] { flex: none; width: 38px; text-align: right; font-family: var(--font-mono); font-size: 10.5px; color: var(--muted-2); font-variant-numeric: tabular-nums;
}

/* 应收/已收/未收 双格 */
.led-split[data-v-293f2902] { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--border);
}
.ls-cell[data-v-293f2902] { display: flex; flex-direction: column; gap: 3px; padding: 11px 12px 10px 2px; min-width: 0;
}
@supports not (gap: 1px) {
.ls-cell[data-v-293f2902] > * + * {
    margin-top: 3px;
}
}
.ls-cell + .ls-cell[data-v-293f2902] { border-left: 1px solid var(--border); padding-left: 13px; padding-right: 2px;
}
.ls-cell .k[data-v-293f2902] { font-size: 11px; color: var(--muted); letter-spacing: 0.06em;
}
.ls-cell .v[data-v-293f2902] { font-family: var(--font-mono); font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2;
}
.ls-cell .s[data-v-293f2902] { font-size: 11px; color: var(--muted-2); line-height: 1.5;
}
.ls-cell.warn .v[data-v-293f2902] { color: var(--cinnabar);
}

/* 经营构成：三列细线格 */
.led-grid3[data-v-293f2902] { display: grid; grid-template-columns: repeat(3, 1fr);
}
.led-grid3 .led-cell[data-v-293f2902] { border-right: 1px solid var(--border); padding-right: 8px;
}
.led-grid3 .led-cell[data-v-293f2902]:last-child { border-right: 0; padding-right: 0;
}
.led-grid3 .led-cell[data-v-293f2902]:nth-child(4), .led-grid3 .led-cell[data-v-293f2902]:nth-child(5), .led-grid3 .led-cell[data-v-293f2902]:nth-child(6) {
}
.led-note[data-v-293f2902] { margin: 6px 0 0; font-size: 10.5px; color: var(--muted-2); line-height: 1.6;
}

/* 会员模块 */
.member-card[data-v-293f2902] { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 14px 15px 12px;
}
.mc-grid[data-v-293f2902] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px;
}
.mc-cell[data-v-293f2902] { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 9px 10px; background: var(--bg); border-radius: 12px;
}
@supports not (gap: 1px) {
.mc-cell[data-v-293f2902] > * + * {
    margin-top: 3px;
}
}
.mc-cell .k[data-v-293f2902] { font-size: 11px; color: var(--muted); letter-spacing: 0.04em;
}
.mc-cell .v[data-v-293f2902] { font-family: var(--font-mono); font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-cell .v em[data-v-293f2902] { font-style: normal; font-size: 11.5px; color: var(--muted); font-weight: 400; margin-left: 1px;
}
.mc-cell .v small.pre[data-v-293f2902] { font-size: 11px; font-weight: 500; color: var(--muted); margin-right: 1px;
}
.mc-cell .s[data-v-293f2902] { font-size: 10.5px; color: var(--muted-2); line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-note[data-v-293f2902] { margin: 9px 0 0; font-size: 10.5px; color: var(--muted-2); line-height: 1.6;
}

/* 任务与预定 */
.pulse[data-v-293f2902] { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 14px 15px;
}
.pulse-main[data-v-293f2902] { display: flex; align-items: flex-end; gap: 12px;
}
@supports not (gap: 1px) {
.pulse-main[data-v-293f2902] > * + * {
    margin-left: 12px;
}
}
.pulse-main .pk[data-v-293f2902] { font-size: 12px; color: var(--muted); letter-spacing: 0.04em;
}
.pulse-main .pv[data-v-293f2902] { font-family: var(--font-mono); font-size: 30px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1; margin-top: 3px;
}
.pulse-main .pv small[data-v-293f2902] { font-size: 14px; color: var(--muted); font-weight: 400;
}
.pbar[data-v-293f2902] { flex: 1; height: 8px; border-radius: 999px; background: var(--soft); overflow: hidden; align-self: center; margin-top: 6px;
}
.pbar i[data-v-293f2902] { display: block; height: 100%; border-radius: 999px; background: var(--st-served);
}
.pulse-list[data-v-293f2902] { margin-top: 12px; border-top: 1px dashed var(--border);
}
.prow[data-v-293f2902] { display: flex; align-items: center; gap: 10px; min-height: 44px; border: 0; border-bottom: 1px dashed var(--border); width: 100%; text-align: left; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.prow[data-v-293f2902] > * + * {
    margin-left: 10px;
}
}
.prow[data-v-293f2902]:last-child { border-bottom: 0;
}
.prow .pl[data-v-293f2902] { font-size: 13px; color: var(--muted); flex: 1;
}
.prow .pv[data-v-293f2902] { font-family: var(--font-mono); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums;
}
.prow .pv em[data-v-293f2902] { font-style: normal; font-size: 11.5px; color: var(--muted); font-weight: 400; margin-left: 2px;
}
.prow .rgo[data-v-293f2902] { color: var(--accent); display: inline-flex;
}
.prow .rgo svg[data-v-293f2902] { width: 14px; height: 14px; display: block;
}
.prow[data-v-293f2902]:active { background: var(--soft-green);
}

/* 兜底：骨架 / 失败 / 空态 */
.sk[data-v-293f2902] { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 15px;
}
.sk i[data-v-293f2902] { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #EDE5D6 25%, #F3EEE3 50%, #EDE5D6 75%); background: linear-gradient(90deg, var(--soft) 25%, color-mix(in oklab, var(--soft) 45%, var(--surface)) 50%, var(--soft) 75%); background-size: 200% 100%; animation: breath-293f2902 1.4s ease-in-out infinite;
}
.sk i + i[data-v-293f2902] { margin-top: 10px;
}
.sk i.w40[data-v-293f2902] { width: 40%;
}
.sk i.w60[data-v-293f2902] { width: 60%;
}
.sk i.w75[data-v-293f2902] { width: 75%;
}
.sk i.h20[data-v-293f2902] { height: 20px;
}
@keyframes breath-293f2902 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
.today-loading[data-v-293f2902] { padding-top: 14px;
}
.fail[data-v-293f2902] { margin: 10px 16px 0; background: #F6E4D9; background: color-mix(in oklab, var(--soft-cinnabar) 62%, var(--surface)); border: 1px solid #D4B8A6; border: 1px solid color-mix(in oklab, var(--cinnabar) 22%, var(--border)); border-radius: 16px; padding: 15px;
}
.fail .fh[data-v-293f2902] { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 14px; letter-spacing: 0.04em; color: #994A30; color: color-mix(in oklab, var(--cinnabar) 84%, var(--fg));
}
@supports not (gap: 1px) {
.fail .fh[data-v-293f2902] > * + * {
    margin-left: 8px;
}
}
.fail .fh svg[data-v-293f2902] { width: 16px; height: 16px; flex: none;
}
.fail .fp[data-v-293f2902] { font-size: 12.5px; color: var(--muted); margin-top: 5px; line-height: 1.65;
}
.fail .fb[data-v-293f2902] { margin-top: 11px; display: flex; gap: 8px;
}
@supports not (gap: 1px) {
.fail .fb[data-v-293f2902] > * + * {
    margin-left: 8px;
}
}
.sbtn[data-v-293f2902] { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 15px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); font-size: 13.5px; font-weight: 600; color: var(--fg); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.sbtn[data-v-293f2902] > * + * {
    margin-left: 6px;
}
}
.sbtn[data-v-293f2902]:active { background: var(--soft-green);
}
.sbtn svg[data-v-293f2902] { width: 15px; height: 15px; display: block;
}
.sbtn[data-v-293f2902]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}
.empty-note[data-v-293f2902] { margin: 10px 16px 0; padding: 14px 15px; border: 1px dashed var(--border); border-radius: 16px; font-size: 12.5px; color: var(--muted); line-height: 1.7;
}
.empty-note button[data-v-293f2902] { color: var(--accent); font-size: 12.5px; border: 0; background: transparent; cursor: pointer;
}
.today-inline-error[data-v-293f2902] { display: flex; align-items: center; gap: 6px; margin: 12px 16px 0; padding: 9px 10px; background: #F6E4D9; background: color-mix(in oklab, var(--soft-cinnabar) 62%, var(--surface)); color: #994A30; color: color-mix(in oklab, var(--cinnabar) 84%, var(--fg)); font-size: 12px; line-height: 1.4; border-radius: 12px;
}
@supports not (gap: 1px) {
.today-inline-error[data-v-293f2902] > * + * {
    margin-left: 6px;
}
}
.today-inline-error button[data-v-293f2902] { min-height: 38px; margin: -9px -4px -9px auto; padding: 0 8px; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 650; cursor: pointer;
}

/* 状态签：文字 + 点 + 色（三通道） */
.tag[data-v-293f2902] { display: inline-flex; align-items: center; gap: 5px; flex: none; padding: 2px 8px; border-radius: 999px; font-family: var(--font-display); font-size: 10.5px; letter-spacing: 0.08em; line-height: 1.6;
}
@supports not (gap: 1px) {
.tag[data-v-293f2902] > * + * {
    margin-left: 5px;
}
}
.tag i[data-v-293f2902] { width: 6px; height: 6px; border-radius: 50%; display: block;
}
.tag.t-cinnabar[data-v-293f2902] { background: #EEDCD0; background: color-mix(in oklab, var(--cinnabar) 15%, var(--surface)); color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg));
}
.tag.t-cinnabar i[data-v-293f2902] { background: var(--cinnabar);
}
.tag.t-busy[data-v-293f2902] { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #935433; color: color-mix(in oklab, var(--st-busy) 80%, var(--fg));
}
.tag.t-busy i[data-v-293f2902] { background: var(--st-busy);
}
.tag.t-served[data-v-293f2902] { background: #DEDFCF; background: color-mix(in oklab, var(--st-served) 18%, var(--surface)); color: #656B45; color: color-mix(in oklab, var(--st-served) 78%, var(--fg));
}
.tag.t-served i[data-v-293f2902] { background: var(--st-served);
}
.tag.t-paid[data-v-293f2902] { background: #DDDFDB; background: color-mix(in oklab, var(--st-paid) 14%, var(--surface)); color: #465260; color: color-mix(in oklab, var(--st-paid) 80%, var(--fg));
}
.tag.t-paid i[data-v-293f2902] { background: var(--st-paid);
}
.tag.t-muted[data-v-293f2902] { background: var(--soft); color: var(--muted);
}
.tag.t-muted i[data-v-293f2902] { background: var(--muted-2);
}

/* Toast */
.toast[data-v-293f2902] { position: absolute; left: 50%; bottom: 104px; transform: translateX(-50%); z-index: 95; max-width: 86%; padding: 10px 18px; border-radius: 999px; background: var(--ink-card); color: var(--paper-ink); font-size: 13px; text-align: center; line-height: 1.5;
}
.toast-fade-enter-active[data-v-293f2902], .toast-fade-leave-active[data-v-293f2902] { transition: opacity 0.2s ease, transform 0.2s ease;
}
.toast-fade-enter-from[data-v-293f2902], .toast-fade-leave-to[data-v-293f2902] { opacity: 0; transform: translateX(-50%) translateY(8px);
}
.sr-only[data-v-293f2902] { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap;
}
@media (prefers-reduced-motion: reduce) {
.sk i[data-v-293f2902] { animation-duration: 0.01ms;
}
.toast-fade-enter-active[data-v-293f2902], .toast-fade-leave-active[data-v-293f2902] { transition-duration: 0.01ms;
}
}

.app-error[data-v-58f5c5ac] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--color-cinnabar);
  border-radius: 10px;
  background: var(--color-surface-cinnabar);
}@supports not (gap: 1px) {
.app-error[data-v-58f5c5ac] > * + * {
    margin-left: 12px;
}
}
.error-icon[data-v-58f5c5ac] {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--color-cinnabar);
  color: var(--color-paper);
  font-weight: 700;
}
.error-body[data-v-58f5c5ac] {
  flex: 1 1 auto;
  min-width: 0;
}
.error-title[data-v-58f5c5ac] {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
}
.error-message[data-v-58f5c5ac] {
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-ink);
}
.error-retry[data-v-58f5c5ac] {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 16px;
  border: none;
  border-radius: 10px;
  background: var(--color-cinnabar);
  color: var(--color-paper);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.error-retry[data-v-58f5c5ac]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.skeleton-block[data-v-66b9825a] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 0;
}@supports not (gap: 1px) {
.skeleton-block[data-v-66b9825a] > * + * {
    margin-top: 10px;
}
}
.skeleton-row[data-v-66b9825a] {
  display: block;
  height: 56px;
  border-radius: 10px;
  background: linear-gradient(
    90deg,
    var(--color-surface-soft) 25%,
    var(--color-border) 50%,
    var(--color-surface-soft) 75%
  );
  background-size: 200% 100%;
  animation: skeleton-shimmer-66b9825a 1.4s ease-in-out infinite;
}
@keyframes skeleton-shimmer-66b9825a {
from { background-position: 200% 0;
}
to { background-position: -200% 0;
}
}
@media (prefers-reduced-motion: reduce) {
.skeleton-row[data-v-66b9825a] {
    animation: none;
}
}

.reservation-list[data-v-df95a700] { display: flex; flex-direction: column;
}
.empty-tip[data-v-df95a700] { margin: 0; padding: 28px 12px; color: var(--color-reservation-muted); font-size: 14px; text-align: center;
}
.reservation-items[data-v-df95a700] { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none;
}
.reservation-item[data-v-df95a700] {
  display: flex;
  align-items: stretch;
  margin-top: 6px;
  overflow: hidden;
  border: 1px solid var(--color-reservation-border);
  border-radius: 12px;
  background: var(--color-reservation-surface);
  color: var(--color-reservation-fg);
}
.reservation-item.terminal[data-v-df95a700] { opacity: 0.82;
}
.reservation-summary[data-v-df95a700] {
  min-width: 0;
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.reservation-summary[data-v-df95a700] > * + * {
    margin-left: 10px;
}
}
.reservation-summary[data-v-df95a700]:focus-visible,
.quick-advance[data-v-df95a700]:focus-visible,
.quick-cancel[data-v-df95a700]:focus-visible {
  outline: 2px solid var(--color-reservation-accent);
  outline-offset: -2px;
}
.reservation-summary[data-v-df95a700]:active { background: var(--color-reservation-soft);
}
.reservation-when[data-v-df95a700] {
  flex: none;
  min-width: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
@supports not (gap: 1px) {
.reservation-when[data-v-df95a700] > * + * {
    margin-top: 2px;
}
}
.reservation-date[data-v-df95a700] {
  color: var(--color-reservation-muted);
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 10.5px;
  letter-spacing: 0.02em;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.reservation-time[data-v-df95a700] {
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: 16.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.status[data-v-df95a700] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: max-content;
  margin: 0;
  padding: 2px 7px;
  border-radius: 999px;
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: 10px;
  letter-spacing: 0.05em;
  line-height: 1.2;
  white-space: nowrap;
}
@supports not (gap: 1px) {
.status[data-v-df95a700] > * + * {
    margin-left: 4px;
}
}
.status i[data-v-df95a700] { width: 5px; height: 5px; border-radius: 50%; background: currentColor; display: block;
}
.status-pending[data-v-df95a700] { background: var(--color-reservation-soft-clay); color: var(--color-reservation-accent);
}
.status-confirmed[data-v-df95a700] { background: var(--color-reservation-soft-green); color: var(--color-reservation-accent);
}
.status-arrived[data-v-df95a700] { background: var(--color-reservation-ink-card); color: var(--color-reservation-surface);
}
.status-completed[data-v-df95a700] { background: var(--color-reservation-soft); color: var(--color-reservation-muted);
}
.status-cancelled[data-v-df95a700] { background: var(--color-reservation-soft); color: var(--color-reservation-muted-two);
}
.status-cancelled i[data-v-df95a700] { background: transparent; border: 1.5px solid currentColor;
}
.reservation-copy[data-v-df95a700] { flex: 1; min-width: 0;
}
.reservation-guest[data-v-df95a700],
.reservation-region[data-v-df95a700] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.reservation-guest[data-v-df95a700] {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.35;
}
.reservation-party[data-v-df95a700] {
  color: var(--color-reservation-muted);
  font-size: 12px;
  font-weight: 400;
}
.reservation-region[data-v-df95a700] {
  display: block;
  margin-top: 2px;
  color: var(--color-reservation-muted);
  font-size: 11.5px;
  line-height: 1.4;
}
.quick-actions[data-v-df95a700] {
  flex: none;
  display: flex;
  align-items: center;
}
.quick-cancel[data-v-df95a700] {
  flex: none;
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--color-reservation-muted);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.quick-cancel[data-v-df95a700]:active { color: var(--color-reservation-cinnabar);
}
.quick-advance[data-v-df95a700] {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 12px;
  margin: 0 6px 0 2px;
  border-radius: 10px;
  border: 1px solid #C9A381;
  border: 1px solid color-mix(in oklab, var(--color-reservation-accent) 45%, var(--color-reservation-border));
  background: var(--color-reservation-soft-green);
  color: var(--color-reservation-accent);
  font: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.quick-advance[data-v-df95a700]:active {
  background: #EEDFCF;
  background: color-mix(in oklab, var(--color-reservation-accent) 16%, var(--color-reservation-surface));
}
.quick-advance[data-v-df95a700]:disabled,
.quick-cancel[data-v-df95a700]:disabled { opacity: 0.52; cursor: not-allowed;
}
@media (prefers-reduced-motion: no-preference) {
.reservation-item[data-v-df95a700] { transition: border-color var(--duration-fast) var(--ease-out);
}
.reservation-summary[data-v-df95a700],
  .quick-advance[data-v-df95a700] { transition: background var(--duration-fast) var(--ease-out);
}
.quick-cancel[data-v-df95a700] { transition: color var(--duration-fast) var(--ease-out);
}
}

.draft-notice[data-v-ae21f81e] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 13px;
}@supports not (gap: 1px) {
.draft-notice[data-v-ae21f81e] > * + * {
    margin-left: 12px;
}
}
.draft-notice.info[data-v-ae21f81e] {
  background: var(--color-surface-green);
  border-color: var(--color-green);
}
.draft-notice.warning[data-v-ae21f81e] {
  background: var(--color-surface-cinnabar);
  border-color: var(--color-cinnabar);
}
.notice-text[data-v-ae21f81e] {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--color-ink);
  line-height: 1.5;
}
.notice-actions[data-v-ae21f81e] {
  display: flex;
  gap: 8px;
  flex: 0 0 auto;
}
@supports not (gap: 1px) {
.notice-actions[data-v-ae21f81e] > * + * {
    margin-left: 8px;
}
}
.notice-btn[data-v-ae21f81e] {
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
}
.notice-btn.primary[data-v-ae21f81e] {
  border-color: var(--color-green);
  background: var(--color-green);
  color: var(--color-paper);
}

.rdtp-trigger[data-v-8b15960b] {
  width: 100%;
  min-height: var(--touch-min);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 12px;
  border: 1px solid var(--color-reservation-border);
  border-radius: var(--radius);
  background: var(--color-reservation-surface);
  color: var(--color-reservation-fg);
  font: inherit;
  font-size: 15px;
  text-align: left;
  cursor: pointer;
}@supports not (gap: 1px) {
.rdtp-trigger[data-v-8b15960b] > * + * {
    margin-left: 12px;
}
}
.rdtp-trigger[data-v-8b15960b]:focus-visible,
.rdtp-opt[data-v-8b15960b]:focus-visible,
.rdtp-now[data-v-8b15960b]:focus-visible,
.rdtp-cancel[data-v-8b15960b]:focus-visible,
.rdtp-confirm[data-v-8b15960b]:focus-visible {
  outline: 2px solid var(--color-reservation-accent);
  outline-offset: 2px;
}
.rdtp-trigger[data-v-8b15960b]:disabled { opacity: 0.58; cursor: not-allowed;
}
.rdtp-trigger-arrow[data-v-8b15960b] { color: var(--color-reservation-muted); font-size: 22px; line-height: 1;
}
.rdtp-overlay[data-v-8b15960b] {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-end;
  background: var(--color-reservation-mask);
}
@supports not (inset: 0) {
.rdtp-overlay[data-v-8b15960b] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.rdtp-sheet[data-v-8b15960b] {
  width: 100%;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
  background: var(--color-reservation-bg);
  box-shadow: var(--color-reservation-shadow);
  color: var(--color-reservation-fg);
  font-family: var(--font-sans);
  outline: none;
  padding: 6px 16px calc(14px + env(safe-area-inset-bottom, 0px));
}
.rdtp-grip[data-v-8b15960b] {
  width: 36px;
  height: 4px;
  margin: 10px auto 0;
  border-radius: 999px;
  background: var(--color-reservation-border);
}
.rdtp-head[data-v-8b15960b] { padding: 8px 4px 10px;
}
.rdtp-title[data-v-8b15960b] {
  margin: 0;
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.4;
}
.rdtp-cur[data-v-8b15960b] {
  margin: 3px 0 0;
  color: var(--color-reservation-muted);
  font-size: 12.5px;
  font-variant-numeric: tabular-nums;
}
.rdtp-cols[data-v-8b15960b] { display: flex; gap: 8px;
}
@supports not (gap: 1px) {
.rdtp-cols[data-v-8b15960b] > * + * {
    margin-left: 8px;
}
}
.rdtp-colwrap[data-v-8b15960b] {
  flex: 1.5;
  position: relative;
  height: 200px;
  overflow: hidden;
  border: 1px solid var(--color-reservation-border);
  border-radius: 12px;
  background: var(--color-reservation-surface);
}
.rdtp-narrow[data-v-8b15960b] { flex: 1;
}
.rdtp-col[data-v-8b15960b] {
  height: 100%;
  overflow-y: auto;
  padding: 80px 4px;
  scroll-snap-type: y mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.rdtp-col[data-v-8b15960b]::-webkit-scrollbar { display: none;
}
.rdtp-band[data-v-8b15960b] {
  position: absolute;
  left: 5px;
  right: 5px;
  top: 50%;
  height: 40px;
  transform: translateY(-50%);
  border-radius: 10px;
  pointer-events: none;
  background: rgba(240, 227, 204, 0.75);
  background: color-mix(in oklab, var(--color-reservation-soft-green) 75%, transparent);
  border-top: 1px solid var(--color-reservation-border);
  border-bottom: 1px solid var(--color-reservation-border);
}
.rdtp-opt[data-v-8b15960b] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  padding: 0 6px;
  border: 0;
  position: relative;
  background: transparent;
  color: var(--color-reservation-muted);
  font: inherit;
  font-size: 13.5px;
  font-variant-numeric: tabular-nums;
  text-align: center;
  cursor: pointer;
  white-space: nowrap;
  scroll-snap-align: center;
  gap: 4px;
}
@supports not (gap: 1px) {
.rdtp-opt[data-v-8b15960b] > * + * {
    margin-left: 4px;
}
}
.rdtp-opt.is-on[data-v-8b15960b] {
  color: var(--color-reservation-accent);
  font-weight: 600;
}
.rdtp-opt small[data-v-8b15960b] {
  color: var(--color-reservation-muted);
  font-size: 10px;
  font-weight: 400;
}
.rdtp-foot[data-v-8b15960b] {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 12px;
}
@supports not (gap: 1px) {
.rdtp-foot[data-v-8b15960b] > * + * {
    margin-left: 10px;
}
}
.rdtp-now[data-v-8b15960b] {
  flex: none;
  min-height: var(--touch-min);
  padding: 0 4px;
  border: 0;
  background: none;
  color: var(--color-reservation-accent);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.rdtp-cancel[data-v-8b15960b],
.rdtp-confirm[data-v-8b15960b] {
  flex: 1;
  min-height: 48px;
  border-radius: 12px;
  font: inherit;
  font-size: 15px;
  cursor: pointer;
}
.rdtp-cancel[data-v-8b15960b] {
  border: 1px solid var(--color-reservation-border);
  background: var(--color-reservation-surface);
  color: var(--color-reservation-fg);
}
.rdtp-confirm[data-v-8b15960b] {
  border: 0;
  background: var(--color-reservation-accent);
  color: var(--color-reservation-surface);
  letter-spacing: 0.06em;
}
@media (prefers-reduced-motion: no-preference) {
.rdtp-overlay[data-v-8b15960b] { animation: rdtp-fade-8b15960b .15s var(--ease-out);
}
.rdtp-sheet[data-v-8b15960b] { animation: rdtp-rise-8b15960b .18s var(--ease-out);
}
}
@keyframes rdtp-fade-8b15960b {
from { opacity: 0;
}
to { opacity: 1;
}
}
@keyframes rdtp-rise-8b15960b {
from { transform: translateY(14px);
}
to { transform: translateY(0);
}
}

.overlay[data-v-c98ed6f1] {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: flex-end;
  background: var(--color-reservation-mask);
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.overlay[data-v-c98ed6f1] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-c98ed6f1] {
  width: 100%;
  max-height: calc(100dvh - 12px);
  overflow-y: auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 13px;
  padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
  border-radius: 18px 18px 0 0;
  background: var(--color-reservation-surface);
  color: var(--color-reservation-fg);
  box-shadow: var(--color-reservation-shadow);
}
@supports not (gap: 1px) {
.sheet[data-v-c98ed6f1] > * + * {
    margin-top: 13px;
}
}
.sheet-head[data-v-c98ed6f1] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-c98ed6f1] > * + * {
    margin-left: 12px;
}
}
.sheet-eyebrow[data-v-c98ed6f1] { margin: 0 0 3px; color: var(--color-reservation-muted); font-size: 12px;
}
.sheet-title[data-v-c98ed6f1] { margin: 0; color: var(--color-reservation-fg); font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 21px; font-weight: 600;
}
.close-btn[data-v-c98ed6f1] {
  width: var(--touch-min); height: var(--touch-min); margin: -7px -7px 0 0;
  border: 0; border-radius: 50%; background: transparent; color: var(--color-reservation-muted);
  font: inherit; font-size: 25px; cursor: pointer;
}
.close-btn[data-v-c98ed6f1]:focus-visible, .field input[data-v-c98ed6f1]:focus-visible, .field select[data-v-c98ed6f1]:focus-visible, .field textarea[data-v-c98ed6f1]:focus-visible,
.stepper-btn[data-v-c98ed6f1]:focus-visible, .honorific-chip[data-v-c98ed6f1]:focus-visible, .ghost-btn[data-v-c98ed6f1]:focus-visible, .primary-btn[data-v-c98ed6f1]:focus-visible, .region-load-error button[data-v-c98ed6f1]:focus-visible {
  outline: 2px solid var(--color-reservation-accent); outline-offset: 2px;
}
.form-errors[data-v-c98ed6f1], .form-ok[data-v-c98ed6f1] { margin: 0; padding: 9px 10px; border-radius: var(--radius); font-size: 13px; line-height: 1.5;
}
.form-errors[data-v-c98ed6f1] { background: var(--color-reservation-soft-cinnabar); color: var(--color-reservation-cinnabar);
}
.form-ok[data-v-c98ed6f1] { background: var(--color-reservation-soft-green); color: var(--color-reservation-fg);
}
.field[data-v-c98ed6f1] { display: flex; flex-direction: column; gap: 6px; min-width: 0;
}
@supports not (gap: 1px) {
.field[data-v-c98ed6f1] > * + * {
    margin-top: 6px;
}
}
.field-row[data-v-c98ed6f1] { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.field-row[data-v-c98ed6f1] > * + * {
    margin-left: 10px;
}
}
.field-row .field[data-v-c98ed6f1] { flex: 1 1 0;
}
.field label[data-v-c98ed6f1] { color: var(--color-reservation-muted); font-size: 13px;
}
.field input[data-v-c98ed6f1], .field select[data-v-c98ed6f1], .field textarea[data-v-c98ed6f1] {
  box-sizing: border-box; width: 100%; min-height: var(--touch-min); padding: 0 11px;
  border: 1px solid var(--color-reservation-border); border-radius: var(--radius);
  background: var(--color-reservation-surface); color: var(--color-reservation-fg); font: inherit; font-size: 15px;
}
.field textarea[data-v-c98ed6f1] { min-height: 68px; padding: 10px 11px; resize: vertical;
}
.field input[data-v-c98ed6f1]::placeholder, .field textarea[data-v-c98ed6f1]::placeholder { color: var(--color-reservation-muted-two);
}
.field input[data-v-c98ed6f1]:focus, .field select[data-v-c98ed6f1]:focus, .field textarea[data-v-c98ed6f1]:focus { border-color: var(--color-reservation-accent); outline: none;
}
.honorifics[data-v-c98ed6f1] { display: flex; flex-wrap: wrap; gap: 7px;
}
@supports not (gap: 1px) {
.honorifics[data-v-c98ed6f1] > * + * {
    margin-left: 7px;
}
}
.honorific-chip[data-v-c98ed6f1] {
  min-height: 30px; padding: 0 10px; border: 1px solid var(--color-reservation-border); border-radius: var(--radius-pill);
  background: var(--color-reservation-soft); color: var(--color-reservation-muted); font: inherit; font-size: 12px; cursor: pointer;
}
.honorific-chip[data-v-c98ed6f1]:active { background: var(--color-reservation-soft-clay); color: var(--color-reservation-accent);
}
.stepper[data-v-c98ed6f1] { display: flex; align-items: center; gap: 10px; min-height: var(--touch-min);
}
@supports not (gap: 1px) {
.stepper[data-v-c98ed6f1] > * + * {
    margin-left: 10px;
}
}
.stepper-btn[data-v-c98ed6f1] {
  width: var(--touch-min); height: var(--touch-min); border: 1px solid var(--color-reservation-border);
  border-radius: var(--radius); background: var(--color-reservation-soft); color: var(--color-reservation-fg); font: inherit; font-size: 20px; cursor: pointer;
}
.stepper-btn[data-v-c98ed6f1]:disabled { opacity: .45; cursor: not-allowed;
}
.stepper-value[data-v-c98ed6f1] { min-width: 43px; color: var(--color-reservation-fg); font-size: 18px; font-variant-numeric: tabular-nums; text-align: center;
}
.stepper-value small[data-v-c98ed6f1] { margin-left: 2px; color: var(--color-reservation-muted); font-size: 12px;
}
.region-load-error[data-v-c98ed6f1] { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: -2px 0 0; padding: 8px 10px; border-radius: var(--radius); background: var(--color-reservation-soft-cinnabar); color: var(--color-reservation-cinnabar); font-size: 13px; line-height: 1.5;
}
@supports not (gap: 1px) {
.region-load-error[data-v-c98ed6f1] > * + * {
    margin-left: 8px;
}
}
.region-load-error button[data-v-c98ed6f1] { flex: 0 0 auto; min-height: 30px; padding: 0 9px; border: 1px solid var(--color-reservation-cinnabar); border-radius: var(--radius-pill); background: transparent; color: inherit; font: inherit; font-size: 12px; cursor: pointer;
}
.region-conflict[data-v-c98ed6f1] { margin: -2px 0 0; padding: 8px 10px; border-radius: var(--radius); background: var(--color-reservation-soft-clay); color: var(--color-reservation-fg); font-size: 13px; list-style: none; line-height: 1.5;
}
.field-hint[data-v-c98ed6f1] { margin: -3px 0 0; color: var(--color-reservation-muted); font-size: 12px;
}
.form-actions[data-v-c98ed6f1] { display: grid; grid-template-columns: 1fr 1.55fr; gap: 10px; margin-top: 3px;
}
.ghost-btn[data-v-c98ed6f1], .primary-btn[data-v-c98ed6f1] { min-height: var(--touch-min); border-radius: var(--radius); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
.ghost-btn[data-v-c98ed6f1] { border: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface); color: var(--color-reservation-muted);
}
.primary-btn[data-v-c98ed6f1] { border: 1px solid var(--color-reservation-accent); background: var(--color-reservation-accent); color: var(--color-reservation-surface);
}
.primary-btn[data-v-c98ed6f1]:disabled { opacity: .58; cursor: not-allowed;
}
.ghost-btn[data-v-c98ed6f1]:active, .primary-btn[data-v-c98ed6f1]:active, .stepper-btn[data-v-c98ed6f1]:active { transform: translateY(1px);
}
@media (prefers-reduced-motion: no-preference) {
.sheet[data-v-c98ed6f1] { animation: form-sheet-rise-c98ed6f1 .18s var(--ease-out);
}
.honorific-chip[data-v-c98ed6f1], .ghost-btn[data-v-c98ed6f1], .primary-btn[data-v-c98ed6f1], .stepper-btn[data-v-c98ed6f1] { transition: background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);
}
}
@keyframes form-sheet-rise-c98ed6f1 {
from { transform: translateY(16px);
}
to { transform: translateY(0);
}
}

.overlay[data-v-1580d19a] {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: flex-end;
  background: var(--color-reservation-mask);
}
@supports not (inset: 0) {
.overlay[data-v-1580d19a] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-1580d19a] {
  width: 100%;
  max-height: calc(100dvh - 12px);
  overflow-y: auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 13px;
  padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
  border-radius: 18px 18px 0 0;
  background: var(--color-reservation-surface);
  color: var(--color-reservation-fg);
  box-shadow: var(--color-reservation-shadow);
  font-family: var(--font-sans);
}
@supports not (gap: 1px) {
.sheet[data-v-1580d19a] > * + * {
    margin-top: 13px;
}
}
.sheet-head[data-v-1580d19a] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-1580d19a] > * + * {
    margin-left: 12px;
}
}
.sheet-eyebrow[data-v-1580d19a] { margin: 0 0 3px; color: var(--color-reservation-muted); font-size: 12px;
}
.sheet-title[data-v-1580d19a] { margin: 0; color: var(--color-reservation-fg); font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 21px; font-weight: 600;
}
.close-btn[data-v-1580d19a] { width: var(--touch-min); height: var(--touch-min); margin: -7px -7px 0 0; border: 0; border-radius: 50%; background: transparent; color: var(--color-reservation-muted); font: inherit; font-size: 25px; cursor: pointer;
}
.close-btn[data-v-1580d19a]:focus-visible, .field input[data-v-1580d19a]:focus-visible, .field select[data-v-1580d19a]:focus-visible, .field textarea[data-v-1580d19a]:focus-visible, .stepper-btn[data-v-1580d19a]:focus-visible, .honorific-chip[data-v-1580d19a]:focus-visible, .ghost-btn[data-v-1580d19a]:focus-visible, .primary-btn[data-v-1580d19a]:focus-visible, .region-load-error button[data-v-1580d19a]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: 2px;
}
.error-box[data-v-1580d19a] { margin: 0; padding: 9px 10px; border-radius: var(--radius); background: var(--color-reservation-soft-cinnabar); color: var(--color-reservation-cinnabar); font-size: 13px; line-height: 1.5;
}
.field-row[data-v-1580d19a] { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.field-row[data-v-1580d19a] > * + * {
    margin-left: 10px;
}
}
.field-row .field[data-v-1580d19a] { flex: 1 1 0; min-width: 0;
}
.field[data-v-1580d19a] { display: flex; flex-direction: column; gap: 6px; min-width: 0;
}
@supports not (gap: 1px) {
.field[data-v-1580d19a] > * + * {
    margin-top: 6px;
}
}
.field label[data-v-1580d19a] { color: var(--color-reservation-muted); font-size: 13px;
}
.field input[data-v-1580d19a], .field select[data-v-1580d19a], .field textarea[data-v-1580d19a] { box-sizing: border-box; width: 100%; min-height: var(--touch-min); padding: 0 11px; border: 1px solid var(--color-reservation-border); border-radius: var(--radius); background: var(--color-reservation-surface); color: var(--color-reservation-fg); font: inherit; font-size: 15px;
}
.field textarea[data-v-1580d19a] { min-height: 68px; padding: 10px 11px; resize: vertical;
}
.field input[data-v-1580d19a]::placeholder, .field textarea[data-v-1580d19a]::placeholder { color: var(--color-reservation-muted-two);
}
.field input[data-v-1580d19a]:focus, .field select[data-v-1580d19a]:focus, .field textarea[data-v-1580d19a]:focus { border-color: var(--color-reservation-accent); outline: none;
}
.field input[data-v-1580d19a]:disabled, .field select[data-v-1580d19a]:disabled, .field textarea[data-v-1580d19a]:disabled { opacity: 1; background: var(--color-reservation-soft); color: var(--color-reservation-muted); cursor: not-allowed;
}
.honorifics[data-v-1580d19a] { display: flex; flex-wrap: wrap; gap: 7px;
}
@supports not (gap: 1px) {
.honorifics[data-v-1580d19a] > * + * {
    margin-left: 7px;
}
}
.honorific-chip[data-v-1580d19a] { min-height: 30px; padding: 0 10px; border: 1px solid var(--color-reservation-border); border-radius: var(--radius-pill); background: var(--color-reservation-soft); color: var(--color-reservation-muted); font: inherit; font-size: 12px; cursor: pointer;
}
.honorific-chip[data-v-1580d19a]:disabled { opacity: .52; cursor: not-allowed;
}
.honorific-chip[data-v-1580d19a]:active:not(:disabled) { background: var(--color-reservation-soft-clay); color: var(--color-reservation-accent);
}
.field-hint[data-v-1580d19a] { margin: -3px 0 0; color: var(--color-reservation-muted); font-size: 12px; line-height: 1.45;
}
.deactivated-hint[data-v-1580d19a] { color: var(--color-reservation-cinnabar);
}
.region-load-error[data-v-1580d19a] { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: -3px 0 0; padding: 8px 10px; border-radius: var(--radius); background: var(--color-reservation-soft-cinnabar); color: var(--color-reservation-cinnabar); font-size: 12px; line-height: 1.45;
}
@supports not (gap: 1px) {
.region-load-error[data-v-1580d19a] > * + * {
    margin-left: 8px;
}
}
.region-load-error button[data-v-1580d19a] { flex: 0 0 auto; min-height: 30px; padding: 0 9px; border: 1px solid var(--color-reservation-cinnabar); border-radius: var(--radius-pill); background: transparent; color: inherit; font: inherit; font-size: 12px; cursor: pointer;
}
.stepper[data-v-1580d19a] { display: flex; align-items: center; gap: 10px; min-height: var(--touch-min);
}
@supports not (gap: 1px) {
.stepper[data-v-1580d19a] > * + * {
    margin-left: 10px;
}
}
.stepper-btn[data-v-1580d19a] { width: var(--touch-min); height: var(--touch-min); border: 1px solid var(--color-reservation-border); border-radius: var(--radius); background: var(--color-reservation-soft); color: var(--color-reservation-fg); font: inherit; font-size: 20px; cursor: pointer;
}
.stepper-btn[data-v-1580d19a]:disabled { opacity: .45; cursor: not-allowed;
}
.stepper-value[data-v-1580d19a] { min-width: 43px; color: var(--color-reservation-fg); font-size: 18px; font-variant-numeric: tabular-nums; text-align: center;
}
.stepper-value small[data-v-1580d19a] { margin-left: 2px; color: var(--color-reservation-muted); font-size: 12px;
}
.form-actions[data-v-1580d19a] { display: grid; grid-template-columns: 1fr 1.55fr; gap: 10px; margin-top: 3px;
}
.ghost-btn[data-v-1580d19a], .primary-btn[data-v-1580d19a] { min-height: var(--touch-min); border-radius: var(--radius); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
.ghost-btn[data-v-1580d19a] { border: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface); color: var(--color-reservation-muted);
}
.primary-btn[data-v-1580d19a] { border: 1px solid var(--color-reservation-accent); background: var(--color-reservation-accent); color: var(--color-reservation-surface);
}
.primary-btn[data-v-1580d19a]:disabled { opacity: .58; cursor: not-allowed;
}
.ghost-btn[data-v-1580d19a]:active, .primary-btn[data-v-1580d19a]:active, .stepper-btn[data-v-1580d19a]:active:not(:disabled) { transform: translateY(1px);
}
@media (prefers-reduced-motion: no-preference) {
.sheet[data-v-1580d19a] { animation: edit-sheet-rise-1580d19a .18s var(--ease-out);
}
.honorific-chip[data-v-1580d19a], .ghost-btn[data-v-1580d19a], .primary-btn[data-v-1580d19a], .stepper-btn[data-v-1580d19a] { transition: background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);
}
}
@keyframes edit-sheet-rise-1580d19a {
from { transform: translateY(16px);
}
to { transform: translateY(0);
}
}

.detail-page[data-v-fd904b4c] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-reservation-bg);
  color: var(--color-reservation-fg);
  font-family: var(--font-sans);
}
.ws-bar[data-v-fd904b4c] {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 48px;
  padding: 2px 8px 0;
  position: relative;
  z-index: 5;
}
@supports not (gap: 1px) {
.ws-bar[data-v-fd904b4c] > * + * {
    margin-left: 4px;
}
}
.bk-link[data-v-fd904b4c] {
  display: inline-flex;
  align-items: center;
  min-width: 56px;
  min-height: 44px;
  padding: 0 12px 0 6px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--color-reservation-accent);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.bk-link[data-v-fd904b4c]:active { background: var(--color-reservation-soft);
}
.wsb-t[data-v-fd904b4c] {
  flex: 1;
  min-width: 0;
  text-align: center;
  font-size: 12px;
  color: var(--color-reservation-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wsb-r[data-v-fd904b4c] { min-width: 56px;
}
.view-scroll[data-v-fd904b4c] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: none;
  padding-bottom: 14px;
}
.view-scroll[data-v-fd904b4c]::-webkit-scrollbar { display: none;
}
.d-hero[data-v-fd904b4c] { padding: 10px 20px 2px;
}
.d-time[data-v-fd904b4c] {
  margin: 0;
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
}
.d-time small[data-v-fd904b4c] {
  margin-left: 8px;
  color: var(--color-reservation-muted);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.02em;
}
.d-heroline[data-v-fd904b4c] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.d-heroline[data-v-fd904b4c] > * + * {
    margin-left: 10px;
}
}
.status[data-v-fd904b4c] {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 0;
  padding: 4px 10px;
  border-radius: 999px;
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: 11px;
  letter-spacing: 0.08em;
}
@supports not (gap: 1px) {
.status[data-v-fd904b4c] > * + * {
    margin-left: 6px;
}
}
.status i[data-v-fd904b4c] { width: 6px; height: 6px; border-radius: 50%; background: currentColor; display: block;
}
.status-pending[data-v-fd904b4c] { background: var(--color-reservation-soft-clay); color: var(--color-reservation-accent);
}
.status-confirmed[data-v-fd904b4c] { background: var(--color-reservation-soft-green); color: var(--color-reservation-accent);
}
.status-arrived[data-v-fd904b4c] { background: var(--color-reservation-ink-card); color: var(--color-reservation-surface);
}
.status-completed[data-v-fd904b4c] { background: var(--color-reservation-soft); color: var(--color-reservation-muted);
}
.status-cancelled[data-v-fd904b4c] { background: var(--color-reservation-soft); color: var(--color-reservation-muted-two);
}
.d-who[data-v-fd904b4c] { font-size: 16px; font-weight: 600; word-break: break-all;
}
.d-who small[data-v-fd904b4c] {
  margin-left: 6px;
  color: var(--color-reservation-muted);
  font-size: 13px;
  font-weight: 400;
}
.d-seat[data-v-fd904b4c] {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--color-reservation-muted);
  word-break: break-all;
}
.off-tag[data-v-fd904b4c] {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 5px;
  background: var(--color-reservation-soft-cinnabar);
  color: var(--color-reservation-cinnabar);
  font-size: 10.5px;
  letter-spacing: 0.05em;
  vertical-align: 1px;
}
.d-sec[data-v-fd904b4c] {
  margin: 12px 16px 0;
  overflow: hidden;
  border: 1px solid var(--color-reservation-border);
  border-radius: 14px;
  background: var(--color-reservation-surface);
}
.d-sec-t[data-v-fd904b4c] {
  margin: 0;
  padding: 10px 16px 2px;
  color: var(--color-reservation-muted);
  font-size: 12px;
  letter-spacing: 0.14em;
}
.kv[data-v-fd904b4c] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  padding: 8px 16px;
  font-size: 13.5px;
}
@supports not (gap: 1px) {
.kv[data-v-fd904b4c] > * + * {
    margin-left: 14px;
}
}
.kv .k[data-v-fd904b4c] { flex: none; color: var(--color-reservation-muted);
}
.kv .v[data-v-fd904b4c] { min-width: 0; text-align: right; word-break: break-all;
}
.kv .v.muted[data-v-fd904b4c], .lt.muted[data-v-fd904b4c] { color: var(--color-reservation-muted-two);
}
.mono[data-v-fd904b4c] { font-variant-numeric: tabular-nums; font-size: 12.5px;
}
.d-note[data-v-fd904b4c] {
  padding: 8px 16px 12px;
  color: var(--color-reservation-fg);
  font-size: 13px;
  line-height: 1.7;
  word-break: break-all;
}
.d-note small[data-v-fd904b4c] {
  display: block;
  margin-bottom: 2px;
  color: var(--color-reservation-muted);
  font-size: 12px;
  letter-spacing: 0.05em;
}
.d-cancel-reason[data-v-fd904b4c] {
  margin: 10px 16px 0;
  padding: 10px 14px;
  border-radius: 12px;
  background: var(--color-reservation-soft);
  font-size: 12.5px;
  line-height: 1.65;
}
.link-row[data-v-fd904b4c] {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 10px 16px;
  border: 0;
  background: none;
  color: var(--color-reservation-fg);
  font: inherit;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.link-row[data-v-fd904b4c] > * + * {
    margin-left: 10px;
}
}
.link-row[data-v-fd904b4c]:active { background: var(--color-reservation-soft);
}
.link-row.is-static[data-v-fd904b4c] { cursor: default;
}
.lt[data-v-fd904b4c] { flex: 1; min-width: 0;
}
.lt small[data-v-fd904b4c] {
  display: block;
  margin-top: 1px;
  color: var(--color-reservation-muted);
  font-size: 11.5px;
  line-height: 1.5;
}
.arr[data-v-fd904b4c] { flex: none; color: var(--color-reservation-muted-two);
}
.d-readonly[data-v-fd904b4c] {
  margin: 12px 16px 0;
  padding: 9px 14px;
  border-radius: 10px;
  background: var(--color-reservation-soft);
  color: var(--color-reservation-muted);
  font-size: 12px;
  line-height: 1.65;
}
.d-foot[data-v-fd904b4c] {
  flex: none;
  z-index: 6;
  padding: 10px 16px 12px;
  border-top: 1px solid var(--color-reservation-border);
  background: var(--color-reservation-surface);
}
.cta-actions[data-v-fd904b4c] { display: flex; align-items: center; gap: 10px; margin-top: 2px;
}
@supports not (gap: 1px) {
.cta-actions[data-v-fd904b4c] > * + * {
    margin-left: 10px;
}
}
.detail-primary[data-v-fd904b4c],
.detail-secondary[data-v-fd904b4c] {
  flex: 1;
  min-height: 48px;
  border-radius: 12px;
  font: inherit;
  cursor: pointer;
}
.detail-primary[data-v-fd904b4c] {
  border: 0;
  background: var(--color-reservation-accent);
  color: var(--color-reservation-surface);
  font-size: 15px;
  letter-spacing: 0.06em;
}
.detail-secondary[data-v-fd904b4c] {
  border: 1px solid var(--color-reservation-border);
  background: var(--color-reservation-surface);
  color: var(--color-reservation-fg);
  font-size: 14.5px;
}
.d-foot-links[data-v-fd904b4c] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2px;
}
.detail-cancel[data-v-fd904b4c],
.detail-delete[data-v-fd904b4c] {
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: none;
  font: inherit;
  font-size: 13.5px;
  cursor: pointer;
}
.detail-cancel[data-v-fd904b4c] { color: var(--color-reservation-accent);
}
.detail-delete[data-v-fd904b4c] { color: var(--color-reservation-cinnabar);
}
.foot-note[data-v-fd904b4c] {
  padding: 0 12px;
  color: var(--color-reservation-muted-two);
  font-size: 12px;
}
.bk-link[data-v-fd904b4c]:focus-visible,
.detail-primary[data-v-fd904b4c]:focus-visible,
.detail-secondary[data-v-fd904b4c]:focus-visible,
.detail-cancel[data-v-fd904b4c]:focus-visible,
.detail-delete[data-v-fd904b4c]:focus-visible,
.link-row[data-v-fd904b4c]:focus-visible {
  outline: 2px solid var(--color-reservation-accent);
  outline-offset: 2px;
}

.action-overlay[data-v-62734155] { position: fixed; inset: 0; z-index: 80; display: flex; align-items: flex-end; background: var(--color-reservation-mask);
}
@supports not (inset: 0) {
.action-overlay[data-v-62734155] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.action-sheet[data-v-62734155] { width: 100%; box-sizing: border-box; padding: 20px 16px calc(18px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; background: var(--color-reservation-surface); color: var(--color-reservation-fg); box-shadow: var(--color-reservation-shadow); font-family: var(--font-sans);
}
.action-eyebrow[data-v-62734155] { margin: 0 0 4px; color: var(--color-reservation-cinnabar); font-size: 12px;
}
h2[data-v-62734155] { margin: 0; font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 20px;
}
.action-copy[data-v-62734155] { margin: 9px 0 16px; color: var(--color-reservation-muted); font-size: 13px; line-height: 1.55;
}
label[data-v-62734155] { display: block; margin-bottom: 6px; color: var(--color-reservation-muted); font-size: 13px;
}
textarea[data-v-62734155] { box-sizing: border-box; width: 100%; min-height: 80px; padding: 10px 11px; border: 1px solid var(--color-reservation-border); border-radius: var(--radius); background: var(--color-reservation-surface); color: var(--color-reservation-fg); font: inherit; font-size: 14px; resize: vertical;
}
textarea[data-v-62734155]:focus { border-color: var(--color-reservation-accent); outline: none;
}
.action-error[data-v-62734155] { margin: 9px 0 0; color: var(--color-reservation-cinnabar); font-size: 13px;
}
.action-buttons[data-v-62734155] { display: grid; grid-template-columns: 1fr 1.45fr; gap: 10px; margin-top: 16px;
}
.sheet-secondary[data-v-62734155], .sheet-confirm[data-v-62734155] { min-height: var(--touch-min); border-radius: var(--radius); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
.sheet-secondary[data-v-62734155] { border: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface); color: var(--color-reservation-muted);
}
.sheet-confirm[data-v-62734155] { border: 1px solid var(--color-reservation-cinnabar); background: var(--color-reservation-cinnabar); color: var(--color-reservation-surface);
}
.sheet-secondary[data-v-62734155]:disabled, .sheet-confirm[data-v-62734155]:disabled { opacity: .58; cursor: not-allowed;
}
textarea[data-v-62734155]:focus-visible, .sheet-secondary[data-v-62734155]:focus-visible, .sheet-confirm[data-v-62734155]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: 2px;
}

.action-overlay[data-v-f48974a5] { position: fixed; inset: 0; z-index: 80; display: flex; align-items: flex-end; background: var(--color-reservation-mask);
}
@supports not (inset: 0) {
.action-overlay[data-v-f48974a5] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.action-sheet[data-v-f48974a5] { width: 100%; box-sizing: border-box; padding: 20px 16px calc(18px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; background: var(--color-reservation-surface); color: var(--color-reservation-fg); box-shadow: var(--color-reservation-shadow); font-family: var(--font-sans);
}
.action-eyebrow[data-v-f48974a5] { margin: 0 0 4px; color: var(--color-reservation-cinnabar); font-size: 12px;
}
h2[data-v-f48974a5] { margin: 0; font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 20px;
}
.action-copy[data-v-f48974a5] { margin: 9px 0 0; color: var(--color-reservation-muted); font-size: 13px; line-height: 1.55;
}
.action-error[data-v-f48974a5] { margin: 10px 0 0; color: var(--color-reservation-cinnabar); font-size: 13px;
}
.action-buttons[data-v-f48974a5] { display: grid; grid-template-columns: 1fr 1.45fr; gap: 10px; margin-top: 18px;
}
.sheet-secondary[data-v-f48974a5], .sheet-confirm[data-v-f48974a5] { min-height: var(--touch-min); border-radius: var(--radius); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}
.sheet-secondary[data-v-f48974a5] { border: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface); color: var(--color-reservation-muted);
}
.sheet-confirm[data-v-f48974a5] { border: 1px solid var(--color-reservation-cinnabar); background: var(--color-reservation-cinnabar); color: var(--color-reservation-surface);
}
.sheet-secondary[data-v-f48974a5]:disabled, .sheet-confirm[data-v-f48974a5]:disabled { opacity: .58; cursor: not-allowed;
}
.sheet-secondary[data-v-f48974a5]:focus-visible, .sheet-confirm[data-v-f48974a5]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: 2px;
}

.notice-overlay[data-v-b7ab6953] { position: fixed; inset: 0; z-index: 110; display: grid; place-items: center; padding: 20px; background: var(--color-reservation-mask);
}
@supports not (inset: 0) {
.notice-overlay[data-v-b7ab6953] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.notice-dialog[data-v-b7ab6953] { width: min(100%, 330px); box-sizing: border-box; padding: 20px; border-radius: 16px; background: var(--color-reservation-surface); color: var(--color-reservation-fg); box-shadow: var(--color-reservation-shadow); font-family: var(--font-sans);
}
.notice-eyebrow[data-v-b7ab6953] { margin: 0 0 4px; color: var(--color-reservation-accent); font-size: 12px;
}.notice-dialog h2[data-v-b7ab6953] { margin: 0; font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 20px;
}.notice-dialog p[data-v-b7ab6953]:not(.notice-eyebrow) { margin: 10px 0 18px; color: var(--color-reservation-muted); font-size: 14px; line-height: 1.55;
}.notice-dialog button[data-v-b7ab6953] { width: 100%; min-height: var(--touch-min); border: 1px solid var(--color-reservation-accent); border-radius: var(--radius); background: var(--color-reservation-accent); color: var(--color-reservation-surface); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
}.notice-dialog button[data-v-b7ab6953]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: 2px;
}

.reservations-view[data-v-45fbf4c2] { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--color-reservation-bg); color: var(--color-reservation-fg); font-family: var(--font-sans);
}
/* 对齐小程序定稿（rv 头，rpx÷2）：透明底 + 标题 20px 宋体 + 日期副行 + 暖墨波纹收边。 */
.page-head[data-v-45fbf4c2] { position: relative; overflow: hidden; flex: 0 0 auto; padding: 18px 16px 20px; background: transparent; color: var(--color-reservation-fg);
}
.page-sand[data-v-45fbf4c2] { position: absolute; left: -4px; bottom: 0; width: calc(100% + 108px); height: 36px; pointer-events: none; animation: page-sand-flow-45fbf4c2 16s ease-in-out infinite alternate;
}
@keyframes page-sand-flow-45fbf4c2 {
from { transform: translateX(0);
}
to { transform: translateX(-100px);
}
}
.page-title-row[data-v-45fbf4c2] { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 3px;
}
@supports not (gap: 1px) {
.page-title-row[data-v-45fbf4c2] > * + * {
    margin-top: 3px;
}
}
.page-title[data-v-45fbf4c2] { margin: 0; font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 20px; font-weight: 600; letter-spacing: .08em;
}
.page-date[data-v-45fbf4c2] { margin-top: 2px; color: var(--color-reservation-muted); font-size: 12px; font-variant-numeric: tabular-nums;
}
.scope-controls[data-v-45fbf4c2] { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; min-height: 50px; padding: 0 12px; border-bottom: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface);
}
@supports not (gap: 1px) {
.scope-controls[data-v-45fbf4c2] > * + * {
    margin-left: 8px;
}
}
.scope-tabs[data-v-45fbf4c2] { min-width: 0; flex: 1 1 auto; display: flex; align-self: stretch; gap: 16px;
}
@supports not (gap: 1px) {
.scope-tabs[data-v-45fbf4c2] > * + * {
    margin-left: 16px;
}
}
.scope-tab[data-v-45fbf4c2] { position: relative; min-width: 0; flex: 1 1 0; border: 0; background: transparent; color: var(--color-reservation-muted); font: inherit; font-size: 13px; white-space: nowrap; cursor: pointer;
}
.scope-tab.active[data-v-45fbf4c2] { color: var(--color-reservation-fg); font-weight: 650;
}
.scope-tab.active[data-v-45fbf4c2]::after { position: absolute; right: 16%; bottom: 0; left: 16%; height: 2px; border-radius: 2px; background: var(--color-reservation-accent); content: "";
}
.scope-controls.search-mode[data-v-45fbf4c2] { gap: 8px;
}
.search-open[data-v-45fbf4c2] {
  flex: none;
  margin-left: auto;
  width: 44px;
  min-height: 42px;
  border: 0;
  background: none;
  color: var(--color-reservation-muted);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
@supports not (gap: 1px) {
.search-open[data-v-45fbf4c2] > * + * {
    margin-top: 4px;
}
}
.search-open svg[data-v-45fbf4c2] { width: 17px; height: 17px; display: block;
}
.search-open .search-label[data-v-45fbf4c2] { font-size: 10px; line-height: 1; color: var(--color-reservation-muted); letter-spacing: .05em;
}
.search-open[data-v-45fbf4c2]:active { color: var(--color-reservation-accent);
}
.search-ico[data-v-45fbf4c2] {
  flex: none;
  width: 17px;
  height: 17px;
  color: var(--color-reservation-muted-two);
  display: flex;
}
.search-ico svg[data-v-45fbf4c2] { width: 100%; height: 100%; display: block;
}
.reservation-search-input[data-v-45fbf4c2] {
  flex: 1;
  min-width: 0;
  min-height: var(--touch-min);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--color-reservation-fg);
  font: inherit;
  font-size: 14px;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.reservation-search-input[data-v-45fbf4c2]:focus,
.reservation-search-input[data-v-45fbf4c2]:focus-visible {
  outline: none;
}
.reservation-search-input[data-v-45fbf4c2]::-webkit-search-decoration,
.reservation-search-input[data-v-45fbf4c2]::-webkit-search-cancel-button,
.reservation-search-input[data-v-45fbf4c2]::-webkit-search-results-button,
.reservation-search-input[data-v-45fbf4c2]::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}
.reservation-search-input[data-v-45fbf4c2]::placeholder { color: var(--color-reservation-muted-two);
}
.search-clear[data-v-45fbf4c2] {
  flex: none;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--color-reservation-muted);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.search-clear[data-v-45fbf4c2]:active { background: var(--color-reservation-soft);
}
.search-cancel[data-v-45fbf4c2] {
  flex: none;
  min-height: 44px;
  padding: 0 4px;
  border: 0;
  background: none;
  color: var(--color-reservation-muted);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
}
.search-cancel[data-v-45fbf4c2]:active { color: var(--color-reservation-accent);
}
.status-tabs[data-v-45fbf4c2] { flex: 0 0 auto; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; padding: 9px 10px; background: var(--color-reservation-bg);
}
.status-tab[data-v-45fbf4c2] { min-width: 0; min-height: 31px; padding: 0 2px; border: 1px solid var(--color-reservation-border); border-right: 0; background: var(--color-reservation-surface); color: var(--color-reservation-muted); font: inherit; font-size: 10px; white-space: nowrap; cursor: pointer;
}
.status-tab[data-v-45fbf4c2]:first-child { border-radius: 8px 0 0 8px;
}.status-tab[data-v-45fbf4c2]:last-child { border-right: 1px solid var(--color-reservation-border); border-radius: 0 8px 8px 0;
}
.status-tab.active[data-v-45fbf4c2] { background: var(--color-reservation-soft-clay); color: var(--color-reservation-accent); font-weight: 650;
}
.status-tab[data-v-45fbf4c2]:disabled { opacity: .58; cursor: not-allowed;
}
.feedback[data-v-45fbf4c2] { flex: 0 0 auto; margin: 0 12px 8px; padding: 9px 10px; border-radius: var(--radius); font-size: 13px; line-height: 1.45;
}
.feedback-error[data-v-45fbf4c2] { background: var(--color-reservation-soft-cinnabar); color: var(--color-reservation-cinnabar);
}.feedback-success[data-v-45fbf4c2] { background: var(--color-reservation-soft-green); color: var(--color-reservation-fg);
}
.list-area[data-v-45fbf4c2] { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 0 16px 12px;
}
.state-copy[data-v-45fbf4c2] { margin: 26px 0; color: var(--color-reservation-muted); font-size: 13px; text-align: center;
}
.empty-state[data-v-45fbf4c2] { display: grid; justify-items: center; gap: 8px; padding: 46px 14px; color: var(--color-reservation-muted); font-size: 13px; text-align: center;
}.empty-state strong[data-v-45fbf4c2] { color: var(--color-reservation-fg); font-family: "Songti SC", "STSong", "Noto Serif SC", serif; font-size: 18px;
}.empty-state button[data-v-45fbf4c2] { min-height: 36px; margin-top: 5px; padding: 0 12px; border: 1px solid var(--color-reservation-border); border-radius: var(--radius-pill); background: var(--color-reservation-surface); color: var(--color-reservation-accent); font: inherit; font-size: 13px; cursor: pointer;
}
.search-summary[data-v-45fbf4c2] { margin: 10px 0; color: var(--color-reservation-muted); font-size: 12px;
}.result-group + .result-group[data-v-45fbf4c2] { margin-top: 16px;
}.result-group h2[data-v-45fbf4c2], .dated-group h2[data-v-45fbf4c2] { margin: 0; padding: 8px 4px 4px; color: var(--color-reservation-muted); font-size: 11.5px; font-weight: 500; letter-spacing: .18em;
}.dated-group + .dated-group[data-v-45fbf4c2] { margin-top: 8px;
}
.quick-entry[data-v-45fbf4c2] { flex: 0 0 auto; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid var(--color-reservation-border); background: var(--color-reservation-surface);
}.quick-open-btn[data-v-45fbf4c2] { width: 100%; min-height: var(--touch-min); border: 1px solid var(--color-reservation-accent); border-radius: var(--radius); background: var(--color-reservation-accent); color: var(--color-reservation-surface); font: inherit; font-size: 15px; font-weight: 650; cursor: pointer;
}.quick-open-btn[data-v-45fbf4c2]:disabled { opacity: .56; cursor: not-allowed;
}.quick-entry-note[data-v-45fbf4c2] { margin: 6px 0 0; color: var(--color-reservation-muted); font-size: 11px; text-align: center;
}
.scope-tab[data-v-45fbf4c2]:focus-visible, .search-open[data-v-45fbf4c2]:focus-visible, .search-cancel[data-v-45fbf4c2]:focus-visible, .search-clear[data-v-45fbf4c2]:focus-visible, .status-tab[data-v-45fbf4c2]:focus-visible, .quick-open-btn[data-v-45fbf4c2]:focus-visible, .empty-state button[data-v-45fbf4c2]:focus-visible { outline: 2px solid var(--color-reservation-accent); outline-offset: 2px;
}
@media (prefers-reduced-motion: no-preference) {
.scope-tab[data-v-45fbf4c2], .status-tab[data-v-45fbf4c2], .quick-open-btn[data-v-45fbf4c2] { transition: color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);
}
}
@media (prefers-reduced-motion: reduce) {
.page-sand[data-v-45fbf4c2] { animation: none;
}
}

.overlay[data-v-bb628adc] {
  --ink: var(--color-ink);
  --green: var(--color-green);
  --paper: var(--color-paper);
  --wood: var(--color-wood-gray);
  --clay: var(--color-clay);
  --cinnabar: var(--color-cinnabar);
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: flex-end;
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
}
@supports not (inset: 0) {
.overlay[data-v-bb628adc] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-bb628adc] {
  width: 100%;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--paper);
  border-radius: 12px 12px 0 0;
  padding: 16px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.sheet[data-v-bb628adc] > * + * {
    margin-top: 12px;
}
}
.sheet-head[data-v-bb628adc] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sheet-title[data-v-bb628adc] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
}
.close-btn[data-v-bb628adc] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--wood);
  cursor: pointer;
}
.hint[data-v-bb628adc] {
  margin: 0;
  padding: 8px 12px;
  border-radius: 10px;
  background: var(--color-surface-green);
  color: var(--green);
  font-size: 13px;
  line-height: 1.5;
}
.error-box[data-v-bb628adc] {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  background: var(--color-surface-clay);
  color: var(--cinnabar);
}
.field[data-v-bb628adc] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-bb628adc] > * + * {
    margin-top: 6px;
}
}
.label[data-v-bb628adc] {
  font-size: 13px;
  color: var(--wood);
}
.required[data-v-bb628adc] {
  color: var(--cinnabar);
  font-style: normal;
}
.field-hint[data-v-bb628adc] {
  margin: 0;
  font-size: 12px;
  color: var(--wood);
}
.staff-error[data-v-bb628adc],
.recurring-error[data-v-bb628adc] {
  margin: 0;
  font-size: 12px;
  color: var(--cinnabar);
}
.kind-static[data-v-bb628adc] {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 15px;
  color: var(--ink);
  background: var(--color-surface-soft);
}
.field input[data-v-bb628adc]:not([type="date"]):not([type="datetime-local"]),
.field textarea[data-v-bb628adc],
.field select[data-v-bb628adc] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
  color: var(--ink);
  background: var(--paper);
}
.primary-btn[data-v-bb628adc] {
  min-height: 44px;
  border: none;
  border-radius: 10px;
  background: var(--green);
  color: var(--color-paper);
  font-size: 15px;
  cursor: pointer;
}
.primary-btn[data-v-bb628adc]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
/* 门前·任务中心视觉令牌与组件样式。色值只在此源文件定义，页面/组件只消费语义变量。 */
:root {
  --task-bg: oklch(0.945 0.018 85);
  --task-surface: oklch(0.972 0.010 90);
  --task-fg: oklch(0.340 0.026 55);
  --task-muted: oklch(0.575 0.022 65);
  --task-muted-2: oklch(0.690 0.022 70);
  --task-border: oklch(0.878 0.020 82);
  --task-accent: oklch(0.565 0.095 50);
  --task-cinnabar: oklch(0.535 0.130 38);
  --task-soft: oklch(0.925 0.022 85);
  --task-soft-green: oklch(0.918 0.030 80);
  --task-soft-clay: oklch(0.905 0.040 60);
  --task-soft-cinnabar: oklch(0.905 0.035 45);
  --task-ink-card: oklch(0.350 0.028 52);
  --task-shadow: 0 12px 34px color-mix(in oklab, var(--task-fg) 10%, transparent);
  --task-font-display: "Noto Serif SC", "Songti SC", "STSong", serif;
  --task-font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  /* B-372：等宽数字字体，来自 v3 令牌 --font-mono（原型 .tl-t/.fc-v/.pk-prog） */
  --task-font-mono: ui-monospace, "SF Mono", Menlo, monospace;
}
@supports (not (color: oklch(0% 0 0))) {
:root {
  --task-bg: #F2ECE0;
  --task-surface: #F8F6EE;
  --task-fg: #43352B;
  --task-muted: #82766C;
  --task-muted-2: #A4998D;
  --task-border: #DDD6C8;
  --task-accent: #A26440;
  --task-cinnabar: #AA4D30;
  --task-soft: #EDE5D6;
  --task-soft-green: #EFE2CE;
  --task-soft-clay: #F4DAC6;
  --task-soft-cinnabar: #F5D9CD;
  --task-ink-card: #47372D;
  --task-shadow: 0 12px 34px rgba(67, 53, 43, 0.1);
}
}

.task-center,
.task-sheet-mask {
  color-scheme: only light;
  font-family: var(--task-font-body);
}
.task-center {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  background: var(--task-bg);
  color: var(--task-fg);
  /* B-375：原型页面 body 基线 15px/1.75，本页依赖继承的行文本（台账日行/记录行）按此渲染 */
  line-height: 1.75;
}
.task-center *, .task-sheet-mask * { box-sizing: border-box; }
/* B-375 根因修复：原写法 `.task-center button…` 特异性 (0,1,1)，会压制后续单类按钮/控件规则
   （如 .task-h-sel 12px/600、.task-card-quick 11px）中的 font-size/font-weight 声明，
   导致 B-374 按选择器映射补的规则渲染不生效。改 :where 降为零特异性（同 style.css 触控规则惯例），
   组件类规则恢复按声明值生效。 */
:where(.task-center, .task-sheet-mask) button, :where(.task-center, .task-sheet-mask) input, :where(.task-center, .task-sheet-mask) select, :where(.task-center, .task-sheet-mask) textarea { font: inherit; }
.task-center button, .task-sheet-mask button { -webkit-tap-highlight-color: transparent; }
.paper-grain { position: relative; isolation: isolate; }
.paper-grain::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  mix-blend-mode: multiply;
  border-radius: inherit;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0 0.042 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.paper-grain::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.task-center-head {
  position: relative;
  flex: none;
  padding: 8px 0 10px;
  overflow: hidden;
  background: #F2EDE1;
  background: color-mix(in oklab, var(--task-bg) 92%, var(--task-surface));
}
/* 对齐小程序定稿（tk-sand，rpx÷2）：暖墨波纹收边取代底边线，出血 108px 供 -100px 往返位移。 */
.task-sand {
  position: absolute; left: -4px; bottom: 3px; width: calc(100% + 108px); height: 36px;
  pointer-events: none; animation: task-sand-flow 16s ease-in-out infinite alternate;
}
@keyframes task-sand-flow {
  from { transform: translateX(0); }
  to { transform: translateX(-100px); }
}
/* B-373（03 原型 .q-head）：队列页头 flex-end + 图标组；z-index 压过波纹。 */
.task-q-head { position: relative; z-index: 2; flex: none; display: flex; align-items: flex-end; gap: 8px; padding: 10px 18px 4px; }
@supports not (gap: 1px) {
  .task-q-head > * + * {
    margin-left: 8px;
  }
}
.task-qh-t { flex: 1; min-width: 0; }
.task-view-title { font-family: var(--task-font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em; }
.task-view-sub { margin-top: 2px; font-size: 12px; color: var(--task-muted); font-variant-numeric: tabular-nums; }
/* B-373（03 原型 .q-ico-btn）→ 对齐小程序定稿（88×112rpx÷2）：44×56 竖排图标钮 + 10px 文字说明 */
.task-q-ico {
  position: relative; flex: none; width: 44px; height: 56px; border: 1px solid var(--task-border); border-radius: 12px;
  background: var(--task-surface); color: var(--task-fg); cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
  .task-q-ico > * + * {
    margin-top: 4px;
  }
}
.task-q-ico svg { width: 19px; height: 19px; display: block; }
.task-q-ico .task-q-label { font-size: 10px; line-height: 1; color: var(--task-muted); letter-spacing: .05em; }
.task-q-ico.active { border-color: #BE977D; border-color: color-mix(in oklab, var(--task-accent) 55%, var(--task-border)); color: var(--task-accent); }
.task-q-ico.active .task-q-label { color: var(--task-accent); }
.task-q-ico:active { background: var(--task-soft); }
/* B-373（03 原型 .q-badge）：硬逾期角标朱砂，2px 底边外描 */
.task-q-badge {
  position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--task-cinnabar); color: var(--task-surface); font-family: var(--task-font-mono);
  font-size: 10.5px; line-height: 18px; border-radius: 999px; text-align: center;
  font-variant-numeric: tabular-nums; border: 2px solid var(--task-bg);
}
.task-head-button {
  min-height: 38px; border: 1px solid var(--task-border); border-radius: 10px;
  padding: 0 11px; background: var(--task-surface); color: var(--task-muted); font-size: 12px; font-weight: 650; white-space: nowrap;
}
.task-head-button:active { background: var(--task-soft-green); }
.task-center-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 12px 14px 28px; scrollbar-width: none; }
.task-center-scroll::-webkit-scrollbar { display: none; }
.task-section { margin-top: 16px; }
.task-section:first-child { margin-top: 0; }
.task-section-head { display: flex; align-items: baseline; gap: 8px; padding: 0 5px 7px; }
@supports not (gap: 1px) {
  .task-section-head > * + * {
    margin-left: 8px;
  }
}
.task-section-title { flex: 1; min-width: 0; color: var(--task-muted); font-size: 11px; font-weight: 650; letter-spacing: .15em; }
.task-section-count { color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 10px; }
.task-card { display: flex; align-items: stretch; overflow: hidden; margin-top: 7px; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface); box-shadow: 0 1px 0 rgba(248, 246, 238, 0.7); box-shadow: 0 1px 0 color-mix(in oklab, var(--task-surface) 70%, transparent); }
.task-card:first-of-type { margin-top: 0; }
.task-card--blocked { border-color: #CB9D88; border-color: color-mix(in oklab, var(--task-cinnabar) 42%, var(--task-border)); }
.task-card--overdue { border-color: #C1826A; border-color: color-mix(in oklab, var(--task-cinnabar) 62%, var(--task-border)); background: #F7E8DE; background: color-mix(in oklab, var(--task-soft-cinnabar) 48%, var(--task-surface)); }
.task-card--done, .task-card--unfinished, .task-card--void { opacity: .78; }
.task-card-open { display: flex; flex: 1; min-width: 0; align-items: center; gap: 10px; padding: 11px 8px 11px 12px; border: 0; background: none; color: inherit; text-align: left; }
@supports not (gap: 1px) {
  .task-card-open > * + * {
    margin-left: 10px;
  }
}
.task-card-open:active { background: var(--task-soft); }
.task-card-mark { display: grid; flex: none; width: 26px; height: 26px; place-items: center; border: 1px solid var(--task-border); border-radius: 50%; color: var(--task-muted); font-size: 13px; }
.task-card--done .task-card-mark { border-color: var(--task-accent); background: var(--task-accent); color: var(--task-surface); }
.task-card--blocked .task-card-mark, .task-card--overdue .task-card-mark { border-color: var(--task-cinnabar); color: var(--task-cinnabar); }
.task-card-copy { flex: 1; min-width: 0; }
.task-card-title-line { display: flex; align-items: center; gap: 6px; }
@supports not (gap: 1px) {
  .task-card-title-line > * + * {
    margin-left: 6px;
  }
}
.task-card-title { min-width: 0; overflow: hidden; font-size: 14px; font-weight: 650; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.task-card-meta { display: flex; align-items: center; gap: 5px; min-width: 0; margin-top: 3px; color: var(--task-muted); font-size: 11px; line-height: 1.4; }
@supports not (gap: 1px) {
  .task-card-meta > * + * {
    margin-left: 5px;
  }
}
.task-card-meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-card-meta .task-divider { flex: none; color: var(--task-muted-2); }
.task-pill { display: inline-flex; flex: none; align-items: center; gap: 4px; min-height: 19px; padding: 2px 7px; border-radius: 999px; background: var(--task-soft); color: var(--task-muted); font-family: var(--task-font-display); font-size: 9.5px; letter-spacing: .05em; white-space: nowrap; }
@supports not (gap: 1px) {
  .task-pill > * + * {
    margin-left: 4px;
  }
}
.task-pill::before { width: 5px; height: 5px; border-radius: 50%; background: currentColor; content: ""; }
.task-pill--pending, .task-pill--todo, .task-pill--claimed { background: var(--task-soft-clay); color: var(--task-accent); }
.task-pill--running { background: var(--task-soft-green); color: var(--task-accent); }
.task-pill--blocked, .task-pill--overdue { background: var(--task-soft-cinnabar); color: var(--task-cinnabar); }
.task-pill--verify { background: var(--task-ink-card); color: var(--task-surface); }
.task-pill--done { background: var(--task-soft-green); color: var(--task-accent); }
.task-pill--unfinished, .task-pill--void { background: var(--task-soft); color: var(--task-muted-2); }
.task-card-quick { flex: none; align-self: center; min-height: 36px; margin: 0 9px 0 0; padding: 0 9px; border: 1px solid #C4A28A; border: 1px solid color-mix(in oklab, var(--task-accent) 45%, var(--task-border)); border-radius: 9px; background: var(--task-soft-green); color: var(--task-accent); font-size: 11px; font-weight: 650; }
.task-card-quick--danger { border-color: #CA9983; border-color: color-mix(in oklab, var(--task-cinnabar) 45%, var(--task-border)); background: var(--task-soft-cinnabar); color: var(--task-cinnabar); }
.task-card-quick:active { filter: brightness(.97); }
.task-empty { margin: 32px 4px; padding: 28px 20px; border: 1px dashed var(--task-border); border-radius: 14px; color: var(--task-muted); font-family: var(--task-font-display); font-size: 14px; line-height: 1.9; text-align: center; }
.task-error { margin: 0 2px 12px; padding: 10px 12px; border: 1px solid #CCA08B; border: 1px solid color-mix(in oklab, var(--task-cinnabar) 40%, var(--task-border)); border-radius: 11px; background: var(--task-soft-cinnabar); color: var(--task-cinnabar); font-size: 12px; }
/* ======== B-374 历史营业日 · 团队队列（03 原型 viewHistory/viewTeam CSS 逐值）========
   容器 .task-center-scroll 已含 padding 12px 14px 28px，原型横向 16px/20px 落点换算为 2px/6px。 */
/* 原型 .h-tools：margin:10px 16px 2px；nowrap + stretch + gap 6 */
.task-h-tools { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 6px; margin: 0 2px 2px; }
@supports not (gap: 1px) {
  .task-h-tools > * + * {
    margin-left: 6px;
  }
}
/* 原型 .h-srch：flex:1 1 0、padding 0 12px、圆角 12、focus 描边 accent 45% */
.task-h-srch { flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); }
@supports not (gap: 1px) {
  .task-h-srch > * + * {
    margin-left: 8px;
  }
}
.task-h-srch:focus-within { border-color: #C4A28A; border-color: color-mix(in oklab, var(--task-accent) 45%, var(--task-border)); }
/* 原型 .srch-ico：16×16 muted-2 */
.task-h-srch-ico { display: flex; flex: none; width: 16px; height: 16px; color: var(--task-muted-2); }
.task-h-srch-ico svg { width: 100%; height: 100%; }
/* 原型 .srch-input：无框透明、14px、min-height 40、placeholder muted-2 */
.task-h-srch-input { flex: 1; min-width: 0; min-height: 40px; border: 0; outline: none; background: none; appearance: none; -webkit-appearance: none; color: var(--task-fg); font-size: 14px; }
.task-h-srch-input::placeholder { color: var(--task-muted-2); }
/* 原型 .srch-clear：32×32 圆角 8 muted 13px */
.task-h-srch-clear { flex: none; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px; background: none; color: var(--task-muted); font-size: 13px; cursor: pointer; }
.task-h-srch-clear:active { background: var(--task-soft); }
/* 原型 .h-selw：relative + ▾ 尾箭（right 8、11px、muted-2） */
.task-h-selw { position: relative; flex: none; display: flex; min-width: 0; }
.task-h-selw::after { content: '▾'; position: absolute; right: 8px; top: 50%; transform: translateY(-52%); color: var(--task-muted-2); font-size: 11px; pointer-events: none; }
/* 原型 .h-sel：appearance none、min-height 44、padding 0 22 0 10、圆角 12、12px/600 */
.task-h-sel { appearance: none; -webkit-appearance: none; min-height: 44px; max-width: none; padding: 0 22px 0 10px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); color: var(--task-fg); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; }
/* 原型 .h-sel.on：激活下拉变绿描边底 */
.task-h-sel.on { border-color: #C4A28A; border-color: color-mix(in oklab, var(--task-accent) 45%, var(--task-border)); background: var(--task-soft-green); color: var(--task-accent); }
.task-h-selw:focus-within { outline: 2px solid var(--task-accent); outline-offset: 1px; border-radius: 12px; }
/* 原型 .h-dates：第二排日期筛选，gap 8、margin 8px 16px 2px、relative 供日历弹层定位 */
.task-h-dates { position: relative; display: flex; align-items: stretch; gap: 8px; margin: 8px 2px 2px; }
@supports not (gap: 1px) {
  .task-h-dates > * + * {
    margin-left: 8px;
  }
}
/* 原型 .h-dchip：min-height 44、padding 0 13、圆角 12、12.5px/600 muted；.on 绿化；disabled 透明度 .38 */
.task-h-dchip { flex: none; min-height: 44px; padding: 0 13px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); color: var(--task-muted); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.task-h-dchip:active { background: var(--task-soft); }
.task-h-dchip.on { border-color: #C4A28A; border-color: color-mix(in oklab, var(--task-accent) 45%, var(--task-border)); background: var(--task-soft-green); color: var(--task-accent); }
.task-h-dchip:disabled { opacity: .38; cursor: default; }
.task-h-dchip:focus-visible { outline: 2px solid var(--task-accent); outline-offset: 1px; }
/* 原型 .h-dpick：flex:1 居中、12.5px/600；small 11px/400 muted；.on 绿化；✕ 清除钮 22×22 accent */
.task-h-dpick { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 10px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); color: var(--task-fg); font-size: 12.5px; font-weight: 600; cursor: pointer; }
@supports not (gap: 1px) {
  .task-h-dpick > * + * {
    margin-left: 6px;
  }
}
.task-h-dpick small { font-weight: 400; font-size: 11px; color: var(--task-muted); }
.task-h-dpick .task-h-dp-empty { font-weight: 400; color: var(--task-muted); }
.task-h-dpick.on { border-color: #C4A28A; border-color: color-mix(in oklab, var(--task-accent) 45%, var(--task-border)); background: var(--task-soft-green); color: var(--task-accent); }
.task-h-dpick.on small { color: var(--task-accent); opacity: .75; }
.task-h-dpick:focus-visible { outline: 2px solid var(--task-accent); outline-offset: 1px; }
.task-h-dpick-clear { position: relative; z-index: 2; display: flex; flex: none; width: 22px; height: 22px; align-items: center; justify-content: center; padding: 0; border: none; border-radius: 50%; background: transparent; color: var(--task-accent); font: inherit; font-size: 12px; line-height: 1; cursor: pointer; }
/* 原型 .h-cal-back / .h-cal：fixed 遮罩 z-60；弹层挂 .h-dates 右下（top calc(100%+6px)、宽 264、圆角 14、阴影 0 12 32） */
.task-h-cal-back { position: fixed; inset: 0; z-index: 60; cursor: default; }
@supports not (inset: 0) {
.task-h-cal-back {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
}
.task-h-cal-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 61; }
/* 原型 .h-cal：width 264、padding 10 12 8、圆角 14、阴影 0 12 32 rgba(31,41,34,.18) */
.task-calendar { width: 264px; padding: 10px 12px 8px; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface); box-shadow: 0 12px 32px rgba(31, 41, 34, .18); }
/* 原型 .hc-head：space-between、margin-bottom 6、题 13px */
.task-calendar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.task-calendar-head b { font-size: 13px; }
/* 原型 .hc-nav：32×32 圆角 9 描边；disabled 透明度 .35 */
.task-calendar-head button { width: 32px; height: 32px; border: 1px solid var(--task-border); border-radius: 9px; background: var(--task-surface); color: var(--task-fg); font: inherit; font-size: 14px; line-height: 1; cursor: pointer; }
.task-calendar-head button:disabled { opacity: .35; cursor: default; }
.task-calendar-head button:focus-visible, .task-calendar-cell button:focus-visible { outline: 2px solid var(--task-accent); outline-offset: 1px; }
/* 原型 .hc-grid：7 列、gap 2、居中；.hc-w 10.5px muted padding 3 0 */
.task-calendar-week, .task-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.task-calendar-week { margin: 0 0 2px; color: var(--task-muted); font-size: 10.5px; }
.task-calendar-week span { padding: 3px 0; }
.task-calendar-grid { margin-top: 2px; }
.task-calendar-cell { display: grid; min-width: 0; min-height: 32px; place-items: center; }
/* 原型 .hc-d：min-height 32、圆角 9、12.5px tabular；active soft；today 内描边 accent；sel accent 底 */
.task-calendar-cell button { width: 100%; min-height: 32px; padding: 0; border: none; border-radius: 9px; background: transparent; color: var(--task-fg); font: inherit; font-size: 12.5px; font-variant-numeric: tabular-nums; cursor: pointer; }
.task-calendar-cell button:active { background: var(--task-soft); }
.task-calendar-cell button.today { box-shadow: inset 0 0 0 1px var(--task-accent); }
.task-calendar-cell button.selected { background: var(--task-accent); color: var(--task-surface); }
/* 原型 .hc-d.off：muted、透明度 .38、不可点 */
.task-calendar-off { color: var(--task-muted); font-size: 12.5px; font-variant-numeric: tabular-nums; opacity: .38; cursor: default; }
/* 原型 .hc-foot：10.5px muted 居中 margin-top 6 */
.task-calendar-foot { margin: 6px 0 0; color: var(--task-muted); font-size: 10.5px; text-align: center; }
/* 原型 .sec-label：sticky 组头（top 0 z-4 实底 bg）、题 display 13.5/600/.14em、计数 mono 11、副题 10.5 */
.task-h-seclabel { position: sticky; top: 0; z-index: 4; display: flex; align-items: baseline; gap: 8px; margin: 0; padding: 12px 6px 5px; background: var(--task-bg); }
@supports not (gap: 1px) {
  .task-h-seclabel > * + * {
    margin-left: 8px;
  }
}
.task-h-seclabel .task-sl-t { font-family: var(--task-font-display); font-size: 13.5px; font-weight: 600; letter-spacing: .14em; }
.task-h-seclabel .task-sl-n { color: var(--task-muted); font-family: var(--task-font-mono); font-size: 11px; font-variant-numeric: tabular-nums; }
.task-h-seclabel .task-sl-sub { color: var(--task-muted-2); font-size: 10.5px; letter-spacing: 0; }
/* 原型 .quiet-line：11.5px muted-2 行高 1.6（历史页说明行，内联 padding 4px 20px 0）。
   B-375：上下间距对齐原型落点（上 4+2=6px、下 2px+首行 margin 8=10px）。 */
.task-h-quietline { margin: 4px 6px 2px; color: var(--task-muted-2); font-size: 11.5px; line-height: 1.6; }
/* 原型 .day-row：台账行 min-height 48、padding 9 14、圆角 12、margin-top 8（全部行，含首行——说明行间距 2px margin + 8px margin）；.on 选中；.empty 灰显；stats 右对齐。
   B-375：删除原 ：first-of-type margin 清零——原型所有行间距一致 8px，清零会让空日行与实日行贴死。 */
.task-day-row { display: flex; flex-wrap: wrap; align-items: center; width: 100%; min-height: 48px; margin-top: 8px; padding: 9px 14px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); color: var(--task-fg); font: inherit; text-align: left; cursor: pointer; column-gap: 10px; row-gap: 3px; }
.task-day-row:active { background: var(--task-soft); }
.task-day-row.on { border-color: var(--task-accent); background: var(--task-soft-green); }
.task-day-row.empty { opacity: .55; cursor: default; }
.task-day-row.empty:active { background: var(--task-surface); }
.task-day-row .task-dr-t { flex: 1; min-width: 0; }
.task-day-row .task-dr-t small { display: block; margin-top: 1px; color: var(--task-muted); font-size: 11px; }
.task-dr-today { margin-left: 6px; color: var(--task-accent); font-size: 10.5px; font-weight: 600; }
.task-dr-stats { flex: 1 1 100%; color: var(--task-muted); font-size: 11.5px; line-height: 1.6; font-variant-numeric: tabular-nums; text-align: right; }
.task-dr-stats b { color: var(--task-fg); font-weight: 600; }
.task-dr-stats .neg, .task-dr-stats .neg b { color: var(--task-cinnabar); }
/* B-375：箭头字号回归继承 15px——文件后部 .task-arr（B-363 日课卡 11px）会下探到此，需显式夺回 */
.task-day-row .task-arr { flex: none; color: var(--task-muted-2); font-size: inherit; }
/* 原型 .h-day-detail：当日详情面板 margin 6 0 2、padding 10 4 4、bg 底圆角 12 */
.task-h-day-detail { margin: 6px 0 2px; padding: 10px 4px 4px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-bg); }
/* 原型 .h-sum：当日小结 margin 0 10 8、padding 7 10、圆角 9、11.5px/1.7 muted tabular；b fg/600；.neg b 朱砂 */
.task-h-sum { margin: 0 10px 8px; padding: 7px 10px; border: 1px solid var(--task-border); border-radius: 9px; background: var(--task-surface); color: var(--task-muted); font-size: 11.5px; line-height: 1.7; font-variant-numeric: tabular-nums; }
.task-h-sum b { color: var(--task-fg); font-weight: 600; }
.task-h-sum .neg, .task-h-sum .neg b { color: var(--task-cinnabar); }
/* 原型 .h-grp-t：日课分组标题 mono 10.5/.08em muted-2 */
.task-h-grp-t { margin: 8px 12px 2px; color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 10.5px; letter-spacing: .08em; }
/* 原型 .h-row：紧凑记录行 padding 8 12、圆角 10；hover surface、active soft */
.task-h-row { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 12px; border: 0; border-radius: 10px; background: transparent; color: var(--task-fg); font: inherit; text-align: left; cursor: pointer; }
@supports not (gap: 1px) {
  .task-h-row > * + * {
    margin-left: 10px;
  }
}
.task-h-row:hover { background: var(--task-surface); }
.task-h-row:active { background: var(--task-soft); }
/* 原型 .h-time：44px 列宽 12px muted tabular */
.task-h-time { flex: none; width: 44px; color: var(--task-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.task-h-main { flex: 1; min-width: 0; }
/* 原型 .h-name：13.5px/1.45 截断；重要 tag 右距 5 */
.task-h-name { display: block; overflow: hidden; color: var(--task-fg); font-size: 13.5px; line-height: 1.45; white-space: nowrap; text-overflow: ellipsis; }
.task-h-name .task-imp-tag { margin-right: 5px; }
/* 原型 .h-meta：11px muted 截断；.neg 朱砂 */
.task-h-meta { display: block; margin-top: 1px; overflow: hidden; color: var(--task-muted); font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.task-h-meta .neg { color: var(--task-cinnabar); }
/* 原型 .h-res：结局字 11.5/600，五态分色 done accent / od 朱砂 / void 删除线 / unf 灰 / live muted */
.task-h-res { flex: none; font-size: 11.5px; font-weight: 600; }
.task-h-res.done { color: var(--task-accent); }
.task-h-res.od { color: var(--task-cinnabar); }
.task-h-res.void { color: var(--task-muted-2); font-weight: 400; text-decoration: line-through; }
.task-h-res.unf { color: var(--task-muted-2); font-weight: 400; }
.task-h-res.live { color: var(--task-muted); font-weight: 400; }
/* 原型 .h-rough-dot：5×5 朱砂点 vertical-align 2 */
.task-h-rough-dot { display: inline-block; width: 5px; height: 5px; margin-right: 5px; border-radius: 50%; background: var(--task-cinnabar); vertical-align: 2px; }
/* 原型 .h-resday：检索层日组头 mono 10.5/.08em muted-2 */
.task-h-resday { margin: 10px 2px 0; color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 10.5px; letter-spacing: .08em; }
/* 原型 .tm-row：团队行 margin-top 6、padding 9 12、圆角 12 */
.task-tm-row { display: flex; align-items: center; gap: 10px; margin-top: 6px; padding: 9px 12px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); color: var(--task-fg); }
@supports not (gap: 1px) {
  .task-tm-row > * + * {
    margin-left: 10px;
  }
}
/* 原型 .tm-open：行内主按钮透明 */
.task-tm-open { display: flex; flex: 1; min-width: 0; align-items: center; gap: 10px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
@supports not (gap: 1px) {
  .task-tm-open > * + * {
    margin-left: 10px;
  }
}
/* 原型 .avatar：22×22 描边圆、display 字体 11px */
.task-tm-avatar { display: flex; flex: none; width: 22px; height: 22px; align-items: center; justify-content: center; border: 1px solid #94897D; border: 1px solid color-mix(in oklab, var(--task-fg) 45%, var(--task-border)); border-radius: 50%; background: var(--task-surface); color: var(--task-fg); font-family: var(--task-font-display); font-size: 11px; }
.task-tm-m { flex: 1; min-width: 0; }
/* 原型 .tm-name：13.5px/600/1.4 截断；.tm-meta：11px muted tabular 截断 */
.task-tm-name { display: block; overflow: hidden; font-size: 13.5px; font-weight: 600; line-height: 1.4; white-space: nowrap; text-overflow: ellipsis; }
.task-tm-meta { display: block; margin-top: 2px; overflow: hidden; color: var(--task-muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; text-overflow: ellipsis; }
/* 原型 .tm-disp：处置钮 min-height 44、padding 0 12、圆角 10、12.5/600 绿描边底 */
.task-tm-disp { flex: none; min-height: 44px; padding: 0 12px; border: 1px solid #C4A28A; border: 1px solid color-mix(in oklab, var(--task-accent) 45%, var(--task-border)); border-radius: 10px; background: var(--task-soft-green); color: var(--task-accent); font-size: 12.5px; font-weight: 600; cursor: pointer; }
/* 原型 .team-hint：权限提示条 margin 6 20 0 → 6px 2px、padding 7 12、圆角 10、soft 底 */
.task-team-hint { margin: 6px 2px 0; padding: 7px 12px; border-radius: 10px; background: var(--task-soft); color: var(--task-muted); font-size: 11.5px; line-height: 1.6; }
/* 原型 .empty：空态居中（pot 图标 84 透明 .14 + 题 display 15px muted + 小字 12px muted-2） */
.task-h-empty { padding: 52px 28px; text-align: center; }
.task-h-empty svg { display: block; width: 84px; height: 84px; margin: 0 auto 14px; color: var(--task-fg); opacity: .14; }
.task-h-empty p { margin: 0; color: var(--task-muted); font-family: var(--task-font-display); font-size: 15px; letter-spacing: .06em; line-height: 1.8; }
.task-h-empty small { display: block; margin-top: 4px; color: var(--task-muted-2); font-size: 12px; letter-spacing: 0; line-height: 1.7; }
/* B-368「待调度」胶囊：形取状态胶囊基类，色取原型朱砂语言（.od-head/.neg） */
.task-pill--dispatch { background: var(--task-soft-cinnabar); color: var(--task-cinnabar); }
.task-sheet-mask { position: fixed; z-index: 120; inset: 0; display: flex; align-items: flex-end; justify-content: center; background: rgba(67, 53, 43, 0.44); background: color-mix(in oklab, var(--task-fg) 44%, transparent); }
@supports not (inset: 0) {
.task-sheet-mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
}
.task-sheet { display: flex; width: min(100%, 560px); max-height: min(88dvh, 760px); flex-direction: column; overflow: hidden; border-radius: 20px 20px 0 0; background: var(--task-bg); box-shadow: var(--task-shadow); }
.task-sheet-grip { flex: none; width: 36px; height: 4px; margin: 10px auto 0; border-radius: 999px; background: var(--task-border); }
.task-sheet-head { display: flex; flex: none; align-items: flex-start; gap: 10px; padding: 12px 18px 10px; border-bottom: 1px solid var(--task-border); }
@supports not (gap: 1px) {
  .task-sheet-head > * + * {
    margin-left: 10px;
  }
}
.task-sheet-head > div { flex: 1; min-width: 0; }
.task-sheet-head h2 { margin: 0; font-family: var(--task-font-display); font-size: 17px; line-height: 1.45; letter-spacing: .06em; }
.task-sheet-head p { margin: 2px 0 0; color: var(--task-muted); font-size: 11.5px; line-height: 1.6; }
.task-icon-button { display: grid; flex: none; width: 38px; min-height: 38px; place-items: center; border: 0; border-radius: 10px; background: none; color: var(--task-muted); font-size: 22px; }
.task-icon-button:active { background: var(--task-soft); }
.task-sheet-body { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 18px 20px; scrollbar-width: none; }
.task-sheet-foot { flex: none; display: flex; gap: 9px; padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--task-border); background: var(--task-surface); }
@supports not (gap: 1px) {
  .task-sheet-foot > * + * {
    margin-left: 9px;
  }
}
.task-sheet-foot > * { flex: 1; }
.task-detail-hero { padding: 4px 2px 13px; }
/* B-372（03 原型 .d-name）：标题 display 21px/600/.02em/lh1.45 */
.task-detail-title { margin: 0; font-family: var(--task-font-display); font-size: 21px; font-weight: 600; letter-spacing: .02em; line-height: 1.45; word-break: break-all; }
.task-detail-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
@supports not (gap: 1px) {
  .task-detail-tags > * + * {
    margin-left: 6px;
  }
}
.task-detail-desc { margin: 11px 0 0; color: var(--task-muted); font-size: 13px; line-height: 1.7; white-space: pre-wrap; word-break: break-all; }
/* B-372（03 原型 .d-sec）：卡面 margin 12px、圆角 14 */
.task-detail-block { overflow: hidden; margin-top: 12px; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface); }
/* B-372（03 原型 .d-sec-t）：分区题 12px/.14em/muted，padding 10px 16px 2px */
.task-detail-block h3 { margin: 0; padding: 10px 16px 2px; color: var(--task-muted); font-size: 12px; font-weight: 400; letter-spacing: .14em; }
/* B-372（03 原型 .kv）：异常等键值行 */
.task-kv { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 8px 16px; font-size: 13.5px; line-height: 1.55; }
@supports not (gap: 1px) {
  .task-kv > * + * {
    margin-left: 14px;
  }
}
.task-kv span { flex: none; color: var(--task-muted); }
.task-kv b { min-width: 0; font-weight: 500; text-align: right; word-break: break-all; }
/* B-372（03 原型 .chk-row/.chk-box）：凭证清单行 */
.task-detail-checklist { margin: 0; padding: 0 0 6px; list-style: none; }
.task-detail-checklist li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 16px; color: var(--task-fg); font-size: 13.5px; line-height: 1.55; }
@supports not (gap: 1px) {
  .task-detail-checklist li > * + * {
    margin-left: 10px;
  }
}
.task-detail-checklist li.checked { color: var(--task-muted); text-decoration: line-through; }
.task-evidence-mark { display: inline-grid; flex: none; width: 20px; height: 20px; margin-top: 2px; place-items: center; border: 1.5px solid var(--task-muted-2); border-radius: 6px; color: var(--task-surface); font-size: 13px; }
.task-detail-checklist li.checked .task-evidence-mark { border-color: var(--task-accent); background: var(--task-accent); }
/* B-372（03 原型 .tl/.tl-item/.tl-dot/.tl-b）：时间线 */
.task-timeline { margin: 0; padding: 6px 16px 14px; list-style: none; }
.task-tl-item { display: flex; gap: 10px; position: relative; padding: 6px 0 6px 2px; }
@supports not (gap: 1px) {
  .task-tl-item > * + * {
    margin-left: 10px;
  }
}
.task-tl-item::before { content: ""; position: absolute; left: 8px; top: 24px; bottom: -8px; width: 1px; background: var(--task-border); }
.task-tl-item:last-child::before { display: none; }
.task-tl-dot { flex: none; width: 13px; height: 13px; margin-top: 5px; border: 1.5px solid var(--task-muted-2); border-radius: 50%; background: var(--task-surface); }
.task-tl-dot.hot { border-color: var(--task-accent); background: var(--task-accent); }
.task-tl-dot.bad { border-color: var(--task-cinnabar); background: var(--task-cinnabar); }
.task-tl-body { flex: 1; min-width: 0; color: var(--task-fg); font-size: 12.5px; line-height: 1.6; }
.task-tl-time { margin-right: 6px; color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 11px; font-variant-numeric: tabular-nums; }
.task-tl-who { font-weight: 600; }
.task-tl-note { display: block; margin-top: 1px; color: var(--task-muted); font-size: 11.5px; line-height: 1.6; word-break: break-all; }
.task-form { display: flex; flex-direction: column; gap: 13px; }
@supports not (gap: 1px) {
  .task-form > * + * {
    margin-top: 13px;
  }
}
.task-field { display: flex; flex-direction: column; gap: 5px; }
@supports not (gap: 1px) {
  .task-field > * + * {
    margin-top: 5px;
  }
}
.task-field > label, .task-field-label { color: var(--task-muted); font-size: 11px; font-weight: 650; letter-spacing: .08em; }
.task-field input, .task-field textarea, .task-field select { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid var(--task-border); border-radius: 10px; outline: none; background: var(--task-surface); color: var(--task-fg); font-size: 13px; }
.task-field textarea { min-height: 82px; resize: vertical; line-height: 1.6; }
.task-field input:focus, .task-field textarea:focus, .task-field select:focus { border-color: var(--task-accent); }
.task-choice-row { display: flex; flex-wrap: wrap; gap: 7px; }
@supports not (gap: 1px) {
  .task-choice-row > * + * {
    margin-left: 7px;
  }
}
.task-choice-row button { min-height: 34px; padding: 0 10px; border: 1px solid var(--task-border); border-radius: 9px; background: var(--task-surface); color: var(--task-muted); font-size: 11.5px; }
.task-choice-row button.active { border-color: var(--task-accent); background: var(--task-soft-green); color: var(--task-accent); font-weight: 650; }
.task-form-note { margin: 0; color: var(--task-muted); font-size: 11.5px; line-height: 1.65; }
.task-check-option { display: flex; align-items: center; gap: 8px; min-height: 35px; padding: 0 2px; color: var(--task-fg); font-size: 12.5px; }
@supports not (gap: 1px) {
  .task-check-option > * + * {
    margin-left: 8px;
  }
}
.task-check-option input { width: 17px; min-height: 17px; accent-color: var(--task-accent); }
.task-upload-list { display: flex; flex-wrap: wrap; gap: 6px; }
@supports not (gap: 1px) {
  .task-upload-list > * + * {
    margin-left: 6px;
  }
}
.task-upload-tag { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 0 8px; border-radius: 999px; background: var(--task-soft-green); color: var(--task-accent); font-size: 10.5px; }
@supports not (gap: 1px) {
  .task-upload-tag > * + * {
    margin-left: 5px;
  }
}
.task-upload-tag button { min-height: 22px; padding: 0; border: 0; background: none; color: inherit; }
.task-submit-button, .task-line-button { min-height: 47px; border: 0; border-radius: 12px; background: var(--task-accent); color: var(--task-surface); font-size: 14px; font-weight: 650; letter-spacing: .05em; }
.task-line-button { border: 1px solid var(--task-border); background: var(--task-surface); color: var(--task-fg); }
.task-submit-button:disabled, .task-line-button:disabled { opacity: .5; }
.task-danger-button { background: var(--task-cinnabar); }
.task-small-muted { color: var(--task-muted); font-size: 11px; }
@media (max-width: 360px) { .task-view-title { font-size: 18px; } .task-card-title { font-size: 13px; } }

/* ======== B-363 首屏双段（今日日课 / 我手上的） ======== */
.task-landing { display: flex; flex-direction: column; }
/* B-375：mono 族对齐 --task-font-mono（原 ui-monospace, monospace 丢 "SF Mono"/Menlo 档） */
.task-mono { font-family: var(--task-font-mono); font-variant-numeric: tabular-nums; }
/* 当前营业阶段条：文字表达阶段，不只靠颜色；B-373 照原型 .phase-bar 核 margin（8px 20px 0 → 本容器 4px 2px 8px）与字号 */
.task-phase-bar {
  display: flex; align-items: center; gap: 8px; margin: 4px 2px 8px; padding: 8px 12px;
  border-radius: 10px; background: var(--task-soft-green); color: var(--task-accent);
  font-size: 12px; line-height: 1.5;
}
@supports not (gap: 1px) {
  .task-phase-bar > * + * {
    margin-left: 8px;
  }
}
.task-phase-bar b { font-weight: 600; letter-spacing: .03em; }
.task-phase-bar::before { flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; content: ""; }
/* 双段切换：复用筛选胶囊视觉；「我手上的」带可见总数角标 */
.task-qseg { display: flex; margin: 0 2px 12px; padding: 3px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); }
.task-qseg-chip {
  flex: 1; min-width: 0; min-height: 40px; padding: 0 4px; border: 0; border-radius: 9px;
  background: transparent; color: var(--task-muted); font-size: 12.5px;
  display: flex; align-items: center; justify-content: center; gap: 5px; white-space: nowrap;
}
@supports not (gap: 1px) {
  .task-qseg-chip > * + * {
    margin-left: 5px;
  }
}
.task-qseg-chip:active { background: var(--task-soft); }
.task-qseg-chip.on { background: var(--task-soft-green); color: var(--task-accent); font-weight: 600; }
.task-qseg-chip .task-mono { font-size: 11px; }
/* 日课卡（展开态）：超时包朱砂描边；B-372 照原型 .pack-card/.pk-prog 逐值 */
.task-pack { overflow: hidden; margin-top: 8px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); }
.task-pack.overtime { border-color: #CA9983; border-color: color-mix(in oklab, var(--task-cinnabar) 45%, var(--task-border)); }
.task-pack-head { display: flex; align-items: baseline; gap: 8px; width: 100%; padding: 11px 12px 9px; border: 0; background: none; color: inherit; text-align: left; }
@supports not (gap: 1px) {
  .task-pack-head > * + * {
    margin-left: 8px;
  }
}
.task-pack-head:active { background: var(--task-soft); }
.task-pack-name { flex: none; font-family: var(--task-font-display); font-size: 15px; font-weight: 600; letter-spacing: .06em; }
.task-pack-prog { flex: none; color: var(--task-muted); font-family: var(--task-font-mono); font-size: 11px; font-variant-numeric: tabular-nums; }
.task-pack-win { display: flex; flex-direction: column; gap: 1px; margin-left: auto; text-align: right; font-size: 10.5px; line-height: 1.45; color: var(--task-muted-2); }
@supports not (gap: 1px) {
  .task-pack-win > * + * {
    margin-top: 1px;
  }
}
.task-pack-win b { font-weight: 500; }
.task-pack-late { color: var(--task-cinnabar); font-weight: 600; font-size: 11px; }
.task-arr { flex: none; color: var(--task-muted-2); font-size: 11px; }
.task-pack-body { padding: 2px 12px 10px; border-top: 1px dashed var(--task-border); }
.task-pack-glabel { margin: 9px 0 1px; color: var(--task-muted); font-size: 11px; letter-spacing: .08em; }
.task-pack-row { display: flex; align-items: center; gap: 7px; min-height: 46px; padding: 4px 0; border-top: 1px solid rgba(221, 214, 200, 0.55); border-top: 1px solid color-mix(in oklab, var(--task-border) 55%, transparent); }
@supports not (gap: 1px) {
  .task-pack-row > * + * {
    margin-left: 7px;
  }
}
.task-pack-glabel + .task-pack-row { border-top: 0; }
.task-pack-item {
  flex: 1; min-width: 0; padding: 6px 0; border: 0; background: none; color: var(--task-fg);
  font-size: 13px; font-weight: 650; line-height: 1.4; text-align: left;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.task-pack-item:active { color: var(--task-accent); }
.task-pack-item.done { font-size: 12px; font-weight: 400; color: var(--task-muted); white-space: normal; }
.task-imp-tag { flex: none; padding: 2px 8px; border-radius: 5px; background: var(--task-soft-clay); color: var(--task-accent); font-family: var(--task-font-display); font-size: 10px; letter-spacing: .14em; }
.task-pack-who { flex: none; color: var(--task-muted); font-size: 11.5px; white-space: nowrap; }
.task-pack-btn {
  flex: none; min-height: 36px; padding: 0 13px; border: 1px solid #C4A28A; border: 1px solid color-mix(in oklab, var(--task-accent) 45%, var(--task-border));
  border-radius: 10px; background: var(--task-soft-green); color: var(--task-accent); font-size: 12.5px; font-weight: 600;
}
.task-pack-btn:active { background: #EBDED1; background: color-mix(in oklab, var(--task-accent) 16%, var(--task-surface)); }
.task-pack-btn.line { border-color: var(--task-border); background: var(--task-surface); color: var(--task-fg); font-weight: 400; }
.task-pack-note { margin-top: 8px; color: var(--task-muted-2); font-size: 11px; line-height: 1.6; }
.task-pack-claimall {
  width: 100%; min-height: 44px; margin-top: 9px; border: 1px solid #C4A28A; border: 1px solid color-mix(in oklab, var(--task-accent) 45%, var(--task-border));
  border-radius: 11px; background: var(--task-soft-green); color: var(--task-accent); font-size: 13px; font-weight: 600; letter-spacing: .04em;
}
.task-pack-claimall:active { background: #EBDED1; background: color-mix(in oklab, var(--task-accent) 16%, var(--task-surface)); }
/* 卡内已完成折叠区：默认一行，展开见人见时（已做 · 某人 · 时刻） */
.task-pack-donefold, .task-done-fold {
  display: flex; align-items: center; gap: 8px; width: 100%; min-height: 40px; margin-top: 9px;
  padding: 6px 10px; border: 1px dashed var(--task-border); border-radius: 10px;
  background: none; color: var(--task-muted); font-size: 12px;
}
@supports not (gap: 1px) {
  .task-pack-donefold > * + *,
.task-done-fold > * + * {
    margin-left: 8px;
  }
}
.task-done-fold { width: auto; margin-top: 12px; padding: 8px 14px; min-height: 46px; font-size: 12.5px; }
.task-pack-donefold .task-arr, .task-done-fold .task-arr { margin-left: auto; }
.task-pack-donefold:active, .task-done-fold:active { background: var(--task-soft); }
.task-pack-donerow { display: flex; align-items: baseline; gap: 8px; padding: 5px 2px; border-top: 1px solid rgba(221, 214, 200, 0.4); border-top: 1px solid color-mix(in oklab, var(--task-border) 40%, transparent); }
@supports not (gap: 1px) {
  .task-pack-donerow > * + * {
    margin-left: 8px;
  }
}
.task-pack-donemeta { flex: none; color: var(--task-muted-2); font-size: 11px; white-space: nowrap; }
/* 日课卡（折叠态一行）：未到展开时刻 / 全部完成 */
.task-pack-fold {
  display: flex; align-items: center; gap: 8px; margin-top: 8px; min-height: 46px; padding: 8px 14px;
  border: 1px solid var(--task-border); border-radius: 13px; background: var(--task-surface);
  color: var(--task-muted); font-size: 12.5px; text-align: left;
}
@supports not (gap: 1px) {
  .task-pack-fold > * + * {
    margin-left: 8px;
  }
}
.task-pack-fold:active { background: var(--task-soft); }
.task-pack-fold.overtime { border-color: #CA9983; border-color: color-mix(in oklab, var(--task-cinnabar) 45%, var(--task-border)); }
.task-pack-fold .tpf-name { font-family: var(--task-font-display); font-weight: 600; letter-spacing: .06em; color: var(--task-fg); }
.task-pack-fold .task-arr { margin-left: auto; }
/* 轻提示与空态引导 */
.task-quiet { margin: 6px 4px 0; color: var(--task-muted-2); font-size: 11.5px; line-height: 1.6; }
.task-mini-btn { min-height: 38px; margin-top: 12px; padding: 0 14px; border: 1px solid #C09A81; border: 1px solid color-mix(in oklab, var(--task-accent) 52%, var(--task-border)); border-radius: 10px; background: var(--task-surface); color: var(--task-accent); font-size: 12px; font-weight: 650; }
.task-mini-btn:active { background: var(--task-soft-green); }
/* 减动效响应 */
@media (prefers-reduced-motion: reduce) {
  .task-center *, .task-sheet-mask * { transition: none !important; animation: none !important; }
}

/* ======== B-367 「我手上的」任务卡（逐段对齐原型 taskCard） ======== */
.task-section-sub { flex: none; color: var(--task-muted-2); font-size: 10.5px; letter-spacing: 0; }
.task-lc {
  overflow: hidden; margin-top: 6px; border: 1px solid var(--task-border); border-radius: 12px;
  background: var(--task-surface); color: var(--task-fg);
  transition: border-color .15s ease;
}
.task-lc:first-of-type { margin-top: 0; }
.task-lc.terminal { opacity: .82; }
.task-lc-open { display: block; width: 100%; padding: 10px 12px 8px; border: 0; background: none; color: inherit; text-align: left; }
.task-lc-open:active { background: var(--task-soft); }
.task-lc-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
@supports not (gap: 1px) {
  .task-lc-top > * + * {
    margin-left: 6px;
  }
}
.task-lc-cat { flex: none; padding: 2px 7px; border-radius: 5px; background: var(--task-soft); color: var(--task-muted); font-size: 10px; letter-spacing: .08em; }
.task-lc-top .task-pill { margin-left: auto; }
.task-lc-name {
  display: -webkit-box; margin-top: 6px; overflow: hidden; font-size: 14px; font-weight: 600; line-height: 1.45;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.task-lc-fact { display: block; margin-top: 3px; color: var(--task-muted); font-size: 11.5px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.task-lc-fact.neg { color: var(--task-cinnabar); font-weight: 600; }
.task-lc-who { display: flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--task-muted); font-size: 11.5px; }
@supports not (gap: 1px) {
  .task-lc-who > * + * {
    margin-left: 6px;
  }
}
.task-lc-avatar {
  display: grid; flex: none; width: 22px; height: 22px; place-items: center;
  border: 1px solid #94897D;
  border: 1px solid color-mix(in oklab, var(--task-fg) 45%, var(--task-border)); border-radius: 50%;
  background: var(--task-surface); color: var(--task-fg); font-family: var(--task-font-display); font-size: 11px;
}
.task-lc-who-time { color: var(--task-muted-2); }
.task-lc-exline { display: block; margin-top: 4px; color: var(--task-cinnabar); font-size: 11px; line-height: 1.5; }
.task-lc-act { display: flex; gap: 8px; padding: 2px 12px 10px; }
@supports not (gap: 1px) {
  .task-lc-act > * + * {
    margin-left: 8px;
  }
}
.task-lc-btn {
  flex: 1; min-height: 38px; border: 1px solid #C4A28A; border: 1px solid color-mix(in oklab, var(--task-accent) 45%, var(--task-border));
  border-radius: 10px; background: var(--task-soft-green); color: var(--task-accent); font-size: 12.5px; font-weight: 600;
}
.task-lc-btn:active { background: #EBDED1; background: color-mix(in oklab, var(--task-accent) 16%, var(--task-surface)); }
.task-lc-btn.line { flex: none; min-width: 96px; border-color: var(--task-border); background: var(--task-surface); color: var(--task-fg); font-weight: 400; }

/* ======== B-367 详情页：凭证回显 / 缺口提示 / 照片大图 / 时间线备注 ======== */
.task-detail-factline { margin: 8px 0 0; color: var(--task-muted); font-size: 12px; line-height: 1.6; font-variant-numeric: tabular-nums; }
.task-detail-factline.neg { color: var(--task-cinnabar); font-weight: 650; }
.task-evidence-mark { display: inline-grid; width: 18px; height: 18px; margin-right: 6px; place-items: center; border: 1px solid var(--task-border); border-radius: 50%; color: var(--task-muted-2); font-size: 11px; vertical-align: -4px; }
.task-detail-checklist li.checked { color: var(--task-muted); }
.task-detail-checklist li.checked .task-evidence-mark { border-color: var(--task-accent); background: var(--task-accent); color: var(--task-surface); }
/* B-367 凭证回显 / B-372 照原型 .ev-note-ro 逐值：margin 8px 16px 4px、软底圆角 10、正文 12.5/lh1.7 */
.task-evidence-note { margin: 8px 16px 4px; padding: 9px 12px; border-radius: 10px; background: var(--task-soft); }
.task-evidence-note small { display: block; margin-bottom: 2px; color: var(--task-muted); font-size: 11px; letter-spacing: .06em; }
.task-evidence-note p { margin: 0; color: var(--task-fg); font-size: 12.5px; line-height: 1.7; white-space: pre-wrap; word-break: break-all; }
/* B-372 照原型 .photo-grid：flex 换行、gap 8、padding 8px 16px 12px */
.task-photo-grid { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 16px 12px; }
@supports not (gap: 1px) {
  .task-photo-grid > * + * {
    margin-left: 8px;
  }
}
.task-photo-cell { position: relative; overflow: hidden; width: calc((100% - 16px) / 3); aspect-ratio: 1; padding: 0; border: 1px solid var(--task-border); border-radius: 10px; background: var(--task-soft); color: var(--task-muted-2); font-size: 11px; }
.task-photo-cell img { width: 100%; height: 100%; object-fit: cover; display: block; }
.task-photo-cell:active { border-color: var(--task-accent); }
.task-photo-mask {
  position: fixed; z-index: 160; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(67, 53, 43, 0.72);
  background: color-mix(in oklab, var(--task-fg) 72%, transparent); padding: 24px;
}
@supports not (inset: 0) {
.task-photo-mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.task-photo-mask img { max-width: 100%; max-height: 100%; border-radius: 12px; object-fit: contain; }
.task-photo-loading { color: var(--task-surface); font-size: 13px; }
/* B-372 照原型 .miss-line/.req-ok-line：无边框、软底圆角 10、12px/lh1.7 */
.task-gap-line { margin: 8px 16px 4px; padding: 8px 12px; border: 0; border-radius: 10px; background: var(--task-soft-cinnabar); color: var(--task-cinnabar); font-size: 12px; line-height: 1.7; }
.task-ok-line { margin: 8px 16px 4px; padding: 8px 12px; border: 0; border-radius: 10px; background: var(--task-soft-green); color: var(--task-fg); font-size: 12px; line-height: 1.7; }
@media (prefers-reduced-motion: reduce) {
  .task-photo-mask, .task-lc, .task-lc * { transition: none !important; animation: none !important; }
}

/* ======== B-374：旧 B-368 工具条/角标样式随结构对齐原型退役（工具条 → .task-h-tools，角标 → .task-q-badge） ======== */
/* ======== B-374 逾期待处置区块（03 原型 .od-block 族逐值：朱砂色系，仅有待处置硬逾期件时出现） ======== */
/* 原型 .od-block：margin 8 16 4 → 8px 2px 4px、padding 10 12 6、圆角 12、描边朱砂 40%、底 soft-cinnabar */
.task-pending-overdue { margin: 0 2px 4px; padding: 10px 12px 6px; overflow: hidden; border: 1px solid #CCA08B; border: 1px solid color-mix(in oklab, var(--task-cinnabar) 40%, var(--task-border)); border-radius: 12px; background: var(--task-soft-cinnabar); }
/* 原型 .od-head：flex 居中 gap 7、12.5px/600 朱砂、行高 1.5；svg 16×16；small 400 muted margin-left auto 11px */
.task-pending-overdue-head { display: flex; align-items: center; gap: 7px; color: var(--task-cinnabar); font-size: 12.5px; font-weight: 600; line-height: 1.5; }
@supports not (gap: 1px) {
  .task-pending-overdue-head > * + * {
    margin-left: 7px;
  }
}
.task-pending-overdue-head svg { flex: none; width: 16px; height: 16px; }
.task-pending-overdue-head small { margin-left: auto; color: var(--task-muted); font-size: 11px; font-weight: 400; }
/* 原型 .od-row：min-height 44、padding 7 2、上邻虚线分隔朱砂 30% */
.task-pending-overdue-row { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 7px 2px; border: 0; border-top: 1px dashed #D1AD9A; border-top: 1px dashed color-mix(in oklab, var(--task-cinnabar) 30%, var(--task-border)); background: transparent; color: var(--task-fg); font: inherit; text-align: left; cursor: pointer; }
@supports not (gap: 1px) {
  .task-pending-overdue-row > * + * {
    margin-left: 8px;
  }
}
/* 原型 .od-name：flex:1 截断 13px/1.45；.od-meta：flex none 11px muted tabular；.neg 600 朱砂 */
.task-pending-overdue-name { flex: 1; min-width: 0; overflow: hidden; font-size: 13px; line-height: 1.45; white-space: nowrap; text-overflow: ellipsis; }
.task-pending-overdue-meta { flex: none; color: var(--task-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.task-pending-overdue-meta .neg { color: var(--task-cinnabar); font-weight: 600; }
@media (prefers-reduced-motion: reduce) {
  .task-pending-overdue-row { transition: none !important; animation: none !important; }
}

/* ======== B-371/B-372 详情页：事实格 / 负责人卡 / 动作分层（数值照 03 原型逐值落地） ======== */
/* 原型 .fact-grid/.fact-cell/.fc-k/.fc-v */
.task-fact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--task-border); }
.task-fact-cell { min-width: 0; padding: 8px 14px; background: var(--task-surface); }
.task-fact-k { color: var(--task-muted); font-size: 11px; letter-spacing: .08em; }
.task-fact-v { margin-top: 1px; color: var(--task-fg); font-family: var(--task-font-mono); font-size: 13.5px; font-variant-numeric: tabular-nums; word-break: break-all; line-height: 1.45; }
.task-fact-v.neg { color: var(--task-cinnabar); }
/* 原型 .owner-row/.avatar.lg/.or-t small */
.task-owner-row { display: flex; align-items: center; gap: 10px; padding: 10px 16px; color: var(--task-fg); font-size: 13.5px; }
@supports not (gap: 1px) {
  .task-owner-row > * + * {
    margin-left: 10px;
  }
}
.task-owner-avatar {
  display: inline-grid; flex: none; width: 34px; height: 34px; place-items: center;
  border: 1px solid #94897D;
  border: 1px solid color-mix(in oklab, var(--task-fg) 45%, var(--task-border)); border-radius: 50%;
  background: var(--task-surface); color: var(--task-fg);
  font-family: var(--task-font-display); font-size: 15px;
}
.task-owner-meta { flex: 1; min-width: 0; }
.task-owner-meta b { color: var(--task-fg); font-size: 13.5px; }
.task-owner-meta small { display: block; margin-top: 1px; color: var(--task-muted); font-size: 11.5px; line-height: 1.5; }
/* 原型 .frozen-hint */
.task-owner-hint { margin: 0 16px 10px; padding: 8px 12px; border-radius: 10px; background: var(--task-soft-cinnabar); color: var(--task-cinnabar); font-size: 12px; line-height: 1.6; }
/* 原型 .d-foot：动作区是贴边 footer 条（非卡面）：出血抵消弹层内边距 */
.task-detail-foot { margin: 14px -18px -20px; padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--task-border); background: var(--task-surface); }
/* 原型 .d-readonly */
.task-foot-ro { margin: 0 0 8px; padding: 9px 14px; border-radius: 10px; background: var(--task-soft); color: var(--task-muted); font-size: 12px; line-height: 1.65; }
.task-foot-cta { display: flex; gap: 10px; align-items: center; margin-top: 2px; }
@supports not (gap: 1px) {
  .task-foot-cta > * + * {
    margin-left: 10px;
  }
}
/* 原型 .save-btn：主按钮 */
.task-foot-main {
  flex: 1; min-height: 48px; border: 0; border-radius: 12px;
  background: var(--task-accent); color: var(--task-surface);
  font-size: 15px; letter-spacing: .06em; cursor: pointer;
  transition: background .15s ease;
}
.task-foot-main:active { opacity: .85; }
.task-foot-main.danger { background: var(--task-cinnabar); }
.task-foot-main:disabled { background: var(--task-soft); color: var(--task-muted-2); opacity: 1; cursor: default; }
/* 原型 .btn-line：次按钮 */
.task-foot-second {
  flex: 1; min-height: 48px; border: 1px solid var(--task-border); border-radius: 12px;
  background: var(--task-surface); color: var(--task-fg); font-size: 14.5px; cursor: pointer;
}
.task-foot-second:active { background: var(--task-soft); }
.task-foot-second.danger { border-color: #CCA08B; border-color: color-mix(in oklab, var(--task-cinnabar) 40%, var(--task-border)); color: var(--task-cinnabar); }
/* 原型 .d-foot-links + .text-btn(.plain)：文字链行 */
.task-foot-links { display: flex; align-items: center; justify-content: space-between; margin-top: 2px; }
.task-foot-link { min-height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: none; color: var(--task-accent); font-size: 13.5px; cursor: pointer; }
.task-foot-link:active { background: var(--task-soft); }
.task-foot-link.danger { color: var(--task-cinnabar); }
.task-foot-link.plain, .task-foot-link:disabled { color: var(--task-muted); }
@media (prefers-reduced-motion: reduce) {
  .task-foot-main, .task-foot-second, .task-foot-link { transition: none !important; animation: none !important; }
}
.att-mobile {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  color-scheme: only light;
}

.att-ws {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 48px;
  padding: 2px 8px 0;
}

@supports not (gap: 1px) {
  .att-ws > * + * {
    margin-left: 4px;
  }
}
.att-back {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px 0 6px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--accent);
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
}
.att-back:active { background: var(--soft); }
.att-ws-t {
  flex: 1;
  text-align: center;
  font-size: 12px;
  color: var(--muted);
}
.att-ws-r { min-width: 56px; text-align: right; font-size: 11px; color: var(--muted-2); padding-right: 10px; }

.att-subnav {
  flex: none;
  display: flex;
  gap: 2px;
  padding: 4px 12px 0;
  border-bottom: 1px solid var(--border);
}

@supports not (gap: 1px) {
  .att-subnav > * + * {
    margin-left: 2px;
  }
}
.att-stab {
  flex: 1;
  min-height: 42px;
  padding: 0 8px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--muted);
  font-size: 14px;
  font-family: inherit;
  cursor: pointer;
}
.att-stab.on {
  color: var(--fg);
  font-weight: 600;
  border-bottom-color: var(--accent);
}

.att-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: none;
  padding-bottom: 8px;
}
.att-scroll::-webkit-scrollbar { display: none; }

.att-head {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 10px 18px 6px;
}

@supports not (gap: 1px) {
  .att-head > * + * {
    margin-left: 8px;
  }
}
.att-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.05em;
}
.att-sub {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
}

.att-stats {
  display: flex;
  gap: 8px;
  margin: 0 16px 10px;
}

@supports not (gap: 1px) {
  .att-stats > * + * {
    margin-left: 8px;
  }
}
.att-stat {
  flex: 1;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: var(--shadow-card);
}
.att-stat .k { font-size: 11px; color: var(--muted); letter-spacing: .06em; }
.att-stat .v {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 16px;
  margin-top: 2px;
  font-weight: 600;
}
.att-stat .v em { font-style: normal; font-size: 12px; color: var(--muted); font-weight: 400; }
.att-stat .v.att-stat-job { font-family: var(--font-display); font-size: 15px; }
.att-stat.warn .v { color: var(--cinnabar); }

.att-week {
  margin: 0 16px 10px;
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.att-week h2 {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
}
.att-week-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.att-week-grid span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-height: 44px;
  padding: 4px 0;
  border-radius: 8px;
  font-size: 10.5px;
  text-align: center;
}
@supports not (gap: 1px) {
  .att-week-grid span > * + * {
    margin-top: 2px;
  }
}
.att-week-grid .wd { color: var(--muted); font-size: 10px; }
.att-week-grid .miss { background: var(--soft-cinnabar); color: var(--cinnabar); }
.att-week-grid .off { background: var(--soft); color: var(--muted); }
.att-week-grid .on { background: #E1E2DE; background: color-mix(in oklab, var(--st-paid) 12%, var(--surface)); }

.att-cal { margin: 0 12px; user-select: none; }
.att-cal-wk {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  padding: 0 0 4px;
}
.att-cal-wk span { text-align: center; font-size: 11px; color: var(--muted); }
.att-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}
.att-cell {
  min-height: 58px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  padding: 4px 2px 3px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: var(--fg);
  font-family: inherit;
  cursor: pointer;
}
@supports not (gap: 1px) {
  .att-cell > * + * {
    margin-top: 2px;
  }
}
.att-cell:disabled { cursor: default; }
.att-cell .dn {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
}
.att-cell .lab {
  font-family: var(--font-display);
  font-size: 9.5px;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-align: center;
  max-width: 100%;
}
.att-cell .tm { font-family: var(--font-mono); font-size: 8.5px; color: var(--muted); }
.att-cell .off-mark { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 8.5px; line-height: 1.15; color: var(--muted-2); }
.att-cell.today { box-shadow: inset 0 0 0 1.5px var(--accent); }
.att-cell.sel { box-shadow: inset 0 0 0 1.5px var(--accent); background: var(--soft-green); }
.att-cell.rest { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); }
.att-cell.leave { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); }
.att-cell.half {
  background: linear-gradient(to bottom, #EDDDCF 50%, #F8F6EE 50%);
  background: linear-gradient(to bottom, color-mix(in oklab, var(--st-busy) 16%, var(--surface)) 50%, var(--surface) 50%);
}
.att-cell.shop { background: var(--soft); }
.att-cell.shop .dn, .att-cell.shop .lab { color: var(--muted-2); }
.att-cell.shift { background: #E1E2DE; background: color-mix(in oklab, var(--st-paid) 12%, var(--surface)); }
.att-cell.off { background: var(--soft); }
.att-cell.off .lab { color: var(--muted); }
.att-cell.miss {
  background: var(--soft-cinnabar);
  box-shadow: inset 0 0 0 1.5px dashed var(--cinnabar);
}
.att-cell.miss .lab { color: var(--cinnabar); }
.att-cell.ov { background: #E1E2DE; background: color-mix(in oklab, var(--st-paid) 12%, var(--surface)); }
.att-cell.mute .dn { color: var(--muted-2); }
.att-cell.in-range { background: var(--soft-green); }

.att-legend { padding: 10px 18px 4px; font-size: 11px; color: var(--muted); }

.att-cta {
  flex: none;
  padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background: var(--surface);
  border-top: 1px solid var(--border);
}
.att-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 12px;
  font-weight: 600;
  font-size: 14.5px;
  font-family: inherit;
  border: 0;
  cursor: pointer;
}
.att-btn.bp {
  width: 100%;
  background: var(--accent);
  color: var(--paper-ink);
  border-bottom: 1px solid #77482D;
  border-bottom: 1px solid color-mix(in oklab, var(--accent) 80%, black);
}
.att-btn.bp:disabled {
  background: #D5B7A3;
  background: color-mix(in oklab, var(--accent) 42%, var(--surface));
  border-bottom-color: transparent;
  color: rgba(251, 247, 236, 0.72);
  color: color-mix(in oklab, var(--paper-ink) 72%, transparent);
  cursor: not-allowed;
}
.att-btn.bs {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
}
.att-btn.bd {
  background: var(--cinnabar);
  color: var(--paper-ink);
}
.att-btn.gh { background: transparent; color: var(--muted); }

.att-mask {
  position: absolute;
  inset: 0;
  z-index: 70;
  background: rgba(67, 53, 43, 0.42);
  background: color-mix(in oklab, var(--fg) 42%, transparent);
  display: flex;
  align-items: flex-end;
}

@supports not (inset: 0) {

.att-mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.att-sheet {
  width: 100%;
  max-height: 88%;
  background: var(--bg);
  border-radius: 20px 20px 0 0;
  display: flex;
  flex-direction: column;
}
.att-sheet-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 16px 18px 8px;
}
@supports not (gap: 1px) {
  .att-sheet-head > * + * {
    margin-left: 10px;
  }
}
.att-sheet-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
}
.att-sheet-sub { margin: 2px 0 0; font-size: 12px; color: var(--muted); }
.att-sheet-x {
  flex: none;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--muted);
  font-size: 20px;
  cursor: pointer;
}
.att-sheet-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 18px 12px;
}
.att-sheet-foot {
  flex: none;
  padding: 10px 18px 16px;
  background: var(--surface);
  border-top: 1px solid var(--border);
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
  .att-sheet-foot > * + * {
    margin-left: 10px;
  }
}
.att-sheet-foot .att-btn { flex: 1; width: auto; }

.att-who {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--border);
}

@supports not (gap: 1px) {
  .att-who > * + * {
    margin-left: 10px;
  }
}
.att-who:last-child { border-bottom: 0; }
.att-av {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ink-card);
  color: var(--paper-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font: 600 12px/1 var(--font-display);
}
.att-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  display: inline-block;
  margin-right: 4px;
}
.att-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-display);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  border-radius: 999px;
  padding: 3px 8px;
}
@supports not (gap: 1px) {
  .att-pill > * + * {
    margin-left: 5px;
  }
}
.att-pill.wait { background: var(--soft-clay); color: var(--accent); }
.att-pill.ok { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black); }
.att-pill.no { background: var(--soft); color: var(--muted-2); }
.att-tag-owner {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-display);
  font-size: 10.5px;
  border-radius: 5px;
  padding: 3px 8px;
  background: #D9DBD9;
  background: color-mix(in oklab, var(--st-paid) 16%, var(--surface));
  color: #303D4D;
  color: color-mix(in oklab, var(--st-paid) 78%, black);
}
@supports not (gap: 1px) {
  .att-tag-owner > * + * {
    margin-left: 5px;
  }
}

.att-opt-row { display: flex; flex-wrap: wrap; gap: 8px; }

@supports not (gap: 1px) {
  .att-opt-row > * + * {
    margin-left: 8px;
  }
}
.att-opt {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
}
.att-opt.on {
  background: var(--soft-green);
  border-color: #C4A28A;
  border-color: color-mix(in oklab, var(--accent) 45%, var(--border));
  color: var(--accent);
  font-weight: 600;
}
.att-field { margin: 10px 0; }
.att-lbl { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.att-inp, .att-area {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  font-family: inherit;
  color: inherit;
  box-sizing: border-box;
}
.att-area { min-height: 72px; padding: 10px 12px; resize: none; }
.att-notice {
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--soft-clay);
  font-size: 12.5px;
  line-height: 1.65;
  margin: 8px 0;
}
.att-notice.warn { background: var(--soft-cinnabar); color: var(--cinnabar); }
.att-err { color: var(--cinnabar); font-size: 13px; margin: 8px 16px; }

.att-punch {
  margin: 8px 16px 0;
  padding: 22px 18px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  text-align: center;
}
.att-punch-btn {
  width: 100%;
  min-height: 88px;
  border: 0;
  border-radius: 16px;
  background: var(--accent);
  color: var(--paper-ink);
  border-bottom: 1px solid #77482D;
  border-bottom: 1px solid color-mix(in oklab, var(--accent) 80%, black);
  font-family: var(--font-display);
  font-size: 22px;
  letter-spacing: 0.14em;
  font-weight: 600;
  cursor: pointer;
}
.att-punch-btn:disabled {
  background: var(--soft);
  color: var(--muted-2);
  border-bottom-color: transparent;
}
.att-kiosk {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 28px 24px;
  text-align: center;
  background: var(--bg);
  color: var(--fg);
}
@supports not (gap: 1px) {
  .att-kiosk > * + * {
    margin-top: 16px;
  }
}
.att-kiosk.land { flex-direction: row; gap: 36px; }
.att-kiosk .shop {
  font-family: var(--font-display);
  font-size: 18px;
  letter-spacing: 0.42em;
  color: var(--muted);
}
.att-kiosk .ktime {
  font-family: var(--font-display);
  font-size: 56px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.att-qr {
  width: 196px;
  height: 196px;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.att-qr svg { width: 100%; height: 100%; display: block; }
.att-card {
  display: flex;
  align-items: stretch;
  width: calc(100% - 32px);
  margin: 6px 16px 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  text-align: left;
  color: var(--fg);
  font-family: inherit;
  cursor: pointer;
}
.att-l-open { flex: 1; min-width: 0; padding: 10px 12px; }
.att-l-name { font-size: 14px; font-weight: 600; }
.att-l-meta { font-size: 12px; color: var(--muted); margin-top: 2px; }
.att-chips {
  display: flex;
  margin: 8px 16px 4px;
  padding: 3px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.att-fchip {
  flex: 1;
  min-height: 40px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font-size: 12.5px;
  font-family: inherit;
  cursor: pointer;
}
.att-fchip.on { background: var(--soft-green); color: var(--accent); font-weight: 600; }
.att-empty { padding: 48px 28px; text-align: center; color: var(--muted); }

@media (prefers-reduced-motion: reduce) {
  .att-mobile *, .att-kiosk * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

.me-cat[data-v-a2d67b76] { position: absolute; top: 16px; right: 14px; width: 84px; height: 84px; color: var(--me-surface); opacity: .13; pointer-events: none;
}

.me-icon[data-v-0f89f16f] { width: 34px; height: 34px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--me-soft); color: var(--me-icon);
}
.me-icon svg[data-v-0f89f16f] { width: 19px; height: 19px; display: block;
}

.me-view[data-v-f37fcae5] { position: relative; display: flex; flex: 1; min-height: 0; overflow: hidden; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body); line-height: 1.75;
}
.paper-grain[data-v-f37fcae5]::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .55; mix-blend-mode: multiply; background-image: var(--me-paper-grain);
}
@supports not (inset: 0) {
.paper-grain[data-v-f37fcae5]::before { top: 0; right: 0; bottom: 0; left: 0;
}
}
.me-scroll[data-v-f37fcae5] { position: relative; z-index: 1; flex: 1; min-height: 0; overflow-y: auto; padding: 12px 16px 28px; scrollbar-width: none;
}
.me-scroll[data-v-f37fcae5]::-webkit-scrollbar { display: none;
}
.me-id-card[data-v-f37fcae5] { position: relative; overflow: hidden; margin: 0 0 24px; padding: 30px 20px 28px; border-radius: 16px; background: var(--me-ink-card); color: var(--me-surface);
}
.me-identity-head[data-v-f37fcae5] { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
@supports not (gap: 1px) {
.me-identity-head[data-v-f37fcae5] > * + * {
    margin-left: 12px;
}
}
.me-identity-head h1[data-v-f37fcae5] { margin: 0; padding-right: 88px; font: 600 20px/1.4 var(--me-font-display); letter-spacing: .06em;
}
.me-identity-head p[data-v-f37fcae5] { margin: 5px 0 0; padding-right: 88px; color: var(--me-ink-soft); font-size: 13px; line-height: 1.55;
}
.me-days[data-v-f37fcae5] { flex: none; color: var(--me-ink-soft); font: 12px/1.5 var(--me-font-mono); white-space: nowrap;
}
.me-motto[data-v-f37fcae5] { position: relative; z-index: 1; margin: 16px 0 0; padding-right: 88px; color: var(--me-ink-soft); font: 13px/1.6 var(--me-font-display); letter-spacing: .05em;
}
.me-motto[data-v-f37fcae5]::before { content: ""; display: block; width: 64px; height: 1px; margin: 0 0 12px; background: rgba(251, 247, 238, 0.32); background: color-mix(in oklab, var(--me-surface) 32%, transparent);
}
.me-group[data-v-f37fcae5] { margin: 20px 0 0;
}
.me-group-label[data-v-f37fcae5] { display: flex; align-items: baseline; gap: 9px; margin: 0 4px 8px; color: var(--me-muted); font-size: 12px; font-weight: 500; letter-spacing: .22em;
}
@supports not (gap: 1px) {
.me-group-label[data-v-f37fcae5] > * + * {
    margin-left: 9px;
}
}
.me-group-label span[data-v-f37fcae5] { color: var(--me-muted-2); font: 600 15px/1 var(--me-font-display); letter-spacing: 0;
}
.me-card[data-v-f37fcae5] { overflow: hidden; border: 1px solid var(--me-border); border-radius: 16px; background: var(--me-surface);
}
.me-row[data-v-f37fcae5] { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 6px 16px; border: 0; border-radius: 0; background: var(--me-surface); color: var(--me-fg); font: 15px/1.4 var(--me-font-body); text-align: left; cursor: pointer; transition: background 150ms ease; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.me-row[data-v-f37fcae5] > * + * {
    margin-left: 12px;
}
}
.me-row + .me-row[data-v-f37fcae5] { border-top: 1px solid var(--me-border);
}
.me-row[data-v-f37fcae5]:hover { background: #FAF6EC; background: color-mix(in oklab, var(--me-surface) 88%, var(--me-bg));
}
.me-row[data-v-f37fcae5]:active { background: var(--me-soft);
}
.me-row[data-v-f37fcae5]:focus-visible { outline: 2px solid var(--me-accent); outline-offset: -2px;
}
.me-row-title[data-v-f37fcae5] { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.me-badge[data-v-f37fcae5] { flex: none; min-width: 22px; padding: 4px 7px; border-radius: var(--radius-pill); background: var(--me-cinnabar); color: var(--me-surface); font: 12px/1 var(--me-font-mono); text-align: center;
}
.me-tag[data-v-f37fcae5] { flex: none; padding: 3px 7px; border-radius: 6px; background: var(--me-soft-green); color: var(--me-accent); font: 11px/1.2 var(--me-font-display); letter-spacing: .08em;
}
.me-chevron[data-v-f37fcae5] { flex: none; color: var(--me-muted); font-size: 20px; line-height: 1;
}
.me-season[data-v-f37fcae5] { margin: 36px 0 0; color: var(--me-muted-2); font: 12px var(--me-font-display); letter-spacing: .2em; text-align: center; text-indent: .2em;
}
@media (min-width: 680px) {
.me-scroll[data-v-f37fcae5] { width: min(100%, 560px); margin: 0 auto;
}
}

.ts-view[data-v-a7f84939] { position: relative; display: flex; flex: 1; min-height: 0; overflow: hidden; background: var(--me-bg, #f6f1e7); color: var(--me-fg, #33302b); font-family: var(--me-font-body, system-ui); line-height: 1.7;
}
.ts-scroll[data-v-a7f84939] { position: relative; z-index: 1; flex: 1; min-height: 0; overflow-y: auto; padding: 12px 16px 28px; scrollbar-width: none;
}
.ts-scroll[data-v-a7f84939]::-webkit-scrollbar { display: none;
}
.ts-head[data-v-a7f84939] { display: flex; align-items: center; gap: 10px; margin: 4px 0 14px;
}
@supports not (gap: 1px) {
.ts-head[data-v-a7f84939] > * + * {
    margin-left: 10px;
}
}
.ts-back[data-v-a7f84939] { width: 34px; height: 34px; border: 1px solid var(--me-border, #e4dccb); border-radius: 12px; background: var(--me-surface, #fffdf8); color: var(--me-fg, #33302b); font-size: 20px; line-height: 1; cursor: pointer;
}
.ts-head h1[data-v-a7f84939] { margin: 0; font: 600 18px/1.4 var(--me-font-display, system-ui); letter-spacing: .04em;
}
.ts-card[data-v-a7f84939] { border: 1px solid var(--me-border, #e4dccb); border-radius: 16px; background: var(--me-surface, #fffdf8); padding: 16px; margin: 0 0 12px;
}
.ts-empty h2[data-v-a7f84939] { margin: 0 0 6px; font-size: 16px;
}
.ts-empty p[data-v-a7f84939] { margin: 0 0 10px; color: var(--me-muted, #8a8377); font-size: 13px;
}
.ts-totals[data-v-a7f84939] { display: flex; gap: 12px;
}
@supports not (gap: 1px) {
.ts-totals[data-v-a7f84939] > * + * {
    margin-left: 12px;
}
}
.ts-total[data-v-a7f84939] { flex: 1; text-align: center; padding: 8px 0;
}
.ts-num[data-v-a7f84939] { display: block; font: 600 34px/1.2 var(--me-font-display, system-ui);
}
.ts-num-month[data-v-a7f84939] { color: var(--me-accent, #7d6a4f);
}
.ts-cap[data-v-a7f84939] { color: var(--me-muted, #8a8377); font-size: 12px; letter-spacing: .12em;
}
.ts-item-head[data-v-a7f84939] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;
}
@supports not (gap: 1px) {
.ts-item-head[data-v-a7f84939] > * + * {
    margin-left: 10px;
}
}
.ts-item-head h3[data-v-a7f84939] { margin: 0; font-size: 15px;
}
.ts-meta[data-v-a7f84939] { margin: 2px 0 0; color: var(--me-muted, #8a8377); font-size: 12px;
}
.ts-score[data-v-a7f84939] { flex: none; font: 600 16px/1.4 var(--me-font-display, system-ui); color: var(--me-accent, #7d6a4f);
}
.ts-dims[data-v-a7f84939] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px;
}
@supports not (gap: 1px) {
.ts-dims[data-v-a7f84939] > * + * {
    margin-left: 6px;
}
}
.ts-dim[data-v-a7f84939] { padding: 3px 9px; border-radius: 999px; background: var(--me-soft, #f1ead9); font-size: 12px;
}
.ts-note[data-v-a7f84939] { margin: 10px 0 0; font-size: 13px; color: var(--me-ink-soft, #6b6459);
}
.ts-item-foot[data-v-a7f84939] { margin-top: 10px; text-align: right;
}
.ts-appeal[data-v-a7f84939] { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--me-border, #e4dccb);
}
.ts-appeal-status[data-v-a7f84939] { margin: 0; font-size: 13px; font-weight: 600;
}
.ts-appeal-status.is-pending[data-v-a7f84939] { color: #a2691c;
}
.ts-appeal-status.is-accepted[data-v-a7f84939] { color: #3d7a4f;
}
.ts-appeal-status.is-rejected[data-v-a7f84939] { color: var(--me-muted, #8a8377);
}
.ts-appeal-text[data-v-a7f84939] { margin: 4px 0 0; font-size: 12px; color: var(--me-muted, #8a8377);
}
.ts-btn[data-v-a7f84939] { padding: 8px 16px; border: 1px solid var(--me-border, #e4dccb); border-radius: 10px; background: var(--me-surface, #fffdf8); color: var(--me-fg, #33302b); font-size: 13px; cursor: pointer;
}
.ts-btn-ghost[data-v-a7f84939] { padding: 5px 12px;
}
.ts-btn-warm[data-v-a7f84939] { background: var(--me-accent, #7d6a4f); border-color: var(--me-accent, #7d6a4f); color: #fffdf8;
}
.ts-btn[data-v-a7f84939]:disabled { opacity: .6; cursor: default;
}
.ts-mask[data-v-a7f84939] { position: fixed; inset: 0; z-index: 60; background: rgba(30, 26, 18, .45); display: flex; align-items: flex-end; justify-content: center;
}
@supports not (inset: 0) {
.ts-mask[data-v-a7f84939] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.ts-sheet[data-v-a7f84939] { width: min(100%, 560px); padding: 20px 18px 24px; border-radius: 18px 18px 0 0; background: var(--me-surface, #fffdf8);
}
.ts-sheet h2[data-v-a7f84939] { margin: 0 0 6px; font-size: 17px;
}
.ts-sheet-sub[data-v-a7f84939] { margin: 0 0 12px; color: var(--me-muted, #8a8377); font-size: 12px;
}
.ts-label[data-v-a7f84939] { display: block; margin-bottom: 6px; font-size: 13px;
}
.ts-textarea[data-v-a7f84939] { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--me-border, #e4dccb); border-radius: 10px; background: var(--me-bg, #f6f1e7); font: 14px/1.6 var(--me-font-body, system-ui); resize: vertical;
}
.ts-err[data-v-a7f84939] { margin: 8px 0 0; color: #a2402c; font-size: 12px;
}
.ts-sheet-actions[data-v-a7f84939] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px;
}
@supports not (gap: 1px) {
.ts-sheet-actions[data-v-a7f84939] > * + * {
    margin-left: 10px;
}
}
@media (min-width: 680px) {
.ts-scroll[data-v-a7f84939] { width: min(100%, 560px); margin: 0 auto;
}
}

.overlay[data-v-098f28c0] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: flex-end;
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
}
@supports not (inset: 0) {
.overlay[data-v-098f28c0] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-098f28c0] {
  width: 100%;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: 12px 12px 0 0;
  padding: 16px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.sheet[data-v-098f28c0] > * + * {
    margin-top: 12px;
}
}
.sheet-head[data-v-098f28c0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sheet-title[data-v-098f28c0] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-098f28c0] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.error-box[data-v-098f28c0] {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--color-surface-clay);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.field[data-v-098f28c0] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-098f28c0] > * + * {
    margin-top: 6px;
}
}
.label[data-v-098f28c0] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[type="password"][data-v-098f28c0] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.hint[data-v-098f28c0] {
  margin: 0;
  font-size: 12px;
  color: var(--color-clay);
}
.primary-btn[data-v-098f28c0] {
  min-height: 44px;
  border: none;
  border-radius: 10px;
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 15px;
  cursor: pointer;
  font-family: inherit;
}
.primary-btn[data-v-098f28c0]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.me-subpage[data-v-61dfb96d] { flex: 1; overflow-y: auto; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.account-page[data-v-61dfb96d] { display: flex; flex-direction: column; overflow: hidden;
}
.account-head[data-v-61dfb96d] { display: flex; flex: none; align-items: center; gap: 6px; min-height: 52px; padding: 0 12px; border-bottom: 1px solid var(--me-border); background: var(--me-surface);
}
@supports not (gap: 1px) {
.account-head[data-v-61dfb96d] > * + * {
    margin-left: 6px;
}
}
.account-head h1[data-v-61dfb96d] { margin: 0; font: 600 17px var(--me-font-display); letter-spacing: .06em;
}
.account-back[data-v-61dfb96d] { display: flex; align-items: center; min-height: 44px; padding: 0 10px; border: 0; border-radius: 10px; background: transparent; color: var(--me-accent); font: 15px var(--me-font-body); cursor: pointer;
}
.account-back span[data-v-61dfb96d] { margin-right: 2px; font-size: 18px; line-height: 1;
}
.account-back[data-v-61dfb96d]:hover { background: var(--me-soft);
}
.account-body[data-v-61dfb96d] { flex: 1; overflow-y: auto; padding: 20px 16px 28px;
}
.account-card[data-v-61dfb96d] { overflow: hidden; border: 1px solid var(--me-border); border-radius: 16px; background: var(--me-surface);
}
.account-row[data-v-61dfb96d] { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 0 16px; border: 0; background: var(--me-surface); color: var(--me-fg); font: 15px var(--me-font-body); text-align: left; cursor: pointer;
}
@supports not (gap: 1px) {
.account-row[data-v-61dfb96d] > * + * {
    margin-left: 12px;
}
}
.account-row + .account-row[data-v-61dfb96d] { border-top: 1px solid var(--me-border);
}
.account-row[data-v-61dfb96d]:not(.account-row-static):hover { background: #FAF6EC; background: color-mix(in oklab, var(--me-surface) 88%, var(--me-bg));
}
.account-row[data-v-61dfb96d]:not(.account-row-static):active { background: var(--me-soft);
}
.account-row-static[data-v-61dfb96d] { cursor: default;
}
.account-row-title[data-v-61dfb96d] { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.account-row-value[data-v-61dfb96d] { flex: none; max-width: 58%; overflow: hidden; color: var(--me-muted); font: 14px var(--me-font-mono); text-overflow: ellipsis; white-space: nowrap;
}
.account-chevron[data-v-61dfb96d] { flex: none; color: var(--me-muted); font-size: 15px; line-height: 1;
}
.danger-button[data-v-61dfb96d] { display: block; min-height: 44px; margin: 28px auto 0; padding: 0 24px; border: 0; border-radius: 8px; background: transparent; color: var(--me-cinnabar); font: 15px var(--me-font-body); cursor: pointer;
}
.danger-button[data-v-61dfb96d]:hover { background: var(--me-soft-cinnabar);
}
.danger-button[data-v-61dfb96d]:active { opacity: .65;
}
.subpage-head[data-v-61dfb96d] { padding: 20px 16px 0;
}
.subpage-head h1[data-v-61dfb96d] { margin: 0; font: 600 24px var(--me-font-display);
}
.subpage-head p[data-v-61dfb96d] { margin: 8px 0 20px; color: var(--me-muted); font-size: 13px;
}
.subpage-card[data-v-61dfb96d] { display: flex; flex-direction: column; gap: 8px; margin: 0 16px; padding: 18px; border: 1px solid var(--me-border); border-radius: 16px; background: var(--me-surface);
}
@supports not (gap: 1px) {
.subpage-card[data-v-61dfb96d] > * + * {
    margin-top: 8px;
}
}
.subpage-card label[data-v-61dfb96d] { margin-top: 4px; color: var(--me-muted); font-size: 13px;
}
.subpage-card input[data-v-61dfb96d] { box-sizing: border-box; min-height: 44px; padding: 0 12px; border: 1px solid var(--me-border); border-radius: 12px; color: var(--me-fg); background: var(--me-surface); font: inherit;
}
.subpage-card input[data-v-61dfb96d]:disabled { background: var(--me-soft); color: var(--me-muted);
}
.primary-button[data-v-61dfb96d] { min-height: 44px; margin-top: 8px; border: 0; border-radius: 12px; background: var(--me-accent); color: var(--me-surface); font: inherit; cursor: pointer;
}
.logout-mask[data-v-61dfb96d] { position: fixed; inset: 0; z-index: 60; background: rgba(62, 47, 36, 0.42); background: color-mix(in oklab, var(--me-fg) 42%, transparent);
}
@supports not (inset: 0) {
.logout-mask[data-v-61dfb96d] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.logout-sheet[data-v-61dfb96d] { position: absolute; right: 10px; bottom: 12px; left: 10px; display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.logout-sheet[data-v-61dfb96d] > * + * {
    margin-top: 8px;
}
}
.logout-sheet-group[data-v-61dfb96d], .logout-cancel[data-v-61dfb96d] { overflow: hidden; border: 0; border-radius: 16px; background: var(--me-surface);
}
.logout-sheet-title[data-v-61dfb96d] { margin: 0; padding: 13px 16px 11px; border-bottom: 1px solid var(--me-border); color: var(--me-muted); font-size: 13px; text-align: center;
}
.logout-confirm[data-v-61dfb96d], .logout-cancel[data-v-61dfb96d] { min-height: 52px; color: var(--me-cinnabar); font: 16px var(--me-font-body); cursor: pointer;
}
.logout-confirm[data-v-61dfb96d] { width: 100%; border: 0; background: transparent;
}
.logout-confirm[data-v-61dfb96d]:disabled { cursor: wait; opacity: .65;
}
.account-back[data-v-61dfb96d]:focus-visible, .account-row[data-v-61dfb96d]:focus-visible, .danger-button[data-v-61dfb96d]:focus-visible, .logout-sheet button[data-v-61dfb96d]:focus-visible { outline: 2px solid var(--me-accent); outline-offset: -2px;
}
.hint[data-v-61dfb96d], .error-box[data-v-61dfb96d], .notice-box[data-v-61dfb96d] { margin: 0 16px 12px; padding: 10px 12px; border-radius: 10px; font-size: 13px;
}
.hint[data-v-61dfb96d] { color: var(--me-muted);
}
.error-box[data-v-61dfb96d] { background: var(--me-soft-cinnabar); color: var(--me-cinnabar);
}
.notice-box[data-v-61dfb96d] { background: var(--me-soft-green); color: var(--me-accent);
}

.terminal-pin-page[data-v-fedb7bc0] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
}
.page-head[data-v-fedb7bc0] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
}
@supports not (gap: 1px) {
.page-head[data-v-fedb7bc0] > * + * {
    margin-left: 8px;
}
}
.page-head h1[data-v-fedb7bc0] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.back[data-v-fedb7bc0] {
  min-height: 44px;
  padding: 0 8px;
  border: none;
  background: transparent;
  font-size: 15px;
  color: var(--color-green);
  cursor: pointer;
  font-family: inherit;
}
.page-body[data-v-fedb7bc0] {
  padding: 0 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.page-body[data-v-fedb7bc0] > * + * {
    margin-top: 12px;
}
}
.lead[data-v-fedb7bc0] {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-wood-gray);
}
.error-box[data-v-fedb7bc0] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-clay);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.notice-box[data-v-fedb7bc0] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.hint[data-v-fedb7bc0] {
  margin: 0;
  padding: 20px 0;
  text-align: center;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.card[data-v-fedb7bc0] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
}
@supports not (gap: 1px) {
.card[data-v-fedb7bc0] > * + * {
    margin-top: 12px;
}
}
.field[data-v-fedb7bc0] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-fedb7bc0] > * + * {
    margin-top: 6px;
}
}
.label[data-v-fedb7bc0] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[data-v-fedb7bc0] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 15px;
  letter-spacing: 4px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.primary-btn[data-v-fedb7bc0] {
  min-height: 44px;
  border: none;
  border-radius: 10px;
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 15px;
  cursor: pointer;
  font-family: inherit;
}
.primary-btn[data-v-fedb7bc0]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.terminals-page[data-v-c69e6496] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
  padding-bottom: 24px;
}@supports not (gap: 1px) {
.terminals-page[data-v-c69e6496] > * + * {
    margin-top: 12px;
}
}
.page-head[data-v-c69e6496] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 0;
}
@supports not (gap: 1px) {
.page-head[data-v-c69e6496] > * + * {
    margin-left: 8px;
}
}
.page-head h1[data-v-c69e6496] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.retry-btn[data-v-c69e6496] {
  margin: 0 16px;
}
.back[data-v-c69e6496] {
  min-height: 44px;
  padding: 0 8px;
  border: none;
  background: transparent;
  font-size: 15px;
  color: var(--color-green);
  cursor: pointer;
  font-family: inherit;
}
.error-box[data-v-c69e6496],
.notice-box[data-v-c69e6496] {
  margin: 0 16px;
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
}
.error-box[data-v-c69e6496] {
  background: var(--color-surface-clay);
  color: var(--color-cinnabar);
}
.notice-box[data-v-c69e6496] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.hint[data-v-c69e6496] {
  padding: 24px 0;
  text-align: center;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.card[data-v-c69e6496] {
  margin: 0 16px;
  padding: 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.card[data-v-c69e6496] > * + * {
    margin-top: 12px;
}
}
.card-title[data-v-c69e6496] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.card-desc[data-v-c69e6496] {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
  color: var(--color-wood-gray);
}
.field-row[data-v-c69e6496] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
@supports not (gap: 1px) {
.field-row[data-v-c69e6496] > * + * {
    margin-left: 12px;
}
}
.label[data-v-c69e6496] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field-row input[data-v-c69e6496] {
  width: 110px;
  padding: 9px 10px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.pages[data-v-c69e6496] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@supports not (gap: 1px) {
.pages[data-v-c69e6496] > * + * {
    margin-top: 8px;
}
}
.page-option[data-v-c69e6496] {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  font-size: 14px;
  color: var(--color-ink);
  cursor: pointer;
}
@supports not (gap: 1px) {
.page-option[data-v-c69e6496] > * + * {
    margin-left: 10px;
}
}
.page-option input[data-v-c69e6496] {
  width: 18px;
  height: 18px;
}
.primary-btn[data-v-c69e6496] {
  min-height: 44px;
  border: none;
  border-radius: 10px;
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 15px;
  cursor: pointer;
  font-family: inherit;
}
.primary-btn[data-v-c69e6496]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.ghost-btn[data-v-c69e6496] {
  min-height: 44px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: transparent;
  color: var(--color-ink);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.danger-btn[data-v-c69e6496] {
  min-height: 44px;
  border: 1px solid var(--color-cinnabar);
  border-radius: 10px;
  background: transparent;
  color: var(--color-cinnabar);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.device[data-v-c69e6496] {
  padding: 12px 0;
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@supports not (gap: 1px) {
.device[data-v-c69e6496] > * + * {
    margin-top: 8px;
}
}
.device-head[data-v-c69e6496] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.device-name[data-v-c69e6496] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
}
.device-status[data-v-c69e6496] {
  font-size: 12px;
  color: var(--color-green);
}
.device-status.off[data-v-c69e6496] {
  color: var(--color-wood-gray);
}
.device-meta[data-v-c69e6496] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
}
.device-actions[data-v-c69e6496] {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.device-actions[data-v-c69e6496] > * + * {
    margin-left: 8px;
}
}
.device-act[data-v-c69e6496] {
  min-height: 36px;
  padding: 0 14px;
  font-size: 13px;
}
.code-error[data-v-c69e6496] {
  margin: 0;
}
.name-input[data-v-c69e6496] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 15px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
  box-sizing: border-box;
}
.overlay[data-v-c69e6496] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: flex-end;
}
@supports not (inset: 0) {
.overlay[data-v-c69e6496] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-c69e6496] {
  width: 100%;
  padding: 16px;
  box-sizing: border-box;
  border-radius: 12px 12px 0 0;
  background: var(--color-paper);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.sheet[data-v-c69e6496] > * + * {
    margin-top: 12px;
}
}
.sheet-title[data-v-c69e6496] {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-ink);
}
.code[data-v-c69e6496] {
  margin: 0;
  text-align: center;
  font-size: 40px;
  letter-spacing: 10px;
  font-variant-numeric: tabular-nums;
  color: var(--color-ink);
  font-weight: 700;
}
.sheet-actions[data-v-c69e6496] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.sheet-actions[data-v-c69e6496] > * + * {
    margin-left: 10px;
}
}
.sheet-actions[data-v-c69e6496] > * {
  flex: 1;
}

/* ── 副屏广告图 ── */
.ad[data-v-c69e6496] {
  padding: 12px 0;
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@supports not (gap: 1px) {
.ad[data-v-c69e6496] > * + * {
    margin-top: 8px;
}
}
.ad-thumb[data-v-c69e6496] {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 10px;
  background: var(--color-border);
}
.ad-caption-input[data-v-c69e6496] {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
  box-sizing: border-box;
}
.ad-actions[data-v-c69e6496] {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.ad-actions[data-v-c69e6496] > * + * {
    margin-left: 8px;
}
}
.ad-actions[data-v-c69e6496] > * {
  flex: 1;
}
.ghost-btn.mini[data-v-c69e6496],
.danger-btn.mini[data-v-c69e6496] {
  min-height: 40px;
  font-size: 13px;
}
.ad-file[data-v-c69e6496] {
  font-size: 13px;
  color: var(--color-ink);
}

.printing-page[data-v-3ba669c1] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
  padding-bottom: 24px;
}@supports not (gap: 1px) {
.printing-page[data-v-3ba669c1] > * + * {
    margin-top: 12px;
}
}
.page-head[data-v-3ba669c1] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 0;
}
@supports not (gap: 1px) {
.page-head[data-v-3ba669c1] > * + * {
    margin-left: 8px;
}
}
.page-head h1[data-v-3ba669c1] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.retry-btn[data-v-3ba669c1] {
  margin: 0 16px;
}
.back[data-v-3ba669c1] {
  min-height: 44px;
  padding: 0 8px;
  border: none;
  background: transparent;
  font-size: 15px;
  color: var(--color-green);
  cursor: pointer;
  font-family: inherit;
}
.error-box[data-v-3ba669c1],
.notice-box[data-v-3ba669c1] {
  margin: 0 16px;
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
}
.error-box[data-v-3ba669c1] {
  background: var(--color-surface-clay);
  color: var(--color-cinnabar);
}
.notice-box[data-v-3ba669c1] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.hint[data-v-3ba669c1] {
  padding: 24px 0;
  text-align: center;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.card[data-v-3ba669c1] {
  margin: 0 16px;
  padding: 16px;
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.card-title[data-v-3ba669c1] {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.card-desc[data-v-3ba669c1] {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--color-wood-gray);
}
.printer[data-v-3ba669c1] {
  border-top: 1px solid var(--color-border);
  padding: 10px 0;
}
.printer-head[data-v-3ba669c1] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.printer-name[data-v-3ba669c1] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
}
.printer-status[data-v-3ba669c1] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 12px;
}
.printer-status.off[data-v-3ba669c1] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.printer-meta[data-v-3ba669c1] {
  margin: 4px 0 8px;
  font-size: 12px;
  color: var(--color-wood-gray);
}
.printer-actions[data-v-3ba669c1] {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.printer-actions[data-v-3ba669c1] > * + * {
    margin-left: 8px;
}
}
.field-row[data-v-3ba669c1] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.field-row[data-v-3ba669c1] > * + * {
    margin-top: 6px;
}
}
.label[data-v-3ba669c1] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field-row input[type="text"][data-v-3ba669c1],
.field-row select[data-v-3ba669c1],
.field-row textarea[data-v-3ba669c1] {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.field-row textarea[data-v-3ba669c1] {
  resize: vertical;
}
.switch-option[data-v-3ba669c1] {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  font-size: 14px;
  color: var(--color-ink);
  cursor: pointer;
}
@supports not (gap: 1px) {
.switch-option[data-v-3ba669c1] > * + * {
    margin-left: 8px;
}
}
.primary-btn[data-v-3ba669c1] {
  margin-top: 8px;
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.primary-btn[data-v-3ba669c1]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.ghost-btn[data-v-3ba669c1] {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.danger-btn[data-v-3ba669c1] {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--color-cinnabar);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.sheet-mask[data-v-3ba669c1] {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.36);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  z-index: 60;
}
@supports not (inset: 0) {
.sheet-mask[data-v-3ba669c1] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-3ba669c1] {
  width: 100%;
  max-height: 86vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  padding: 18px 16px 24px;
}
.sheet-title[data-v-3ba669c1] {
  margin: 0 0 10px;
  font-size: 16px;
  color: var(--color-ink);
}
.sheet-actions[data-v-3ba669c1] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.sheet-actions[data-v-3ba669c1] > * + * {
    margin-left: 10px;
}
}

.me-subpage[data-v-ddf6fc57] { flex: 1; overflow-y: auto; padding: 20px 16px 32px; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.subpage-head h1[data-v-ddf6fc57] { margin: 0; font: 600 24px var(--me-font-display);
}
.subpage-head p[data-v-ddf6fc57] { margin: 8px 0 20px; color: var(--me-muted); font-size: 13px; line-height: 1.6;
}
.shop-list[data-v-ddf6fc57] { display: flex; flex-direction: column; gap: 10px; padding: 0; margin: 0; list-style: none;
}
@supports not (gap: 1px) {
.shop-list[data-v-ddf6fc57] > * + * {
    margin-top: 10px;
}
}
.shop-row[data-v-ddf6fc57], .subpage-card[data-v-ddf6fc57] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-radius: 16px; background: var(--me-surface); border: 1px solid var(--me-border);
}
@supports not (gap: 1px) {
.shop-row[data-v-ddf6fc57] > * + *,
.subpage-card[data-v-ddf6fc57] > * + * {
    margin-left: 12px;
}
}
.shop-row strong[data-v-ddf6fc57] { display: block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.current-tag[data-v-ddf6fc57] { display: inline-block; margin-top: 4px; color: var(--me-accent); font-size: 12px;
}
.shop-row button[data-v-ddf6fc57] { min-width: 68px; min-height: 40px; border: 1px solid var(--me-accent); border-radius: 10px; background: var(--me-surface); color: var(--me-accent); font: inherit; cursor: pointer;
}
.shop-row button[data-v-ddf6fc57]:disabled { opacity: .55; cursor: default;
}
.empty[data-v-ddf6fc57] { justify-content: flex-start; color: var(--me-muted);
}
.error-box[data-v-ddf6fc57] { padding: 10px 12px; border-radius: 10px; background: var(--me-soft-cinnabar); color: var(--me-cinnabar); font-size: 13px;
}

.me-subpage[data-v-653170ec] { flex: 1; overflow-y: auto; padding: 20px 16px 32px; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.subpage-head h1[data-v-653170ec] { margin: 0; font: 600 24px var(--me-font-display);
}
.subpage-head p[data-v-653170ec] { margin: 8px 0 20px; color: var(--me-muted); font-size: 13px; line-height: 1.6;
}
.subpage-card[data-v-653170ec] { display: flex; flex-direction: column; gap: 0; padding: 18px; border-radius: 16px; background: var(--me-surface); border: 1px solid var(--me-border);
}
@supports not (gap: 1px) {
.subpage-card[data-v-653170ec] > * + * {
    margin-top: 0;
}
}
.status-row[data-v-653170ec] { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--me-border); font-size: 14px;
}
@supports not (gap: 1px) {
.status-row[data-v-653170ec] > * + * {
    margin-left: 12px;
}
}
.status-row span[data-v-653170ec] { color: var(--me-muted);
}
.status-row strong[data-v-653170ec] { text-align: right;
}
.primary-link[data-v-653170ec] { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 18px; border-radius: 12px; background: var(--me-accent); color: var(--me-surface); text-decoration: none;
}

.me-subpage[data-v-bff8fb7d] { flex: 1; overflow-y: auto; padding: 20px 16px 32px; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.subpage-head h1[data-v-bff8fb7d] { margin: 0; font: 600 24px var(--me-font-display);
}
.subpage-head p[data-v-bff8fb7d] { margin: 8px 0 20px; color: var(--me-muted); font-size: 13px; line-height: 1.6;
}
.module-list[data-v-bff8fb7d] { display: flex; flex-direction: column; gap: 10px;
}
@supports not (gap: 1px) {
.module-list[data-v-bff8fb7d] > * + * {
    margin-top: 10px;
}
}
.module-card[data-v-bff8fb7d] { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-radius: 16px; background: var(--me-surface); border: 1px solid var(--me-border);
}
@supports not (gap: 1px) {
.module-card[data-v-bff8fb7d] > * + * {
    margin-left: 12px;
}
}
.module-card h2[data-v-bff8fb7d] { margin: 0; font-size: 16px;
}
.module-card p[data-v-bff8fb7d] { margin: 6px 0 0; color: var(--me-muted); font-size: 13px;
}
.enabled[data-v-bff8fb7d], .disabled[data-v-bff8fb7d] { flex-shrink: 0; font-size: 12px;
}
.enabled[data-v-bff8fb7d] { color: var(--me-accent);
}
.disabled[data-v-bff8fb7d] { color: var(--me-cinnabar);
}
.hint[data-v-bff8fb7d] { margin-top: 18px; color: var(--me-muted); font-size: 13px;
}

.me-subpage[data-v-08c2eebd] { flex: 1; overflow-y: auto; padding: 20px 16px 32px; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.subpage-head h1[data-v-08c2eebd] { margin: 0; font: 600 24px var(--me-font-display);
}
.subpage-head p[data-v-08c2eebd] { margin: 8px 0 20px; color: var(--me-muted); font-size: 13px; line-height: 1.6;
}
.subpage-card[data-v-08c2eebd] { padding: 18px; border-radius: 16px; background: var(--me-surface); border: 1px solid var(--me-border);
}
.status-row[data-v-08c2eebd] { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--me-border); font-size: 14px;
}
@supports not (gap: 1px) {
.status-row[data-v-08c2eebd] > * + * {
    margin-left: 12px;
}
}
.status-row span[data-v-08c2eebd] { color: var(--me-muted);
}
.status-row strong[data-v-08c2eebd] { text-align: right; overflow-wrap: anywhere;
}
.hint[data-v-08c2eebd] { margin: 16px 0 0; color: var(--me-muted); font-size: 12px; line-height: 1.6;
}

.wx-card[data-v-6ab7b32c] {
  margin: 12px 16px 0;
  padding: 14px 16px 12px;
  border: 1px solid var(--me-border);
  border-radius: 16px;
  background: var(--me-surface);
}
.wx-head[data-v-6ab7b32c] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
@supports not (gap: 1px) {
.wx-head[data-v-6ab7b32c] > * + * {
    margin-left: 10px;
}
}
.wx-head h2[data-v-6ab7b32c] {
  margin: 0;
  font: 600 15px var(--me-font-display);
  letter-spacing: 0.08em;
}
.wx-act[data-v-6ab7b32c] {
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--me-accent);
  border-radius: 10px;
  background: transparent;
  color: var(--me-accent);
  cursor: pointer;
  font: 13px var(--me-font-body);
}
.wx-act[data-v-6ab7b32c]:disabled {
  opacity: 0.55;
}
.wx-act.danger[data-v-6ab7b32c] {
  border-color: rgba(175, 74, 48, 0.55);
  border-color: color-mix(in oklab, var(--me-cinnabar) 55%, transparent);
  color: var(--me-cinnabar);
}
.wx-act[data-v-6ab7b32c]:active {
  background: var(--me-soft-green);
}
.wx-state[data-v-6ab7b32c] {
  margin: 6px 0 0;
  color: var(--me-fg);
  font-size: 13px;
}
.wx-who[data-v-6ab7b32c] {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 9px 0 0;
}
@supports not (gap: 1px) {
.wx-who[data-v-6ab7b32c] > * + * {
    margin-left: 9px;
}
}
.wx-avatar[data-v-6ab7b32c] {
  width: 34px;
  height: 34px;
  flex: none;
  border-radius: 50%;
  object-fit: cover;
}
.wx-avatar-fb[data-v-6ab7b32c] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--me-border);
  color: var(--me-muted-2);
  font-size: 13px;
}
.wx-nick[data-v-6ab7b32c] {
  min-width: 0;
  overflow: hidden;
  color: var(--me-fg);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wx-failed[data-v-6ab7b32c] {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 6px;
  color: var(--me-cinnabar);
  font-size: 13px;
}
@supports not (gap: 1px) {
.wx-failed[data-v-6ab7b32c] > * + * {
    margin-left: 9px;
}
}
.wx-failed span[data-v-6ab7b32c] {
  flex: 1;
}
.wx-failed button[data-v-6ab7b32c],
.wx-copy[data-v-6ab7b32c] {
  min-height: 34px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--me-accent);
  cursor: pointer;
  font: 13px var(--me-font-body);
}
.wx-note[data-v-6ab7b32c] {
  margin: 6px 0 0;
  color: var(--me-muted-2);
  font-size: 11px;
  line-height: 1.7;
}
.wx-mask[data-v-6ab7b32c] {
  position: absolute;
  z-index: 20;
  inset: 0;
  background: rgba(62, 47, 36, 0.42);
  background: color-mix(in oklab, var(--me-fg) 42%, transparent);
}
@supports not (inset: 0) {
.wx-mask[data-v-6ab7b32c] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.wx-sheet[data-v-6ab7b32c] {
  position: absolute;
  top: 50%;
  right: 32px;
  left: 32px;
  transform: translateY(-50%);
  max-height: 86%;
  overflow-y: auto;
  padding: 20px 18px 16px;
  border-radius: 16px;
  background: var(--me-surface);
  text-align: center;
}
.wx-sheet h2[data-v-6ab7b32c] {
  margin: 0;
  font: 600 17px var(--me-font-display);
  letter-spacing: 0.05em;
}
.wx-qr[data-v-6ab7b32c] {
  display: flex;
  width: 188px;
  height: 188px;
  align-items: center;
  justify-content: center;
  margin: 16px auto 0;
  padding: 10px;
  border: 1px solid var(--me-border);
  border-radius: 14px;
  background: #fff;
}
.wx-qr[data-v-6ab7b32c] svg {
  width: 100%;
  height: 100%;
}
.wx-url-row[data-v-6ab7b32c] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  text-align: left;
}
@supports not (gap: 1px) {
.wx-url-row[data-v-6ab7b32c] > * + * {
    margin-left: 8px;
}
}
.wx-url[data-v-6ab7b32c] {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  color: var(--me-muted);
  font-size: 12px;
  font-family: var(--me-font-mono);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wx-copy[data-v-6ab7b32c] {
  flex: none;
}
.wx-expire[data-v-6ab7b32c] {
  margin: 10px 0 0;
  color: var(--me-fg);
  font-size: 12px;
}
.wx-tip[data-v-6ab7b32c] {
  margin: 8px 0 0;
  color: var(--me-muted);
  font-size: 12px;
  line-height: 1.7;
  text-align: left;
}
.wx-panel-error[data-v-6ab7b32c] {
  margin: 8px 0 0;
  color: var(--me-cinnabar);
  font-size: 12px;
}
.wx-sheet-btns[data-v-6ab7b32c] {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}
@supports not (gap: 1px) {
.wx-sheet-btns[data-v-6ab7b32c] > * + * {
    margin-left: 10px;
}
}
.wx-btn[data-v-6ab7b32c] {
  flex: 1;
  min-height: 46px;
  border-radius: 12px;
  cursor: pointer;
  font: 14px var(--me-font-body);
  letter-spacing: 0.05em;
}
.wx-btn.ghost[data-v-6ab7b32c] {
  border: 1px solid var(--me-border);
  background: var(--me-surface);
  color: var(--me-fg);
}
.wx-btn.ghost[data-v-6ab7b32c]:active {
  background: var(--me-soft);
}
.wx-btn.primary[data-v-6ab7b32c] {
  border: 1px solid var(--me-accent);
  background: var(--me-accent);
  color: var(--me-surface);
}
.wx-btn.primary[data-v-6ab7b32c]:active {
  opacity: 0.84;
}
.wx-btn.danger[data-v-6ab7b32c] {
  border: 1px solid var(--me-cinnabar);
  background: var(--me-cinnabar);
  color: var(--me-surface);
}
.wx-btn[data-v-6ab7b32c]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.mobile-members[data-v-0a02e16f] { position: relative; display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; overflow: hidden; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.paper-grain[data-v-0a02e16f]::before { position: absolute; z-index: 0; inset: 0; pointer-events: none; opacity: .48; background-image: var(--me-paper-grain); mix-blend-mode: multiply; content: "";
}
@supports not (inset: 0) {
.paper-grain[data-v-0a02e16f]::before { top: 0; right: 0; bottom: 0; left: 0;
}
}
.member-nav[data-v-0a02e16f], .members-scroll[data-v-0a02e16f], .bottom-action[data-v-0a02e16f] { position: relative; z-index: 1;
}
.member-nav[data-v-0a02e16f] { position: relative; overflow: hidden; display: flex; min-height: 52px; align-items: flex-end; gap: 8px; padding: 10px 12px 22px; background: transparent;
}
@supports not (gap: 1px) {
.member-nav[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}
/* 标题居左紧随返回钮成组（2026-09-28 六模块头部规范：标题居左，对齐小程序 members/list 定稿；flex:1 仅占位撑开右侧新增钮，勿改回居中） */
.member-nav p[data-v-0a02e16f] { flex: 1; margin: 0 0 12px 2px; overflow: hidden; color: var(--me-fg); font: 600 20px/1.4 var(--me-font-display); letter-spacing: .08em; text-align: left; text-overflow: ellipsis; white-space: nowrap;
}
.member-nav > span[data-v-0a02e16f], .nav-placeholder[data-v-0a02e16f] { width: 44px; flex: none;
}
/* 暖墨波纹收边（与日课/预定/器物同素材同动效）；bottom:0 贴底对齐小程序 members/list 定稿（同款 72rpx≈36px 高度，不再上浮） */
.member-sand[data-v-0a02e16f] { position: absolute; left: -4px; width: calc(100% + 108px); bottom: 0; height: 36px; pointer-events: none; animation: member-sand-flow-0a02e16f 16s ease-in-out infinite alternate;
}
@keyframes member-sand-flow-0a02e16f {
from { transform: translateX(0);
}
to { transform: translateX(-100px);
}
}
.back-btn[data-v-0a02e16f] { display: flex; width: auto; min-height: 44px; margin-bottom: 6px; align-items: center; justify-content: center; padding: 0 9px; gap: 1px; border: 0; border-radius: 10px; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}
@supports not (gap: 1px) {
.back-btn[data-v-0a02e16f] > * + * {
    margin-left: 1px;
}
}
.back-btn svg[data-v-0a02e16f] { width: 18px;
}
.back-btn[data-v-0a02e16f]:active { background: var(--me-soft);
}
/* 新增图标钮 = 四页同款卡片钮（44×56 竖排：＋ 图标 + 两字标签） */
.nav-action[data-v-0a02e16f] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 44px; height: 56px; margin-bottom: 6px; border: 1px solid var(--me-border); border-radius: 12px; background: var(--me-surface); color: var(--me-fg); cursor: pointer; box-sizing: border-box;
}
@supports not (gap: 1px) {
.nav-action[data-v-0a02e16f] > * + * {
    margin-top: 4px;
}
}
.nav-action svg[data-v-0a02e16f] { width: 17px;
}
.nav-action-label[data-v-0a02e16f] { font-size: 10px; line-height: 1; letter-spacing: .5px; color: var(--me-muted);
}
.nav-action[data-v-0a02e16f]:active { background: var(--me-soft);
}
.members-scroll[data-v-0a02e16f] { min-height: 0; flex: 1 1 auto; overflow-y: auto; scrollbar-width: none;
}.members-scroll[data-v-0a02e16f]::-webkit-scrollbar { display: none;
}
.search-zone[data-v-0a02e16f] { position: sticky; z-index: 4; top: 0; padding: 10px 16px; background: var(--me-bg);
}.searchbox[data-v-0a02e16f] { display: flex; min-height: 44px; align-items: center; gap: 8px; padding: 0 7px 0 13px; border: 1px solid var(--me-border); border-radius: 12px; background: var(--me-surface); color: var(--me-muted);
}@supports not (gap: 1px) {
.searchbox[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}.searchbox[data-v-0a02e16f]:focus-within { border-color: var(--me-accent);
}.searchbox svg[data-v-0a02e16f] { width: 18px; flex: none;
}.searchbox input[data-v-0a02e16f] { width: 0; min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--me-fg); font: 15px var(--me-font-body);
}.searchbox input[data-v-0a02e16f]::placeholder { color: var(--me-muted-2);
}.clear-search[data-v-0a02e16f] { display: flex; width: 36px; min-height: 36px; align-items: center; justify-content: center; border: 0; border-radius: 9px; background: transparent; color: var(--me-muted); cursor: pointer;
}.clear-search svg[data-v-0a02e16f] { width: 16px;
}
.list-caption[data-v-0a02e16f] { display: flex; justify-content: space-between; gap: 8px; margin: 0; padding: 1px 20px 10px; color: var(--me-muted); font-size: 12px; letter-spacing: .06em;
}
@supports not (gap: 1px) {
.list-caption[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}.list-caption span[data-v-0a02e16f]:last-child { color: var(--me-muted-2);
}
.member-list[data-v-0a02e16f] { display: flex; flex-direction: column; gap: 10px; padding: 0 16px;
}
@supports not (gap: 1px) {
.member-list[data-v-0a02e16f] > * + * {
    margin-top: 10px;
}
}.member-card[data-v-0a02e16f] { padding: 13px 14px 12px; border: 1px solid var(--me-border); border-radius: 14px; background: var(--me-surface); cursor: pointer; outline: 0;
}.member-card[data-v-0a02e16f]:active { background: var(--me-soft);
}.member-card[data-v-0a02e16f]:focus-visible, .ledger-row[data-v-0a02e16f]:focus-visible { outline: 2px solid var(--me-accent); outline-offset: 2px;
}.member-card-top[data-v-0a02e16f], .member-card-mid[data-v-0a02e16f], .member-card-bottom[data-v-0a02e16f] { display: flex;
}.member-card-top[data-v-0a02e16f] { min-width: 0; align-items: baseline; gap: 8px;
}.member-card-top strong[data-v-0a02e16f] { overflow: hidden; font: 600 16px var(--me-font-display); letter-spacing: .03em; text-overflow: ellipsis; white-space: nowrap;
}.member-no[data-v-0a02e16f] { color: var(--me-muted-2); font-size: 11px;
}.member-card-mid[data-v-0a02e16f] { flex-wrap: wrap; gap: 8px; margin-top: 3px; color: var(--me-muted); font-size: 12px;
}.discount-tag[data-v-0a02e16f] { padding: 2px 7px; border-radius: 6px; background: var(--me-soft-green); color: var(--me-accent); font: 11px var(--me-font-mono);
}.discount-tag.none[data-v-0a02e16f] { background: var(--me-soft); color: var(--me-muted);
}.member-card-bottom[data-v-0a02e16f] { align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: 9px;
}.member-card-bottom > div[data-v-0a02e16f] { display: flex; min-width: 0; flex: 1; flex-direction: column;
}.balance-label[data-v-0a02e16f] { color: var(--me-muted); font-size: 11px; letter-spacing: .1em;
}.member-balance[data-v-0a02e16f] { font-size: 20px; line-height: 1.2;
}.member-card-bottom small[data-v-0a02e16f] { overflow: hidden; color: var(--me-muted-2); font-size: 11px; text-overflow: ellipsis; white-space: nowrap;
}.quick-recharge[data-v-0a02e16f] { min-height: 40px; padding: 0 16px; border: 1px solid var(--me-accent); border-radius: 10px; background: transparent; color: var(--me-accent); cursor: pointer; font: 13px var(--me-font-body);
}.quick-recharge[data-v-0a02e16f]:active { background: var(--me-soft-green);
}
.skeleton-list[data-v-0a02e16f] { padding-top: 4px;
}.member-skeleton[data-v-0a02e16f], .ledger-skeleton[data-v-0a02e16f], .accounts-skeleton i[data-v-0a02e16f] { display: block; height: 102px; border-radius: 14px; background: linear-gradient(100deg, var(--me-soft) 40%, var(--me-surface) 50%, var(--me-soft) 60%); background-size: 200% 100%; animation: shimmer-0a02e16f 1.2s linear infinite;
}.ledger-skeleton[data-v-0a02e16f] { height: 68px;
}.accounts-skeleton[data-v-0a02e16f] { display: flex; flex-direction: column; gap: 10px; padding: 0 16px;
}@supports not (gap: 1px) {
.accounts-skeleton[data-v-0a02e16f] > * + * {
    margin-top: 10px;
}
}.accounts-skeleton i[data-v-0a02e16f] { height: 56px;
}
@keyframes shimmer-0a02e16f {
from { background-position: 120% 0;
}
to { background-position: -80% 0;
}
}
.empty-state[data-v-0a02e16f] { display: flex; min-height: 260px; flex-direction: column; align-items: center; justify-content: center; padding: 36px 28px; text-align: center;
}.empty-icon[data-v-0a02e16f] { width: 52px; margin-bottom: 8px; color: var(--me-muted-2);
}.empty-state h1[data-v-0a02e16f], .result-block h1[data-v-0a02e16f] { margin: 0; color: var(--me-fg); font: 600 18px var(--me-font-display); letter-spacing: .06em;
}.empty-state p[data-v-0a02e16f], .result-block > p[data-v-0a02e16f] { max-width: 30ch; margin: 6px 0 0; color: var(--me-muted); font-size: 13px; line-height: 1.7;
}.empty-actions[data-v-0a02e16f] { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 16px;
}@supports not (gap: 1px) {
.empty-actions[data-v-0a02e16f] > * + * {
    margin-left: 10px;
}
}.compact[data-v-0a02e16f] { width: auto !important; min-width: 140px;
}
.inline-error[data-v-0a02e16f] { display: flex; align-items: center; gap: 9px; margin: 8px 16px; padding: 12px 13px; border-radius: 12px; background: var(--me-soft-cinnabar); color: var(--me-cinnabar); font-size: 13px;
}
@supports not (gap: 1px) {
.inline-error[data-v-0a02e16f] > * + * {
    margin-left: 9px;
}
}.inline-error svg[data-v-0a02e16f] { width: 19px; flex: none;
}.inline-error span[data-v-0a02e16f] { flex: 1;
}.inline-error button[data-v-0a02e16f], .text-btn[data-v-0a02e16f] { min-height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}.more-zone[data-v-0a02e16f] { padding: 14px 16px 4px; text-align: center;
}.more-btn[data-v-0a02e16f] { min-height: 44px; padding: 0 22px; border: 1px solid var(--me-border); border-radius: 99px; background: var(--me-surface); color: var(--me-fg); cursor: pointer; font: 13px var(--me-font-body);
}.more-btn[data-v-0a02e16f]:disabled { opacity: .58;
}.list-end[data-v-0a02e16f] { margin: 0; padding: 16px; color: var(--me-muted-2); font-size: 12px; letter-spacing: .1em; text-align: center;
}
.member-form[data-v-0a02e16f] { padding: 18px 16px 24px;
}.form-field[data-v-0a02e16f] { margin-bottom: 18px;
}.form-field label[data-v-0a02e16f] { display: block; margin-bottom: 6px; color: var(--me-muted); font-size: 13px; letter-spacing: .04em;
}.form-field label > span[data-v-0a02e16f] { margin-left: 2px; color: var(--me-cinnabar);
}.form-field input[data-v-0a02e16f], .form-field textarea[data-v-0a02e16f] { width: 100%; min-height: 46px; padding: 0 14px; border: 1px solid var(--me-border); border-radius: 12px; outline: 0; background: var(--me-surface); color: var(--me-fg); font: 15px var(--me-font-body);
}.form-field textarea[data-v-0a02e16f] { min-height: 76px; padding: 10px 14px; resize: vertical;
}.form-field input[data-v-0a02e16f]:focus, .form-field textarea[data-v-0a02e16f]:focus { border-color: var(--me-accent);
}.form-field.bad input[data-v-0a02e16f] { border-color: var(--me-cinnabar);
}.form-field > p[data-v-0a02e16f] { margin: 6px 2px 0; color: var(--me-cinnabar); font-size: 13px;
}.duplicate-box[data-v-0a02e16f] { margin: 0 0 16px; padding: 13px 14px; border: 1px solid var(--me-border); border-radius: 12px; background: var(--me-soft-clay);
}.duplicate-box strong[data-v-0a02e16f] { font-size: 14px;
}.duplicate-box p[data-v-0a02e16f] { margin: 3px 0 6px; color: var(--me-muted); font-size: 12px;
}.duplicate-box button[data-v-0a02e16f] { min-height: 36px; border: 0; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}
.btn-primary[data-v-0a02e16f], .btn-secondary[data-v-0a02e16f] { width: 100%; min-height: 48px; border-radius: 12px; cursor: pointer; font: 15px var(--me-font-body); letter-spacing: .05em;
}.btn-primary[data-v-0a02e16f] { border: 1px solid var(--me-accent); background: var(--me-accent); color: var(--me-surface);
}.btn-primary[data-v-0a02e16f]:disabled { opacity: .55; cursor: not-allowed;
}.btn-secondary[data-v-0a02e16f] { border: 1px solid var(--me-border); background: var(--me-surface); color: var(--me-fg);
}.btn-primary[data-v-0a02e16f]:active { opacity: .84;
}.btn-secondary[data-v-0a02e16f]:active { background: var(--me-soft);
}
.result-page[data-v-0a02e16f] { display: flex; min-height: 0; flex: 1;
}.result-block[data-v-0a02e16f] { display: flex; width: 100%; min-height: 100%; flex-direction: column; align-items: center; padding: 58px 24px 24px; text-align: center;
}.result-icon[data-v-0a02e16f] { width: 84px; height: 84px; margin-bottom: 18px; color: var(--me-accent);
}.result-icon.muted[data-v-0a02e16f] { color: var(--me-muted-2);
}.result-no[data-v-0a02e16f] { margin-top: 10px; color: var(--me-muted); font-size: 13px;
}.result-actions[data-v-0a02e16f] { display: flex; width: 100%; max-width: 360px; flex-direction: column; gap: 10px; margin-top: auto; padding-top: 28px;
}@supports not (gap: 1px) {
.result-actions[data-v-0a02e16f] > * + * {
    margin-top: 10px;
}
}
.detail-identity[data-v-0a02e16f] { padding: 18px 16px 14px;
}.detail-identity h1[data-v-0a02e16f] { margin: 0; overflow-wrap: anywhere; color: var(--me-fg); font: 600 23px/1.35 var(--me-font-display); letter-spacing: .03em;
}.phone-line[data-v-0a02e16f] { display: flex; min-width: 0; align-items: center; gap: 5px; margin-top: 7px;
}@supports not (gap: 1px) {
.phone-line[data-v-0a02e16f] > * + * {
    margin-left: 5px;
}
}.phone-line > span[data-v-0a02e16f]:first-child { font-size: 16px;
}.copy-btn[data-v-0a02e16f] { display: flex; width: 40px; min-height: 40px; align-items: center; justify-content: center; border: 0; border-radius: 9px; background: transparent; color: var(--me-accent); cursor: pointer;
}.copy-btn svg[data-v-0a02e16f] { width: 17px;
}.pending-tag[data-v-0a02e16f] { padding: 2px 6px; border-radius: 5px; background: var(--me-soft); color: var(--me-muted); font-size: 10px; letter-spacing: .04em; white-space: nowrap;
}.detail-meta[data-v-0a02e16f] { display: flex; flex-direction: column; gap: 3px; margin-top: 9px; color: var(--me-muted); font-size: 12px;
}@supports not (gap: 1px) {
.detail-meta[data-v-0a02e16f] > * + * {
    margin-top: 3px;
}
}.member-note[data-v-0a02e16f] { margin: 10px 0 0; overflow-wrap: anywhere; padding: 10px 12px; border: 1px solid var(--me-border); border-radius: 10px; background: var(--me-surface); color: var(--me-muted); font-size: 13px;
}.member-note b[data-v-0a02e16f] { color: var(--me-fg); font-weight: 500;
}
.summary-card[data-v-0a02e16f] { margin: 4px 16px 0; padding: 16px 16px 12px; border: 1px solid var(--me-border); border-radius: 16px; background: var(--me-surface);
}.summary-numbers[data-v-0a02e16f] { display: flex; gap: 14px;
}@supports not (gap: 1px) {
.summary-numbers[data-v-0a02e16f] > * + * {
    margin-left: 14px;
}
}.summary-numbers > div[data-v-0a02e16f] { min-width: 0; flex: 1;
}.summary-numbers > div + div[data-v-0a02e16f] { border-left: 1px solid var(--me-border); padding-left: 14px;
}.summary-numbers span[data-v-0a02e16f] { color: var(--me-muted); font-size: 11px; letter-spacing: .12em;
}.summary-numbers b[data-v-0a02e16f] { display: block; margin-top: 3px;
}.balance-big[data-v-0a02e16f] { font-size: 27px; line-height: 1.2;
}.balance-mid[data-v-0a02e16f] { color: var(--me-fg); font-size: 18px; line-height: 1.5;
}.discount-summary[data-v-0a02e16f] { display: flex; flex-direction: column; gap: 5px; margin-top: 13px; padding-top: 11px; border-top: 1px dashed var(--me-border);
}@supports not (gap: 1px) {
.discount-summary[data-v-0a02e16f] > * + * {
    margin-top: 5px;
}
}.discount-summary p[data-v-0a02e16f] { display: flex; gap: 8px; margin: 0; font-size: 13px;
}@supports not (gap: 1px) {
.discount-summary p[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}.discount-summary span[data-v-0a02e16f] { width: 66px; flex: none; color: var(--me-muted);
}.discount-summary b[data-v-0a02e16f] { font-weight: 600;
}.summary-note[data-v-0a02e16f] { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--me-border); color: var(--me-muted-2); font-size: 11px; line-height: 1.7;
}
.ledger-section[data-v-0a02e16f] { padding-bottom: 16px; margin-top: 20px;
}.ledger-heading[data-v-0a02e16f] { display: flex; align-items: baseline; justify-content: space-between; padding: 0 20px 4px;
}.ledger-heading h2[data-v-0a02e16f] { margin: 0; font: 600 16px var(--me-font-display); letter-spacing: .08em;
}.ledger-heading span[data-v-0a02e16f] { color: var(--me-muted-2); font-size: 11px;
}.ledger-chips[data-v-0a02e16f] { display: flex; gap: 8px; overflow-x: auto; padding: 8px 16px 12px; scrollbar-width: none;
}@supports not (gap: 1px) {
.ledger-chips[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}.ledger-chips button[data-v-0a02e16f] { min-height: 36px; flex: none; padding: 0 15px; border: 1px solid var(--me-border); border-radius: 99px; background: var(--me-surface); color: var(--me-muted); cursor: pointer; font: 13px var(--me-font-body);
}.ledger-chips button.active[data-v-0a02e16f] { border-color: var(--me-fg); background: var(--me-fg); color: var(--me-bg); font-weight: 600;
}.ledger-list[data-v-0a02e16f] { display: flex; flex-direction: column; gap: 8px; padding: 0 16px;
}@supports not (gap: 1px) {
.ledger-list[data-v-0a02e16f] > * + * {
    margin-top: 8px;
}
}.ledger-item[data-v-0a02e16f] { overflow: hidden; border: 1px solid var(--me-border); border-radius: 13px; background: var(--me-surface);
}.ledger-row[data-v-0a02e16f] { display: flex; width: 100%; min-height: 64px; align-items: center; gap: 11px; padding: 10px 13px; border: 0; background: transparent; color: var(--me-fg); cursor: pointer; text-align: left;
}@supports not (gap: 1px) {
.ledger-row[data-v-0a02e16f] > * + * {
    margin-left: 11px;
}
}.ledger-row[data-v-0a02e16f]:active { background: var(--me-soft);
}.ledger-icon[data-v-0a02e16f] { display: flex; width: 34px; height: 34px; flex: none; align-items: center; justify-content: center; border-radius: 10px; background: var(--me-soft); color: var(--me-icon);
}.ledger-icon svg[data-v-0a02e16f] { width: 19px;
}.ledger-main[data-v-0a02e16f] { min-width: 0; flex: 1;
}.ledger-main > span[data-v-0a02e16f], .ledger-main em[data-v-0a02e16f] { display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
}@supports not (gap: 1px) {
.ledger-main > span[data-v-0a02e16f] > * + *,
.ledger-main em[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}.ledger-main strong[data-v-0a02e16f] { font-size: 15px;
}.ledger-main strong.positive[data-v-0a02e16f] { color: var(--me-accent);
}.ledger-main small[data-v-0a02e16f] { display: block; overflow: hidden; margin-top: 1px; color: var(--me-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap;
}.ledger-main em[data-v-0a02e16f] { margin-top: 2px; color: var(--me-muted-2); font-size: 11px; font-style: normal;
}.ledger-chevron[data-v-0a02e16f] { width: 17px; flex: none; color: var(--me-muted-2); transition: transform .2s ease;
}.ledger-item.open .ledger-chevron[data-v-0a02e16f] { transform: rotate(90deg);
}.ledger-detail[data-v-0a02e16f] { display: flex; flex-direction: column; gap: 6px; padding: 11px 14px 13px; border-top: 1px dashed var(--me-border);
}@supports not (gap: 1px) {
.ledger-detail[data-v-0a02e16f] > * + * {
    margin-top: 6px;
}
}.ledger-detail p[data-v-0a02e16f] { display: flex; gap: 10px; margin: 0; font-size: 13px; line-height: 1.55;
}@supports not (gap: 1px) {
.ledger-detail p[data-v-0a02e16f] > * + * {
    margin-left: 10px;
}
}.ledger-detail p > span[data-v-0a02e16f] { width: 96px; flex: none; color: var(--me-muted);
}.ledger-detail p > b[data-v-0a02e16f] { min-width: 0; flex: 1; overflow-wrap: anywhere; font-weight: 500;
}.ledger-detail .order-pending[data-v-0a02e16f] { align-items: center; margin-top: 3px;
}.order-pending button[data-v-0a02e16f] { min-height: 34px; border: 0; border-radius: 8px; background: transparent; color: var(--me-accent); cursor: pointer; font: 13px var(--me-font-body);
}.ledger-empty[data-v-0a02e16f] { min-height: 180px;
}
.recharge-page[data-v-0a02e16f] { padding-bottom: 20px;
}.recharge-member-strip[data-v-0a02e16f] { display: flex; align-items: center; gap: 10px; margin: 14px 16px 0; padding: 12px 14px; border-radius: 13px; background: var(--me-ink-card); color: var(--me-surface);
}@supports not (gap: 1px) {
.recharge-member-strip[data-v-0a02e16f] > * + * {
    margin-left: 10px;
}
}.recharge-member-strip > div[data-v-0a02e16f]:first-child { display: flex; min-width: 0; flex: 1; flex-direction: column;
}.recharge-member-strip > div:first-child b[data-v-0a02e16f] { overflow: hidden; font: 600 16px var(--me-font-display); text-overflow: ellipsis; white-space: nowrap;
}.recharge-member-strip .mono[data-v-0a02e16f], .recharge-member-strip small[data-v-0a02e16f] { color: var(--me-ink-soft); font-size: 11px;
}.recharge-member-strip > div[data-v-0a02e16f]:last-child { display: flex; flex-direction: column; align-items: flex-end;
}.recharge-member-strip > div:last-child b[data-v-0a02e16f] { font-size: 16px;
}.recharge-member-strip > div:last-child span[data-v-0a02e16f] { color: var(--me-ink-soft); font-size: 10px; letter-spacing: .1em;
}.amount-field[data-v-0a02e16f] { margin: 18px 16px 0;
}.amount-field > div[data-v-0a02e16f]:first-child { display: flex; align-items: baseline; gap: 6px; padding: 8px 16px 10px; border: 1px solid var(--me-border); border-radius: 14px; background: var(--me-surface);
}@supports not (gap: 1px) {
.amount-field > div[data-v-0a02e16f]:first-child > * + * {
    margin-left: 6px;
}
}.amount-field > div[data-v-0a02e16f]:first-child:focus-within { border-color: var(--me-accent);
}.amount-field.bad > div[data-v-0a02e16f]:first-child { border-color: var(--me-cinnabar);
}.amount-field > div:first-child span[data-v-0a02e16f] { color: var(--me-muted); font-size: 22px; font-weight: 600;
}.amount-field input[data-v-0a02e16f] { width: 0; min-width: 0; min-height: 52px; flex: 1; border: 0; outline: 0; background: transparent; color: var(--me-fg); font: 600 32px var(--me-font-mono);
}.amount-field > p[data-v-0a02e16f] { margin: 6px 4px 0; color: var(--me-cinnabar); font-size: 13px;
}.quick-amounts[data-v-0a02e16f] { display: flex; gap: 8px; margin-top: 10px;
}@supports not (gap: 1px) {
.quick-amounts[data-v-0a02e16f] > * + * {
    margin-left: 8px;
}
}.quick-amounts button[data-v-0a02e16f] { min-height: 40px; flex: 1; border: 1px solid var(--me-border); border-radius: 10px; background: var(--me-surface); color: var(--me-fg); cursor: pointer; font: 14px var(--me-font-mono);
}.quick-amounts button.active[data-v-0a02e16f] { border-color: var(--me-accent); background: var(--me-soft-green); color: var(--me-accent); font-weight: 600;
}.section-label[data-v-0a02e16f] { margin: 20px 20px 8px; color: var(--me-muted); font-size: 12px; letter-spacing: .22em;
}.account-list[data-v-0a02e16f] { overflow: hidden; margin: 0 16px; border: 1px solid var(--me-border); border-radius: 14px; background: var(--me-surface);
}.account-list button[data-v-0a02e16f] { display: flex; width: 100%; min-height: 54px; align-items: center; gap: 12px; padding: 9px 14px; border: 0; border-top: 1px solid transparent; background: transparent; color: var(--me-fg); cursor: pointer; text-align: left;
}@supports not (gap: 1px) {
.account-list button[data-v-0a02e16f] > * + * {
    margin-left: 12px;
}
}.account-list button + button[data-v-0a02e16f] { border-top-color: var(--me-border);
}.account-list button.active[data-v-0a02e16f] { background: var(--me-soft);
}.radio[data-v-0a02e16f] { width: 20px; height: 20px; flex: none; border: 1.5px solid var(--me-muted-2); border-radius: 99px;
}.account-list button.active .radio[data-v-0a02e16f] { border: 6px solid var(--me-accent);
}.account-list b[data-v-0a02e16f], .account-list small[data-v-0a02e16f] { display: block;
}.account-list b[data-v-0a02e16f] { font-size: 14px;
}.account-list small[data-v-0a02e16f] { margin-top: 1px; color: var(--me-muted); font-size: 11px;
}.account-empty[data-v-0a02e16f] { min-height: 170px;
}.recharge-note[data-v-0a02e16f] { margin: 16px 16px 0;
}.review-card[data-v-0a02e16f] { margin: 16px 16px 0; padding: 14px 16px 12px; border: 1px dashed var(--me-border); border-radius: 14px; background: var(--me-soft);
}.review-card > p[data-v-0a02e16f] { margin: 0 0 8px; color: var(--me-muted); font-size: 11px; letter-spacing: .16em;
}.review-card > div[data-v-0a02e16f] { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; line-height: 1.9;
}@supports not (gap: 1px) {
.review-card > div[data-v-0a02e16f] > * + * {
    margin-left: 10px;
}
}.review-card > div > span[data-v-0a02e16f] { color: var(--me-muted);
}.review-card .highlight b[data-v-0a02e16f] { color: var(--me-accent);
}.review-card > span[data-v-0a02e16f] { color: var(--me-muted-2); font-size: 13px;
}
.confirm-banner[data-v-0a02e16f], .confirm-list[data-v-0a02e16f], .recharge-failure[data-v-0a02e16f] { margin: 14px 16px 0;
}.confirm-banner[data-v-0a02e16f] { padding: 11px 14px; border-radius: 12px; background: var(--me-soft-clay); color: var(--me-fg); font-size: 12px; line-height: 1.65;
}.confirm-list[data-v-0a02e16f], .receipt[data-v-0a02e16f] { padding: 4px 16px; border: 1px solid var(--me-border); border-radius: 14px; background: var(--me-surface);
}.confirm-list p[data-v-0a02e16f], .receipt p[data-v-0a02e16f] { display: flex; justify-content: space-between; gap: 10px; margin: 0; font-size: 13px; line-height: 2.1;
}@supports not (gap: 1px) {
.confirm-list p[data-v-0a02e16f] > * + *,
.receipt p[data-v-0a02e16f] > * + * {
    margin-left: 10px;
}
}.confirm-list span[data-v-0a02e16f], .receipt span[data-v-0a02e16f] { color: var(--me-muted);
}.confirm-list b[data-v-0a02e16f], .receipt b[data-v-0a02e16f] { overflow-wrap: anywhere; text-align: right; font-weight: 500;
}.recharge-failure[data-v-0a02e16f] { padding: 14px; border-radius: 12px; background: var(--me-soft-cinnabar);
}.recharge-failure b[data-v-0a02e16f] { color: var(--me-cinnabar); font-size: 14px;
}.recharge-failure p[data-v-0a02e16f] { margin: 3px 0 0; color: var(--me-fg); font-size: 12px; line-height: 1.65;
}.receipt[data-v-0a02e16f] { width: 100%; max-width: 360px; margin-top: 22px;
}.bottom-action[data-v-0a02e16f] { z-index: 2; flex: none; padding: 10px 16px calc(6px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--me-border); background: var(--me-surface);
}.bottom-action small[data-v-0a02e16f] { display: block; margin-top: 5px; color: var(--me-muted-2); font-size: 11px; text-align: center;
}
.dialog-mask[data-v-0a02e16f] { position: absolute; z-index: 20; inset: 0; background: rgba(62, 47, 36, 0.42); background: color-mix(in oklab, var(--me-fg) 42%, transparent);
}
@supports not (inset: 0) {
.dialog-mask[data-v-0a02e16f] { top: 0; right: 0; bottom: 0; left: 0;
}
}.discard-dialog[data-v-0a02e16f] { position: absolute; top: 50%; right: 32px; left: 32px; transform: translateY(-50%); padding: 20px 18px 14px; border-radius: 16px; background: var(--me-surface); text-align: center;
}.discard-dialog h2[data-v-0a02e16f] { margin: 0; font: 600 17px var(--me-font-display); letter-spacing: .05em;
}.discard-dialog p[data-v-0a02e16f] { margin: 8px 0 0; color: var(--me-muted); font-size: 13px; line-height: 1.7;
}.discard-dialog > div[data-v-0a02e16f] { display: flex; gap: 10px; margin-top: 18px;
}@supports not (gap: 1px) {
.discard-dialog > div[data-v-0a02e16f] > * + * {
    margin-left: 10px;
}
}.discard-dialog .btn-primary[data-v-0a02e16f], .discard-dialog .btn-secondary[data-v-0a02e16f] { min-height: 46px; font-size: 14px;
}.toast[data-v-0a02e16f] { position: absolute; z-index: 30; bottom: 18px; left: 50%; max-width: 84%; margin: 0; transform: translateX(-50%); padding: 10px 18px; border-radius: 99px; background: var(--me-fg); color: var(--me-bg); font-size: 13px; text-align: center;
}
@media (min-width: 680px) {
.members-scroll[data-v-0a02e16f] { width: min(100%, 560px); align-self: center;
}
.bottom-action[data-v-0a02e16f] { width: min(100%, 560px); align-self: center;
}
}
@media (prefers-reduced-motion: reduce) {
.mobile-members[data-v-0a02e16f] *, .mobile-members[data-v-0a02e16f] *::before, .mobile-members[data-v-0a02e16f] *::after { animation: none !important; transition: none !important;
}
}

/* B-378：视觉值对齐 mobile-inventory/03 原型弹层体系（v3 暖色令牌）。
   B-338 三段式结构（Teleport + 限高 + 正文独立滚动 + 固定底栏）原样保留。 */
.sheet-root[data-v-901723d5] {
  position: fixed;
  inset: 0;
  z-index: 60;
  /* 原型 .mask：oklch(0.340 0.026 55 / .42) */
  background: rgba(67, 53, 43, 0.42);
  background: oklch(0.34 0.026 55 / 0.42);
  display: flex;
  align-items: flex-end;
}
@supports not (inset: 0) {
.sheet-root[data-v-901723d5] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-901723d5] {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  background: var(--surface);
  border-radius: 20px 20px 0 0;
  padding: 10px 0 0;
  box-sizing: border-box;
  box-shadow: var(--shadow-float);
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* B-338：限高兜底由模板内联 min(92%, var(--app-height, 100dvh)) 提供 */
}
@supports not (gap: 1px) {
.sheet[data-v-901723d5] > * + * {
    margin-top: 10px;
}
}
.sheet-head[data-v-901723d5] {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
}
.sheet-body[data-v-901723d5] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 20px 4px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@supports not (gap: 1px) {
.sheet-body[data-v-901723d5] > * + * {
    margin-top: 10px;
}
}
.sheet-foot[data-v-901723d5] {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 20px calc(20px + env(safe-area-inset-bottom, 0px));
}
@supports not (gap: 1px) {
.sheet-foot[data-v-901723d5] > * + * {
    margin-top: 10px;
}
}
/* 原型 .sheet h3：16px/800 宋体 */
.sheet-title[data-v-901723d5] {
  margin: 0;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  color: var(--fg);
}
.inbound-submit-row[data-v-901723d5] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.inbound-submit-row[data-v-901723d5] > * + * {
    margin-left: 10px;
}
}
.inbound-submit-row .submit-btn[data-v-901723d5] {
  flex: 1 1 auto;
  margin: 0;
}
.inbound-skip[data-v-901723d5] {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
}
.close-btn[data-v-901723d5] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--muted);
  cursor: pointer;
}
.row[data-v-901723d5] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.row[data-v-901723d5] > * + * {
    margin-left: 10px;
}
}
.row .field[data-v-901723d5] {
  flex: 1;
}
.field[data-v-901723d5] {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
@supports not (gap: 1px) {
.field[data-v-901723d5] > * + * {
    margin-top: 7px;
}
}
/* 原型 .field .lb：12.5px/600 muted */
.field > span[data-v-901723d5] {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--muted);
}
/* 原型 .inp：min-height 48、padding 10 14、圆角 12、surface 底 */
.input[data-v-901723d5] {
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  font-size: 15px;
  color: var(--fg);
  font-family: inherit;
}
.field-hint[data-v-901723d5] {
  margin: 0;
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.6;
}

/* 原型 .radio-chip：全圆角描边 chip（44px 触控） */
.radio-row[data-v-901723d5] {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.radio-row[data-v-901723d5] > * + * {
    margin-left: 8px;
}
}
.radio-item[data-v-901723d5] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-size: 12.5px;
  font-weight: 500;
  color: var(--fg);
  cursor: pointer;
}
@supports not (gap: 1px) {
.radio-item[data-v-901723d5] > * + * {
    margin-left: 5px;
}
}
.convert-hint[data-v-901723d5] {
  margin: -4px 0 0;
  padding: 11px 13px;
  border-radius: 12px;
  /* 原型 .banner：accent-soft 底 + accent-ink 字 */
  background: var(--soft-green);
  border: 1px solid #DECBAD;
  border: 1px solid var(--inv-banner-line, oklch(0.85 0.045 78));
  color: #854B29;
  color: var(--inv-accent-ink, oklch(0.475 0.092 50));
  font-size: 12.5px;
  line-height: 1.6;
}
/* 原型 .badge.danger 成对：danger-soft 底 + danger-ink 字 */
.inbound-error[data-v-901723d5] {
  margin: 0;
  padding: 11px 13px;
  border-radius: 12px;
  background: var(--soft-cinnabar);
  color: #883D25;
  color: var(--inv-danger-ink, oklch(0.455 0.11 38));
  font-size: 13px;
  line-height: 1.5;
}
/* 原型 .btn.primary：accent 实心 + paper-ink 字、圆角 12、15px/700 */
.submit-btn[data-v-901723d5] {
  min-height: 48px;
  padding: 12px;
  border: none;
  border-radius: 12px;
  background: var(--accent);
  color: var(--paper-ink);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.submit-btn[data-v-901723d5]:disabled {
  opacity: 0.55;
  cursor: default;
}

.dlg-wrap[data-v-ad9acd9c] {
  position: absolute;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 36px;
  background: rgba(67, 53, 43, 0.42);
  background: color-mix(in oklab, var(--fg) 42%, transparent);
}
@supports not (inset: 0) {
.dlg-wrap[data-v-ad9acd9c] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dlg[data-v-ad9acd9c] {
  background: var(--surface);
  border-radius: 18px;
  padding: 20px 18px 14px;
  width: 100%;
  max-width: 302px;
}
.dlg h3[data-v-ad9acd9c] {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.dlg p[data-v-ad9acd9c] {
  font-size: 13px;
  color: var(--muted);
  margin: 6px 0 0;
  line-height: 1.75;
  word-break: break-all;
}
.dlg-btns[data-v-ad9acd9c] {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.dlg-btns[data-v-ad9acd9c] > * + * {
    margin-left: 10px;
}
}
.save-btn[data-v-ad9acd9c],
.btn-line[data-v-ad9acd9c] {
  flex: 1;
  min-height: 46px;
  border-radius: 12px;
  font-size: 14px;
  cursor: pointer;
}
.save-btn[data-v-ad9acd9c] {
  border: 0;
  background: var(--accent);
  color: var(--surface);
  letter-spacing: 0.06em;
}
.save-btn.danger[data-v-ad9acd9c] {
  background: var(--cinnabar);
}
.btn-line[data-v-ad9acd9c] {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
}
.dlg-latest[data-v-ad9acd9c] {
  margin-top: 10px;
  padding: 9px 12px;
  border-radius: 10px;
  background: var(--soft);
  font-size: 12px;
  line-height: 1.7;
}

.ptag[data-v-9d7610db] {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-display);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  border-radius: 999px;
  padding: 3px 9px;
  line-height: 1.4;
  white-space: nowrap;
}@supports not (gap: 1px) {
.ptag[data-v-9d7610db] > * + * {
    margin-left: 5px;
}
}
.ptag i[data-v-9d7610db] {
  width: 6px;
  height: 6px;
  flex: none;
  display: block;
}
.pl-tobuy[data-v-9d7610db] {
  background: var(--soft-clay);
  color: var(--accent);
}
.pl-tobuy i[data-v-9d7610db] {
  border-radius: 50%;
  border: 1.5px solid currentColor;
}
.pl-ordered[data-v-9d7610db] {
  background: var(--soft);
  color: var(--fg);
}
.pl-ordered i[data-v-9d7610db] {
  border-radius: 50%;
  border: 1.5px solid currentColor;
  background: linear-gradient(to right, currentColor 50%, transparent 50%);
}
.pl-urgent[data-v-9d7610db] {
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
}
.pl-urgent i[data-v-9d7610db] {
  border-radius: 1.5px;
  background: currentColor;
  transform: rotate(45deg);
}
.pl-overdue[data-v-9d7610db] {
  background: var(--cinnabar);
  color: var(--surface);
}
.pl-overdue i[data-v-9d7610db] {
  border-radius: 1.5px;
  border: 1.5px solid currentColor;
  transform: rotate(45deg);
}
.pl-done[data-v-9d7610db] {
  background: var(--soft-green);
  color: var(--accent);
}
.pl-done i[data-v-9d7610db] {
  border-radius: 50%;
  background: currentColor;
}
.pl-cancel[data-v-9d7610db] {
  background: var(--soft);
  color: var(--muted-2);
}
.pl-cancel i[data-v-9d7610db] {
  border-radius: 50%;
  border: 1.5px solid currentColor;
}
.pl-cancel span[data-v-9d7610db] {
  text-decoration: line-through;
}
.tag-ing[data-v-9d7610db] {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  letter-spacing: 0.05em;
  border-radius: 5px;
  padding: 3px 7px;
  line-height: 1.4;
  background: var(--soft-green);
  color: var(--accent);
  white-space: nowrap;
}
@supports not (gap: 1px) {
.tag-ing[data-v-9d7610db] > * + * {
    margin-left: 4px;
}
}
.tag-ing svg[data-v-9d7610db] {
  width: 11px;
  height: 11px;
  display: block;
}
.tag-ing.plain[data-v-9d7610db] {
  background: var(--soft);
  color: var(--muted);
}
/* ============================================================
 * 门前 OA · v3 暖色令牌（全 OA 唯一色源 · PC 重构批次 0/1 落地）
 * ------------------------------------------------------------
 * 权威来源：mobile-pos/brand-spec.md v3（令牌逐字平移，不改色值）
 * PC 落位：pc-pos/brand-spec-pc.md v1.2 + menqian-pc-pos-prototype.html :root
 * 主题架构（PC 端前端重构规划 §五）：
 * - 两层令牌：通用语义层（随主题变化）+ 业务语义层（席位四态，默认全主题共用）
 * - 主题 = 令牌文件 + 作用域选择器：默认暖色挂 :root / [data-theme="warm"]；
 *   组件只引语义层令牌，禁止直引物理值（契约测试加锁）
 * - 运行时切换：根节点改 data-theme，CSS 变量级联生效，无刷新
 * 并存期规则（规划 §四）：新页/重构页禁止新增 --pos-* / --color-* 引用；
 * 本文件为 v3 唯一真源，色值勿改（席卡四态 hex 为锁定值，跟手机端定稿）。
 * ============================================================ */

:root,
[data-theme="warm"] {
  /* ---- 通用语义层 · 主令牌（brand-spec v3 逐字） ---- */
  --bg: oklch(0.945 0.018 85);          /* 米纸 · 页面主背景 */
  --surface: oklch(0.972 0.010 90);     /* 暖纸白 · 卡片/表面 */
  --fg: oklch(0.340 0.026 55);          /* 咖啡墨 · 主文字 */
  --muted: oklch(0.575 0.022 65);       /* 暖灰褐 · 辅助文字 */
  --border: oklch(0.878 0.020 82);      /* 暖细线 · 结构细线 */
  --accent: oklch(0.565 0.095 50);      /* 赭石茶褐 · 主操作/选中 */
  --cinnabar: oklch(0.535 0.130 38);    /* 赭红 · 计数徽标/警示/危险 */

  /* ---- 通用语义层 · 扩展令牌 ---- */
  --soft: oklch(0.925 0.022 85);        /* 米灰浅底 · 分段底/禁用钮底 */
  --soft-green: oklch(0.918 0.030 80);  /* 暖沙 · 选中浅底 */
  --soft-clay: oklch(0.905 0.040 60);   /* 浅赭 · 提醒浅底（制作中） */
  --soft-cinnabar: oklch(0.905 0.035 45); /* 浅赭红 · 紧急浅底（失败/警示） */
  --ink-soft: oklch(0.790 0.030 72);    /* 暖米灰 · 深底辅助字 */
  --muted-2: oklch(0.690 0.022 70);     /* 次级暖灰 · 占位/禁用字 */
  --ink-card: oklch(0.350 0.028 52);    /* 深咖啡 · 身份深卡/导航栏/Toast */
  --paper-ink: #FBF7EC;                 /* 深卡上的纸白字 */

  /* ---- 业务语义层 · 席卡四态深染（hex 锁定，跟手机端 v1.1 定稿） ----
   * 素纸空闲不染 / 柿渋进行中（点单中·制作中·出品中三态共用，状态词区分）/
   * 苔色上齐 / 藍染已结账。深卡一律 --paper-ink 压字。
   * 席位状态色以后端 derive_seat_order_states 推导为准，前端不按出品进度本地覆盖。 */
  --st-busy: #A85C33;    /* 柿渋 · 进行中 */
  --st-served: #6E7B4C;  /* 苔色 · 上齐 */
  --st-paid: #46596E;    /* 藍染 · 已结账 */
  --st-free: #F3EDE0;    /* 素纸 · 空闲不染（墨字） */

  /* ---- 字体（brand-spec v3；B-351：原型统一栈，PingFang/Songti 优先，Noto 降为回退） ---- */
  --font-display: "Songti SC", "STSong", "Noto Serif SC", serif;
  --font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* ---- PC 落位令牌（本批新定，brand-spec-pc §1.1/§2.1/§3.1） ---- */
  --fs-display: 56px;  /* 收讫大金额/仪式感 */
  --fs-title: 20px;    /* 面板标题（宋体） */
  --fs-section: 15px;  /* 分区标题 */
  --fs-body: 14px;     /* 正文基准 */
  --fs-aux: 12px;      /* 辅助/规格小字 */
  --fs-micro: 11px;    /* 状态行/签/徽标 */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; /* 4pt 间距 */
  --r-card: 10px;      /* 卡片圆角 */
  --r-ctl: 8px;        /* 按钮/输入圆角 */
  --r-pill: 999px;     /* 胶囊 */
  --r-layer: 16px;     /* 弹层圆角 */
}
@supports (not (color: oklch(0% 0 0))) {

:root,
[data-theme="warm"] {
  --bg: #F2ECE0;
  --surface: #F8F6EE;
  --fg: #43352B;
  --muted: #82766C;
  --border: #DDD6C8;
  --accent: #A26440;
  --cinnabar: #AA4D30;
  --soft: #EDE5D6;
  --soft-green: #EFE2CE;
  --soft-clay: #F4DAC6;
  --soft-cinnabar: #F5D9CD;
  --ink-soft: #C7B8A6;
  --muted-2: #A4998D;
  --ink-card: #47372D;
}
}

/* 焦点环基线（brand-spec-pc 通用基线）由各组件/页面作用域自行声明
 * （:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px }），
 * 不在令牌文件加全局选择器，避免影响未迁移页面。 */

.qs-root[data-v-969fe597] {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(67, 53, 43, 0.42);
  background: color-mix(in oklab, var(--fg, #382a1f) 42%, transparent);
  display: flex;
  align-items: flex-end;
}
@supports not (inset: 0) {
.qs-root[data-v-969fe597] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.qs-sheet[data-v-969fe597] {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  max-height: 88%;
  background: var(--bg);
  border-radius: 20px 20px 0 0;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.qs-grip[data-v-969fe597] {
  width: 36px;
  height: 4px;
  border-radius: 999px;
  background: var(--border);
  margin: 10px auto 0;
  flex: none;
}
.qs-head[data-v-969fe597] {
  flex: none;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 18px 8px;
}
@supports not (gap: 1px) {
.qs-head[data-v-969fe597] > * + * {
    margin-left: 10px;
}
}
.qs-titles[data-v-969fe597] {
  flex: 1;
  min-width: 0;
}
.qs-title[data-v-969fe597] {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.4;
  color: var(--fg);
}
.qs-sub[data-v-969fe597] {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--muted);
}
.qs-x[data-v-969fe597] {
  flex: none;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 12px;
  background: none;
  color: var(--muted);
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
}
.qs-x[data-v-969fe597]:active {
  background: var(--soft);
}
.qs-body[data-v-969fe597] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0 18px 12px;
  -webkit-overflow-scrolling: touch;
}
.qs-foot[data-v-969fe597] {
  flex: none;
  display: flex;
  gap: 10px;
  padding: 10px 18px calc(12px + env(safe-area-inset-bottom, 0px));
  background: var(--surface);
  border-top: 1px solid var(--border);
}
@supports not (gap: 1px) {
.qs-foot[data-v-969fe597] > * + * {
    margin-left: 10px;
}
}
.field[data-v-969fe597] {
  margin: 10px 0 4px;
}
.field label[data-v-969fe597] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}
.opt-tag[data-v-969fe597] {
  font-size: 11px;
  color: var(--muted-2);
}
.qs-input[data-v-969fe597] {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  font-family: var(--font-body, inherit);
  box-sizing: border-box;
}
.qs-area[data-v-969fe597] {
  min-height: 60px;
  resize: vertical;
  line-height: 1.6;
}
.qs-input[data-v-969fe597]:focus {
  outline: 2px solid rgba(162, 100, 64, 0.25);
  outline: 2px solid color-mix(in oklab, var(--accent) 25%, transparent);
  border-color: var(--accent);
}
.qs-input.bad[data-v-969fe597] {
  border-color: var(--cinnabar);
  background: var(--soft-cinnabar);
}
.f-hint[data-v-969fe597] {
  font-size: 11px;
  color: var(--muted-2);
  margin: 4px 0 0;
  line-height: 1.5;
}
.f-2col[data-v-969fe597] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.f-2col[data-v-969fe597] > * + * {
    margin-left: 10px;
}
}
.f-2col .field[data-v-969fe597] {
  flex: 1;
  min-width: 0;
}
.chip-row[data-v-969fe597] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@supports not (gap: 1px) {
.chip-row[data-v-969fe597] > * + * {
    margin-left: 8px;
}
}
.opt-chip[data-v-969fe597] {
  min-height: 44px;
  padding: 6px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--fg);
  font-size: 13px;
  cursor: pointer;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.opt-chip.on[data-v-969fe597] {
  border-color: var(--accent);
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
}
.more-fold[data-v-969fe597] {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  margin-top: 12px;
  padding: 8px 12px;
  border: 1px dashed var(--border);
  border-radius: 12px;
  background: none;
  color: var(--muted);
  font-size: 12.5px;
  cursor: pointer;
}
@supports not (gap: 1px) {
.more-fold[data-v-969fe597] > * + * {
    margin-left: 8px;
}
}
.more-fold .arr[data-v-969fe597] {
  margin-left: auto;
  color: var(--muted-2);
  font-size: 11px;
}
.switch-row[data-v-969fe597] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 48px;
  padding: 6px 0;
}
@supports not (gap: 1px) {
.switch-row[data-v-969fe597] > * + * {
    margin-left: 10px;
}
}
.sr-t[data-v-969fe597] {
  font-size: 13.5px;
  color: var(--fg);
}
.sr-t small[data-v-969fe597] {
  display: block;
  font-size: 11px;
  color: var(--muted-2);
  line-height: 1.5;
}
.g-switch[data-v-969fe597] {
  flex: none;
  width: 46px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--soft);
  position: relative;
  cursor: pointer;
}
.g-switch[data-v-969fe597]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: left 0.15s ease;
}
.g-switch[aria-pressed="true"][data-v-969fe597] {
  background: var(--accent);
  border-color: var(--accent);
}
.g-switch[aria-pressed="true"][data-v-969fe597]::after {
  left: 21px;
}
.save-err[data-v-969fe597] {
  margin: 10px 0 2px;
  padding: 10px 13px;
  border-radius: 10px;
  background: var(--soft-cinnabar);
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--fg);
}
.save-err b[data-v-969fe597] {
  color: var(--cinnabar);
}
.save-btn[data-v-969fe597],
.btn-line[data-v-969fe597] {
  flex: 1;
  min-height: 48px;
  border-radius: 12px;
  cursor: pointer;
}
.save-btn[data-v-969fe597] {
  border: 0;
  background: var(--accent);
  color: var(--surface);
  font-size: 15px;
  letter-spacing: 0.06em;
}
.save-btn[data-v-969fe597]:disabled {
  background: var(--soft);
  color: var(--muted-2);
  cursor: default;
}
.btn-line[data-v-969fe597] {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 14.5px;
}
@media (prefers-reduced-motion: reduce) {
.g-switch[data-v-969fe597]::after {
    transition: none;
}
}
/* ============================================================
 * 门前 OA · v3 暖色令牌（全 OA 唯一色源 · PC 重构批次 0/1 落地）
 * ------------------------------------------------------------
 * 权威来源：mobile-pos/brand-spec.md v3（令牌逐字平移，不改色值）
 * PC 落位：pc-pos/brand-spec-pc.md v1.2 + menqian-pc-pos-prototype.html :root
 * 主题架构（PC 端前端重构规划 §五）：
 * - 两层令牌：通用语义层（随主题变化）+ 业务语义层（席位四态，默认全主题共用）
 * - 主题 = 令牌文件 + 作用域选择器：默认暖色挂 :root / [data-theme="warm"]；
 *   组件只引语义层令牌，禁止直引物理值（契约测试加锁）
 * - 运行时切换：根节点改 data-theme，CSS 变量级联生效，无刷新
 * 并存期规则（规划 §四）：新页/重构页禁止新增 --pos-* / --color-* 引用；
 * 本文件为 v3 唯一真源，色值勿改（席卡四态 hex 为锁定值，跟手机端定稿）。
 * ============================================================ */

:root,
[data-theme="warm"] {
  /* ---- 通用语义层 · 主令牌（brand-spec v3 逐字） ---- */
  --bg: oklch(0.945 0.018 85);          /* 米纸 · 页面主背景 */
  --surface: oklch(0.972 0.010 90);     /* 暖纸白 · 卡片/表面 */
  --fg: oklch(0.340 0.026 55);          /* 咖啡墨 · 主文字 */
  --muted: oklch(0.575 0.022 65);       /* 暖灰褐 · 辅助文字 */
  --border: oklch(0.878 0.020 82);      /* 暖细线 · 结构细线 */
  --accent: oklch(0.565 0.095 50);      /* 赭石茶褐 · 主操作/选中 */
  --cinnabar: oklch(0.535 0.130 38);    /* 赭红 · 计数徽标/警示/危险 */

  /* ---- 通用语义层 · 扩展令牌 ---- */
  --soft: oklch(0.925 0.022 85);        /* 米灰浅底 · 分段底/禁用钮底 */
  --soft-green: oklch(0.918 0.030 80);  /* 暖沙 · 选中浅底 */
  --soft-clay: oklch(0.905 0.040 60);   /* 浅赭 · 提醒浅底（制作中） */
  --soft-cinnabar: oklch(0.905 0.035 45); /* 浅赭红 · 紧急浅底（失败/警示） */
  --ink-soft: oklch(0.790 0.030 72);    /* 暖米灰 · 深底辅助字 */
  --muted-2: oklch(0.690 0.022 70);     /* 次级暖灰 · 占位/禁用字 */
  --ink-card: oklch(0.350 0.028 52);    /* 深咖啡 · 身份深卡/导航栏/Toast */
  --paper-ink: #FBF7EC;                 /* 深卡上的纸白字 */

  /* ---- 业务语义层 · 席卡四态深染（hex 锁定，跟手机端 v1.1 定稿） ----
   * 素纸空闲不染 / 柿渋进行中（点单中·制作中·出品中三态共用，状态词区分）/
   * 苔色上齐 / 藍染已结账。深卡一律 --paper-ink 压字。
   * 席位状态色以后端 derive_seat_order_states 推导为准，前端不按出品进度本地覆盖。 */
  --st-busy: #A85C33;    /* 柿渋 · 进行中 */
  --st-served: #6E7B4C;  /* 苔色 · 上齐 */
  --st-paid: #46596E;    /* 藍染 · 已结账 */
  --st-free: #F3EDE0;    /* 素纸 · 空闲不染（墨字） */

  /* ---- 字体（brand-spec v3；B-351：原型统一栈，PingFang/Songti 优先，Noto 降为回退） ---- */
  --font-display: "Songti SC", "STSong", "Noto Serif SC", serif;
  --font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* ---- PC 落位令牌（本批新定，brand-spec-pc §1.1/§2.1/§3.1） ---- */
  --fs-display: 56px;  /* 收讫大金额/仪式感 */
  --fs-title: 20px;    /* 面板标题（宋体） */
  --fs-section: 15px;  /* 分区标题 */
  --fs-body: 14px;     /* 正文基准 */
  --fs-aux: 12px;      /* 辅助/规格小字 */
  --fs-micro: 11px;    /* 状态行/签/徽标 */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; /* 4pt 间距 */
  --r-card: 10px;      /* 卡片圆角 */
  --r-ctl: 8px;        /* 按钮/输入圆角 */
  --r-pill: 999px;     /* 胶囊 */
  --r-layer: 16px;     /* 弹层圆角 */
}
@supports (not (color: oklch(0% 0 0))) {

:root,
[data-theme="warm"] {
  --bg: #F2ECE0;
  --surface: #F8F6EE;
  --fg: #43352B;
  --muted: #82766C;
  --border: #DDD6C8;
  --accent: #A26440;
  --cinnabar: #AA4D30;
  --soft: #EDE5D6;
  --soft-green: #EFE2CE;
  --soft-clay: #F4DAC6;
  --soft-cinnabar: #F5D9CD;
  --ink-soft: #C7B8A6;
  --muted-2: #A4998D;
  --ink-card: #47372D;
}
}

/* 焦点环基线（brand-spec-pc 通用基线）由各组件/页面作用域自行声明
 * （:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px }），
 * 不在令牌文件加全局选择器，避免影响未迁移页面。 */

.procurement-workspace {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.75;
  position: relative;
  overflow: hidden;
}
.procurement-workspace button {
  font-family: var(--font-body);
}
.procurement-workspace :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 8px;
}

.procurement-workspace.paper-grain {
  position: relative;
}
.procurement-workspace.paper-grain::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.55;
  mix-blend-mode: multiply;
  z-index: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0.045 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.procurement-workspace.paper-grain::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

.procurement-workspace .ws-bar {
  flex: none;
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 48px;
  padding: 2px 8px 0;
  position: relative;
  z-index: 5;
}

@supports not (gap: 1px) {
  .procurement-workspace .ws-bar > * + * {
    margin-left: 4px;
  }
}
.procurement-workspace .bk-link {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 44px;
  padding: 0 12px 0 6px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--accent);
  font-size: 14px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
  .procurement-workspace .bk-link > * + * {
    margin-left: 2px;
  }
}
.procurement-workspace .bk-link:active {
  background: var(--soft);
}
.procurement-workspace .bk-link svg {
  width: 16px;
  height: 16px;
  display: block;
}
.procurement-workspace .wsb-t {
  flex: 1;
  min-width: 0;
  text-align: center;
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.procurement-workspace .wsb-r {
  min-width: 56px;
  text-align: right;
  font-size: 11px;
  color: var(--muted-2);
  padding-right: 10px;
  font-variant-numeric: tabular-nums;
}

.procurement-workspace .ph-head {
  flex: none;
  padding: 8px 18px 2px;
}
.procurement-workspace .ph-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
@supports not (gap: 1px) {
  .procurement-workspace .ph-row > * + * {
    margin-left: 10px;
  }
}
.procurement-workspace .ph-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.procurement-workspace .ph-count {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.procurement-workspace .ph-sub {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}

.procurement-workspace .seg {
  flex: none;
  display: flex;
  margin: 10px 16px 2px;
  padding: 3px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.procurement-workspace .seg-b {
  flex: 1;
  min-width: 0;
  min-height: 40px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  font-size: 13.5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.15s ease, color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
  .procurement-workspace .seg-b > * + * {
    margin-left: 6px;
  }
}
.procurement-workspace .seg-b.on {
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
}
.procurement-workspace .seg-b .cnt {
  font-family: var(--font-mono);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.procurement-workspace .sec-label {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0;
  padding: 12px 20px 4px;
}

@supports not (gap: 1px) {
  .procurement-workspace .sec-label > * + * {
    margin-left: 8px;
  }
}
.procurement-workspace .sec-label .sl-t {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--muted);
}
.procurement-workspace .sec-label .sl-sub {
  font-size: 10.5px;
  color: var(--muted-2);
}

.procurement-workspace .view-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: none;
  padding-bottom: 14px;
  position: relative;
  z-index: 1;
}
.procurement-workspace .view-scroll::-webkit-scrollbar {
  display: none;
}

.procurement-workspace .pcard {
  width: calc(100% - 32px);
  margin: 6px 16px 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  color: var(--fg);
  transition: border-color 0.15s ease;
}
.procurement-workspace .pcard:hover {
  border-color: #C7A891;
  border-color: color-mix(in oklab, var(--accent) 40%, var(--border));
}
.procurement-workspace .pc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 12px 0;
}
@supports not (gap: 1px) {
  .procurement-workspace .pc-tags > * + * {
    margin-left: 6px;
  }
}
.procurement-workspace .pc-name {
  padding: 7px 12px 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  word-break: break-all;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.procurement-workspace .pc-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 3px 10px;
  padding: 4px 12px 0;
  font-size: 12px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
@supports not (gap: 1px) {
  .procurement-workspace .pc-meta > * + * {
    margin-left: 3px 10px;
  }
}
.procurement-workspace .pc-meta .qty {
  color: var(--fg);
  font-weight: 600;
  font-family: var(--font-mono);
}
.procurement-workspace .pc-meta .who {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.procurement-workspace .pc-meta .neg {
  color: var(--cinnabar);
  font-weight: 600;
}
.procurement-workspace .pc-cancel {
  margin-left: auto;
  flex: none;
  min-height: 32px;
  padding: 0 8px;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--muted-2);
  font-size: 12px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.procurement-workspace .pc-cancel:active {
  color: var(--cinnabar);
  background: var(--soft-cinnabar);
}
.procurement-workspace .pc-note {
  margin: 7px 12px 0;
  padding: 7px 10px;
  border-radius: 9px;
  background: var(--soft);
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
  word-break: break-all;
}
.procurement-workspace .pc-note.clamp {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.procurement-workspace .pc-note .nt-more {
  border: 0;
  background: none;
  color: var(--accent);
  font-size: 12px;
  cursor: pointer;
  padding: 2px 4px;
}
.procurement-workspace .pc-acts {
  display: flex;
  gap: 8px;
  padding: 10px 12px 12px;
}
@supports not (gap: 1px) {
  .procurement-workspace .pc-acts > * + * {
    margin-left: 8px;
  }
}
/* B-335 固定双槽：槽容器等宽 flex:1，不可用槽的空占位（visibility:hidden）保持 50/50 分栏不漂移 */
.procurement-workspace .pc-act-slot { flex: 1; display: flex; }
.procurement-workspace .pc-btn.slot-hide { visibility: hidden; pointer-events: none; }
.procurement-workspace .pc-btn {
  flex: 1;
  min-height: 48px;
  border-radius: 12px;
  cursor: pointer;
  font-size: 14px;
  letter-spacing: 0.04em;
  border: 1px solid #C4A28A;
  border: 1px solid color-mix(in oklab, var(--accent) 45%, var(--border));
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
  -webkit-tap-highlight-color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
@supports not (gap: 1px) {
  .procurement-workspace .pc-btn > * + * {
    margin-left: 6px;
  }
}
.procurement-workspace .pc-btn svg {
  width: 16px;
  height: 16px;
  display: block;
}
.procurement-workspace .pc-btn:active {
  background: #EBDED1;
  background: color-mix(in oklab, var(--accent) 16%, var(--surface));
}
.procurement-workspace .pc-btn[disabled] {
  border-color: var(--border);
  background: var(--soft);
  color: var(--muted-2);
  font-weight: 400;
  cursor: default;
}
.procurement-workspace .pc-btn.line {
  flex: none;
  min-width: 96px;
  background: var(--surface);
  color: var(--fg);
  border-color: var(--border);
  font-weight: 400;
}

.procurement-workspace .day-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 10px 16px 2px;
  padding: 5px 6px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  flex: none;
}

@supports not (gap: 1px) {
  .procurement-workspace .day-bar > * + * {
    margin-left: 6px;
  }
}
.procurement-workspace .day-b {
  flex: none;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--fg);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-tap-highlight-color: transparent;
}
.procurement-workspace .day-b svg {
  width: 17px;
  height: 17px;
  display: block;
}
.procurement-workspace .day-b:active {
  background: var(--soft);
}
.procurement-workspace .day-b[disabled] {
  color: var(--muted-2);
  cursor: default;
  background: none;
}
.procurement-workspace .day-t {
  flex: 1;
  min-width: 0;
  text-align: center;
  font-size: 13.5px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.procurement-workspace .day-t small {
  display: block;
  font-size: 11px;
  color: var(--muted);
  font-weight: 400;
  margin-top: 1px;
}
.procurement-workspace .hcard {
  width: calc(100% - 32px);
  margin: 6px 16px 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  color: var(--fg);
}
.procurement-workspace .hc-top {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px 0;
}
@supports not (gap: 1px) {
  .procurement-workspace .hc-top > * + * {
    margin-left: 8px;
  }
}
.procurement-workspace .hc-name {
  flex: 1;
  min-width: 0;
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.procurement-workspace .hc-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 3px 10px;
  padding: 4px 12px 0;
  font-size: 12px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
@supports not (gap: 1px) {
  .procurement-workspace .hc-meta > * + * {
    margin-left: 3px 10px;
  }
}
.procurement-workspace .hc-acts {
  display: flex;
  justify-content: flex-end;
  gap: 2px;
  padding: 6px 8px 8px;
}
@supports not (gap: 1px) {
  .procurement-workspace .hc-acts > * + * {
    margin-left: 2px;
  }
}
.procurement-workspace .hc-btn {
  min-height: 44px;
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--accent);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.procurement-workspace .hc-btn:active {
  background: var(--soft);
}
.procurement-workspace .hc-btn.danger {
  color: var(--cinnabar);
  font-weight: 400;
}
.procurement-workspace .hc-btn.danger:active {
  background: var(--soft-cinnabar);
}

.procurement-workspace .empty {
  padding: 44px 28px;
  text-align: center;
}
.procurement-workspace .empty svg {
  width: 84px;
  height: 84px;
  color: var(--fg);
  opacity: 0.13;
  display: block;
  margin: 0 auto 12px;
  pointer-events: none;
}
.procurement-workspace .empty p {
  font-family: var(--font-display);
  font-size: 15px;
  color: var(--muted);
  letter-spacing: 0.06em;
  line-height: 1.8;
}
.procurement-workspace .empty small {
  display: block;
  font-size: 12px;
  color: var(--muted-2);
  margin-top: 4px;
  line-height: 1.7;
}
.procurement-workspace .empty .mini-btn {
  margin-top: 14px;
}
.procurement-workspace .err-card {
  margin: 14px 16px 0;
  padding: 16px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid #CFA692;
  border: 1px solid color-mix(in oklab, var(--cinnabar) 35%, var(--border));
  text-align: center;
}
.procurement-workspace .err-card p {
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 0.05em;
}
.procurement-workspace .err-card small {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
  line-height: 1.7;
}
.procurement-workspace .err-card .mini-btn {
  margin-top: 12px;
}
.procurement-workspace .mini-btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 10px;
  border: 1px solid var(--accent);
  background: var(--surface);
  color: var(--accent);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.procurement-workspace .mini-btn:active {
  background: var(--soft-green);
}
.procurement-workspace .sk {
  border-radius: 10px;
  background: var(--soft);
  position: relative;
  overflow: hidden;
}
.procurement-workspace .sk::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    transparent 30%,
    rgba(248, 246, 238, 0.75) 50%,
    transparent 70%
  );
  background: linear-gradient(
    100deg,
    transparent 30%,
    color-mix(in oklab, var(--surface) 75%, transparent) 50%,
    transparent 70%
  );
  animation: pw-skmove 1.1s linear infinite;
}
@supports not (inset: 0) {
.procurement-workspace .sk::after {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
@keyframes pw-skmove {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(100%);
  }
}
.procurement-workspace .sk-card {
  height: 96px;
  margin: 6px 16px 0;
  border-radius: 14px;
}

.procurement-workspace .add-bar {
  flex: none;
  padding: 10px 16px 8px;
  background: var(--surface);
  border-top: 1px solid var(--border);
  z-index: 6;
  position: relative;
}
.procurement-workspace .add-entry {
  width: 100%;
  min-height: 48px;
  border: 1px dashed #C19C83;
  border: 1px dashed color-mix(in oklab, var(--accent) 50%, var(--border));
  border-radius: 12px;
  background: var(--surface);
  color: var(--accent);
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
  .procurement-workspace .add-entry > * + * {
    margin-left: 8px;
  }
}
.procurement-workspace .add-entry svg {
  width: 16px;
  height: 16px;
  display: block;
}
.procurement-workspace .add-entry:active {
  background: var(--soft-green);
}

.procurement-workspace .toast {
  position: absolute;
  left: 50%;
  bottom: 110px;
  transform: translateX(-50%) translateY(8px);
  z-index: 95;
  max-width: 86%;
  padding: 10px 18px;
  border-radius: 999px;
  background: var(--fg);
  color: var(--bg);
  font-size: 13.5px;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.procurement-workspace .toast.show {
  opacity: 1;
  transform: translateX(-50%);
}

@media (prefers-reduced-motion: reduce) {
  .procurement-workspace *,
  .procurement-workspace *::before,
  .procurement-workspace *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
/* OpenDesign 每日对账原型样式。令牌映射到「我的」页 Brand Spec v3。 */
.mr-root {
  --bg: var(--me-bg);
  --surface: var(--me-surface);
  --fg: var(--me-fg);
  --muted: var(--me-muted);
  --border: var(--me-border);
  --accent: var(--me-accent);
  --cinnabar: var(--me-cinnabar);
  --soft: var(--me-soft);
  --soft-green: var(--me-soft-green);
  --soft-clay: var(--me-soft-clay);
  --soft-cinnabar: var(--me-soft-cinnabar);
  --ink-soft: var(--me-ink-soft);
  --muted-2: var(--me-muted-2);
  --ink-card: var(--me-ink-card);
  --font-display: var(--me-font-display);
  --font-body: var(--me-font-body);
  --font-mono: var(--me-font-mono);
  position: relative;
  display: flex;
  flex: 1;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.75;
}
.mr-root.paper-grain::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .55;
  mix-blend-mode: multiply;
  background-image: var(--me-paper-grain);
}
@supports not (inset: 0) {
.mr-root.paper-grain::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mr-root > * { position: relative; z-index: 1; }
.mr-root button { font-family: var(--font-body); }
.mr-root :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 8px; }
.mr-root .money { font-family: var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mr-root .neg { color: var(--cinnabar); }

.mr-root .maincard {
  display: block;
  width: calc(100% - 32px);
  margin: 16px 16px 0;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .15s ease, background .15s ease;
}
.mr-root .maincard:hover { border-color: #C39773; border-color: color-mix(in oklab, var(--accent) 55%, var(--border)); }
.mr-root .maincard:active { background: #FAF6EC; background: color-mix(in oklab, var(--surface) 88%, var(--bg)); }
.mr-root .mc-top { display: flex; align-items: center; gap: 12px; }
@supports not (gap: 1px) {
  .mr-root .mc-top > * + * {
    margin-left: 12px;
  }
}
.mr-root .mc-name { font-size: 16px; font-weight: 600; letter-spacing: .02em; }
.mr-root .mc-sub { display: block; margin-top: 1px; color: var(--muted); font-size: 12px; }
.mr-root .mc-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid var(--border);
}
@supports not (gap: 1px) {
  .mr-root .mc-status > * + * {
    margin-left: 10px;
  }
}
.mr-root .mc-status .s { font-size: 14px; }
.mr-root .mc-status .s em { color: var(--accent); font-style: normal; font-weight: 600; }
.mr-root .chev { flex: none; color: var(--muted); font-size: 15px; line-height: 1; }

.mr-root .chip {
  flex: none;
  padding: 3px 8px;
  border-radius: 6px;
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: .08em;
  white-space: nowrap;
}
.mr-root .chip-pend { background: var(--soft); color: var(--muted); }
.mr-root .chip-ok { background: var(--soft-green); color: var(--accent); }
.mr-root .chip-diff { background: var(--soft-cinnabar); color: var(--cinnabar); }
.mr-root .chip-review { background: var(--soft-clay); color: var(--accent); }
.mr-root .kind-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--muted);
  font-family: var(--font-display);
  font-size: 10px;
  letter-spacing: .08em;
  vertical-align: middle;
}

.mr-root .recon-page { display: flex; flex: 1; min-height: 0; flex-direction: column; }
.mr-root .recon-head {
  flex: none;
  padding: 10px 20px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.mr-root .rh-kicker { color: var(--muted); font-family: var(--font-display); font-size: 12px; letter-spacing: .18em; }
.mr-root .rh-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 4px; }
@supports not (gap: 1px) {
  .mr-root .rh-row > * + * {
    margin-left: 12px;
  }
}
.mr-root .rh-date { font-family: var(--font-display); font-size: 22px; font-weight: 600; letter-spacing: .04em; line-height: 1.3; }
.mr-root .rh-store { margin-top: 2px; color: var(--muted); font-size: 12px; }
.mr-root .rh-nav { display: flex; align-items: center; gap: 4px; margin-top: 6px; }
@supports not (gap: 1px) {
  .mr-root .rh-nav > * + * {
    margin-left: 4px;
  }
}
.mr-root .rh-link {
  position: relative;
  min-height: 44px;
  padding: 0 10px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--accent);
  font-size: 13px;
  cursor: pointer;
}
.mr-root .rh-link:hover { background: var(--soft); }
.mr-root .rh-link .dot {
  position: absolute;
  top: 10px;
  right: 4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--cinnabar);
}
.mr-root .recon-scroll { flex: 1; overflow-y: auto; padding-bottom: 8px; scrollbar-width: none; }
.mr-root .recon-scroll::-webkit-scrollbar { display: none; }

.mr-root .metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  margin: 12px 16px 0;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
}
.mr-root .metric { min-width: 0; padding: 10px 14px 9px; }
.mr-root .metric:nth-child(odd) { border-right: 1px solid var(--border); }
.mr-root .metric:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
/* B-369 后续 J：顶部三层指标纵向单列（历史详情页仍用两格并排）。 */
.mr-root .metrics.stack { grid-template-columns: 1fr; }
.mr-root .metrics.stack .metric { border-right: 0; }
.mr-root .metric .lab { color: var(--muted); font-size: 11px; letter-spacing: .14em; }
.mr-root .metric .val { margin-top: 2px; font-family: var(--font-mono); font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.02em; line-height: 1.2; }
.mr-root .metric .hint { margin-top: 2px; color: var(--muted-2); font-size: 11px; line-height: 1.4; }
.mr-root .metric.warn .val { color: var(--cinnabar); }
.mr-root .cap-line { margin: 6px 20px 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
/* B-369 后续 I：补收旧欠明细展开入口（同拆分行小字口径）。 */
.mr-root .split-toggle { margin-left: 4px; padding: 0; border: 0; background: none; color: var(--accent); font-family: inherit; font-size: 12px; cursor: pointer; }
.mr-root .split-toggle:hover { text-decoration: underline; }

.mr-root .hint-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 20px 0;
  padding: 6px 12px;
  border-radius: 10px;
  background: var(--soft);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

@supports not (gap: 1px) {
  .mr-root .hint-bar > * + * {
    margin-left: 10px;
  }
}
.mr-root .hint-bar .hb-t { flex: 1; min-width: 0; }
.mr-root .hint-bar .hb-x {
  flex: none;
  min-height: 32px;
  padding: 0 2px;
  border: 0;
  background: none;
  color: var(--accent);
  font-size: 12px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.mr-root .banner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 12px 16px 0;
  padding: 11px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
}

@supports not (gap: 1px) {
  .mr-root .banner > * + * {
    margin-left: 10px;
  }
}
.mr-root .banner .b-t { font-size: 14.5px; font-weight: 600; letter-spacing: .02em; }
.mr-root .banner .b-s { display: block; margin-top: 2px; color: var(--muted); font-size: 12.5px; line-height: 1.6; }
.mr-root .banner.b-review { border-color: #D5BBA0; border-color: color-mix(in oklab, var(--accent) 24%, var(--border)); background: var(--soft-clay); }
.mr-root .banner.b-done { border-color: #D9C3A9; border-color: color-mix(in oklab, var(--accent) 18%, var(--border)); background: var(--soft-green); }
.mr-root .banner.b-return { border-color: #D9B6A0; border-color: color-mix(in oklab, var(--cinnabar) 24%, var(--border)); background: var(--soft-cinnabar); }

.mr-root .group-label {
  display: flex;
  align-items: baseline;
  gap: 9px;
  margin: 12px 20px 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .22em;
}

@supports not (gap: 1px) {
  .mr-root .group-label > * + * {
    margin-left: 9px;
  }
}
.mr-root .group-label .gnum { color: var(--muted-2); font-family: var(--font-display); font-size: 15px; font-weight: 600; letter-spacing: 0; }
.mr-root .group { margin: 20px 16px 0; }
.mr-root .card { overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.mr-root .row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 10px 16px;
  border: 0;
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background .15s ease;
}
@supports not (gap: 1px) {
  .mr-root .row > * + * {
    margin-left: 12px;
  }
}
.mr-root .row + .row { border-top: 1px solid var(--border); }
.mr-root .row:hover { background: #FAF6EC; background: color-mix(in oklab, var(--surface) 88%, var(--bg)); }
.mr-root .row:active { background: var(--soft); }
.mr-root .row .t { flex: 1; min-width: 0; }
.mr-root .row .t .sub { display: block; margin-top: 1px; color: var(--muted); font-size: 12px; white-space: normal; }

.mr-root .kv { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 9px 16px; font-size: 14px; }

@supports not (gap: 1px) {
  .mr-root .kv > * + * {
    margin-left: 14px;
  }
}
.mr-root .kv + .kv { border-top: 1px solid var(--border); }
.mr-root .kv .k { flex: none; color: var(--muted); }
.mr-root .kv .v { min-width: 0; text-align: right; }
.mr-root .pad { padding: 12px 14px; }
.mr-root .note { color: var(--muted); font-size: 12px; line-height: 1.65; }

.mr-root .chan-card { overflow: hidden; margin: 8px 16px 0; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.mr-root .chan-hd { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px 9px; }
@supports not (gap: 1px) {
  .mr-root .chan-hd > * + * {
    margin-left: 10px;
  }
}
.mr-root .chan-hd .who { flex: 1; min-width: 0; }
.mr-root .chan-hd .nm { font-size: 15px; font-weight: 600; letter-spacing: .02em; }
.mr-root .chan-hd .ac { margin-top: 1px; color: var(--muted); font-size: 12px; }
.mr-root .act-col { display: flex; flex: none; flex-direction: column; gap: 5px; width: 96px; }
@supports not (gap: 1px) {
  .mr-root .act-col > * + * {
    margin-top: 5px;
  }
}
.mr-root .act-col .btn-line, .mr-root .act-col .text-btn { width: 100%; min-height: 44px; padding: 0 8px; font-size: 13px; }
.mr-root .cmp { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--border); }
.mr-root .cmp .side { min-width: 0; padding: 9px 14px; }
.mr-root .cmp .side + .side { border-left: 1px solid var(--border); }
.mr-root .cmp .side .lab { color: var(--muted); font-size: 11px; letter-spacing: .08em; }
.mr-root .cmp .side .val { margin-top: 2px; font-family: var(--font-mono); font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.3; }
.mr-root .cmp .side .subv { margin-top: 1px; color: var(--muted); font-size: 12px; }

.mr-root .box-block { padding: 10px 14px 12px; border-top: 1px solid var(--border); }
.mr-root .box-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; font-size: 13px; font-weight: 600; }
@supports not (gap: 1px) {
  .mr-root .box-h > * + * {
    margin-left: 8px;
  }
}
.mr-root .formula { padding: 8px 10px; border-radius: 10px; background: var(--soft); color: var(--muted); font-size: 12px; line-height: 1.7; }
.mr-root .formula b { color: var(--fg); font-weight: 600; }
.mr-root .box-actions { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
@supports not (gap: 1px) {
  .mr-root .box-actions > * + * {
    margin-top: 6px;
  }
}
.mr-root .ev-list { margin-top: 8px; }
.mr-root .ev-item { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; }
@supports not (gap: 1px) {
  .mr-root .ev-item > * + * {
    margin-left: 8px;
  }
}
.mr-root .ev-item + .ev-item { border-top: 1px dashed var(--border); }
.mr-root .ev-tag { flex: none; padding: 3px 8px; border-radius: 6px; font-family: var(--font-display); font-size: 11px; letter-spacing: .08em; }
.mr-root .ev-draw { background: var(--soft); color: var(--muted); }
.mr-root .ev-transfer { background: var(--soft-clay); color: var(--fg); }
/* B-369 后续 I：转出记录的目标账户 / 状态 / 时间副行。 */
.mr-root .ev-sub { display: block; color: var(--muted); font-size: 12px; line-height: 1.6; }
.mr-root .ev-body { flex: 1; min-width: 0; line-height: 1.55; }
.mr-root .ev-amt { flex: none; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

.mr-root .chan-form { padding: 4px 16px 16px; border-top: 1px solid var(--border); }
.mr-root .chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
@supports not (gap: 1px) {
  .mr-root .chip-row > * + * {
    margin-left: 8px;
  }
}
.mr-root .rchip {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--fg);
  font-size: 13px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.mr-root .rchip.on { border-color: var(--accent); background: var(--soft-green); color: var(--accent); font-weight: 600; }

.mr-root .cta-bar {
  z-index: 6;
  display: flex;
  flex: none;
  flex-direction: column;
  gap: 8px;
  padding: 10px 16px 12px;
  border-top: 1px solid var(--border);
  background: var(--surface);
}

@supports not (gap: 1px) {
  .mr-root .cta-bar > * + * {
    margin-top: 8px;
  }
}
.mr-root .cta-meta { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; text-align: center; }
.mr-root .cta-meta .warn { color: var(--cinnabar); }
.mr-root .verify-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 4px 0; cursor: pointer; }
@supports not (gap: 1px) {
  .mr-root .verify-row > * + * {
    margin-left: 12px;
  }
}
.mr-root .verify-row.busy { opacity: .6; cursor: default; }
.mr-root .verify-row .verify-text { display: flex; flex-direction: column; gap: 2px; color: var(--fg); font-size: 13px; }
@supports not (gap: 1px) {
  .mr-root .verify-row .verify-text > * + * {
    margin-top: 2px;
  }
}
.mr-root .verify-row .verify-text small { color: var(--muted); font-size: 11px; }
.mr-root .verify-row input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.mr-root .verify-row .verify-switch { position: relative; flex: none; width: 40px; height: 22px; border-radius: 999px; background: var(--soft); border: 1px solid var(--border); transition: background 160ms ease, border-color 160ms ease; }
.mr-root .verify-row .verify-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--surface); box-shadow: 0 1px 2px rgba(0, 0, 0, .18); transition: transform 160ms ease; }
.mr-root .verify-row input:checked + .verify-switch { background: var(--accent); border-color: var(--accent); }
.mr-root .verify-row input:checked + .verify-switch::after { transform: translateX(18px); }
.mr-root .verify-row input:focus-visible + .verify-switch { outline: 2px solid var(--accent); outline-offset: 2px; }
.mr-root .cta-actions { display: flex; gap: 10px; }
@supports not (gap: 1px) {
  .mr-root .cta-actions > * + * {
    margin-left: 10px;
  }
}
.mr-root .save-btn {
  flex: 1;
  min-height: 48px;
  border: 0;
  border-radius: 12px;
  background: var(--accent);
  color: var(--surface);
  font-size: 15px;
  letter-spacing: .06em;
  cursor: pointer;
}
.mr-root .save-btn:hover { background: #995D2E; background: color-mix(in oklab, var(--accent) 88%, var(--fg)); color: var(--surface); }
.mr-root .save-btn:active { opacity: .85; }
.mr-root .save-btn[disabled] { background: var(--soft); color: var(--muted-2); cursor: default; }
.mr-root .btn-line {
  flex: 1;
  min-height: 48px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  cursor: pointer;
}
.mr-root .btn-line:hover { border-color: var(--fg); }
.mr-root .btn-line:active { background: var(--soft); }
.mr-root .btn-line.danger { color: var(--cinnabar); }
.mr-root .text-btn {
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--accent);
  font-size: 14px;
  cursor: pointer;
}
.mr-root .text-btn:hover { background: var(--soft); }
.mr-root .text-btn.danger { color: var(--cinnabar); }

.mr-root .field { margin-bottom: 16px; }
.mr-root .field label, .mr-root .field .field-label { display: block; margin-bottom: 6px; color: var(--muted); font-size: 13px; letter-spacing: .04em; }
.mr-root .field input, .mr-root .field select, .mr-root .field textarea {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 15px;
  box-sizing: border-box;
}
.mr-root .field textarea { min-height: 84px; resize: vertical; line-height: 1.6; }
.mr-root .field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; }
.mr-root .field input:focus, .mr-root .field select:focus, .mr-root .field textarea:focus { outline: 2px solid rgba(166, 99, 46, 0.25); outline: 2px solid color-mix(in oklab, var(--accent) 25%, transparent); border-color: var(--accent); }
.mr-root .field input.money-input { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.mr-root .field .err { display: none; margin: 6px 2px 0; color: var(--cinnabar); font-size: 13px; }
.mr-root .field .err.show { display: block; }
.mr-root .field.bad input, .mr-root .field.bad select, .mr-root .field.bad textarea { border-color: var(--cinnabar); }
.mr-root .field.bad .err { display: block; }
.mr-root .calc-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin: 2px 2px 14px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--soft);
  color: var(--muted);
  font-size: 13px;
}
@supports not (gap: 1px) {
  .mr-root .calc-line > * + * {
    margin-left: 10px;
  }
}
.mr-root .calc-line .v { font-size: 15px; }
.mr-root .ver { padding: 13px 18px; }
.mr-root .ver + .ver { border-top: 1px solid var(--border); }
.mr-root .ver-top { display: flex; align-items: center; gap: 8px; }
@supports not (gap: 1px) {
  .mr-root .ver-top > * + * {
    margin-left: 8px;
  }
}
.mr-root .ver-v { color: var(--muted); font-family: var(--font-mono); font-size: 12px; font-variant-numeric: tabular-nums; }
.mr-root .ver-line { margin-top: 5px; color: var(--muted); font-size: 12.5px; line-height: 1.65; }
.mr-root .ver-note { margin-top: 6px; font-size: 13px; line-height: 1.65; }
.mr-root .ver-ret { margin-top: 8px; padding: 9px 12px; border-radius: 10px; background: var(--soft-cinnabar); font-size: 12.5px; line-height: 1.65; }
.mr-root .ver-ret b { color: var(--cinnabar); font-weight: 600; }

.mr-root .empty { padding: 52px 24px; text-align: center; }
.mr-root .empty p { color: var(--muted); font-family: var(--font-display); font-size: 15px; letter-spacing: .06em; }

.mr-root .subpage {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}

@supports not (inset: 0) {

.mr-root .subpage {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mr-root .sub-head {
  display: flex;
  flex: none;
  align-items: center;
  gap: 6px;
  min-height: 52px;
  padding: 0 12px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
@supports not (gap: 1px) {
  .mr-root .sub-head > * + * {
    margin-left: 6px;
  }
}
.mr-root .back-btn {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0 10px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--accent);
  font-size: 15px;
  cursor: pointer;
}
.mr-root .back-btn:hover { background: var(--soft); }
.mr-root .back-arrow { margin-right: 2px; font-size: 18px; line-height: 1; }
.mr-root .sub-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: .06em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mr-root .sub-body { flex: 1; overflow-y: auto; padding: 6px 0 20px; scrollbar-width: none; }
.mr-root .sub-body::-webkit-scrollbar { display: none; }
.mr-root .sub-hint { margin: 14px 20px 4px; color: var(--muted); font-size: 13px; line-height: 1.7; }

.mr-root .mask {
  position: absolute;
  inset: 0;
  z-index: 70;
  background: rgba(62, 47, 36, 0.42);
  background: color-mix(in oklab, var(--fg) 42%, transparent);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

@supports not (inset: 0) {

.mr-root .mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mr-root .mask.open { opacity: 1; pointer-events: auto; }
.mr-root .sheet {
  position: absolute;
  right: 10px;
  bottom: 12px;
  left: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transform: translateY(calc(100% + 24px));
  transition: transform .3s cubic-bezier(.32, .72, .35, 1);
}
@supports not (gap: 1px) {
  .mr-root .sheet > * + * {
    margin-top: 8px;
  }
}
.mr-root .mask.open .sheet { transform: none; }
.mr-root .sheet-group { overflow: hidden; border-radius: 16px; background: var(--surface); }
.mr-root .sheet-title { padding: 14px 18px 12px; border-bottom: 1px solid var(--border); font-size: 14px; font-weight: 600; letter-spacing: .03em; text-align: center; }
.mr-root .sheet-sub { padding: 12px 18px 0; color: var(--muted); font-size: 12.5px; line-height: 1.7; }
.mr-root .sheet-body { padding: 12px 18px 16px; }
.mr-root .sheet-btn {
  display: block;
  width: 100%;
  min-height: 52px;
  border: 0;
  background: var(--surface);
  color: var(--fg);
  font-size: 16px;
  cursor: pointer;
}
.mr-root .sheet-btn.primary { background: var(--accent); color: var(--surface); font-weight: 600; letter-spacing: .04em; }
.mr-root .sheet-btn.cancel { border-radius: 16px; font-weight: 600; }

.mr-root .toast {
  position: absolute;
  bottom: 104px;
  left: 50%;
  z-index: 80;
  max-width: 84%;
  padding: 10px 18px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--fg);
  color: var(--bg);
  font-size: 14px;
  text-align: center;
  white-space: nowrap;
  text-overflow: ellipsis;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
}
.mr-root .toast.show { opacity: 1; transform: translateX(-50%); }

.mr-root .mr-loading, .mr-root .mr-error { padding: 42px 20px; color: var(--muted); font-size: 13px; text-align: center; }
.mr-root .mr-error { color: var(--cinnabar); }
.mr-root .mr-error button { border: 0; background: transparent; color: inherit; text-decoration: underline; }

/* B-408 会员储值纯展示信息区 */
.mr-root .sv-card { margin: 10px 12px 0; padding: 12px 14px; border: 1px dashed var(--border); border-radius: 12px; background: #F3EDDF; background: color-mix(in oklab, var(--soft) 55%, var(--surface)); }
.mr-root .sv-hd { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
@supports not (gap: 1px) {
  .mr-root .sv-hd > * + * {
    margin-left: 10px;
  }
}
.mr-root .sv-title { font-size: 14.5px; font-weight: 600; letter-spacing: 0.04em; }
.mr-root .sv-tag { margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: var(--soft-green); color: var(--accent); font-size: 11px; font-style: normal; font-weight: 500; }
.mr-root .sv-toggle { min-height: 32px; padding: 0 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--accent); font: inherit; font-size: 12.5px; }
.mr-root .sv-rows { margin-top: 8px; }
.mr-root .sv-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px dashed var(--border); font-size: 13.5px; }
@supports not (gap: 1px) {
  .mr-root .sv-row > * + * {
    margin-left: 10px;
  }
}
.mr-root .sv-row:last-child { border-bottom: 0; }
.mr-root .sv-row .k { color: var(--muted); }
.mr-root .sv-row .k small { display: block; font-size: 11.5px; }
.mr-root .sv-row .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; }
.mr-root .sv-row .v.warn { color: var(--cinnabar); }
.mr-root .sv-items { margin-top: 6px; }
.mr-root .sv-items .kv { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; font-size: 12.5px; border-bottom: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mr-root .sv-items .kv > * + * {
    margin-left: 10px;
  }
}
.mr-root .sv-items .kv:last-child { border-bottom: 0; }
.mr-root .sv-items .k { color: var(--muted); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mr-root .sv-items .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; flex: none; }
.mr-root .sv-note { margin: 8px 0 0; color: var(--muted-2); font-size: 12px; line-height: 1.6; }

.empty-ico[data-v-25eb91c2] { width: 62px; height: 62px; color: var(--ink-soft); display: block; margin: 0 auto;
}

.empty-ico[data-v-6cc1a188] { width: 62px; height: 62px; color: var(--ink-soft); display: block; margin: 0 auto;
}

.empty-ico[data-v-969ce2ab] { width: 62px; height: 62px; color: var(--ink-soft); display: block; margin: 0 auto;
}

.empty-ico[data-v-09b4fa96] { width: 62px; height: 62px; color: var(--ink-soft); display: block; margin: 0 auto;
}

/**
 * 手机端「每日营业」样式（/app/business）。
 *
 * 视觉真源：门前OA-design/mobile-daily-business/03-手机端每日营业-高保真原型.html
 * 约束（05 §7）：颜色全部走 shared/tokens-v3.css 既有令牌，零新增 hex（--paper-ink 除外）；
 * 派生只走 color-mix；金额 Mono + tabular-nums；状态三通道（文字+点+色）。
 * 评审外壳（场景切换器/双画板/demo 标注）不迁移。
 */
.mdb-root {

/* 几何常量按原型（17/12/5），阴影为 color-mix 派生 */


  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
}
.mdb-root .mdb-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  padding-bottom: 24px;
}
.mdb-root .mdb-scroll::-webkit-scrollbar { display: none; }
.mdb-root button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.mdb-root input { font: inherit; color: inherit; background: none; border: 0; outline: none; }
.mdb-root :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 8px; }
.mdb-root .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }


/* ── 吸顶页首 ── */
.mdb-root .bz-sticky { position: sticky; top: 0; z-index: 40; background: var(--bg); border-bottom: 1px solid var(--border); padding-bottom: 9px; }
.mdb-root .bz-top { display: flex; align-items: center; gap: 6px; padding: 6px 12px 0; min-height: 44px; }
@supports not (gap: 1px) {
  .mdb-root .bz-top > * + * {
    margin-left: 6px;
  }
}
.mdb-root .bz-back { width: 44px; height: 44px; margin-left: -8px; display: grid; place-items: center; border-radius: 12px; color: var(--accent); }
.mdb-root .bz-back svg { width: 19px; height: 19px; display: block; }
.mdb-root .bz-back:active { background: var(--soft); }
.mdb-root .bz-ttl { flex: 1; min-width: 0; }
.mdb-root .bz-ttl h1 { font-family: var(--font-display); font-size: 18px; font-weight: 600; letter-spacing: .1em; }
.mdb-root .bz-shop { font-size: 12.5px; color: var(--muted); max-width: 34%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdb-root .bz-refresh { width: 44px; height: 44px; margin-right: -8px; display: grid; place-items: center; border-radius: 12px; color: var(--muted); }
.mdb-root .bz-refresh svg { width: 19px; height: 19px; display: block; }
.mdb-root .bz-refresh:active { background: var(--soft); color: var(--fg); }
.mdb-root .bz-refresh.spin svg { animation: mdb-spin 1s linear infinite; }
@keyframes mdb-spin {to { transform: rotate(360deg); } }
.mdb-root .bz-day { display: flex; align-items: stretch; gap: 6px; padding: 2px 12px 0; }
@supports not (gap: 1px) {
  .mdb-root .bz-day > * + * {
    margin-left: 6px;
  }
}
.mdb-root .day-nav { display: inline-flex; align-items: center; gap: 3px; min-height: 36px; padding: 0 9px; border-radius: 8px; font-size: 12.5px; color: var(--fg); border: 1px solid var(--border); background: var(--surface); flex: none; }
@supports not (gap: 1px) {
  .mdb-root .day-nav > * + * {
    margin-left: 3px;
  }
}
.mdb-root .day-nav svg { width: 14px; height: 14px; display: block; }
.mdb-root .day-nav:active { background: var(--soft-green); }
.mdb-root .day-nav.is-dis { color: var(--muted-2); background: transparent; border-color: transparent; cursor: default; }
.mdb-root .day-cur { flex: 1; min-width: 0; text-align: center; border-radius: 8px; padding: 1px 6px; display: flex; flex-direction: column; justify-content: center; }
.mdb-root .day-cur b { display: block; font-family: var(--font-mono); font-size: 13px; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.mdb-root .day-cur small { display: block; font-size: 10.5px; color: var(--muted); }
.mdb-root .day-cur:active { background: var(--soft); }
.mdb-root .bz-note { margin: 6px 16px 0; font-size: 10.5px; color: var(--muted-2); line-height: 1.55; font-family: var(--font-mono); }
.mdb-root .bz-seg { display: flex; gap: 4px; margin: 10px 16px 0; padding: 3px; background: var(--soft); border-radius: 12px; }
@supports not (gap: 1px) {
  .mdb-root .bz-seg > * + * {
    margin-left: 4px;
  }
}
.mdb-root .seg-btn { flex: 1; min-height: 38px; border-radius: 9px; font-size: 14px; font-weight: 600; color: var(--muted); letter-spacing: .04em; position: relative; transition: background .15s ease, color .15s ease; }
.mdb-root .seg-btn.on { background: var(--surface); color: var(--fg); box-shadow: 0 1px 3px rgba(67, 53, 43, 0.08); box-shadow: 0 1px 3px color-mix(in oklab, var(--fg) 8%, transparent); }
.mdb-root .seg-btn.on::after { content: ""; position: absolute; left: 50%; bottom: 4px; transform: translateX(-50%); width: 18px; height: 2px; border-radius: 2px; background: var(--accent); }
.mdb-root .chipbar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 9px 16px 0; }
@supports not (gap: 1px) {
  .mdb-root .chipbar > * + * {
    margin-left: 6px;
  }
}
.mdb-root .fchip { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 10px; border-radius: 999px; background: var(--soft-green); border: 1px solid #CBB19C; border: 1px solid color-mix(in oklab, var(--accent) 32%, var(--border)); font-size: 12.5px; color: var(--fg); }
@supports not (gap: 1px) {
  .mdb-root .fchip > * + * {
    margin-left: 5px;
  }
}
.mdb-root .fchip .x { color: var(--muted); font-size: 14px; line-height: 1; }
.mdb-root .chip-reset { min-height: 30px; padding: 0 8px; font-size: 12.5px; color: var(--muted); border-radius: 8px; }


/* ── 区块题 ── */
.mdb-root .sec { margin: 18px 16px 0; display: flex; align-items: baseline; gap: 10px; }
@supports not (gap: 1px) {
  .mdb-root .sec > * + * {
    margin-left: 10px;
  }
}
.mdb-root .sec .st { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .16em; color: var(--muted); text-transform: uppercase; }
.mdb-root .sec .grow { flex: 1; }
.mdb-root .sec-note { font-size: 11px; color: var(--muted-2); font-family: var(--font-mono); letter-spacing: .02em; }


/* ── 应收主角 ── */
.mdb-root .biz-hero { margin: 12px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 16px 16px 14px; }
.mdb-root .bh-label { font-size: 12.5px; color: var(--muted); letter-spacing: .04em; }
.mdb-root .bh-label span { color: var(--muted-2); font-size: 11px; }
.mdb-root .bh-num { font-family: var(--font-mono); font-size: 42px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.15; margin: 2px 0 0; }
.mdb-root .bh-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 13px; padding-top: 12px; border-top: 1px dashed var(--border); }
.mdb-root .bh-cell { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
@supports not (gap: 1px) {
  .mdb-root .bh-cell > * + * {
    margin-top: 1px;
  }
}
.mdb-root .bh-cell .k { font-size: 11.5px; color: var(--muted); }
.mdb-root .bh-cell .v { font-family: var(--font-mono); font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.25; }
.mdb-root .bh-cell.warn .v { color: var(--cinnabar); }
.mdb-root .bh-cell .s { font-size: 10.5px; color: var(--muted-2); line-height: 1.5; }
.mdb-root .bh-cell.warn .s { color: #9F5C45; color: color-mix(in oklab, var(--cinnabar) 68%, var(--muted)); }
.mdb-root .bh-note { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--border); font-size: 10.5px; color: var(--muted-2); line-height: 1.65; }
.mdb-root .bh-reason { margin-top: 8px; padding: 8px 10px; background: var(--soft-clay); border-radius: 5px; font-size: 11px; color: var(--muted); line-height: 1.6; }


/* ── 经营构成（紧凑次级六项） ── */
.mdb-root .biz-comp { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 2px 14px; }
.mdb-root .comp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 12px; }
.mdb-root .comp-i { padding: 11px 0; border-bottom: 1px dashed var(--border); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
@supports not (gap: 1px) {
  .mdb-root .comp-i > * + * {
    margin-top: 2px;
  }
}
.mdb-root .comp-i:nth-child(4), .mdb-root .comp-i:nth-child(5), .mdb-root .comp-i:nth-child(6) { border-bottom: 0; }
.mdb-root .comp-i .k { font-size: 11px; color: var(--muted); }
.mdb-root .comp-i .v { font-family: var(--font-mono); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.3; }
.mdb-root .comp-i .v em { font-style: normal; font-size: 10.5px; color: var(--muted); font-weight: 400; margin-left: 2px; }


/* ── 收款渠道 ── */
.mdb-root .chan-card { margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 13px 15px 12px; }
.mdb-root .chan-note { font-size: 10.5px; color: var(--muted-2); line-height: 1.65; padding-bottom: 10px; border-bottom: 1px dashed var(--border); }
.mdb-root .chan-row { display: flex; align-items: baseline; gap: 10px; min-height: 40px; border-bottom: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .chan-row > * + * {
    margin-left: 10px;
  }
}
.mdb-root .chan-row:last-of-type { border-bottom: 0; }
.mdb-root .chan-row .cn { flex: 1; font-size: 13.5px; }
.mdb-root .chan-row .cc { font-family: var(--font-mono); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mdb-root .chan-row .cb { font-family: var(--font-mono); font-size: 11px; color: var(--muted); min-width: 44px; text-align: right; font-variant-numeric: tabular-nums; }
.mdb-root .chan-more { display: inline-flex; align-items: center; gap: 4px; min-height: 38px; padding: 0 2px; font-size: 12.5px; color: var(--muted); }
@supports not (gap: 1px) {
  .mdb-root .chan-more > * + * {
    margin-left: 4px;
  }
}
.mdb-root .chan-more .caret { transition: transform .15s ease; display: inline-block; font-size: 10px; }
.mdb-root .chan-more.open .caret { transform: rotate(180deg); }
.mdb-root .chan-raw { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0 10px; border-top: 1px dashed var(--border); margin-top: 2px; }
@supports not (gap: 1px) {
  .mdb-root .chan-raw > * + * {
    margin-left: 6px;
  }
}
.mdb-root .raw-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 5px; background: var(--soft); font-size: 11.5px; }
@supports not (gap: 1px) {
  .mdb-root .raw-chip > * + * {
    margin-left: 6px;
  }
}
.mdb-root .raw-chip .rc-n { color: var(--muted); }
.mdb-root .raw-chip .rc-a { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.mdb-root .chan-foot { margin-top: 8px; padding-top: 9px; border-top: 1px dashed var(--border); display: flex; }
.mdb-root .tlink { display: inline-flex; align-items: center; gap: 4px; min-height: 38px; padding: 0 11px; border-radius: 12px; font-size: 13px; color: var(--accent); }
@supports not (gap: 1px) {
  .mdb-root .tlink > * + * {
    margin-left: 4px;
  }
}
.mdb-root .tlink svg { width: 14px; height: 14px; display: block; }
.mdb-root .tlink:active { background: var(--soft); }
.mdb-root .chan-ro { margin-top: 8px; padding-top: 9px; border-top: 1px dashed var(--border); font-size: 11px; color: var(--muted-2); line-height: 1.6; }


/* ── 会员充值 / 消费双指标 ── */
.mdb-root .member-card { display: block; width: calc(100% - 32px); text-align: left; margin: 10px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 13px 15px 12px; cursor: pointer; }
.mdb-root .member-card:active { background: var(--soft-green); }
.mdb-root .mc-lab { font-size: 12.5px; color: var(--muted); letter-spacing: .04em; }
.mdb-root .dtag { display: inline-flex; align-items: center; padding: 1px 6px; border-radius: 5px; background: var(--soft); font-family: var(--font-display); font-size: 10px; letter-spacing: .08em; color: var(--muted); line-height: 1.7; }
.mdb-root .dtag.new { background: var(--soft-green); color: var(--fg); }
.mdb-root .dtag.flow { background: var(--soft); color: var(--muted); }
.mdb-root .dtag.consume { background: var(--soft-green); color: var(--fg); }
.mdb-root .mc-dual { display: flex; align-items: stretch; margin-top: 2px; }
.mdb-root .mc-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
@supports not (gap: 1px) {
  .mdb-root .mc-col > * + * {
    margin-top: 2px;
  }
}
.mdb-root .mc-col + .mc-col { border-left: 1px solid var(--border); margin-left: 14px; padding-left: 14px; }
.mdb-root .mc-col-h { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
@supports not (gap: 1px) {
  .mdb-root .mc-col-h > * + * {
    margin-left: 6px;
  }
}
.mdb-root .mc-col-v { font-family: var(--font-mono); font-size: 25px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; letter-spacing: -.01em; margin-top: 3px; }
.mdb-root .mc-col-s { font-size: 11px; color: var(--muted); line-height: 1.5; font-variant-numeric: tabular-nums; }
.mdb-root .mc-methods { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .mc-methods > * + * {
    margin-left: 6px;
  }
}
.mdb-root .mc-more { display: flex; align-items: center; gap: 4px; margin-top: 9px; padding-top: 9px; border-top: 1px dashed var(--border); font-size: 12.5px; color: var(--fg); }
@supports not (gap: 1px) {
  .mdb-root .mc-more > * + * {
    margin-left: 4px;
  }
}
.mdb-root .mc-more svg { width: 14px; height: 14px; display: block; margin-left: auto; color: var(--muted); }
.mdb-root .mc-note { margin-top: 8px; font-size: 10.5px; color: var(--muted-2); line-height: 1.6; display: block; }
.mdb-root .mc-empty { margin-top: 6px; font-size: 12.5px; color: var(--muted); line-height: 1.65; }
.mdb-root .mc-fail { margin-top: 8px; font-size: 12px; color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg)); display: flex; align-items: center; gap: 8px; }
@supports not (gap: 1px) {
  .mdb-root .mc-fail > * + * {
    margin-left: 8px;
  }
}
.mdb-root .mc-fail button { min-height: 32px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); font-size: 12px; }


/* ── 历史欠账常驻入口 ── */
.mdb-root .debt-entry { display: flex; align-items: center; gap: 10px; width: calc(100% - 32px); text-align: left; margin: 10px 16px 0; padding: 13px 15px; background: #F6E6D7; background: color-mix(in oklab, var(--soft-clay) 58%, var(--surface)); border: 1px solid #D6BDAC; border: 1px solid color-mix(in oklab, var(--cinnabar) 18%, var(--border)); border-radius: 16px; }
@supports not (gap: 1px) {
  .mdb-root .debt-entry > * + * {
    margin-left: 10px;
  }
}
.mdb-root .debt-entry.zero { background: var(--surface); border-color: var(--border); }
.mdb-root .debt-entry:active { background: #F5E0CE; background: color-mix(in oklab, var(--soft-clay) 80%, var(--surface)); }
.mdb-root .debt-entry.zero:active { background: var(--soft); }
.mdb-root .de-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
@supports not (gap: 1px) {
  .mdb-root .de-main > * + * {
    margin-top: 2px;
  }
}
.mdb-root .de-title { font-size: 14.5px; font-weight: 600; letter-spacing: .01em; }
.mdb-root .de-title.warn { color: #954930; color: color-mix(in oklab, var(--cinnabar) 80%, var(--fg)); }
.mdb-root .de-sub { font-size: 12px; color: var(--muted); line-height: 1.5; }
.mdb-root .de-goto { flex: none; display: inline-flex; align-items: center; gap: 2px; font-size: 12.5px; color: var(--fg); }
@supports not (gap: 1px) {
  .mdb-root .de-goto > * + * {
    margin-left: 2px;
  }
}
.mdb-root .de-goto svg { width: 14px; height: 14px; display: block; }


/* ── 状态签（文字 + 点 + 色） ── */
.mdb-root .tag { display: inline-flex; align-items: center; gap: 5px; flex: none; padding: 2px 8px; border-radius: 999px; font-family: var(--font-display); font-size: 10.5px; letter-spacing: .08em; line-height: 1.65; }
@supports not (gap: 1px) {
  .mdb-root .tag > * + * {
    margin-left: 5px;
  }
}
.mdb-root .tag i { width: 6px; height: 6px; border-radius: 50%; display: block; }
.mdb-root .tag.t-cinnabar { background: #EEDCD0; background: color-mix(in oklab, var(--cinnabar) 15%, var(--surface)); color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg)); }
.mdb-root .tag.t-cinnabar i { background: var(--cinnabar); }
.mdb-root .tag.t-busy { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #935433; color: color-mix(in oklab, var(--st-busy) 80%, var(--fg)); }
.mdb-root .tag.t-busy i { background: var(--st-busy); }
.mdb-root .tag.t-served { background: #DEDFCF; background: color-mix(in oklab, var(--st-served) 18%, var(--surface)); color: #656B45; color: color-mix(in oklab, var(--st-served) 78%, var(--fg)); }
.mdb-root .tag.t-served i { background: var(--st-served); }
.mdb-root .tag.t-paid { background: #DDDFDB; background: color-mix(in oklab, var(--st-paid) 14%, var(--surface)); color: #465260; color: color-mix(in oklab, var(--st-paid) 80%, var(--fg)); }
.mdb-root .tag.t-paid i { background: var(--st-paid); }
.mdb-root .tag.t-muted { background: var(--soft); color: var(--muted); }
.mdb-root .tag.t-muted i { background: var(--muted-2); }


/* ── 订单列表 ── */
.mdb-root .searchbar { display: flex; align-items: center; gap: 8px; margin: 12px 16px 0; padding: 0 12px; min-height: 42px; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; }
@supports not (gap: 1px) {
  .mdb-root .searchbar > * + * {
    margin-left: 8px;
  }
}
.mdb-root .searchbar svg { width: 17px; height: 17px; color: var(--muted); flex: none; display: block; }
.mdb-root .searchbar input { flex: 1; min-width: 0; font-size: 14px; }
.mdb-root .searchbar input::placeholder { color: var(--muted-2); }
.mdb-root .search-x { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; color: var(--muted); }
.mdb-root .filter-row { display: flex; align-items: center; gap: 8px; margin: 10px 16px 0; }
@supports not (gap: 1px) {
  .mdb-root .filter-row > * + * {
    margin-left: 8px;
  }
}
.mdb-root .fbtn { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; padding: 0 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); font-size: 12.5px; color: var(--fg); white-space: nowrap; }
@supports not (gap: 1px) {
  .mdb-root .fbtn > * + * {
    margin-left: 5px;
  }
}
.mdb-root .fbtn svg { width: 14px; height: 14px; color: var(--muted); display: block; }
.mdb-root .fbtn:active { background: var(--soft-green); }
.mdb-root .flt-note { margin: 10px 16px 0; padding: 10px 12px; background: var(--soft-clay); border-radius: 12px; font-size: 11.5px; color: var(--muted); line-height: 1.65; }
.mdb-root .flt-note b { color: var(--fg); font-weight: 600; }
.mdb-root .ol-list { margin: 10px 16px 0; display: flex; flex-direction: column; gap: 8px; }
@supports not (gap: 1px) {
  .mdb-root .ol-list > * + * {
    margin-top: 8px;
  }
}
.mdb-root .oc { display: block; width: 100%; text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 12px 13px; transition: background .15s ease; }
.mdb-root .oc:active { background: var(--soft-green); }
.mdb-root .oc.void { background: var(--soft); box-shadow: none; }
.mdb-root .oc.void .oc-seat, .mdb-root .oc.void .oc-amt, .mdb-root .oc.void .oc-items { color: var(--muted); }
.mdb-root .oc-top { display: flex; align-items: baseline; gap: 7px; }
@supports not (gap: 1px) {
  .mdb-root .oc-top > * + * {
    margin-left: 7px;
  }
}
.mdb-root .oc-no { font-family: var(--font-mono); font-size: 11.5px; color: var(--muted-2); min-width: 16px; font-variant-numeric: tabular-nums; }
.mdb-root .oc-seat { font-size: 14.5px; font-weight: 600; letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mdb-root .oc-amt { margin-left: auto; font-family: var(--font-mono); font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mdb-root .oc-meta { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 4px; font-variant-numeric: tabular-nums; }
.mdb-root .oc-items { font-size: 12.5px; color: var(--muted); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mdb-root mark { background: var(--soft-clay); color: inherit; border-radius: 3px; padding: 0 1px; }
.mdb-root .oc-foot { display: flex; align-items: center; gap: 10px; margin-top: 9px; padding-top: 8px; border-top: 1px dashed var(--border); font-size: 12px; }
@supports not (gap: 1px) {
  .mdb-root .oc-foot > * + * {
    margin-left: 10px;
  }
}
.mdb-root .oc-paid { color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .oc-due { color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .oc-due.warn { color: var(--cinnabar); font-weight: 600; }
.mdb-root .oc-grow { flex: 1; }
.mdb-root .more-btn { display: flex; align-items: center; justify-content: center; gap: 6px; width: calc(100% - 32px); margin: 12px 16px 0; min-height: 44px; border: 1px dashed var(--border); border-radius: 12px; font-size: 13px; color: var(--muted); }
@supports not (gap: 1px) {
  .mdb-root .more-btn > * + * {
    margin-left: 6px;
  }
}
.mdb-root .more-btn:active { background: var(--soft); }
.mdb-root .more-btn svg { width: 14px; height: 14px; display: block; }
.mdb-root .more-btn[disabled] { opacity: .6; }


/* ── 订单详情（push 层） ── */
.mdb-root .view.push { position: absolute; inset: 0; z-index: 60; background: var(--bg); display: flex; flex-direction: column; animation: mdb-slidein .22s cubic-bezier(.3, .9, .4, 1); }
@supports not (inset: 0) {
.mdb-root .view.push {


top: 0;


right: 0;


bottom: 0;


left: 0; }
}
@keyframes mdb-slidein {from { transform: translateX(18px); opacity: .4; }to { transform: none; opacity: 1; } }
.mdb-root .wsbar { flex: none; display: flex; align-items: center; gap: 4px; min-height: 50px; padding: 2px 10px 0; position: relative; z-index: 5; }
@supports not (gap: 1px) {
  .mdb-root .wsbar > * + * {
    margin-left: 4px;
  }
}
.mdb-root .bk { display: inline-flex; align-items: center; gap: 2px; min-height: 44px; padding: 0 12px 0 6px; border-radius: 10px; color: var(--accent); font-size: 14px; }
@supports not (gap: 1px) {
  .mdb-root .bk > * + * {
    margin-left: 2px;
  }
}
.mdb-root .bk svg { width: 16px; height: 16px; display: block; }
.mdb-root .bk:active { background: var(--soft); }
.mdb-root .wsbar .wst { flex: 1; min-width: 0; text-align: center; font-family: var(--font-display); font-size: 14px; font-weight: 600; letter-spacing: .08em; }
.mdb-root .wsbar .wsr { min-width: 56px; text-align: right; font-size: 11px; color: var(--muted-2); padding-right: 8px; font-family: var(--font-mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdb-root .dtl-scroll { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; padding-bottom: 30px; }
.mdb-root .dtl-scroll::-webkit-scrollbar { display: none; }
.mdb-root .dtl-head { margin: 6px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 14px 15px; }
.mdb-root .dh-top { display: flex; align-items: center; gap: 8px; }
@supports not (gap: 1px) {
  .mdb-root .dh-top > * + * {
    margin-left: 8px;
  }
}
.mdb-root .dh-no { font-family: var(--font-mono); font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .dh-seat { font-family: var(--font-display); font-size: 22px; font-weight: 600; letter-spacing: .05em; margin-top: 7px; }
.mdb-root .dh-sub { font-family: var(--font-body); font-size: 12px; color: var(--muted); font-weight: 400; letter-spacing: 0; }
.mdb-root .dh-amt { margin-top: 11px; padding-top: 10px; border-top: 1px dashed var(--border); display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
@supports not (gap: 1px) {
  .mdb-root .dh-amt > * + * {
    margin-left: 8px;
  }
}
.mdb-root .dh-amt .k { font-size: 11.5px; color: var(--muted); }
.mdb-root .dh-amt .v { font-family: var(--font-mono); font-size: 26px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; }
.mdb-root .dh-amt .s { font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); margin-left: auto; font-variant-numeric: tabular-nums; }
.mdb-root .dh-amt .s.warn { color: var(--cinnabar); }
.mdb-root .dsec { margin: 14px 16px 0; }
.mdb-root .dsec-h { display: flex; align-items: baseline; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
@supports not (gap: 1px) {
  .mdb-root .dsec-h > * + * {
    margin-left: 8px;
  }
}
.mdb-root .dsec-h span { font-family: var(--font-display); font-size: 14px; font-weight: 600; letter-spacing: .09em; }
.mdb-root .dsec-h .n { margin-left: auto; font-family: var(--font-mono); font-size: 10.5px; color: var(--muted-2); font-weight: 400; letter-spacing: .02em; }
.mdb-root .dsec-h .reprint-btn { margin-left: auto; min-height: 36px; padding: 0 14px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--accent); font-family: inherit; font-size: 13px; cursor: pointer; }
.mdb-root .dsec-h .reprint-btn:active:not(:disabled) { background: var(--soft); }
.mdb-root .dsec-h .reprint-btn:disabled { opacity: .55; }
.mdb-root .dsec-h .reprint-btn + .n { margin-left: 0; }
.mdb-root .dtl-row { display: flex; align-items: baseline; gap: 10px; min-height: 38px; border-bottom: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .dtl-row > * + * {
    margin-left: 10px;
  }
}
.mdb-root .dtl-row:last-child { border-bottom: 0; }
.mdb-root .dtl-row .k { font-size: 12.5px; color: var(--muted); min-width: 66px; flex: none; }
.mdb-root .dtl-row .v { flex: 1; font-size: 13.5px; }
.mdb-root .dtl-fix { margin-top: 8px; padding: 9px 11px; background: var(--soft-clay); border-radius: 12px; font-size: 11.5px; color: var(--muted); line-height: 1.65; }
.mdb-root .ditem { padding: 11px 0; border-bottom: 1px dashed var(--border); }
.mdb-root .ditem:last-child { border-bottom: 0; }
.mdb-root .di-top { display: flex; align-items: baseline; gap: 8px; }
@supports not (gap: 1px) {
  .mdb-root .di-top > * + * {
    margin-left: 8px;
  }
}
.mdb-root .di-nm { font-size: 13.5px; font-weight: 600; flex: 1; min-width: 0; line-height: 1.45; }
.mdb-root .di-spec { font-size: 11.5px; color: var(--muted); flex: none; }
.mdb-root .di-amt { font-family: var(--font-mono); font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; flex: none; }
.mdb-root .di-meta { display: flex; align-items: center; gap: 6px; margin-top: 5px; flex-wrap: wrap; }
@supports not (gap: 1px) {
  .mdb-root .di-meta > * + * {
    margin-left: 6px;
  }
}
.mdb-root .di-opt { font-size: 11px; color: var(--muted); background: var(--soft); border-radius: 5px; padding: 2px 7px; }
.mdb-root .dsub { display: grid; grid-template-columns: 1fr 64px 40px; gap: 0 8px; align-items: baseline; padding: 7px 0 7px 13px; font-size: 11.5px; color: var(--muted); border-top: 1px dashed rgba(221, 214, 200, 0.6); border-top: 1px dashed color-mix(in oklab, var(--border) 60%, transparent); }
.mdb-root .dsub .sn { position: relative; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdb-root .dsub .sn::before { content: "·"; position: absolute; left: -10px; color: var(--muted-2); }
.mdb-root .dsub .sm { font-family: var(--font-mono); font-variant-numeric: tabular-nums; text-align: right; color: var(--muted-2); }
.mdb-root .pay-row { display: flex; align-items: baseline; gap: 10px; min-height: 38px; border-bottom: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .pay-row > * + * {
    margin-left: 10px;
  }
}
.mdb-root .pay-row:last-of-type { border-bottom: 0; }
.mdb-root .pay-row .pr-ch { font-size: 13px; }
.mdb-root .pay-row .pr-t { font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .pay-row .pr-amt { margin-left: auto; font-family: var(--font-mono); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mdb-root .pay-empty { min-height: 38px; display: flex; align-items: center; font-size: 12.5px; color: var(--muted-2); border-bottom: 1px dashed var(--border); }
.mdb-root .pay-note { margin-top: 9px; font-size: 11.5px; color: var(--muted); line-height: 1.65; }
.mdb-root .pay-note.warn { color: #954930; color: color-mix(in oklab, var(--cinnabar) 80%, var(--fg)); background: var(--soft-cinnabar); border-radius: 12px; padding: 9px 11px; }
.mdb-root .tl { margin-top: 2px; }
.mdb-root .tl-i { display: flex; gap: 10px; }
@supports not (gap: 1px) {
  .mdb-root .tl-i > * + * {
    margin-left: 10px;
  }
}
.mdb-root .tl-d { flex: none; width: 8px; display: flex; flex-direction: column; align-items: center; padding-top: 6px; }
.mdb-root .tl-d::before { content: ""; width: 7px; height: 7px; border-radius: 50%; border: 1.5px solid var(--accent); background: var(--surface); flex: none; }
.mdb-root .tl-d::after { content: ""; flex: 1; width: 1px; background: var(--border); margin-top: 2px; }
.mdb-root .tl-i:last-child .tl-d::after { display: none; }
.mdb-root .tl-b { flex: 1; min-width: 0; padding: 0 0 13px; }
.mdb-root .tl-t { font-family: var(--font-mono); font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; margin-right: 7px; }
.mdb-root .tl-w { font-size: 12px; color: var(--muted); }
.mdb-root .tl-x { display: block; font-size: 13.5px; margin-top: 2px; line-height: 1.5; }


/* ── 骨架 / 失败 / Toast / 加载条 ── */
.mdb-root .sk { margin: 12px 16px 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 15px; }
.mdb-root .sk i { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #EDE5D6 25%, #F3EEE3 50%, #EDE5D6 75%); background: linear-gradient(90deg, var(--soft) 25%, color-mix(in oklab, var(--soft) 45%, var(--surface)) 50%, var(--soft) 75%); background-size: 200% 100%; animation: mdb-breath 1.4s ease-in-out infinite; }
.mdb-root .sk i + i { margin-top: 10px; }
.mdb-root .sk i.w40 { width: 40%; }
.mdb-root .sk i.w55 { width: 55%; }
.mdb-root .sk i.w70 { width: 70%; }
.mdb-root .sk i.w85 { width: 85%; }
.mdb-root .sk i.h22 { height: 22px; }
@keyframes mdb-breath {0% { background-position: 200% 0; }100% { background-position: -200% 0; } }
.mdb-root .fail { margin: 12px 16px 0; background: #F6E4D9; background: color-mix(in oklab, var(--soft-cinnabar) 62%, var(--surface)); border: 1px solid #D4B8A6; border: 1px solid color-mix(in oklab, var(--cinnabar) 22%, var(--border)); border-radius: 16px; padding: 15px; }
.mdb-root .fail .fh { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 14px; letter-spacing: .04em; color: #994A30; color: color-mix(in oklab, var(--cinnabar) 84%, var(--fg)); }
@supports not (gap: 1px) {
  .mdb-root .fail .fh > * + * {
    margin-left: 8px;
  }
}
.mdb-root .fail .fh svg { width: 18px; height: 18px; display: block; }
.mdb-root .fail .fp { font-size: 12.5px; color: var(--muted); margin-top: 5px; line-height: 1.65; }
.mdb-root .fail .fb { margin-top: 11px; display: flex; gap: 8px; }
@supports not (gap: 1px) {
  .mdb-root .fail .fb > * + * {
    margin-left: 8px;
  }
}
.mdb-root .sbtn { min-height: 40px; display: inline-flex; align-items: center; gap: 6px; padding: 0 15px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); font-size: 13.5px; font-weight: 600; }
@supports not (gap: 1px) {
  .mdb-root .sbtn > * + * {
    margin-left: 6px;
  }
}
.mdb-root .sbtn svg { width: 15px; height: 15px; display: block; }
.mdb-root .sbtn:active { background: var(--soft-green); }
.mdb-root .toast { position: fixed; left: 50%; bottom: calc(76px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%) translateY(8px); z-index: 95; max-width: 86%; padding: 10px 18px; border-radius: 999px; background: var(--ink-card); color: var(--paper-ink); font-size: 13px; text-align: center; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; line-height: 1.5; }
.mdb-root .toast.show { opacity: 1; transform: translateX(-50%); }
.mdb-root .loadbar { display: flex; align-items: center; gap: 8px; margin: 10px 16px 0; padding: 8px 13px; border-radius: 12px; background: var(--soft-green); font-size: 12px; color: var(--muted); font-family: var(--font-mono); }
@supports not (gap: 1px) {
  .mdb-root .loadbar > * + * {
    margin-left: 8px;
  }
}
.mdb-root .loadbar .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); animation: mdb-pulse 1s ease-in-out infinite; flex: none; }
@keyframes mdb-pulse {0%, 100% { opacity: .35; transform: scale(.78); }50% { opacity: 1; transform: scale(1); } }


/* ── 空态 ── */
.mdb-root .empty { margin: 14px 16px 0; padding: 34px 18px 30px; text-align: center; background: var(--surface); border: 1px dashed var(--border); border-radius: 16px; display: flex; flex-direction: column; align-items: center; }
.mdb-root .empty.mini { margin-top: 12px; padding: 24px 16px; }
.mdb-root .empty svg { width: 62px; height: 62px; color: var(--ink-soft); display: block; }
.mdb-root .empty h3 { font-family: var(--font-display); font-size: 16px; font-weight: 600; letter-spacing: .05em; margin-top: 14px; }
.mdb-root .empty p { font-size: 12.5px; color: var(--muted); line-height: 1.7; margin-top: 7px; max-width: 30ch; }
.mdb-root .empty .eb { margin-top: 15px; display: flex; gap: 9px; flex-wrap: wrap; justify-content: center; }
@supports not (gap: 1px) {
  .mdb-root .empty .eb > * + * {
    margin-left: 9px;
  }
}


/* ── 页级失败 / 401·403 ── */
.mdb-root .pg-fail { margin: 24px 16px 0; padding: 26px 18px; text-align: center; background: #F7E6DC; background: color-mix(in oklab, var(--soft-cinnabar) 55%, var(--surface)); border: 1px solid #D5BBA9; border: 1px solid color-mix(in oklab, var(--cinnabar) 20%, var(--border)); border-radius: 16px; display: flex; flex-direction: column; align-items: center; }
.mdb-root .pg-fail.auth { background: var(--surface); border-color: var(--border); }
.mdb-root .pg-fail .res-ico { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: #EFDED2; background: color-mix(in oklab, var(--cinnabar) 14%, var(--surface)); color: var(--cinnabar); }
.mdb-root .pg-fail.auth .res-ico { background: var(--soft); color: var(--muted); }
.mdb-root .pg-fail .res-ico svg { width: 28px; height: 28px; display: block; }
.mdb-root .pg-fail .res-ttl { font-family: var(--font-display); font-size: 18px; font-weight: 600; letter-spacing: .06em; margin-top: 14px; }
.mdb-root .pg-fail .res-txt { font-size: 12.5px; color: var(--muted); line-height: 1.7; margin-top: 8px; max-width: 31ch; }
.mdb-root .pg-fail .eb { margin-top: 16px; display: flex; gap: 9px; flex-wrap: wrap; justify-content: center; }
@supports not (gap: 1px) {
  .mdb-root .pg-fail .eb > * + * {
    margin-left: 9px;
  }
}


/* ── 浮层：遮罩 + 底部 Sheet ── */
.mdb-root .sheet-mask { position: fixed; inset: 0; z-index: 70; background: rgba(67, 53, 43, 0.34); background: color-mix(in oklab, var(--fg) 34%, transparent); animation: mdb-fadein .18s ease; }
@supports not (inset: 0) {
.mdb-root .sheet-mask {


top: 0;


right: 0;


bottom: 0;


left: 0; }
}
@keyframes mdb-fadein {from { opacity: 0; }to { opacity: 1; } }
.mdb-root .sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: var(--surface); border-radius: 20px 20px 0 0; box-shadow: 0 16px 40px rgba(67, 53, 43, 0.15); box-shadow: 0 16px 40px color-mix(in oklab, var(--fg) 15%, transparent); display: flex; flex-direction: column; max-height: 88%; animation: mdb-sheetup .24s cubic-bezier(.3, .9, .4, 1); }
@keyframes mdb-sheetup {from { transform: translateY(26px); opacity: .5; }to { transform: none; opacity: 1; } }
.mdb-root .sheet-tall { max-height: 92%; }
.mdb-root .sh-grip { width: 36px; height: 4px; border-radius: 2px; background: var(--border); margin: 8px auto 2px; flex: none; }
.mdb-root .sh-head { flex: none; display: flex; align-items: center; gap: 8px; padding: 6px 16px 10px; border-bottom: 1px solid var(--border); }
@supports not (gap: 1px) {
  .mdb-root .sh-head > * + * {
    margin-left: 8px;
  }
}
.mdb-root .sh-head h2 { font-family: var(--font-display); font-size: 17px; font-weight: 600; letter-spacing: .08em; }
.mdb-root .sh-head .sh-sub { font-size: 11.5px; color: var(--muted); font-family: var(--font-mono); }
.mdb-root .sh-x { margin-left: auto; width: 40px; height: 40px; margin-right: -8px; display: grid; place-items: center; border-radius: 10px; color: var(--muted); }
.mdb-root .sh-x svg { width: 18px; height: 18px; display: block; }
.mdb-root .sh-x:active { background: var(--soft); }
.mdb-root .sh-body { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; padding: 2px 16px 8px; }
.mdb-root .sh-body::-webkit-scrollbar { display: none; }
.mdb-root .sh-foot { flex: none; display: flex; gap: 10px; padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--border); background: var(--surface); }
@supports not (gap: 1px) {
  .mdb-root .sh-foot > * + * {
    margin-left: 10px;
  }
}
.mdb-root .sh-sec { padding: 13px 0; border-bottom: 1px dashed var(--border); }
.mdb-root .sh-sec:last-child { border-bottom: 0; }
.mdb-root .sh-t { font-size: 12.5px; color: var(--muted); margin-bottom: 9px; }
.mdb-root .sh-t b { color: var(--fg); font-weight: 600; }
.mdb-root .sh-opts { display: flex; flex-wrap: wrap; gap: 7px; }
@supports not (gap: 1px) {
  .mdb-root .sh-opts > * + * {
    margin-left: 7px;
  }
}
.mdb-root .opt { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 13px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); font-size: 13px; color: var(--fg); }
@supports not (gap: 1px) {
  .mdb-root .opt > * + * {
    margin-left: 6px;
  }
}
.mdb-root .opt i { width: 7px; height: 7px; border-radius: 50%; display: block; }
.mdb-root .opt:active { background: var(--soft); }
.mdb-root .opt.on { background: var(--soft-green); border-color: #C6A58E; border-color: color-mix(in oklab, var(--accent) 42%, var(--border)); }
.mdb-root .opt .ok { display: none; color: var(--accent); margin-left: 1px; }
.mdb-root .opt .ok svg { width: 13px; height: 13px; display: block; }
.mdb-root .opt.on .ok { display: block; }
.mdb-root .btn-primary { flex: 1; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 12px; background: var(--accent); color: var(--paper-ink); font-size: 15px; font-weight: 600; }
@supports not (gap: 1px) {
  .mdb-root .btn-primary > * + * {
    margin-left: 6px;
  }
}
.mdb-root .btn-primary:active { background: var(--accent-deep, var(--accent)); }
.mdb-root .btn-primary[disabled], .mdb-root .btn-primary.is-off { background: #C8AA93; background: color-mix(in oklab, var(--accent) 38%, var(--border)); color: var(--paper-ink); }
.mdb-root .btn-ghostc { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 0 18px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); font-size: 14.5px; color: var(--fg); flex: none; }
.mdb-root .btn-ghostc:active { background: var(--soft); }
.mdb-root .sh-note { padding: 12px 0 2px; font-size: 11.5px; color: var(--muted); line-height: 1.65; }
.mdb-root .sh-note.warn { color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg)); }
.mdb-root .sh-sel { margin: 11px 0 0; padding: 10px 12px; background: var(--soft); border-radius: 12px; font-size: 12px; color: var(--muted); line-height: 1.6; font-family: var(--font-mono); }
.mdb-root .sh-sel b { color: var(--fg); font-weight: 600; }
.mdb-root .mchip { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; padding: 0 13px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); font-size: 13px; color: var(--fg); }
@supports not (gap: 1px) {
  .mdb-root .mchip > * + * {
    margin-left: 5px;
  }
}
.mdb-root .mchip:active { background: var(--soft); }
.mdb-root .mchip.on { background: var(--soft-green); border-color: #C6A58E; border-color: color-mix(in oklab, var(--accent) 42%, var(--border)); }
.mdb-root .mchip .cnt { font-family: var(--font-mono); font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .mchip.on .cnt { color: var(--fg); }
.mdb-root .rc-list { margin-top: 4px; }
.mdb-root .rcp { display: flex; align-items: center; gap: 11px; padding: 12px 0; border-bottom: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .rcp > * + * {
    margin-left: 11px;
  }
}
.mdb-root .rcp:last-child { border-bottom: 0; }
.mdb-root .rcp-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
@supports not (gap: 1px) {
  .mdb-root .rcp-main > * + * {
    margin-top: 3px;
  }
}
.mdb-root .rcp-name { font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
@supports not (gap: 1px) {
  .mdb-root .rcp-name > * + * {
    margin-left: 6px;
  }
}
.mdb-root .rcp-ph { font-family: var(--font-mono); font-size: 11px; color: var(--muted-2); font-weight: 400; font-variant-numeric: tabular-nums; }
.mdb-root .rcp-meta { font-family: var(--font-mono); font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .rcp-sub { font-family: var(--font-mono); font-size: 10.5px; color: var(--muted-2); font-variant-numeric: tabular-nums; line-height: 1.5; }
.mdb-root .rcp-amt { flex: none; text-align: right; display: flex; flex-direction: column; gap: 2px; }
@supports not (gap: 1px) {
  .mdb-root .rcp-amt > * + * {
    margin-top: 2px;
  }
}
.mdb-root .rcp-amt b { font-family: var(--font-mono); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mdb-root .rcp-gift { font-family: var(--font-mono); font-size: 10.5px; color: var(--muted-2); font-variant-numeric: tabular-nums; }
.mdb-root .rcp-kind { flex: none; align-self: flex-start; margin-right: 2px; }


/* ── 日历 ── */
.mdb-root .cal-mode { display: flex; gap: 4px; padding: 3px; background: var(--soft); border-radius: 12px; margin: 12px 0 4px; }
@supports not (gap: 1px) {
  .mdb-root .cal-mode > * + * {
    margin-left: 4px;
  }
}
.mdb-root .cal-mode button { flex: 1; min-height: 36px; border-radius: 9px; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.mdb-root .cal-mode button.on { background: var(--surface); color: var(--fg); box-shadow: 0 1px 3px rgba(67, 53, 43, 0.08); box-shadow: 0 1px 3px color-mix(in oklab, var(--fg) 8%, transparent); }
.mdb-root .cal-month { display: flex; align-items: center; justify-content: space-between; padding: 12px 2px 6px; }
.mdb-root .cal-month b { font-family: var(--font-display); font-size: 15px; letter-spacing: .06em; }
.mdb-root .cal-month .cn { display: inline-flex; gap: 2px; }
@supports not (gap: 1px) {
  .mdb-root .cal-month .cn > * + * {
    margin-left: 2px;
  }
}
.mdb-root .cal-nav { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: var(--fg); }
.mdb-root .cal-nav svg { width: 16px; height: 16px; display: block; }
.mdb-root .cal-nav:active { background: var(--soft); }
.mdb-root .cal-nav.is-dis { color: var(--muted-2); cursor: default; }
.mdb-root .cal-wk { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 4px; }
.mdb-root .cal-wk span { text-align: center; font-size: 11px; color: var(--muted-2); font-family: var(--font-mono); padding: 4px 0; }
.mdb-root .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.mdb-root .cal-d { position: relative; aspect-ratio: 1 / 1; display: grid; place-items: center; border-radius: 10px; font-family: var(--font-mono); font-size: 13px; font-variant-numeric: tabular-nums; color: var(--fg); }
.mdb-root .cal-d:active { background: var(--soft); }
.mdb-root .cal-d.is-dis { color: var(--muted-2); opacity: .45; }
.mdb-root .cal-d.is-cur { box-shadow: inset 0 0 0 1.5px var(--accent); }
.mdb-root .cal-d.on { background: var(--accent); color: var(--paper-ink); font-weight: 600; box-shadow: none; }
.mdb-root .cal-d.inrange { background: var(--soft-green); border-radius: 0; color: var(--fg); }
.mdb-root .cal-d.rstart { border-radius: 10px 0 0 10px; }
.mdb-root .cal-d.rend { border-radius: 0 10px 10px 0; }
.mdb-root .cal-legend { display: flex; gap: 14px; padding: 12px 0 4px; font-size: 11px; color: var(--muted); flex-wrap: wrap; }
@supports not (gap: 1px) {
  .mdb-root .cal-legend > * + * {
    margin-left: 14px;
  }
}
.mdb-root .cal-legend span { display: inline-flex; align-items: center; gap: 5px; }
@supports not (gap: 1px) {
  .mdb-root .cal-legend span > * + * {
    margin-left: 5px;
  }
}
.mdb-root .cal-legend i { width: 8px; height: 8px; border-radius: 50%; display: block; }


/* ── 欠账清单与补收 ── */
.mdb-root .debt-row { display: flex; align-items: center; gap: 11px; padding: 13px 0; border-bottom: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .debt-row > * + * {
    margin-left: 11px;
  }
}
.mdb-root .debt-row:last-child { border-bottom: 0; }
.mdb-root .dr-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
@supports not (gap: 1px) {
  .mdb-root .dr-main > * + * {
    margin-top: 2px;
  }
}
.mdb-root .dr-seat { font-size: 14.5px; font-weight: 600; }
.mdb-root .dr-meta { font-family: var(--font-mono); font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.mdb-root .dr-amt { font-family: var(--font-mono); font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; color: #994A30; color: color-mix(in oklab, var(--cinnabar) 84%, var(--fg)); }
.mdb-root .dr-btn { flex: none; min-height: 36px; padding: 0 13px; border-radius: 12px; border: 1px solid #C6A58E; border: 1px solid color-mix(in oklab, var(--accent) 42%, var(--border)); background: var(--soft-green); font-size: 13px; color: var(--fg); font-weight: 600; }
.mdb-root .dr-sum { margin: 12px 0 2px; padding: 11px 13px; background: var(--soft-clay); border-radius: 12px; font-size: 12px; color: var(--muted); line-height: 1.65; }
.mdb-root .dr-sum b { color: var(--fg); }
.mdb-root .rc-card { border: 1px solid var(--border); border-radius: 16px; padding: 13px 14px; margin: 12px 0 0; background: #F6F3EA; background: color-mix(in oklab, var(--surface) 70%, var(--bg)); }
.mdb-root .rc-row { display: flex; align-items: baseline; gap: 10px; min-height: 36px; font-size: 13px; }
@supports not (gap: 1px) {
  .mdb-root .rc-row > * + * {
    margin-left: 10px;
  }
}
.mdb-root .rc-row .k { font-size: 12.5px; color: var(--muted); min-width: 64px; flex: none; }
.mdb-root .rc-row .v { flex: 1; font-variant-numeric: tabular-nums; }
.mdb-root .rc-row .v.mono { font-family: var(--font-mono); }
.mdb-root .rc-amt { display: flex; align-items: baseline; gap: 8px; padding: 12px 0 4px; margin-top: 6px; border-top: 1px dashed var(--border); }
@supports not (gap: 1px) {
  .mdb-root .rc-amt > * + * {
    margin-left: 8px;
  }
}
.mdb-root .rc-amt .k { font-size: 12.5px; color: var(--muted); }
.mdb-root .rc-amt .v { margin-left: auto; font-family: var(--font-mono); font-size: 24px; font-weight: 600; font-variant-numeric: tabular-nums; }
.mdb-root .lock-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; color: var(--muted-2); font-family: var(--font-mono); }
@supports not (gap: 1px) {
  .mdb-root .lock-chip > * + * {
    margin-left: 4px;
  }
}
.mdb-root .lock-chip svg { width: 12px; height: 12px; display: block; }
.mdb-root .pay-picks { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
@supports not (gap: 1px) {
  .mdb-root .pay-picks > * + * {
    margin-top: 8px;
  }
}
.mdb-root .ppick { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
@supports not (gap: 1px) {
  .mdb-root .ppick > * + * {
    margin-left: 10px;
  }
}
.mdb-root .ppick:active { background: var(--soft); }
.mdb-root .ppick.on { border-color: #BE977D; border-color: color-mix(in oklab, var(--accent) 55%, var(--border)); background: var(--soft-green); }
.mdb-root .ppick .ico { width: 20px; height: 20px; color: var(--muted); flex: none; display: block; }
.mdb-root .ppick.on .ico { color: var(--accent); }
.mdb-root .ppick .pn { flex: 1; font-size: 14.5px; }
.mdb-root .ppick .pm { font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); }
.mdb-root .ppick .rd { width: 19px; height: 19px; border-radius: 50%; border: 1.5px solid var(--border); flex: none; display: grid; place-items: center; }
.mdb-root .ppick.on .rd { border-color: var(--accent); background: var(--accent); }
.mdb-root .ppick .rd::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--paper-ink); opacity: 0; }
.mdb-root .ppick.on .rd::after { opacity: 1; }
.mdb-root .pf-note { margin-top: 10px; font-size: 11px; color: var(--muted); line-height: 1.65; }
.mdb-root .res-state { padding: 22px 16px 8px; text-align: center; display: flex; flex-direction: column; align-items: center; }
.mdb-root .res-ico { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: var(--soft-green); color: var(--accent); }
.mdb-root .res-ico svg { width: 28px; height: 28px; display: block; }
.mdb-root .res-ico.warn { background: var(--soft-cinnabar); color: var(--cinnabar); }
.mdb-root .res-ttl { font-family: var(--font-display); font-size: 18px; font-weight: 600; letter-spacing: .06em; margin-top: 14px; }
.mdb-root .res-amt { font-family: var(--font-mono); font-size: 30px; font-weight: 600; font-variant-numeric: tabular-nums; margin-top: 6px; }
.mdb-root .res-txt { font-size: 12.5px; color: var(--muted); line-height: 1.7; margin-top: 8px; max-width: 31ch; }
.mdb-root .res-meta { margin-top: 14px; width: 100%; border-top: 1px dashed var(--border); padding-top: 8px; }
.mdb-root .spin-ico { animation: mdb-spin 1s linear infinite; display: block; }
.mdb-root .search-icon { display: block; }
@media (prefers-reduced-motion: reduce) {.mdb-root *, .mdb-root *::before, .mdb-root *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
.mdb-root .view.push { animation: none; }
.mdb-root .sheet, .mdb-root .sheet-mask { animation: none; }
.mdb-root .sk i { animation: none; }
.mdb-root .bz-refresh.spin svg { animation: none; }
.mdb-root .loadbar .dot { animation: none; }
.mdb-root .spin-ico { animation: none; }
}

.mdb-root[data-v-fb86fa08] { position: relative; overflow: hidden;
}

.mq-confirm-wrap[data-v-55d1c7c3] {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 36px;
  background: rgba(67, 53, 43, 0.42);
  background: color-mix(in oklab, var(--fg) 42%, transparent);
}
@supports not (inset: 0) {
.mq-confirm-wrap[data-v-55d1c7c3] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mq-confirm[data-v-55d1c7c3] {
  width: 100%;
  max-width: 302px;
  padding: 20px 18px 14px;
  border-radius: 18px;
  background: var(--surface);
  box-shadow: var(--shadow-pop, 0 12px 40px rgba(67, 53, 43, 0.18));
  box-shadow: var(--shadow-pop, 0 12px 40px color-mix(in oklab, var(--fg) 18%, transparent));
}
.mq-confirm h3[data-v-55d1c7c3] {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.mq-confirm p[data-v-55d1c7c3] {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.75;
}
.mq-confirm-btns[data-v-55d1c7c3] {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.mq-confirm-btns[data-v-55d1c7c3] > * + * {
    margin-left: 10px;
}
}
.mq-confirm-btns button[data-v-55d1c7c3] {
  flex: 1;
  min-height: 44px;
  border-radius: var(--r-ctl, 8px);
  font-weight: 600;
  font-size: 14.5px;
  cursor: pointer;
  transition: background 0.15s ease;
}
.mq-btn-ghost[data-v-55d1c7c3] {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
}
.mq-btn-ghost[data-v-55d1c7c3]:hover {
  background: var(--soft-green);
}
.mq-btn-primary[data-v-55d1c7c3] {
  border: 0;
  border-bottom: 1px solid #77482D;
  border-bottom: 1px solid color-mix(in oklab, var(--accent) 80%, black);
  background: var(--accent);
  color: var(--paper-ink);
}
.mq-btn-primary.danger[data-v-55d1c7c3] {
  border-bottom-color: #7D3721;
  border-bottom-color: color-mix(in oklab, var(--cinnabar) 80%, black);
  background: var(--cinnabar);
}

.approval-detail[data-v-8ae73f52] {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding: 12px 16px calc(20px + env(safe-area-inset-bottom));
  overflow-y: auto;
  background: var(--task-bg);
  color: var(--task-fg);
  font-family: var(--task-font-body);
  scrollbar-width: none;
}@supports not (gap: 1px) {
.approval-detail[data-v-8ae73f52] > * + * {
    margin-top: 12px;
}
}
.approval-detail[data-v-8ae73f52]::-webkit-scrollbar { display: none;
}
.approval-detail[data-v-8ae73f52]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0 0.042 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.approval-detail[data-v-8ae73f52]::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.detail-card[data-v-8ae73f52] { position: relative; overflow: hidden; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface);
}
.detail-card > h2[data-v-8ae73f52] { margin: 0; padding: 12px 16px 4px; color: var(--task-muted); font-family: var(--task-font-display); font-size: 15px; font-weight: 600; letter-spacing: .08em;
}
.detail-rows[data-v-8ae73f52] { margin: 0; padding: 2px 0 8px;
}
.detail-rows > div[data-v-8ae73f52] { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 8px 16px; font-size: 13.5px; line-height: 1.55;
}
@supports not (gap: 1px) {
.detail-rows > div[data-v-8ae73f52] > * + * {
    margin-left: 14px;
}
}
.detail-rows > div + div[data-v-8ae73f52] { border-top: 1px solid rgba(221, 214, 200, 0.55); border-top: 1px solid color-mix(in oklab, var(--task-border) 55%, transparent);
}
.detail-rows dt[data-v-8ae73f52] { flex: none; color: var(--task-muted);
}
.detail-rows dd[data-v-8ae73f52] { min-width: 0; margin: 0; overflow-wrap: anywhere; font-weight: 500; text-align: right;
}
.action-stack[data-v-8ae73f52] { display: flex; flex-direction: column; gap: 10px; margin: 0 16px; padding: 14px 0 16px; border-top: 1px dashed var(--task-border);
}
@supports not (gap: 1px) {
.action-stack[data-v-8ae73f52] > * + * {
    margin-top: 10px;
}
}
.field[data-v-8ae73f52] { display: flex; flex-direction: column; gap: 5px;
}
@supports not (gap: 1px) {
.field[data-v-8ae73f52] > * + * {
    margin-top: 5px;
}
}
.field span[data-v-8ae73f52] { color: var(--task-muted); font-size: 11px; font-weight: 650; letter-spacing: .08em;
}
.field em[data-v-8ae73f52] { color: var(--task-cinnabar); font-style: normal;
}
.field input[data-v-8ae73f52], .field textarea[data-v-8ae73f52] { width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid var(--task-border); border-radius: 10px; outline: none; background: var(--task-surface); color: var(--task-fg); font: inherit; font-size: 13px; line-height: 1.6;
}
.field textarea[data-v-8ae73f52] { resize: vertical;
}
.field input[data-v-8ae73f52]:focus, .field textarea[data-v-8ae73f52]:focus { border-color: var(--task-accent);
}
.field input[data-v-8ae73f52]:focus-visible, .field textarea[data-v-8ae73f52]:focus-visible, .action-button[data-v-8ae73f52]:focus-visible { outline: 2px solid var(--task-accent); outline-offset: 2px;
}
.action-button[data-v-8ae73f52] { min-height: 47px; padding: 0 14px; border: 0; border-radius: 12px; background: var(--task-accent); color: var(--task-surface); font: inherit; font-size: 14px; font-weight: 650; letter-spacing: .05em; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.action-button.danger[data-v-8ae73f52] { background: var(--task-cinnabar);
}
.action-button.secondary[data-v-8ae73f52] { border: 1px solid var(--task-border); background: var(--task-surface); color: var(--task-fg); letter-spacing: .02em;
}
.action-button[data-v-8ae73f52]:active { filter: brightness(.97);
}
.action-button[data-v-8ae73f52]:disabled { opacity: .5; cursor: not-allowed;
}
.read-only-note[data-v-8ae73f52] { display: flex; align-items: center; gap: 8px; margin: 12px 16px 14px; padding: 9px 12px; border-radius: 10px; background: var(--task-soft-green); color: var(--task-accent); font-size: 12px; line-height: 1.5;
}
@supports not (gap: 1px) {
.read-only-note[data-v-8ae73f52] > * + * {
    margin-left: 8px;
}
}
.read-only-note[data-v-8ae73f52]::before { flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; content: "";
}
.corr-changes[data-v-8ae73f52] { margin: 4px 16px 0; padding: 10px 12px; border: 1px solid #CFA692; border: 1px solid color-mix(in oklab, var(--task-cinnabar) 35%, var(--task-border)); border-radius: 10px; background: #F4EAE0; background: color-mix(in oklab, var(--task-cinnabar) 7%, var(--task-surface));
}
.corr-changes h3[data-v-8ae73f52] { margin: 0 0 6px; color: var(--task-cinnabar); font-size: 12px; font-weight: 650; letter-spacing: .06em;
}
.corr-change + .corr-change[data-v-8ae73f52] { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--task-border);
}
.corr-change p[data-v-8ae73f52] { margin: 0; font-size: 13px; line-height: 1.55;
}
.corr-meta[data-v-8ae73f52] { color: var(--task-muted); font-size: 11.5px;
}

.incident-badges[data-v-eeff02df] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}@supports not (gap: 1px) {
.incident-badges[data-v-eeff02df] > * + * {
    margin-left: 6px;
}
}
.badge[data-v-eeff02df] {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 18px;
  color: var(--color-paper);
  white-space: nowrap;
}

.incident-detail[data-v-69a3d0b0] {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding: 12px 16px calc(20px + env(safe-area-inset-bottom));
  overflow-y: auto;
  background: var(--task-bg);
  color: var(--task-fg);
  font-family: var(--task-font-body);
  scrollbar-width: none;
}@supports not (gap: 1px) {
.incident-detail[data-v-69a3d0b0] > * + * {
    margin-top: 12px;
}
}
.incident-detail[data-v-69a3d0b0]::-webkit-scrollbar { display: none;
}
.incident-detail[data-v-69a3d0b0]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0 0.042 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.incident-detail[data-v-69a3d0b0]::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.detail-card[data-v-69a3d0b0] { position: relative; overflow: hidden; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface);
}
.detail-card h2[data-v-69a3d0b0] { margin: 0; padding: 12px 16px 2px; color: var(--task-muted); font-size: 12px; font-weight: 400; letter-spacing: .14em;
}
.detail-heading[data-v-69a3d0b0] { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-right: 16px;
}
@supports not (gap: 1px) {
.detail-heading[data-v-69a3d0b0] > * + * {
    margin-left: 10px;
}
}
.detail-heading h2[data-v-69a3d0b0] { flex: 1;
}
.detail-rows[data-v-69a3d0b0] { margin: 0; padding: 2px 0 6px;
}
.detail-rows > div[data-v-69a3d0b0] { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 8px 16px; font-size: 13.5px; line-height: 1.55;
}
@supports not (gap: 1px) {
.detail-rows > div[data-v-69a3d0b0] > * + * {
    margin-left: 14px;
}
}
.detail-rows > div + div[data-v-69a3d0b0] { border-top: 1px solid rgba(221, 214, 200, 0.55); border-top: 1px solid color-mix(in oklab, var(--task-border) 55%, transparent);
}
.detail-rows dt[data-v-69a3d0b0] { flex: none; color: var(--task-muted);
}
.detail-rows dd[data-v-69a3d0b0] { min-width: 0; margin: 0; overflow-wrap: anywhere; font-weight: 500; text-align: right;
}
.photo-grid[data-v-69a3d0b0] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 10px 16px 14px;
}
.photo-grid img[data-v-69a3d0b0], .photo-unavailable[data-v-69a3d0b0] { aspect-ratio: 1; width: 100%; box-sizing: border-box; border: 1px solid var(--task-border); border-radius: 10px; background: var(--task-soft); object-fit: cover;
}
.photo-unavailable[data-v-69a3d0b0] { display: flex; align-items: center; justify-content: center; margin: 0; padding: 8px; color: var(--task-muted); font-size: 11px; text-align: center;
}
.timeline[data-v-69a3d0b0] { margin: 0; padding: 6px 16px 14px; list-style: none;
}
.timeline li[data-v-69a3d0b0] { position: relative; display: flex; gap: 10px; padding: 6px 0 6px 2px;
}
@supports not (gap: 1px) {
.timeline li[data-v-69a3d0b0] > * + * {
    margin-left: 10px;
}
}
.timeline li[data-v-69a3d0b0]::before { content: ""; position: absolute; left: 8px; top: 24px; bottom: -8px; width: 1px; background: var(--task-border);
}
.timeline li[data-v-69a3d0b0]:last-child::before { display: none;
}
.timeline li[data-v-69a3d0b0]::after { order: -1; content: ""; flex: none; width: 11px; height: 11px; margin-top: 5px; border: 1.5px solid var(--task-muted-2); border-radius: 50%; background: var(--task-surface);
}
.timeline li[data-v-69a3d0b0]:first-child::after { border-color: var(--task-accent); background: var(--task-accent);
}
.timeline strong[data-v-69a3d0b0] { flex: none; width: 58px; font-size: 12.5px; font-weight: 600;
}
.timeline span[data-v-69a3d0b0] { flex: 1; min-width: 0; font-size: 12.5px;
}
.timeline time[data-v-69a3d0b0] { flex: none; color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 11px; font-variant-numeric: tabular-nums;
}
.muted[data-v-69a3d0b0] { margin: 0; padding: 2px 16px 12px; color: var(--task-muted); font-size: 12px;
}
.action-dock[data-v-69a3d0b0] { position: sticky; bottom: 0; z-index: 2; display: flex; flex-direction: column; gap: 9px; margin: 0 -16px calc(-20px - env(safe-area-inset-bottom)); padding: 12px 16px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--task-border); background: #F8F5ED; background: color-mix(in oklab, var(--task-surface) 94%, var(--task-bg)); box-shadow: 0 -8px 22px rgba(67, 53, 43, 0.08); box-shadow: 0 -8px 22px color-mix(in oklab, var(--task-fg) 8%, transparent);
}
@supports not (gap: 1px) {
.action-dock[data-v-69a3d0b0] > * + * {
    margin-top: 9px;
}
}
.action-button[data-v-69a3d0b0] { min-height: 47px; padding: 0 14px; border: 0; border-radius: 12px; background: var(--task-accent); color: var(--task-surface); font: inherit; font-size: 14px; font-weight: 650; letter-spacing: .05em; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.action-button.danger[data-v-69a3d0b0] { background: var(--task-cinnabar);
}
.action-button.secondary[data-v-69a3d0b0] { border: 1px solid var(--task-border); background: var(--task-surface); color: var(--task-fg); letter-spacing: .02em;
}
.action-button[data-v-69a3d0b0]:active { filter: brightness(.97);
}
.action-button[data-v-69a3d0b0]:disabled { opacity: .5; cursor: not-allowed;
}
.action-button[data-v-69a3d0b0]:focus-visible { outline: 2px solid var(--task-fg); outline-offset: 2px;
}
.progressive-form[data-v-69a3d0b0] { display: flex; flex-direction: column; gap: 10px; padding-top: 2px;
}
@supports not (gap: 1px) {
.progressive-form[data-v-69a3d0b0] > * + * {
    margin-top: 10px;
}
}
.progressive-form label[data-v-69a3d0b0] { display: flex; flex-direction: column; gap: 5px; color: var(--task-muted); font-size: 11px; font-weight: 650; letter-spacing: .08em;
}
@supports not (gap: 1px) {
.progressive-form label[data-v-69a3d0b0] > * + * {
    margin-top: 5px;
}
}
.progressive-form em[data-v-69a3d0b0] { color: var(--task-cinnabar); font-style: normal;
}
.progressive-form textarea[data-v-69a3d0b0] { width: 100%; box-sizing: border-box; min-height: 82px; padding: 9px 10px; border: 1px solid var(--task-border); border-radius: 10px; outline: none; background: var(--task-surface); color: var(--task-fg); font: inherit; font-size: 13px; font-weight: 400; line-height: 1.6; letter-spacing: normal; resize: vertical;
}
.progressive-form textarea[data-v-69a3d0b0]:focus { border-color: var(--task-accent);
}

.handling-queue[data-v-dfd3ee0a] {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 0 16px calc(24px + env(safe-area-inset-bottom));
  background: var(--task-bg);
  color: var(--task-fg);
  font-family: var(--task-font-body);
  scrollbar-width: none;
}
.handling-queue[data-v-dfd3ee0a]::-webkit-scrollbar { display: none;
}
.handling-queue[data-v-dfd3ee0a]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0 0.042 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.handling-queue[data-v-dfd3ee0a]::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.handling-header[data-v-dfd3ee0a] { position: relative; display: flex; align-items: flex-end; gap: 8px; padding: 12px 2px 10px;
}
@supports not (gap: 1px) {
.handling-header[data-v-dfd3ee0a] > * + * {
    margin-left: 8px;
}
}
.handling-header h1[data-v-dfd3ee0a] { flex: 1; min-width: 0; margin: 0; font-family: var(--task-font-display); font-size: 21px; font-weight: 600; letter-spacing: .05em; line-height: 1.2;
}
.handling-header p[data-v-dfd3ee0a] { margin: 0; color: var(--task-muted); font-size: 12px; font-variant-numeric: tabular-nums;
}
.handling-tabs[data-v-dfd3ee0a] { position: relative; display: flex; margin: 0 0 4px; padding: 3px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface);
}
.handling-tab[data-v-dfd3ee0a] { flex: 1; min-width: 0; min-height: 40px; padding: 0 4px; border: 0; border-radius: 9px; background: transparent; color: var(--task-muted); font: inherit; font-size: 12.5px; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.handling-tab[data-v-dfd3ee0a]:active { background: var(--task-soft);
}
.handling-tab.is-active[data-v-dfd3ee0a] { background: var(--task-soft-green); color: var(--task-accent); font-weight: 600;
}
.handling-panel[data-v-dfd3ee0a] { position: relative; padding-top: 10px;
}
.source-notice[data-v-dfd3ee0a], .focus-note[data-v-dfd3ee0a] { margin: 10px 0 0; padding: 10px 12px; border-radius: 11px; background: var(--task-soft); color: var(--task-muted); font-size: 12px; line-height: 1.6;
}
.focus-note[data-v-dfd3ee0a] { border: 1px solid #CAAD98; border: 1px solid color-mix(in oklab, var(--task-accent) 35%, var(--task-border)); background: var(--task-soft-green); color: var(--task-accent);
}
.text-button[data-v-dfd3ee0a] { min-height: 28px; margin-left: 4px; padding: 0 4px; border: 0; background: transparent; color: var(--task-accent); font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer;
}
.state-copy[data-v-dfd3ee0a] { margin: 32px 0; color: var(--task-muted); font-family: var(--task-font-display); font-size: 13px; text-align: center;
}
.queue-list[data-v-dfd3ee0a], .history-list[data-v-dfd3ee0a] { display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.queue-list[data-v-dfd3ee0a] > * + *,
.history-list[data-v-dfd3ee0a] > * + * {
    margin-top: 8px;
}
}
.queue-card[data-v-dfd3ee0a] { position: relative; display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: 5px; width: 100%; min-height: 96px; padding: 12px 14px; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface); color: var(--task-fg); text-align: left; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; box-shadow: 0 1px 0 rgba(248, 246, 238, 0.7); box-shadow: 0 1px 0 color-mix(in oklab, var(--task-surface) 70%, transparent);
}
@supports not (gap: 1px) {
.queue-card[data-v-dfd3ee0a] > * + * {
    margin-top: 5px;
}
}
.queue-card[data-v-dfd3ee0a]:active { background: var(--task-soft);
}
.queue-card.priority-urgent[data-v-dfd3ee0a] { border-color: #C1826A; border-color: color-mix(in oklab, var(--task-cinnabar) 62%, var(--task-border)); background: #F7E8DE; background: color-mix(in oklab, var(--task-soft-cinnabar) 48%, var(--task-surface));
}
.queue-card.priority-important[data-v-dfd3ee0a] { border-color: #C8AA93; border-color: color-mix(in oklab, var(--task-accent) 38%, var(--task-border));
}
.queue-card.is-focused[data-v-dfd3ee0a] { border-color: var(--task-accent); box-shadow: 0 0 0 2px rgba(162, 100, 64, 0.3); box-shadow: 0 0 0 2px color-mix(in oklab, var(--task-accent) 30%, transparent);
}
.queue-card__meta[data-v-dfd3ee0a], .queue-card__footer[data-v-dfd3ee0a] { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0;
}
@supports not (gap: 1px) {
.queue-card__meta[data-v-dfd3ee0a] > * + *,
.queue-card__footer[data-v-dfd3ee0a] > * + * {
    margin-left: 8px;
}
}
.kind-tag[data-v-dfd3ee0a], .action-hint[data-v-dfd3ee0a], .status-tag[data-v-dfd3ee0a] { display: inline-flex; flex: none; align-items: center; gap: 4px; min-height: 19px; padding: 2px 7px; border-radius: 999px; background: var(--task-soft); color: var(--task-muted); font-family: var(--task-font-display); font-size: 9.5px; letter-spacing: .05em; white-space: nowrap;
}
@supports not (gap: 1px) {
.kind-tag[data-v-dfd3ee0a] > * + *,
.action-hint[data-v-dfd3ee0a] > * + *,
.status-tag[data-v-dfd3ee0a] > * + * {
    margin-left: 4px;
}
}
.kind-tag[data-v-dfd3ee0a]::before { width: 5px; height: 5px; border-radius: 50%; background: currentColor; content: "";
}
.action-hint[data-v-dfd3ee0a] { background: var(--task-soft-clay); color: var(--task-accent);
}
.status-tag[data-v-dfd3ee0a] { background: var(--task-soft); color: var(--task-muted);
}
.priority-urgent .kind-tag[data-v-dfd3ee0a] { background: var(--task-soft-cinnabar); color: var(--task-cinnabar);
}
.queue-card__title[data-v-dfd3ee0a] { overflow: hidden; font-size: 14px; font-weight: 650; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap;
}
.queue-card__summary[data-v-dfd3ee0a] { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--task-muted); font-size: 11.5px; line-height: 1.55;
}
.queue-card__footer[data-v-dfd3ee0a] { margin-top: auto; color: var(--task-muted-2); font-size: 10.5px; font-variant-numeric: tabular-nums;
}
.chevron[data-v-dfd3ee0a] { flex: none; width: 7px; height: 7px; margin-right: 2px; border-top: 1.5px solid var(--task-muted-2); border-right: 1.5px solid var(--task-muted-2); transform: rotate(45deg);
}
.empty-state[data-v-dfd3ee0a], .page-error[data-v-dfd3ee0a] { margin: 32px 4px; padding: 28px 20px; border: 1px dashed var(--task-border); border-radius: 14px; color: var(--task-muted); font-family: var(--task-font-display); font-size: 14px; line-height: 1.9; text-align: center;
}
.page-error[data-v-dfd3ee0a] { border-style: solid; border-color: #CCA08B; border-color: color-mix(in oklab, var(--task-cinnabar) 40%, var(--task-border)); background: var(--task-soft-cinnabar); color: var(--task-cinnabar);
}
.page-error p[data-v-dfd3ee0a] { margin: 0 0 12px;
}
.retry-button[data-v-dfd3ee0a] { min-height: 40px; padding: 0 16px; border: 0; border-radius: 10px; background: var(--task-cinnabar); color: var(--task-surface); font: inherit; font-size: 13px; font-weight: 650; letter-spacing: .05em; cursor: pointer;
}
.collaboration-section[data-v-dfd3ee0a] { margin-top: 20px;
}
.collaboration-section h2[data-v-dfd3ee0a], .incident-group h2[data-v-dfd3ee0a] { display: flex; flex: 1; align-items: baseline; gap: 8px; margin: 0; padding: 0 5px 7px; color: var(--task-muted); font-size: 11px; font-weight: 650; letter-spacing: .15em;
}
@supports not (gap: 1px) {
.collaboration-section h2[data-v-dfd3ee0a] > * + *,
.incident-group h2[data-v-dfd3ee0a] > * + * {
    margin-left: 8px;
}
}
.collaboration-section p[data-v-dfd3ee0a] { margin: 0; padding: 0 5px 8px; color: var(--task-muted-2); font-size: 10.5px;
}
.collaboration-section h2 span[data-v-dfd3ee0a], .incident-group h2 span[data-v-dfd3ee0a] { color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 10px; font-weight: 400;
}
.collaboration-row[data-v-dfd3ee0a] { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: var(--touch-min); padding: 10px 12px; border: 1px solid var(--task-border); border-radius: 12px; background: var(--task-surface); color: var(--task-muted); text-align: left; font: inherit; font-size: 12.5px; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.collaboration-row[data-v-dfd3ee0a] > * + * {
    margin-left: 12px;
}
}
.collaboration-row + .collaboration-row[data-v-dfd3ee0a] { margin-top: 6px;
}
.collaboration-row[data-v-dfd3ee0a]:active { background: var(--task-soft);
}
.collaboration-row span[data-v-dfd3ee0a]:last-child { flex: none; color: var(--task-muted-2); font-variant-numeric: tabular-nums;
}
.incident-groups[data-v-dfd3ee0a] { display: flex; flex-direction: column; gap: 16px;
}
@supports not (gap: 1px) {
.incident-groups[data-v-dfd3ee0a] > * + * {
    margin-top: 16px;
}
}
.incident-group h2[data-v-dfd3ee0a] { margin-bottom: 2px;
}
.incident-group h2 span[data-v-dfd3ee0a] { margin-left: auto;
}
.history-panel[data-v-dfd3ee0a] { display: flex; flex-direction: column; gap: 10px;
}
@supports not (gap: 1px) {
.history-panel[data-v-dfd3ee0a] > * + * {
    margin-top: 10px;
}
}
.history-tools[data-v-dfd3ee0a] { display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.history-tools[data-v-dfd3ee0a] > * + * {
    margin-top: 8px;
}
}
.mode-switch[data-v-dfd3ee0a] { display: flex; gap: 6px;
}
@supports not (gap: 1px) {
.mode-switch[data-v-dfd3ee0a] > * + * {
    margin-left: 6px;
}
}
.mode-switch button[data-v-dfd3ee0a] { flex: 1; min-height: 34px; padding: 0 10px; border: 1px solid var(--task-border); border-radius: 999px; background: var(--task-surface); color: var(--task-muted); font: inherit; font-size: 11px; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.mode-switch button.is-active[data-v-dfd3ee0a] { border-color: var(--task-accent); background: var(--task-soft-green); color: var(--task-accent); font-weight: 600;
}
.history-row[data-v-dfd3ee0a] { display: flex; align-items: center; gap: 6px;
}
@supports not (gap: 1px) {
.history-row[data-v-dfd3ee0a] > * + * {
    margin-left: 6px;
}
}
.step-button[data-v-dfd3ee0a] { flex: none; min-height: 36px; padding: 0 9px; border: 1px solid var(--task-border); border-radius: 9px; background: var(--task-surface); color: var(--task-fg); font: inherit; font-size: 11px; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.step-button.today-button[data-v-dfd3ee0a] { color: var(--task-accent); font-weight: 600;
}
.step-button[data-v-dfd3ee0a]:active { background: var(--task-soft-green);
}
.history-date-picker[data-v-dfd3ee0a] { flex: 1 1 auto; min-width: 0;
}
.range-picker[data-v-dfd3ee0a] { flex: 1 1 auto; min-width: 0;
}
.range-sep[data-v-dfd3ee0a] { flex: none; color: var(--task-muted-2); font-size: 11px;
}
.history-row[data-v-dfd3ee0a] .dps-trigger { min-height: 36px; padding: 0 10px; border: 1px solid var(--task-border); border-radius: 9px; background: var(--task-surface); color: var(--task-fg); font-family: var(--task-font-display); font-size: 13px; letter-spacing: .04em; text-align: center;
}
.history-item[data-v-dfd3ee0a] { display: flex; flex-direction: column; gap: 5px; padding: 12px 14px; border: 1px solid var(--task-border); border-radius: 14px; background: var(--task-surface);
}
@supports not (gap: 1px) {
.history-item[data-v-dfd3ee0a] > * + * {
    margin-top: 5px;
}
}
.history-item strong[data-v-dfd3ee0a] { font-size: 14px; font-weight: 650; line-height: 1.45;
}
.history-item__action[data-v-dfd3ee0a] { color: var(--task-accent); font-size: 11.5px; font-weight: 600;
}
.history-item__summary[data-v-dfd3ee0a] { color: var(--task-muted); font-size: 11.5px; line-height: 1.55;
}
.history-item time[data-v-dfd3ee0a] { color: var(--task-muted-2); font-family: var(--task-font-mono); font-size: 11.5px; font-variant-numeric: tabular-nums;
}
.handling-tab[data-v-dfd3ee0a]:focus-visible, .queue-card[data-v-dfd3ee0a]:focus-visible, .collaboration-row[data-v-dfd3ee0a]:focus-visible, .text-button[data-v-dfd3ee0a]:focus-visible, .retry-button[data-v-dfd3ee0a]:focus-visible, .step-button[data-v-dfd3ee0a]:focus-visible, .mode-switch button[data-v-dfd3ee0a]:focus-visible { outline: 2px solid var(--task-accent); outline-offset: 2px;
}
@media (prefers-reduced-motion: no-preference) {
.handling-tab[data-v-dfd3ee0a], .queue-card[data-v-dfd3ee0a], .step-button[data-v-dfd3ee0a], .mode-switch button[data-v-dfd3ee0a] { transition: background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
}
}

.handling-view[data-v-d930e5b7] { position: relative; display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; overflow: hidden; background: var(--task-bg); color: var(--task-fg); font-family: var(--task-font-body);
}
.feedback[data-v-d930e5b7] { position: relative; z-index: 1; flex: 0 0 auto; display: flex; align-items: center; gap: 8px; margin: 8px 16px 0; padding: 9px 12px; border-radius: 10px; background: var(--task-soft-green); color: var(--task-accent); font-size: 12px; line-height: 1.5;
}
@supports not (gap: 1px) {
.feedback[data-v-d930e5b7] > * + * {
    margin-left: 8px;
}
}
.feedback[data-v-d930e5b7]::before { flex: none; width: 6px; height: 6px; border-radius: 50%; background: currentColor; content: "";
}
.feedback[role="alert"][data-v-d930e5b7] { border: 1px solid #CCA08B; border: 1px solid color-mix(in oklab, var(--task-cinnabar) 40%, var(--task-border)); background: var(--task-soft-cinnabar); color: var(--task-cinnabar);
}
.feedback[role="alert"][data-v-d930e5b7]::before { width: auto; height: auto; background: none; content: "!"; font-weight: 700;
}
.detail-header[data-v-d930e5b7] { position: relative; z-index: 1; display: flex; flex: 0 0 auto; align-items: center; gap: 8px; min-height: 52px; padding: 0 12px; border-bottom: 1px solid var(--task-border); background: #F2EDE1; background: color-mix(in oklab, var(--task-bg) 92%, var(--task-surface));
}
@supports not (gap: 1px) {
.detail-header[data-v-d930e5b7] > * + * {
    margin-left: 8px;
}
}
.detail-header h1[data-v-d930e5b7] { min-width: 0; margin: 0; overflow: hidden; font-family: var(--task-font-display); font-size: 17px; font-weight: 600; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap;
}
.back-button[data-v-d930e5b7] { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; min-height: var(--touch-min); padding: 0 6px; border: 0; background: transparent; color: var(--task-accent); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
.back-button[data-v-d930e5b7] > * + * {
    margin-left: 6px;
}
}
.back-button[data-v-d930e5b7]:active { opacity: .65;
}
.back-button[data-v-d930e5b7]:focus-visible { outline: 2px solid var(--task-accent); outline-offset: 2px;
}
.back-chevron[data-v-d930e5b7] { width: 8px; height: 8px; margin-left: 2px; border-bottom: 1.5px solid currentColor; border-left: 1.5px solid currentColor; transform: rotate(45deg);
}

.my-leaves-view[data-v-656edd10] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
}
.my-leaves-header[data-v-656edd10] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 16px;
}
@supports not (gap: 1px) {
.my-leaves-header[data-v-656edd10] > * + * {
    margin-left: 8px;
}
}
.back-btn[data-v-656edd10] {
  padding: 6px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  font-size: 13px;
  color: var(--color-ink);
  cursor: pointer;
  font-family: inherit;
}
.my-leaves-title[data-v-656edd10] {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--color-ink);
}
.error-box[data-v-656edd10] {
  margin: 0 16px 8px;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.success-box[data-v-656edd10] {
  margin: 0 16px 8px;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.hint[data-v-656edd10] {
  margin: 24px 16px;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.empty-state[data-v-656edd10] {
  margin: 32px 16px;
  padding: 40px 16px;
  border-radius: var(--radius);
  background: var(--color-paper);
  text-align: center;
  font-size: 14px;
  color: var(--color-wood-gray);
}
.leave-list[data-v-656edd10] {
  margin: 0 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@supports not (gap: 1px) {
.leave-list[data-v-656edd10] > * + * {
    margin-top: 10px;
}
}
.leave-item[data-v-656edd10] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
}
@supports not (gap: 1px) {
.leave-item[data-v-656edd10] > * + * {
    margin-top: 6px;
}
}
.leave-row[data-v-656edd10] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
@supports not (gap: 1px) {
.leave-row[data-v-656edd10] > * + * {
    margin-left: 8px;
}
}
.leave-kind[data-v-656edd10] {
  align-self: flex-start;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}
/* 类型徽标：公休绿 / 请假灰 / 事假陶土 / 病假红（全部使用 tokens.css 实有变量） */
.kind-rest[data-v-656edd10] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.kind-leave[data-v-656edd10] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.kind-personal[data-v-656edd10] {
  background: var(--color-surface-clay);
  color: var(--color-clay);
}
.kind-sick[data-v-656edd10] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.leave-status[data-v-656edd10] {
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.status-pending[data-v-656edd10] {
  background: var(--color-surface-clay);
  color: var(--color-clay);
}
.status-approved[data-v-656edd10] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.status-rejected[data-v-656edd10] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.status-cancelled[data-v-656edd10] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.leave-date[data-v-656edd10] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.leave-reason[data-v-656edd10] {
  margin: 0;
  font-size: 13px;
  color: var(--color-wood-gray);
}
/* B-141：取消休假为次要操作，描边克制（非实心警示色，与审批中心一致） */
.cancel-btn[data-v-656edd10] {
  align-self: flex-start;
  margin-top: 2px;
  padding: 8px 16px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
}
.cancel-btn[data-v-656edd10]:active {
  background: var(--color-surface-soft);
}
.cancel-btn[data-v-656edd10]:disabled {
  opacity: 0.5;
  cursor: default;
}
.leave-sec[data-v-656edd10] { margin: 14px 2px 6px; font-size: 11px; color: var(--color-wood-gray); letter-spacing: .08em;
}
.leave-review[data-v-656edd10] { margin: 4px 0 0; font-size: 11px; color: var(--color-wood-gray);
}
.leave-ops[data-v-656edd10] { display: flex; gap: 8px;
}
@supports not (gap: 1px) {
.leave-ops[data-v-656edd10] > * + * {
    margin-left: 8px;
}
}

.products-view[data-v-4508b45c] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
}
/* 页头：深叶墨，与采买页同语言 */
.page-head[data-v-4508b45c] {
  padding: 18px 16px 14px;
  background: var(--color-ink);
  color: var(--color-paper);
}
.page-title[data-v-4508b45c] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--color-paper);
}
.page-sub[data-v-4508b45c] {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--color-text-soft);
}
.alert[data-v-4508b45c] {
  margin: 12px 16px 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
}
.alert.error[data-v-4508b45c] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.hint[data-v-4508b45c] {
  margin: 24px 16px;
  font-size: 13px;
  color: var(--color-wood-gray);
}
/* 分类导航（B-71）：chips 对齐商城 tab 习惯，选中态高亮 */
.cat-nav[data-v-4508b45c] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 16px 0;
}
@supports not (gap: 1px) {
.cat-nav[data-v-4508b45c] > * + * {
    margin-left: 8px;
}
}
.cat-nav-sub[data-v-4508b45c] {
  padding-top: 8px;
}
.cat-chip[data-v-4508b45c] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 13px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
@supports not (gap: 1px) {
.cat-chip[data-v-4508b45c] > * + * {
    margin-left: 5px;
}
}
.cat-chip[data-v-4508b45c]:hover {
  border-color: var(--color-green);
}
.cat-chip.on[data-v-4508b45c] {
  border-color: transparent;
  background: var(--color-green);
  color: var(--color-paper);
}
.cat-count[data-v-4508b45c] {
  font-size: 11px;
  color: var(--color-wood-gray);
  font-variant-numeric: tabular-nums;
}
.cat-chip.on .cat-count[data-v-4508b45c] {
  color: rgba(251, 245, 234, 0.85);
}
.cat-empty[data-v-4508b45c] {
  text-align: center;
}
/* 商城链接（B-72）：对齐移动端辅助文案风格 */
.shop-link[data-v-4508b45c] {
  display: block;
  margin: 2px 16px 0;
  font-size: 13px;
  color: var(--color-green);
  text-decoration: none;
  line-height: 1.6;
}
.shop-link[data-v-4508b45c]:hover {
  text-decoration: underline;
}
/* 列表：两列卡片 */
.product-grid[data-v-4508b45c] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px 16px 24px;
}
.product-card[data-v-4508b45c] {
  display: flex;
  flex-direction: column;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
}
.product-card[data-v-4508b45c]:active {
  opacity: 0.85;
  transition: opacity var(--duration-fast, 120ms);
}
.card-thumb[data-v-4508b45c] {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.card-thumb img[data-v-4508b45c] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ph[data-v-4508b45c] {
  color: var(--color-wood-gray);
  font-size: 15px;
  letter-spacing: 2px;
}
.ph.large[data-v-4508b45c] {
  font-size: 22px;
}
.stock-tag[data-v-4508b45c] {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  font-size: 11px;
}
.stock-tag.out[data-v-4508b45c] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.stock-tag.low[data-v-4508b45c] {
  background: var(--color-surface-clay);
  color: var(--color-clay);
}
.stock-tag.paused[data-v-4508b45c] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.card-body[data-v-4508b45c] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
}
@supports not (gap: 1px) {
.card-body[data-v-4508b45c] > * + * {
    margin-left: 8px;
}
}
.card-name[data-v-4508b45c] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.card-price[data-v-4508b45c] {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-cinnabar);
}
.card-price.price-ask[data-v-4508b45c] {
  color: var(--color-clay);
}
/* 详情 */
.detail-head[data-v-4508b45c] {
  padding: 12px 16px 4px;
}
.back-btn[data-v-4508b45c] {
  padding: 8px 4px;
  border: none;
  background: none;
  color: var(--color-green);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.detail-main[data-v-4508b45c] {
  padding: 4px 16px 8px;
}
.detail-thumb[data-v-4508b45c] {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.detail-thumb img[data-v-4508b45c] {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.detail-name[data-v-4508b45c] {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 600;
  color: var(--color-ink);
}
.detail-price[data-v-4508b45c] {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 600;
  color: var(--color-cinnabar);
}
.detail-summary[data-v-4508b45c] {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-wood-gray);
}
/* 内部资料区块 */
.internal-doc[data-v-4508b45c] {
  margin: 8px 16px 28px;
  padding: 14px 16px;
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-green);
  border-radius: var(--radius);
  background: var(--color-paper);
}
/* v2.0 动态字段行 */
.field-rows[data-v-4508b45c] {
  margin: 0;
  padding: 0 16px;
}
.field-row[data-v-4508b45c] {
  display: flex;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--color-border);
}
@supports not (gap: 1px) {
.field-row[data-v-4508b45c] > * + * {
    margin-left: 12px;
}
}
.field-row[data-v-4508b45c]:last-child {
  border-bottom: none;
}
.field-label[data-v-4508b45c] {
  flex: 0 0 72px;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field-value[data-v-4508b45c] {
  margin: 0;
  font-size: 13px;
  color: var(--color-ink);
}
.doc-sub[data-v-4508b45c] {
  margin: 10px 0 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-ink);
}
.doc-title[data-v-4508b45c] {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-green);
}
.doc-body[data-v-4508b45c] {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-ink);
}
.doc-body[data-v-4508b45c] h1,
.doc-body[data-v-4508b45c] h2,
.doc-body[data-v-4508b45c] h3 {
  margin: 14px 0 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.doc-body[data-v-4508b45c] h1:first-child,
.doc-body[data-v-4508b45c] h2:first-child,
.doc-body[data-v-4508b45c] h3:first-child {
  margin-top: 0;
}
.doc-body[data-v-4508b45c] p {
  margin: 6px 0;
}
.doc-body[data-v-4508b45c] ul,
.doc-body[data-v-4508b45c] ol {
  margin: 6px 0;
  padding-left: 20px;
}
.doc-body[data-v-4508b45c] strong {
  font-weight: 600;
}
.doc-body[data-v-4508b45c] code {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--color-surface-soft);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
}

.wechat-bind-view[data-v-84881fda] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
}
/* 页面头（与手机端 app 页面统一风格） */
.page-head[data-v-84881fda] {
  flex: 0 0 auto;
  margin: 10px 12px 0;
  padding: 14px 14px 12px;
  background: var(--color-ink);
  border-radius: var(--radius-lg);
  color: var(--color-paper);
}
.page-title[data-v-84881fda] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: var(--color-paper);
}
.page-sub[data-v-84881fda] {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--color-text-soft);
}
/* 非微信兜底提示：顶部小字 */
.env-tip[data-v-84881fda] {
  margin: 10px 16px 0;
  font-size: 12px;
  color: var(--color-clay);
}
.error-box[data-v-84881fda] {
  margin: 10px 16px 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.success-box[data-v-84881fda] {
  margin: 10px 16px 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.card[data-v-84881fda] {
  margin: 12px 16px;
  padding: 20px 16px;
  border-radius: var(--radius);
  background: var(--color-paper);
  border: 1px solid var(--color-border);
}
.muted-text[data-v-84881fda] {
  margin: 0;
  font-size: 14px;
  color: var(--color-wood-gray);
}
/* 小节标题（微信绑定 / 通知开关） */
.section-title[data-v-84881fda] {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.section-desc[data-v-84881fda] {
  margin: 0 0 14px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--color-wood-gray);
}
/* 通知开关列表 */
.setting-list[data-v-84881fda] {
  margin: 0;
  padding: 0;
  list-style: none;
}
.setting-row[data-v-84881fda] {
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border);
}
.setting-row[data-v-84881fda]:first-child {
  padding-top: 4px;
}
.setting-row[data-v-84881fda]:last-child {
  border-bottom: none;
  padding-bottom: 4px;
}
/* 不在接收范围：整行置灰（广播事件且本人角色不在接收角色内） */
.setting-row.row-muted[data-v-84881fda] {
  opacity: 0.55;
}
.setting-head[data-v-84881fda] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}
@supports not (gap: 1px) {
.setting-head[data-v-84881fda] > * + * {
    margin-left: 6px;
}
}
.event-name[data-v-84881fda] {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-ink);
}
.lock-tag[data-v-84881fda],
.na-tag[data-v-84881fda] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  white-space: nowrap;
}
.lock-tag[data-v-84881fda] {
  background: var(--color-surface-clay);
  color: var(--color-cinnabar);
}
.na-tag[data-v-84881fda] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.channel-switches[data-v-84881fda] {
  display: flex;
  align-items: center;
  gap: 22px;
}
@supports not (gap: 1px) {
.channel-switches[data-v-84881fda] > * + * {
    margin-left: 22px;
}
}
/* 开关（与 Task 4 管理端订阅矩阵同视觉） */
.switch[data-v-84881fda] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  position: relative;
}
@supports not (gap: 1px) {
.switch[data-v-84881fda] > * + * {
    margin-left: 8px;
}
}
.switch input[data-v-84881fda] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.switch-dot[data-v-84881fda] {
  width: 36px;
  height: 20px;
  border-radius: var(--radius-pill);
  background: var(--color-green);
  position: relative;
  transition: background var(--duration-fast) var(--ease-out);
  flex: 0 0 auto;
}
.switch-dot[data-v-84881fda]::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 18px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-paper);
  transition: left var(--duration-fast) var(--ease-out);
}
.switch.off .switch-dot[data-v-84881fda] {
  background: var(--color-border);
}
.switch.off .switch-dot[data-v-84881fda]::after {
  left: 2px;
}
/* 禁用态：管理员锁定 / 不在接收范围（切换不生效，后端亦 403 兜底） */
.switch.locked[data-v-84881fda] {
  cursor: not-allowed;
}
.switch.locked .switch-dot[data-v-84881fda] {
  background: var(--color-clay);
}
.switch.locked.off .switch-dot[data-v-84881fda] {
  background: var(--color-border);
}
.channel-label[data-v-84881fda] {
  font-size: 12px;
  color: var(--color-wood-gray);
}
.retry-btn[data-v-84881fda] {
  margin-left: 10px;
  padding: 2px 10px;
  border: 1px solid var(--color-cinnabar);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--color-cinnabar);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.desc[data-v-84881fda] {
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-ink);
}
/* 主操作：庭院绿实底 */
.bind-btn[data-v-84881fda] {
  width: 100%;
  min-height: var(--touch-min);
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.bind-btn[data-v-84881fda]:disabled {
  opacity: 0.55;
  cursor: default;
}
.bind-btn[data-v-84881fda]:active:not(:disabled) {
  opacity: 0.8;
  transition: opacity var(--duration-fast) var(--ease-out);
}
.bound-state[data-v-84881fda] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-green);
}
.bound-at[data-v-84881fda] {
  margin: 8px 0 18px;
  font-size: 13px;
  color: var(--color-wood-gray);
}
/* 解绑：纸白底朱红描边（危险动作） */
.unbind-btn[data-v-84881fda] {
  width: 100%;
  min-height: var(--touch-min);
  border: 1px solid var(--color-cinnabar);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-family: inherit;
  font-size: 15px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.unbind-btn[data-v-84881fda]:disabled {
  opacity: 0.55;
  cursor: default;
}
.unbind-btn[data-v-84881fda]:active:not(:disabled) {
  opacity: 0.75;
  transition: opacity var(--duration-fast) var(--ease-out);
}

.regions-manager[data-v-9c382a8b] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 16px 20px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  overflow-y: auto;
}@supports not (gap: 1px) {
.regions-manager[data-v-9c382a8b] > * + * {
    margin-top: 12px;
}
}
.add-card[data-v-9c382a8b],
.list-card[data-v-9c382a8b] {
  background: var(--color-paper);
  border-radius: var(--radius);
  padding: 14px;
}
.card-title[data-v-9c382a8b] {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
  margin-bottom: 10px;
}
.add-row[data-v-9c382a8b] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
@supports not (gap: 1px) {
.add-row[data-v-9c382a8b] > * + * {
    margin-left: 8px;
}
}
.add-input[data-v-9c382a8b] {
  flex: 1 1 120px;
  min-width: 0;
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: inherit;
  font-size: 14px;
  background: var(--color-paper);
}
.add-input.order[data-v-9c382a8b] {
  flex: 0 1 64px;
}
.primary-btn[data-v-9c382a8b] {
  width: 100%;
  min-height: 44px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.primary-btn[data-v-9c382a8b]:disabled {
  opacity: 0.6;
}
.group-block[data-v-9c382a8b] {
  margin-bottom: 14px;
}
.group-head[data-v-9c382a8b] {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-green);
  margin-bottom: 2px;
}
.region-list[data-v-9c382a8b] {
  list-style: none;
  margin: 0;
  padding: 0;
}
.region-row[data-v-9c382a8b] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border);
}
@supports not (gap: 1px) {
.region-row[data-v-9c382a8b] > * + * {
    margin-left: 8px;
}
}
.region-row[data-v-9c382a8b]:last-child {
  border-bottom: none;
}
.region-row.inactive .region-label[data-v-9c382a8b] {
  color: var(--color-wood-gray);
  text-decoration: line-through;
}
.region-row.editing[data-v-9c382a8b] {
  flex-wrap: wrap;
}
.region-row.editing .region-actions[data-v-9c382a8b] {
  flex-basis: 100%;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.region-info[data-v-9c382a8b] {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
@supports not (gap: 1px) {
.region-info[data-v-9c382a8b] > * + * {
    margin-left: 8px;
}
}
.region-label[data-v-9c382a8b] {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
}
.region-key[data-v-9c382a8b] {
  font-size: 12px;
  color: var(--color-wood-gray);
}
.region-badge[data-v-9c382a8b] {
  font-size: 11px;
  color: var(--color-cinnabar);
  border: 1px solid var(--color-cinnabar);
  border-radius: var(--radius-pill);
  padding: 1px 6px;
}
.region-actions[data-v-9c382a8b] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
@supports not (gap: 1px) {
.region-actions[data-v-9c382a8b] > * + * {
    margin-left: 6px;
}
}
.edit-fields[data-v-9c382a8b] {
  display: flex;
  flex: 1 1 auto;
  gap: 6px;
  min-width: 0;
}
@supports not (gap: 1px) {
.edit-fields[data-v-9c382a8b] > * + * {
    margin-left: 6px;
}
}
.edit-input[data-v-9c382a8b] {
  flex: 1 1 96px;
  min-width: 0;
  min-height: 34px;
  padding: 0 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: inherit;
  font-size: 13px;
}
.mini-btn[data-v-9c382a8b] {
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  font-family: inherit;
  font-size: 13px;
  color: var(--color-green);
  cursor: pointer;
}
.error-box[data-v-9c382a8b] {
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.success-box[data-v-9c382a8b] {
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.hint[data-v-9c382a8b] {
  font-size: 13px;
  color: var(--color-wood-gray);
}

.pc-drawer-mask[data-v-0aae2fe7] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: var(--rail-w, 62px);
  z-index: 950;
  background: rgba(67, 53, 43, 0.32);
  background: color-mix(in oklab, var(--fg) 32%, transparent);
  animation: pc-drawer-fadein-0aae2fe7 0.18s ease;
}
@keyframes pc-drawer-fadein-0aae2fe7 {
from {
    opacity: 0;
}
}
.pc-drawer[data-v-0aae2fe7] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 960;
  width: 480px;
  max-width: calc(100vw - var(--rail-w, 62px) - 48px);
  background: var(--bg);
  border-left: 1px solid var(--border);
  box-shadow: -12px 0 36px rgba(67, 53, 43, 0.14);
  box-shadow: -12px 0 36px color-mix(in oklab, var(--fg) 14%, transparent);
  display: flex;
  flex-direction: column;
  border-radius: var(--r-layer) 0 0 var(--r-layer);
  animation: pc-slidein-0aae2fe7 0.22s cubic-bezier(0.3, 0.9, 0.4, 1);
}
.pc-drawer--lg[data-v-0aae2fe7] {
  width: 520px;
}
.pc-drawer--xl[data-v-0aae2fe7] {
  width: 640px;
}
.pc-drawer--xxl[data-v-0aae2fe7] {
  width: 800px;
}
@keyframes pc-slidein-0aae2fe7 {
from {
    transform: translateX(48px);
    opacity: 0.4;
}
}
.pc-drawer-head[data-v-0aae2fe7] {
  flex: none;
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5) var(--sp-3);
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.pc-drawer-head[data-v-0aae2fe7] > * + * {
    margin-left: var(--sp-3);
}
}
.pc-drawer-head > div[data-v-0aae2fe7]:first-child {
  min-width: 0;
  flex: 1;
}
.pc-drawer-title[data-v-0aae2fe7] {
  font-family: var(--font-display);
  font-size: var(--fs-title);
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--fg);
}
.pc-drawer-sub[data-v-0aae2fe7] {
  font-size: var(--fs-aux);
  color: var(--muted);
  margin-top: 2px;
  line-height: 1.6;
}
.pc-drawer-x[data-v-0aae2fe7] {
  flex: none;
  margin-left: auto;
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.pc-drawer-x[data-v-0aae2fe7]:hover {
  color: var(--fg);
  border-color: var(--muted-2);
}
.pc-drawer-body[data-v-0aae2fe7] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--sp-4) var(--sp-5);
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.pc-drawer-foot[data-v-0aae2fe7] {
  flex: none;
  padding: var(--sp-3) var(--sp-5) var(--sp-4);
  border-top: 1px solid var(--border);
  background: var(--surface);
}
@media (prefers-reduced-motion: reduce) {
.pc-drawer[data-v-0aae2fe7],
  .pc-drawer-mask[data-v-0aae2fe7] {
    animation: none;
}
}

.pc-modal-mask[data-v-93b87196] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: var(--rail-w, 62px);
  z-index: 950;
  background: rgba(67, 53, 43, 0.32);
  background: color-mix(in oklab, var(--fg) 32%, transparent);
  animation: pc-fadein-93b87196 0.18s ease;
}
@keyframes pc-fadein-93b87196 {
from {
    opacity: 0;
}
}
.pc-modal[data-v-93b87196] {
  position: fixed;
  z-index: 970;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: var(--bg);
  border-radius: var(--r-layer);
  border: 1px solid var(--border);
  box-shadow: 0 24px 64px rgba(67, 53, 43, 0.22);
  box-shadow: 0 24px 64px color-mix(in oklab, var(--fg) 22%, transparent);
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 64px);
  max-width: calc(100vw - 96px);
  animation: pc-pop-93b87196 0.2s cubic-bezier(0.3, 0.9, 0.4, 1);
}
@keyframes pc-pop-93b87196 {
from {
    transform: translate(-50%, -48%) scale(0.97);
    opacity: 0.5;
}
}
.pc-modal--spec[data-v-93b87196] {
  width: 520px;
}
.pc-modal--rsv[data-v-93b87196] {
  width: 480px;
}
.pc-modal--confirm[data-v-93b87196] {
  width: 380px;
}
.pc-modal--success[data-v-93b87196] {
  width: 440px;
}
.pc-modal--pay[data-v-93b87196] {
  width: 720px;
}
.pc-modal--combo[data-v-93b87196] {
  width: 720px;
  height: min(720px, calc(100vh - 96px));
}
.pc-modal--move[data-v-93b87196] {
  width: 640px;
  height: min(680px, calc(100vh - 96px));
}
/* 套餐弹窗组头吸顶：体区去顶 padding（吸顶会停在 padding 下沿），顶距由内容承担 */
.pc-modal--combo .pc-modal-body[data-v-93b87196] {
  padding-top: 0;
}
.pc-modal--combo .pc-modal-body[data-v-93b87196] > :first-child {
  margin-top: var(--sp-4);
}
.pc-modal-head[data-v-93b87196] {
  flex: none;
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5) var(--sp-3);
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.pc-modal-head[data-v-93b87196] > * + * {
    margin-left: var(--sp-3);
}
}
.pc-modal-head > div[data-v-93b87196]:first-child {
  min-width: 0;
  flex: 1;
}
.pc-modal-title[data-v-93b87196] {
  font-family: var(--font-display);
  font-size: var(--fs-title);
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--fg);
}
.pc-modal-sub[data-v-93b87196] {
  font-size: var(--fs-aux);
  color: var(--muted);
  margin-top: 2px;
  line-height: 1.6;
}
.pc-modal-body[data-v-93b87196] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--sp-4) var(--sp-5);
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.pc-modal-foot[data-v-93b87196] {
  flex: none;
  padding: var(--sp-3) var(--sp-5) var(--sp-4);
  border-top: 1px solid var(--border);
  background: var(--surface);
  border-radius: 0 0 var(--r-layer) var(--r-layer);
  display: flex;
  gap: var(--sp-3);
  align-items: center;
}
@supports not (gap: 1px) {
.pc-modal-foot[data-v-93b87196] > * + * {
    margin-left: var(--sp-3);
}
}
.pc-modal-foot > .grow[data-v-93b87196] {
  flex: 1;
}
[data-v-93b87196] .pc-modal-foot.col {
  flex-direction: column;
  align-items: stretch;
}
.pc-layer-x[data-v-93b87196] {
  flex: none;
  margin-left: auto;
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.pc-layer-x[data-v-93b87196]:hover {
  color: var(--fg);
  border-color: var(--muted-2);
}
.pc-layer-x[data-v-93b87196]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.pc-modal[data-v-93b87196],
  .pc-modal-mask[data-v-93b87196] {
    animation: none;
}
}
/* ============================================================
 * 门前 OA · PC 会员模块共享样式（原型 menqian-members-prototype-v2.html
 * 与 menqian-members-settings.html 的 CSS 逐字平移，类名为视觉契约）。
 *
 * 色值纪律：颜色只引 var(--*)（tokens-v3.css 唯一色源），禁止新增
 * hex/oklch 字面值；圆角/间距等非色值按原型数值在本地定义（原型
 * --r-card 16px / --r-ctl 12px 与工程令牌 10px/8px 不同，故用本地值）。
 * ============================================================ */
.mqm {
  /* 原型圆角（非色值，页面作用域定义） */
  --mqm-r-card: 16px;
  --mqm-r-ctl: 12px;
  --mqm-r-tag: 5px;
  --mqm-r-layer: 16px;
  --mqm-shadow-card: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
  --mqm-shadow-pop: 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent);
  color: var(--fg);
  font-family: var(--font-body);
}
@supports (not (color: oklch(0% 0 0))) {
.mqm {
  --mqm-shadow-card: 0 3px 14px rgba(67, 53, 43, 0.06);
  --mqm-shadow-pop: 0 14px 36px rgba(67, 53, 43, 0.16);
}
}
.mqm .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.mqm .muted { color: var(--muted);
}
.mqm button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer;
}
.mqm input, .mqm textarea { font: inherit; color: inherit;
}
.mqm h1, .mqm h2, .mqm h3, .mqm p { margin: 0;
}
.mqm :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px;
}

/* ── 页头 ── */
.mqm .pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px;
}
@supports not (gap: 1px) {
.mqm .pagehead > * + * {
    margin-left: 16px;
}
}
.mqm .pagehead h1 { font: 600 var(--fs-title) / 1.35 var(--font-display); letter-spacing: 1px;
}
.mqm .pagehead .sub { color: var(--muted); font-size: var(--fs-aux); margin-top: 3px;
}

/* ── 按钮体系 ── */
.mqm .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 36px; padding: 0 14px; border-radius: var(--mqm-r-ctl);
  border: 1px solid transparent; font-size: var(--fs-body); font-weight: 600;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
@supports not (gap: 1px) {
.mqm .btn > * + * {
    margin-left: 6px;
}
}
.mqm .btn:active { transform: translateY(1px);
}
.mqm .btn.lg { min-height: 44px; padding: 0 20px;
}
.mqm .btn.sm { min-height: 32px; padding: 0 12px; font-size: var(--fs-aux);
}
.mqm .btn.bp { background: var(--accent); color: var(--paper-ink); border-bottom: 1px solid #77482D; border-bottom: 1px solid color-mix(in oklab, var(--accent) 80%, black);
}
.mqm .btn.bp:hover { background: #8C5636; background: color-mix(in oklab, var(--accent) 90%, black);
}
.mqm .btn.bp:disabled { background: #D5B7A3; background: color-mix(in oklab, var(--accent) 42%, var(--surface)); border-bottom-color: transparent; color: rgba(251, 247, 236, 0.72); color: color-mix(in oklab, var(--paper-ink) 72%, transparent); cursor: not-allowed; transform: none;
}
.mqm .btn.bs { background: var(--surface); border-color: var(--border); color: var(--fg);
}
.mqm .btn.bs:hover { background: var(--soft-green); border-color: #B4AA9D; border-color: color-mix(in oklab, var(--fg) 25%, var(--border));
}
.mqm .btn.gh { background: transparent; color: var(--muted);
}
.mqm .btn.gh:hover { background: var(--soft-green); color: var(--fg);
}
.mqm .btn.bd { background: var(--cinnabar); color: var(--paper-ink); border-bottom: 1px solid #7D3721; border-bottom: 1px solid color-mix(in oklab, var(--cinnabar) 80%, black);
}
.mqm .btn.bd:hover { background: #8F4027; background: color-mix(in oklab, var(--cinnabar) 88%, black);
}
.mqm .btn.bdg { background: transparent; color: var(--cinnabar); border-color: rgba(170, 77, 48, 0.38); border-color: color-mix(in oklab, var(--cinnabar) 38%, transparent);
}
.mqm .btn.bdg:hover { background: var(--soft-cinnabar);
}
.mqm .btn:disabled { cursor: not-allowed; transform: none;
}
.mqm .btn.bs:disabled, .mqm .btn.gh:disabled { color: var(--muted-2);
}
.mqm .linkbtn { border-radius: 8px; padding: 5px 10px; font-size: 13px; color: var(--muted); transition: background 0.15s ease, color 0.15s ease;
}
.mqm .linkbtn:hover { background: var(--soft-green); color: var(--fg);
}
.mqm .linkbtn.accent { color: var(--accent); font-weight: 600;
}
.mqm .linkbtn.accent:hover { background: var(--soft-green);
}
.mqm .linkbtn.danger { color: var(--cinnabar);
}
.mqm .linkbtn.danger:hover { background: var(--soft-cinnabar); color: var(--cinnabar);
}

/* ── 工具栏 / 搜索 ── */
.mqm .toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
}
@supports not (gap: 1px) {
.mqm .toolbar > * + * {
    margin-left: 12px;
}
}
.mqm .search { position: relative; flex: 0 1 360px;
}
.mqm .search input {
  width: 100%; height: 40px; padding: 0 34px 0 36px; border: 1px solid var(--border); border-radius: var(--mqm-r-ctl);
  background: var(--surface); font-size: var(--fs-body); transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mqm .search input::placeholder { color: var(--muted-2);
}
.mqm .search input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.mqm .search .s-ico { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted-2); pointer-events: none;
}
.mqm .search .s-clear {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  color: var(--muted); font-size: 15px; width: 26px; height: 26px; border-radius: 8px; display: none;
  align-items: center; justify-content: center;
}
.mqm .search .s-clear:hover { color: var(--fg); background: var(--soft-green);
}
.mqm .search.has-q .s-clear { display: flex;
}
.mqm .toolbar .count { color: var(--muted); font-size: var(--fs-aux); margin-left: auto;
}

/* ── 宽表 ── */
.mqm .tcard { background: var(--surface); border: 1px solid var(--border); border-radius: var(--mqm-r-card); box-shadow: var(--mqm-shadow-card); overflow: visible;
}
.mqm .mtable { width: 100%; border-collapse: collapse;
}
.mqm .mtable th {
  text-align: left; font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 500;
  letter-spacing: 0.05em; color: var(--muted); padding: 12px 16px; border-bottom: 1px solid var(--border);
}
.mqm .mtable th.r, .mqm .mtable td.r { text-align: right;
}
.mqm .mtable td { padding: 12px 16px; border-bottom: 1px solid var(--border); vertical-align: middle; font-size: var(--fs-body);
}
.mqm .mtable tbody tr:last-child td { border-bottom: 0;
}
.mqm .mtable tbody tr { cursor: pointer; transition: background 0.12s ease;
}
.mqm .mtable tbody tr:hover { background: var(--soft-green);
}
.mqm .thsort { padding: 8px 6px; font: inherit; color: inherit; letter-spacing: inherit; display: inline-flex; align-items: center; gap: 4px; border-radius: 8px;
}
@supports not (gap: 1px) {
.mqm .thsort > * + * {
    margin-left: 4px;
}
}
.mqm .thsort:hover { color: var(--fg);
}
.mqm .thsort .arr { font-size: 10px; opacity: 0.5;
}
.mqm .thsort.on { color: var(--accent);
}
.mqm .thsort.on .arr { opacity: 1;
}
.mqm .c-member .m-name { font-weight: 600; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqm .c-member .m-phone { font-size: var(--fs-aux); color: var(--muted); margin-top: 1px;
}
.mqm .c-recent .r-time { font-size: 13px;
}
.mqm .c-recent .r-sum { font-size: var(--fs-aux); color: var(--muted); margin-top: 1px;
}
.mqm .money { font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.mqm .money.plus { color: var(--st-served);
}
.mqm .money.minus { color: var(--cinnabar);
}
.mqm .c-note { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: var(--fs-aux);
}

/* ── 列表页签 ── */
.mqm .ptabs { display: flex; gap: 26px; border-bottom: 1px solid var(--border); margin-bottom: 16px;
}
@supports not (gap: 1px) {
.mqm .ptabs > * + * {
    margin-left: 26px;
}
}
.mqm .ptab {
  position: relative; height: 44px; padding: 0 2px; font: 600 var(--fs-section) / 1 var(--font-display);
  letter-spacing: 1px; color: var(--muted); transition: color 0.15s ease;
}
.mqm .ptab:hover { color: var(--fg);
}
.mqm .ptab.on { color: var(--fg);
}
.mqm .ptab.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2.5px; border-radius: 2px; background: var(--accent);
}

/* ── 列头排序 + 筛选 ── */
.mqm .mtable th.thx { padding: 0 8px; position: relative;
}
.mqm .thc { display: flex; align-items: center; gap: 2px; min-height: 48px;
}
@supports not (gap: 1px) {
.mqm .thc > * + * {
    margin-left: 2px;
}
}
.mqm .mtable th.r .thc { justify-content: flex-end;
}
.mqm .th-sub { padding: 0 6px 8px; font: 400 10px / 1.2 var(--font-body); color: var(--muted-2);
}
.mqm .thfilter {
  width: 28px; height: 28px; border-radius: 8px; color: var(--muted-2); flex: none; position: relative;
  display: inline-flex; align-items: center; justify-content: center; transition: background 0.15s ease, color 0.15s ease;
}
.mqm .thfilter:hover { background: var(--soft-green); color: var(--fg);
}
.mqm .thfilter.on { color: var(--fg);
}
.mqm .thfilter.on::after { content: ""; position: absolute; top: 3px; right: 3px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent);
}
.mqm .thfilter svg { width: 13px; height: 13px; display: block;
}
.mqm .fmenu {
  position: absolute; top: calc(100% - 2px); left: 8px; z-index: 50; min-width: 168px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 4px;
  box-shadow: var(--mqm-shadow-pop);
}
.mqm .mtable th.r .fmenu { left: auto; right: 8px;
}
.mqm .fmenu .fm-it {
  display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 6px 12px; border-radius: 9px;
  font-size: var(--fs-aux); color: var(--fg); text-align: left; transition: background 0.15s ease;
}
@supports not (gap: 1px) {
.mqm .fmenu .fm-it > * + * {
    margin-left: 8px;
}
}
.mqm .fmenu .fm-it:hover { background: var(--soft-green);
}
.mqm .fmenu .fm-it .ck { width: 14px; flex: none; color: var(--accent); font-size: 12px; text-align: center;
}

/* ── 大号时间分段（44px） ── */
.mqm .seg { display: inline-flex; border: 1px solid var(--border); border-radius: 999px; padding: 2px; background: var(--soft);
}
.mqm .seg button { border-radius: 999px; padding: 5px 14px; font-size: var(--fs-aux); color: var(--muted); transition: background 0.15s ease, color 0.15s ease;
}
.mqm .seg button:hover { color: var(--fg);
}
.mqm .seg button.on { background: var(--surface); color: var(--fg); font-weight: 600; box-shadow: 0 1px 3px rgba(67, 53, 43, 0.1); box-shadow: 0 1px 3px color-mix(in oklab, var(--fg) 10%, transparent);
}
.mqm .seg.lg { padding: 3px;
}
.mqm .seg.lg button { min-height: 36px; padding: 6px 16px; font: 600 13px / 1.4 var(--font-display); letter-spacing: 0.5px;
}

/* ── 时间 chip ── */
.mqm .chip {
  border: 1px solid var(--border); background: var(--surface); border-radius: 999px;
  padding: 5px 12px; font-size: var(--fs-aux); color: var(--muted); transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.mqm .chip:hover { color: var(--fg); background: var(--soft-green);
}
.mqm .chip.on { border-color: var(--accent); color: var(--accent); background: var(--soft-green); font-weight: 600;
}

/* ── 汇总行 / 自定义日期行 ── */
.mqm .sumrow { display: flex; align-items: baseline; gap: 22px; margin-bottom: 12px; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqm .sumrow > * + * {
    margin-left: 22px;
}
}
.mqm .sumrow .sv-v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--fg); font-weight: 600; margin-left: 6px;
}
.mqm .sumrow .sv-v.neg { color: var(--cinnabar);
}
.mqm .sumrow .dtag { margin-left: auto;
}
.mqm .crange { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; padding: 10px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--mqm-r-ctl);
}
@supports not (gap: 1px) {
.mqm .crange > * + * {
    margin-left: 8px;
}
}
.mqm .crange input { border: 1px solid var(--border); border-radius: 9px; padding: 6px 9px; font-size: var(--fs-aux); font-family: var(--font-mono); background: var(--bg);
}
.mqm .crange input:focus { outline: none; border-color: var(--accent);
}

/* ── 状态签三通道 ── */
.mqm .tag {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
  font-family: var(--font-display); font-size: var(--fs-micro); letter-spacing: 0.08em;
}
@supports not (gap: 1px) {
.mqm .tag > * + * {
    margin-left: 6px;
}
}
.mqm .tag .dot { width: 6px; height: 6px; border-radius: 50%; flex: none;
}
.mqm .tag-tier { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqm .tag-tier .dot { background: var(--st-served);
}
.mqm .tag-internal { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #844726; color: color-mix(in oklab, var(--st-busy) 84%, black);
}
.mqm .tag-internal .dot { background: var(--st-busy);
}
.mqm .tag-none { background: var(--soft); color: var(--muted);
}
.mqm .tag-none .dot { background: var(--muted-2);
}
.mqm .tag-active { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqm .tag-active .dot { background: var(--st-served);
}
.mqm .tag-silent { background: var(--soft); color: var(--muted);
}
.mqm .tag-silent .dot { background: var(--muted);
}
.mqm .tag-never { background: var(--soft); color: var(--muted-2);
}
.mqm .tag-never .dot { background: var(--muted-2);
}
.mqm .dtag {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 6px; border-radius: var(--mqm-r-tag);
  border: 1px dashed var(--border); background: var(--surface);
  font-size: var(--fs-micro); color: var(--muted);
}
@supports not (gap: 1px) {
.mqm .dtag > * + * {
    margin-left: 4px;
}
}

/* ── 骨架 ── */
.mqm .skl-row td { padding: 16px;
}
.mqm .sk { position: relative; overflow: hidden; background: var(--soft); border-radius: 6px; height: 12px;
}
.mqm .sk::after {
  content: ""; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(248, 246, 238, 0.85), transparent);
  background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--surface) 85%, transparent), transparent);
  animation: mqm-shim 1.2s ease infinite;
}
@supports not (inset: 0) {
.mqm .sk::after {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
@keyframes mqm-shim {
to { transform: translateX(100%);
}
}

/* ── 列表状态（空/失败） ── */
.mqm .liststate { padding: 64px 24px; text-align: center;
}
.mqm .liststate .ls-mark {
  width: 44px; height: 44px; margin: 0 auto 12px; border-radius: 50%; background: var(--soft); color: var(--muted);
  display: flex; align-items: center; justify-content: center; font: 600 18px / 1 var(--font-display);
}
.mqm .liststate.err .ls-mark { background: var(--soft-cinnabar); color: var(--cinnabar);
}
.mqm .liststate .ls-title { font: 600 17px / 1.5 var(--font-display); letter-spacing: 1px;
}
.mqm .liststate .ls-sub { color: var(--muted); font-size: 13px; margin-top: 6px; line-height: 1.7;
}
.mqm .liststate .ls-ops { display: flex; justify-content: center; gap: 10px; margin-top: 20px;
}
@supports not (gap: 1px) {
.mqm .liststate .ls-ops > * + * {
    margin-left: 10px;
}
}
.mqm .liststate .ls-kw { font-family: var(--font-mono); color: var(--fg);
}

/* ── 分页 ── */
.mqm .pager { display: flex; align-items: center; gap: 6px; padding: 12px 2px 0; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqm .pager > * + * {
    margin-left: 6px;
}
}
.mqm .pager .pages { display: flex; gap: 4px; margin-left: auto;
}
@supports not (gap: 1px) {
.mqm .pager .pages > * + * {
    margin-left: 4px;
}
}
.mqm .pager button {
  min-width: 32px; height: 32px; padding: 0 9px; border: 1px solid var(--border); border-radius: 9px;
  background: var(--surface); font-size: var(--fs-aux); font-family: var(--font-mono); color: var(--fg);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mqm .pager button:hover:not(:disabled) { background: var(--soft-green);
}
.mqm .pager button.on { background: var(--ink-card); color: var(--paper-ink); border-color: var(--ink-card);
}
.mqm .pager button:disabled { opacity: 0.45; cursor: not-allowed;
}

/* ── 详情抽屉（640px） ── */
.mqm .scrim {
  position: fixed; inset: 0; background: rgba(67, 53, 43, 0.3); background: color-mix(in oklab, var(--fg) 30%, transparent);
  opacity: 0; pointer-events: none; transition: opacity 0.18s ease; z-index: 85;
}
@supports not (inset: 0) {
.mqm .scrim {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mqm .scrim.show { opacity: 1; pointer-events: auto;
}
.mqm .drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: 640px; max-width: calc(100vw - 160px);
  background: var(--surface); border-left: 1px solid var(--border); z-index: 86;
  transform: translateX(103%); transition: transform 0.22s cubic-bezier(0.3, 0.9, 0.4, 1);
  display: flex; flex-direction: column;
}
.mqm .drawer.show { transform: translateX(0);
}
.mqm .d-head { padding: 20px 24px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: flex-start; gap: 14px;
}
@supports not (gap: 1px) {
.mqm .d-head > * + * {
    margin-left: 14px;
}
}
.mqm .d-head .d-name { font: 600 var(--fs-title) / 1.35 var(--font-display); letter-spacing: 0.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 400px;
}
.mqm .d-head .d-phone { display: flex; align-items: center; gap: 8px; margin-top: 5px; font-size: 13px; color: var(--muted);
}
@supports not (gap: 1px) {
.mqm .d-head .d-phone > * + * {
    margin-left: 8px;
}
}
.mqm .d-head .d-meta { font-size: var(--fs-aux); color: var(--muted-2); margin-top: 6px;
}
.mqm .d-close {
  margin-left: auto; color: var(--muted); width: 34px; height: 34px; border-radius: 9px; flex: none; font-size: 18px;
  display: flex; align-items: center; justify-content: center; transition: background 0.15s ease, color 0.15s ease;
}
.mqm .d-close:hover { background: var(--soft-green); color: var(--fg);
}
.mqm .d-stats { display: grid; grid-template-columns: 1.2fr 1fr 1.3fr; border-bottom: 1px solid var(--border);
}
.mqm .d-stat { padding: 14px 24px;
}
.mqm .d-stat + .d-stat { border-left: 1px solid var(--border);
}
.mqm .d-stat .k { font-size: var(--fs-micro); color: var(--muted); font-family: var(--font-mono); letter-spacing: 0.04em;
}
.mqm .d-stat .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 22px; font-weight: 600; margin-top: 4px;
}
.mqm .d-stat .v.small { font-size: var(--fs-section); font-weight: 550; font-family: var(--font-body); margin-top: 6px;
}
.mqm .d-stat .s { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqm .d-tabs { display: flex; border-bottom: 1px solid var(--border); padding: 0 12px; flex: none;
}
.mqm .dtab { position: relative; flex: 1; height: 44px; font-size: var(--fs-body); color: var(--muted); transition: color 0.15s ease;
}
.mqm .dtab:hover { color: var(--fg);
}
.mqm .dtab.on { color: var(--fg); font-weight: 650;
}
.mqm .dtab.on::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--accent);
}
.mqm .dtab-count { font-size: var(--fs-micro); color: var(--muted); margin-left: 6px;
}
.mqm .d-panels { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
.mqm .dpanel { flex: 1; overflow-y: auto; min-height: 0;
}
.mqm .dpad { padding: 16px 24px 28px; display: flex; flex-direction: column; gap: 12px;
}
@supports not (gap: 1px) {
.mqm .dpad > * + * {
    margin-top: 12px;
}
}
.mqm .dcard { background: var(--bg); border: 1px solid var(--border); border-radius: var(--mqm-r-card);
}
.mqm .dcard-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px 0;
}
@supports not (gap: 1px) {
.mqm .dcard-head > * + * {
    margin-left: 10px;
}
}
.mqm .dcard-head h3 { font: 600 var(--fs-section) / 1.4 var(--font-display); letter-spacing: 0.5px;
}
.mqm .dcard-body { padding: 12px 18px 16px;
}
.mqm .dcard-act { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px;
}
@supports not (gap: 1px) {
.mqm .dcard-act > * + * {
    margin-left: 10px;
}
}
.mqm .dcard-act .spacer { flex: 1;
}
.mqm .pf-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--border); font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.mqm .pf-row > * + * {
    margin-left: 12px;
}
}
.mqm .pf-row:last-of-type { border-bottom: 0;
}
.mqm .pf-row .k { color: var(--muted); flex: none;
}
.mqm .pf-row .v { color: var(--fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqm .dcard-note { font-size: var(--fs-aux); color: var(--muted-2); margin-top: 10px;
}
.mqm .dc-status { padding: 9px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--mqm-r-ctl); font-size: var(--fs-aux); color: var(--muted); line-height: 1.6;
}
.mqm .dc-status b { color: var(--fg); font-weight: 650;
}
.mqm .dcard-head .h-act { margin-left: auto; flex: none;
}
.mqm .ed-count { margin-left: auto; font-size: var(--fs-aux); color: var(--muted);
}
.mqm .ed-filter { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px;
}
@supports not (gap: 1px) {
.mqm .ed-filter > * + * {
    margin-left: 6px;
}
}
.mqm .ed-row { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed var(--border);
}
@supports not (gap: 1px) {
.mqm .ed-row > * + * {
    margin-left: 10px;
}
}
.mqm .ed-row:last-child { border-bottom: 0;
}
.mqm .ed-row .tx-type { flex: none; width: 40px; margin-top: 1px;
}
.mqm .tx-type.edc-profile { background: var(--soft-green); color: #414A2C; color: color-mix(in oklab, var(--st-served) 70%, black);
}
.mqm .tx-type.edc-discount { background: var(--soft-clay); color: #6B381D; color: color-mix(in oklab, var(--st-busy) 72%, black);
}
.mqm .ed-main { min-width: 0;
}
.mqm .ed-note { font-size: 13px; line-height: 1.55;
}
.mqm .ed-sub { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 2px; font-family: var(--font-mono);
}
.mqm .ed-empty { padding: 22px 4px; text-align: center; color: var(--muted); font-size: var(--fs-aux); line-height: 1.7;
}
.mqm .ep-phone { padding: 9px 12px; border: 1px dashed var(--border); border-radius: var(--mqm-r-ctl); background: var(--bg); color: var(--muted); font-size: var(--fs-body);
}
.mqm .d-ledger-bar {
  position: sticky; top: 0; z-index: 2; background: var(--surface);
  padding: 12px 24px 10px; border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.mqm .d-ledger-bar > * + * {
    margin-left: 10px;
}
}
.mqm .d-ledger-bar .l-count { margin-left: auto; font-size: var(--fs-aux); color: var(--muted);
}
.mqm .past-jump {
  display: block; width: 100%; margin: 0; padding: 10px 24px; border: 0; border-bottom: 1px solid var(--border);
  background: var(--soft); color: var(--fg); font: 13px var(--font-body); text-align: left; cursor: pointer;
}
.mqm .past-jump:hover { background: var(--soft-green);
}
.mqm .customrange { display: flex; align-items: center; gap: 8px; padding: 10px 24px; border-bottom: 1px solid var(--border); background: var(--bg);
}
@supports not (gap: 1px) {
.mqm .customrange > * + * {
    margin-left: 8px;
}
}
.mqm .customrange input { border: 1px solid var(--border); border-radius: 9px; padding: 6px 9px; font-size: var(--fs-aux); font-family: var(--font-mono); background: var(--surface);
}
.mqm .customrange input:focus { outline: none; border-color: var(--accent);
}
.mqm .tx { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto 108px; gap: 12px; align-items: center; padding: 11px 24px; border-bottom: 1px solid var(--border);
}
.mqm .tx:last-child { border-bottom: 0;
}
.mqm .tx-type { font-size: var(--fs-micro); padding: 3px 0; text-align: center; border-radius: var(--mqm-r-tag); letter-spacing: 0.05em;
}
.mqm .tx-type.recharge { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqm .tx-type.spend { background: var(--soft); color: var(--muted);
}
.mqm .tx-type.adj { background: var(--soft-clay); color: #6B381D; color: color-mix(in oklab, var(--st-busy) 72%, black);
}
.mqm .tx-note { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqm .tx-sub { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 1px; font-family: var(--font-mono);
}
.mqm .tx-amt { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13.5px; font-weight: 600; text-align: right;
}
.mqm .tx-amt.plus { color: var(--st-served);
}
.mqm .tx-amt.minus { color: var(--cinnabar);
}
.mqm .tx-bal { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--muted); text-align: right;
}
.mqm .ledger-empty { padding: 48px 24px; text-align: center; color: var(--muted); font-size: 13px;
}
.mqm .ledger-empty .le-title { font: 600 15px / 1.5 var(--font-display); color: var(--fg); letter-spacing: 1px; margin-bottom: 5px;
}

/* ── 弹窗 ── */
.mqm .mask {
  position: fixed; inset: 0; z-index: 95; display: none; align-items: center; justify-content: center;
  background: rgba(67, 53, 43, 0.32);
  background: color-mix(in oklab, var(--fg) 32%, transparent);
}
@supports not (inset: 0) {
.mqm .mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mqm .mask.show { display: flex; animation: mqm-fadein 0.18s ease;
}
@keyframes mqm-fadein {
from { opacity: 0;
}
}
.mqm .modal {
  width: 460px; max-width: calc(100vw - 64px); max-height: calc(100vh - 96px); overflow-y: auto;
  background: var(--surface); border-radius: var(--mqm-r-layer); border: 1px solid var(--border);
  box-shadow: var(--mqm-shadow-pop); animation: mqm-pop 0.2s cubic-bezier(0.3, 0.9, 0.4, 1);
}
.mqm .modal.wide { width: 500px;
}
@keyframes mqm-pop {
from { opacity: 0; transform: translateY(8px) scale(0.985);
}
}
.mqm .mo-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px 0;
}
.mqm .mo-head h2 { font: 600 var(--fs-title) / 1.4 var(--font-display); letter-spacing: 1px;
}
.mqm .mo-head .d-close { margin-left: 0;
}
.mqm .mo-body { padding: 16px 22px 6px;
}
.mqm .mo-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 22px 18px;
}
@supports not (gap: 1px) {
.mqm .mo-foot > * + * {
    margin-left: 10px;
}
}
.mqm .mo-foot .spacer { flex: 1;
}

/* ── 表单字段 ── */
.mqm .field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px;
}
@supports not (gap: 1px) {
.mqm .field > * + * {
    margin-top: 5px;
}
}
.mqm .field label { font-size: var(--fs-aux); color: var(--muted);
}
.mqm .field label .req { color: var(--cinnabar);
}
.mqm .input, .mqm .textarea {
  width: 100%; padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--mqm-r-ctl);
  background: var(--surface); font-size: var(--fs-body); transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mqm .input::placeholder, .mqm .textarea::placeholder { color: var(--muted-2);
}
.mqm .input:focus, .mqm .textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.mqm .input.err { border-color: var(--cinnabar);
}
.mqm .input.err:focus { box-shadow: 0 0 0 3px rgba(170, 77, 48, 0.14); box-shadow: 0 0 0 3px color-mix(in oklab, var(--cinnabar) 14%, transparent);
}
.mqm .textarea { min-height: 74px; resize: vertical; line-height: 1.55;
}
.mqm .field .hint { font-size: var(--fs-micro); color: var(--muted-2);
}
.mqm .field .ferr { font-size: var(--fs-micro); color: var(--cinnabar); display: none;
}
.mqm .field.has-err .ferr { display: block;
}
.mqm .input-affix { position: relative;
}
.mqm .input-affix .input { padding-right: 34px;
}
.mqm .input-affix .af { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: var(--fs-aux); color: var(--muted-2); pointer-events: none;
}

/* ── 内联提示 ── */
.mqm .notice { border-radius: var(--mqm-r-ctl); padding: 10px 12px; font-size: var(--fs-aux); line-height: 1.6; margin-bottom: 14px;
}
.mqm .notice.warn { background: var(--soft-clay); color: #6B381D; color: color-mix(in oklab, var(--st-busy) 72%, black);
}
.mqm .notice.danger { background: var(--soft-cinnabar); color: #79351F; color: color-mix(in oklab, var(--cinnabar) 78%, black);
}
.mqm .notice.info { background: var(--soft); color: var(--muted);
}
.mqm .notice b { font-weight: 650;
}
.mqm .notice .n-act { margin-top: 8px;
}
.mqm .notice button.linklike { padding: 0; font-size: var(--fs-aux); font-weight: 650; color: var(--accent); text-decoration: underline; text-underline-offset: 3px;
}

/* ── 充值弹窗 ── */
.mqm .rc-amt-row { display: flex; gap: 10px; align-items: stretch;
}
@supports not (gap: 1px) {
.mqm .rc-amt-row > * + * {
    margin-left: 10px;
}
}
.mqm .rc-amt-row .input { flex: 1; height: 44px; font-size: var(--fs-section);
}
.mqm .rc-amt-row .btn { flex: none;
}
.mqm .rc-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px;
}
.mqm .rc-q {
  height: 44px; border: 1px solid var(--border); border-radius: var(--mqm-r-ctl); background: var(--surface);
  font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: var(--fs-body); font-weight: 600; color: var(--fg);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mqm .rc-q:hover { background: var(--soft-green);
}
.mqm .rc-q.on { border-color: var(--accent); background: var(--soft-green);
}
.mqm .tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px;
}
.mqm .preview { border-top: 1px dashed var(--border); margin-top: 4px; padding: 12px 2px 6px; display: flex; flex-direction: column; gap: 5px; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqm .preview > * + * {
    margin-top: 5px;
}
}
.mqm .preview .pv-row { display: flex; justify-content: space-between; gap: 12px;
}
@supports not (gap: 1px) {
.mqm .preview .pv-row > * + * {
    margin-left: 12px;
}
}
.mqm .preview .pv-row .pv-v { font-family: var(--font-mono); color: var(--fg); font-variant-numeric: tabular-nums;
}
.mqm .preview .pv-row .pv-v.neg { color: var(--cinnabar);
}

/* ── 冲突盒 ── */
.mqm .conflict-box { text-align: left;
}
.mqm .conflict-box .cb-title { font-weight: 650; font-size: var(--fs-body); margin-bottom: 6px;
}
.mqm .conflict-box .cb-kv { display: flex; justify-content: space-between; font-size: var(--fs-aux); padding: 6px 0; border-bottom: 1px dashed var(--border); color: var(--muted);
}
.mqm .conflict-box .cb-kv .num { color: var(--fg);
}

/* ── 系统态（403 页面级；401 走全局登录跳转） ── */
.mqm .sysmask { position: fixed; inset: 0; z-index: 120; background: var(--bg); display: flex; align-items: center; justify-content: center;
}
@supports not (inset: 0) {
.mqm .sysmask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mqm .sys-card { text-align: center; max-width: 400px;
}
.mqm .sys-card .sys-code { font-family: var(--font-mono); font-size: var(--fs-aux); letter-spacing: 0.12em; color: var(--muted-2); margin-bottom: 14px;
}
.mqm .sys-card h2 { font: 600 22px / 1.4 var(--font-display); letter-spacing: 1px;
}
.mqm .sys-card p { color: var(--muted); font-size: 13px; margin: 10px 0 22px; line-height: 1.8;
}

/* ── 设置页（820 窄栏四张 scard） ── */
.mqm .wrap-slim { max-width: 820px; margin: 0 auto;
}
.mqm .scard { background: var(--surface); border: 1px solid var(--border); border-radius: var(--mqm-r-card); box-shadow: var(--mqm-shadow-card); margin-bottom: 16px;
}
.mqm .sc-head { display: flex; align-items: flex-start; gap: 14px; padding: 18px 22px 0;
}
@supports not (gap: 1px) {
.mqm .sc-head > * + * {
    margin-left: 14px;
}
}
.mqm .sc-head h2 { font: 600 16px / 1.45 var(--font-display); letter-spacing: 1px;
}
.mqm .sc-head .sc-sub { font-size: var(--fs-aux); color: var(--muted); margin-top: 3px; line-height: 1.6;
}
.mqm .sc-head .sc-act { margin-left: auto; flex: none; padding-top: 2px;
}
.mqm .sc-body { padding: 10px 22px 18px;
}
.mqm .sc-foot { padding: 0 22px 16px; font-size: var(--fs-micro); color: var(--muted-2); line-height: 1.7;
}
.mqm .scard.planned { border-style: dashed; box-shadow: none; background: #F5F1E8; background: color-mix(in oklab, var(--surface) 55%, var(--bg));
}
.mqm .scard.planned .sc-sub { color: var(--muted-2);
}
.mqm .tierrow { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--border);
}
@supports not (gap: 1px) {
.mqm .tierrow > * + * {
    margin-left: 12px;
}
}
.mqm .tierrow:last-child { border-bottom: 0;
}
.mqm .tierrow .tr-cap { color: var(--muted); font-size: var(--fs-aux); margin-right: 6px;
}
.mqm .tierrow .tr-min { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; font-size: 15px;
}
.mqm .tierrow .tr-arrow { color: var(--muted-2); font-size: var(--fs-aux);
}
.mqm .tierrow .tr-ops { margin-left: auto; display: flex; gap: 2px; flex: none;
}
@supports not (gap: 1px) {
.mqm .tierrow .tr-ops > * + * {
    margin-left: 2px;
}
}
.mqm .tier-empty { padding: 30px 8px 26px; text-align: center;
}
.mqm .tier-empty .te-title { font: 600 15px / 1.5 var(--font-display); letter-spacing: 1px;
}
.mqm .tier-empty .te-sub { color: var(--muted); font-size: var(--fs-aux); margin-top: 5px; line-height: 1.7;
}
.mqm .rules-list { display: flex; flex-direction: column; font-size: var(--fs-aux);
}
.mqm .rules-list .rl { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px dashed var(--border);
}
@supports not (gap: 1px) {
.mqm .rules-list .rl > * + * {
    margin-left: 18px;
}
}
.mqm .rules-list .rl:last-child { border-bottom: 0;
}
.mqm .rules-list .rl .rl-t { color: var(--fg); font-weight: 600;
}
.mqm .rules-list .rl .rl-d { color: var(--muted); font-size: var(--fs-aux); margin-top: 3px; line-height: 1.65;
}
.mqm .switch {
  position: relative; width: 46px; height: 26px; border-radius: 999px; flex: none; padding: 0;
  background: var(--soft); border: 1px solid var(--border);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mqm .switch::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--surface); box-shadow: 0 1px 3px rgba(67, 53, 43, 0.2); box-shadow: 0 1px 3px color-mix(in oklab, var(--fg) 20%, transparent);
  transition: transform 0.15s ease, background 0.15s ease;
}
.mqm .switch[aria-checked="true"] { background: var(--accent); border-color: var(--accent);
}
.mqm .switch[aria-checked="true"]::after { transform: translateX(20px); background: var(--paper-ink);
}
.mqm .clog { display: flex; flex-direction: column;
}
.mqm .clog .cl-row { display: flex; align-items: baseline; gap: 14px; padding: 9px 0; border-bottom: 1px dashed var(--border); font-size: 13px;
}
@supports not (gap: 1px) {
.mqm .clog .cl-row > * + * {
    margin-left: 14px;
}
}
.mqm .clog .cl-row:last-child { border-bottom: 0;
}
.mqm .clog .cl-time { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: var(--fs-aux); color: var(--muted-2); flex: none; width: 102px;
}
.mqm .clog .cl-text { flex: 1; min-width: 0; line-height: 1.55;
}
.mqm .clog .cl-by { font-size: var(--fs-aux); color: var(--muted); flex: none;
}
.mqm .cl-count { font-size: var(--fs-aux); color: var(--muted); font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) {
.mqm * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important;
}
}
/* PC 席位工作台；原型 class contract：facts/hbar/rcard/seat/r-cover/seat-cover/up。 */
.seats-pc { min-width: 1080px;
}
.seats-pc .pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px;
}
@supports not (gap: 1px) {
.seats-pc .pagehead > * + * {
    margin-left: 16px;
}
}
.seats-pc .ph-l { min-width: 0;
}
.seats-pc .ph-row { display: flex; align-items: baseline; gap: 12px;
}
@supports not (gap: 1px) {
.seats-pc .ph-row > * + * {
    margin-left: 12px;
}
}
.seats-pc h1 { margin: 0; font: 600 var(--fs-title) / 1.35 var(--font-display); letter-spacing: 0.06em; color: var(--fg);
}
.seats-pc .sub { margin: 3px 0 0; color: var(--muted); font-size: var(--fs-aux); line-height: 1.65;
}
.seats-pc .ph-ops, .seats-pc .hbar, .seats-pc .facts, .seats-pc .r-ops, .seats-pc .seat-ops, .seats-pc .seat-mid, .seats-pc .frow { display: flex; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.seats-pc .ph-ops > * + *,
.seats-pc .hbar > * + *,
.seats-pc .facts > * + *,
.seats-pc .r-ops > * + *,
.seats-pc .seat-ops > * + *,
.seats-pc .seat-mid > * + *,
.seats-pc .frow > * + * {
    margin-left: 10px;
}
}
.seats-pc .hintbar { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--mqm-r-card); background: var(--surface); box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
}
@supports not (gap: 1px) {
.seats-pc .hintbar > * + * {
    margin-left: 12px;
}
}
.seats-pc .hintbar b { display: block; margin-bottom: 3px; font: 600 var(--fs-aux) / 1.4 var(--font-display); letter-spacing: 0.05em;
}
.seats-pc .hintbar p { margin: 0; color: var(--muted); font-size: var(--fs-aux); line-height: 1.65;
}
.seats-pc .facts { flex-wrap: wrap; margin-bottom: 14px;
}
.seats-pc .fact { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); color: var(--fg);
}
@supports not (gap: 1px) {
.seats-pc .fact > * + * {
    margin-left: 8px;
}
}
.seats-pc .fact.act { cursor: pointer;
}
.seats-pc .fact.act:hover { border-color: #B4AA9D; border-color: color-mix(in oklab, var(--fg) 25%, var(--border)); background: var(--soft-green);
}
.seats-pc .fact.warn .n { color: var(--accent);
}
.seats-pc .fact .k { color: var(--muted); font-size: var(--fs-aux);
}
.seats-pc .fact .n, .seats-pc .r-count b { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600;
}
.seats-pc .hbar { flex-wrap: wrap; margin-bottom: 12px;
}
.seats-pc .sp, .seats-pc .grow { flex: 1;
}
.seats-pc .searchbox { display: flex; align-items: center; gap: 8px; width: min(400px, 100%); min-height: 40px; padding: 0 12px; border: 1px solid var(--border); border-radius: var(--mqm-r-ctl); background: var(--surface); color: var(--muted);
}
@supports not (gap: 1px) {
.seats-pc .searchbox > * + * {
    margin-left: 8px;
}
}
.seats-pc .searchbox:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.seats-pc .searchbox input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--fg); font: inherit;
}
.seats-pc .rcard { overflow: hidden; margin-bottom: 12px; border: 1px solid var(--border); border-radius: var(--mqm-r-card); background: var(--surface); box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
}
.seats-pc .rhead { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 52px; padding: 6px 10px 6px 6px; border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.seats-pc .rhead > * + * {
    margin-left: 8px;
}
}
.seats-pc .rcard.is-fold .rhead { border-bottom: 0;
}
.seats-pc .grip, .seats-pc .ico { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); cursor: pointer;
}
.seats-pc .grip:hover:not(:disabled) { background: var(--soft-green); color: var(--fg);
}
.seats-pc .grip:disabled, .seats-pc .oplink:disabled { cursor: not-allowed; color: var(--muted-2);
}
.seats-pc .r-cover { position: relative; display: block; overflow: hidden; width: 112px; height: 63px; padding: 0; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); cursor: pointer;
}
.seats-pc .r-cover img, .seats-pc .seat-cover img { display: block; width: 100%; height: 100%; object-fit: cover;
}
.seats-pc .r-cover.empty { border-style: dashed; color: var(--muted); font-size: var(--fs-micro); letter-spacing: 0.06em;
}
.seats-pc .cover-edit { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(67, 53, 43, 0.46); background: color-mix(in oklab, var(--fg) 46%, transparent); color: var(--paper-ink); font-size: var(--fs-micro); opacity: 0; transition: opacity 0.15s ease;
}
@supports not (inset: 0) {
.seats-pc .cover-edit { top: 0; right: 0; bottom: 0; left: 0;
}
}
.seats-pc .r-cover:hover .cover-edit, .seats-pc .seat-cover:hover .cover-edit { opacity: 1;
}
.seats-pc .r-title-wrap { min-width: 0;
}
.seats-pc .r-title { color: var(--fg); font: 600 var(--fs-section) / 1.3 var(--font-display); letter-spacing: 0.04em;
}
.seats-pc .r-count { margin-top: 2px; color: var(--muted); font-size: var(--fs-aux);
}
.seats-pc .r-ops { gap: 2px;
}
.seats-pc .oplink { display: inline-flex; align-items: center; min-height: 36px; padding: 0 9px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font-size: var(--fs-aux); cursor: pointer;
}
.seats-pc .oplink:hover:not(:disabled) { background: var(--soft-green); color: var(--fg);
}
.seats-pc .oplink.danger { color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg));
}
.seats-pc .oplink.danger:hover { background: var(--soft-cinnabar); color: var(--cinnabar);
}
.seats-pc .seat { display: grid; grid-template-columns: 64px minmax(140px, 1.1fr) minmax(0, 1fr) auto; gap: 8px 12px; align-items: center; min-height: 52px; padding: 8px 16px 8px 54px; border-bottom: 1px solid var(--border);
}
.seats-pc .seat:last-child { border-bottom: 0;
}
.seats-pc .seat:hover { background: var(--soft-green);
}
.seats-pc .seat.off { background: var(--soft);
}
.seats-pc .seat.off .seat-name { color: var(--muted);
}
.seats-pc .seat-cover { position: relative; display: block; overflow: hidden; width: 64px; height: 36px; padding: 0; border: 1px solid var(--border); border-radius: 6px; background: var(--soft); cursor: pointer;
}
.seats-pc .seat-cover.empty { border-style: dashed; color: var(--muted-2);
}
.seats-pc .via-tag { position: absolute; right: 3px; bottom: 3px; padding: 1px 4px; border-radius: 3px; background: rgba(67, 53, 43, 0.72); background: color-mix(in oklab, var(--fg) 72%, transparent); color: var(--paper-ink); font-size: 9px; letter-spacing: 0.04em; line-height: 1.2;
}
.seats-pc .seat-name { color: var(--fg); font-weight: 600;
}
.seats-pc .seat-key, .seats-pc .pv-row .k { margin-top: 1px; color: var(--muted); font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.02em;
}
.seats-pc .seat-mid { flex-wrap: wrap; gap: 6px; min-width: 0;
}
.seats-pc .seat-ops { gap: 2px; justify-content: flex-end;
}
.seats-pc .bk-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--r-pill); background: var(--bg); color: var(--fg); font-family: var(--font-mono); font-size: var(--fs-aux); font-variant-numeric: tabular-nums; text-decoration: none;
}
.seats-pc .bk-chip:hover { border-color: #B4AA9D; border-color: color-mix(in oklab, var(--fg) 25%, var(--border)); background: var(--surface);
}
.seats-pc .badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border: 1px solid var(--border); border-radius: var(--r-pill); background: var(--bg); color: var(--muted); font: 500 var(--fs-micro) / 1 var(--font-display); letter-spacing: 0.06em;
}
.seats-pc .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px;
}
@supports not (gap: 1px) {
.seats-pc .field > * + * {
    margin-top: 6px;
}
}
.seats-pc .field label { display: flex; gap: 5px; color: var(--muted); font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.seats-pc .field label > * + * {
    margin-left: 5px;
}
}
.seats-pc .field .req, .seats-pc .ferr { color: var(--cinnabar);
}
.seats-pc .field .opt { color: var(--muted-2); font-size: var(--fs-micro);
}
.seats-pc .input, .seats-pc .select { box-sizing: border-box; width: 100%; min-height: 40px; padding: 0 12px; border: 1px solid var(--border); border-radius: var(--mqm-r-ctl); background: var(--surface); color: var(--fg); font: inherit; outline: none;
}
.seats-pc .input:focus, .seats-pc .select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.seats-pc .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.seats-pc .frow { align-items: flex-start;
}
.seats-pc .frow .field { flex: 1; min-width: 0;
}
.seats-pc .adv { margin: 4px 0 16px; padding-top: 12px; border-top: 1px dashed var(--border);
}
.seats-pc .adv summary { min-height: 32px; color: var(--muted); cursor: pointer; font-size: var(--fs-aux);
}
.seats-pc .ferr { margin: 8px 0 0; font-size: var(--fs-micro); line-height: 1.65;
}
.seats-pc .ferr.show { display: block;
}
.seats-pc .notice { margin: 0 0 14px; padding: 10px 12px; border-radius: var(--mqm-r-ctl); background: var(--soft-clay); color: #8E5A3C; color: color-mix(in oklab, var(--accent) 80%, var(--fg)); font-size: var(--fs-aux); line-height: 1.7;
}
.seats-pc .up { display: flex; flex-direction: column; justify-content: center; gap: 5px; min-height: 88px; box-sizing: border-box; padding: 12px; border: 1px dashed var(--border); border-radius: 12px; background: var(--bg); color: var(--fg); cursor: pointer; font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.seats-pc .up > * + * {
    margin-top: 5px;
}
}
.seats-pc .up:hover, .seats-pc .up.is-dragover { border-color: #AFA598; border-color: color-mix(in oklab, var(--fg) 28%, var(--border)); background: var(--soft-green);
}
.seats-pc .up > span, .seats-pc .up > small { pointer-events: none;
}
.seats-pc .up input { display: none;
}
.seats-pc .up small, .seats-pc .up-file, .seats-pc .pv-cap { color: var(--muted); font-size: var(--fs-micro); line-height: 1.65;
}
.seats-pc .up.mini { flex: 1; min-height: 62px;
}
.seats-pc .up-file { margin: 8px 0 0;
}
/* B-290 封面现状块：封面弹层与席位编辑抽屉共用 */
.seats-pc .cover-now { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg);
}
@supports not (gap: 1px) {
.seats-pc .cover-now > * + * {
    margin-left: 12px;
}
}
.seats-pc .cover-thumb { position: relative; flex: none; display: flex; align-items: center; justify-content: center; overflow: hidden; width: 112px; height: 63px; border: 1px solid var(--border); border-radius: 8px; background: var(--soft); color: var(--muted-2); font-size: var(--fs-micro); letter-spacing: 0.06em;
}
.seats-pc .cover-thumb img { display: block; width: 100%; height: 100%; object-fit: cover;
}
.seats-pc .cover-thumb.empty { border-style: dashed;
}
.seats-pc .cover-now-copy { flex: 1; min-width: 0;
}
.seats-pc .cover-now-copy b { display: block; color: var(--fg); font: 600 var(--fs-aux) / 1.5 var(--font-display); letter-spacing: 0.04em;
}
.seats-pc .cover-now-copy p { margin: 4px 0 0; color: var(--muted); font-size: var(--fs-micro); line-height: 1.65;
}
.seats-pc .cover-actions { display: flex; gap: 10px; align-items: stretch;
}
@supports not (gap: 1px) {
.seats-pc .cover-actions > * + * {
    margin-left: 10px;
}
}
.seats-pc .cover-pick { justify-content: flex-start;
}
.seats-pc .cover-actions .btn { flex: none;
}
.seats-pc .preview { max-height: 240px; overflow: auto; border: 1px solid var(--border); border-radius: 12px; background: var(--bg);
}
.seats-pc .pv-cap { margin: 14px 0 8px;
}
.seats-pc .pv-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 36px; padding: 6px 12px; border-bottom: 1px solid var(--border); font-size: var(--fs-body);
}
@supports not (gap: 1px) {
.seats-pc .pv-row > * + * {
    margin-left: 10px;
}
}
.seats-pc .pv-row:last-child { border-bottom: 0;
}
.seats-pc .pv-row.bad { background: var(--soft-cinnabar); color: #974930; color: color-mix(in oklab, var(--cinnabar) 82%, var(--fg));
}
.seats-pc .confirm-copy { padding: var(--sp-4);
}
.seats-pc .confirm-copy h2 { margin: 0 0 var(--sp-2); color: var(--fg); font: 600 var(--fs-section) / 1.4 var(--font-display); letter-spacing: 0.04em;
}
.seats-pc .confirm-copy p { margin: 0 0 var(--sp-4); color: var(--muted); font-size: var(--fs-aux); line-height: 1.75;
}
.seats-pc .confirm-actions { display: flex; gap: var(--sp-2); justify-content: flex-end;
}
@supports not (gap: 1px) {
.seats-pc .confirm-actions > * + * {
    margin-left: var(--sp-2);
}
}
.seats-pc .sk-card { margin-bottom: 12px; padding: 16px; border: 1px solid var(--border); border-radius: var(--mqm-r-card); background: var(--surface);
}
.seats-pc .sk { position: relative; overflow: hidden; height: 12px; border-radius: 6px; background: var(--soft);
}
.seats-pc .sk::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, transparent, rgba(248, 246, 238, 0.85), transparent); background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--surface) 85%, transparent), transparent); animation: seats-shim 1.2s ease infinite;
}
@supports not (inset: 0) {
.seats-pc .sk::after { top: 0; right: 0; bottom: 0; left: 0;
}
}
.seats-pc .sk-title { width: 140px;
}
.seats-pc .sk-row { display: flex; gap: 12px; margin-top: 14px;
}
@supports not (gap: 1px) {
.seats-pc .sk-row > * + * {
    margin-left: 12px;
}
}.seats-pc .sk-row .sk { flex: 1;
}
@keyframes seats-shim {
to { transform: translateX(100%);
}
}
@media (max-width: 1120px) {
.seats-pc .seat { grid-template-columns: 64px minmax(130px, 1fr) minmax(0, 1fr) auto; padding-left: 24px;
}
.seats-pc .r-ops { width: 100%; justify-content: flex-end;
}
}
@media (prefers-reduced-motion: reduce) {
.seats-pc *, .seats-pc *::before, .seats-pc *::after { animation-duration: .01ms !important; transition-duration: .01ms !important;
}
}

/* B-378：照原型 .sheet .foot——flex gap 10、margin-top 18、按钮 flex:1；
   .inv-confirm-body 共享样式在 inventoryWorkspace.css（原型 .confirm-body） */
.inv-confirm-actions[data-v-9123c50e] {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}
@supports not (gap: 1px) {
.inv-confirm-actions[data-v-9123c50e] > * + * {
    margin-left: 10px;
}
}
.inv-confirm-actions .inv-btn[data-v-9123c50e] {
  flex: 1;
}
/* B-378：全部视觉值照原型 03 实盘弹层（.sheet/.field/.ac-*，来源选择器见注释） */

/* 原型 .sheet .sub——13px/行高 1.65 muted、margin-bottom 14 */
.inv-sheet-sub[data-v-51942f11] {
  font-size: 13px;
  line-height: 1.65;
  color: var(--muted);
  margin: 0 0 14px;
}

/* 原型 .hint-line（批次列表上方说明） */
.inv-ac-hint[data-v-51942f11] {
  margin: 0 0 6px;
}

/* 原型 .ac-batch——flex gap 12、padding 11 0、虚线分隔 */
.inv-batch-row[data-v-51942f11] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px dashed var(--border);
}
@supports not (gap: 1px) {
.inv-batch-row[data-v-51942f11] > * + * {
    margin-left: 12px;
}
}
.inv-batch-row[data-v-51942f11]:last-of-type {
  border-bottom: none;
}

/* 原型 .ac-b-info——flex 列、gap 3；清零行灰化 .ac-batch.zeroed .ac-b-info */
.inv-batch-info[data-v-51942f11] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}
@supports not (gap: 1px) {
.inv-batch-info[data-v-51942f11] > * + * {
    margin-top: 3px;
}
}

/* 原型 .ac-batch.zeroed .ac-b-info：只灰化信息列（行本身不透化，避免与共享
   .inv-zeroed 的整卡灰化叠加——共享规则服务批次明细卡） */
.inv-batch-row.inv-zeroed[data-v-51942f11] {
  opacity: 1;
}
.inv-zeroed .inv-batch-info[data-v-51942f11] {
  opacity: 0.45;
}

/* 原型 .ac-b-dates——12.5px muted mono */
.inv-batch-dates[data-v-51942f11] {
  font-size: 12.5px;
  color: var(--muted);
}

/* 原型 .ac-b-book——13px fg */
.inv-batch-book[data-v-51942f11] {
  font-size: 13px;
  color: var(--fg);
}

/* 账面不可换算提示（跨列整行） */
.inv-batch-convert-hint[data-v-51942f11] {
  flex: 1 1 100%;
}

/* 原型 .ac-ctrl——右列、gap 5 */
.inv-batch-ctrl[data-v-51942f11] {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
}
@supports not (gap: 1px) {
.inv-batch-ctrl[data-v-51942f11] > * + * {
    margin-top: 5px;
}
}

/* 原型 .ac-zero——无边框文字钮、12px muted、padding 4 2 */
.inv-zero-btn[data-v-51942f11] {
  border: 0;
  background: none;
  color: var(--muted);
  font-size: 12px;
  padding: 4px 2px;
  line-height: 1.4;
  cursor: pointer;
}

/* 原型 .ac-total——soft 底、圆角 10、padding 10 12、13px muted；
   b 15px fg；.diff 变体 warn-soft + warn-ink */
.inv-ac-total[data-v-51942f11] {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--soft);
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}
.inv-ac-total b[data-v-51942f11] {
  color: var(--fg);
  font-size: 15px;
}
.inv-ac-total.mismatch[data-v-51942f11] {
  background: var(--soft-clay);
}
.inv-ac-total.mismatch b[data-v-51942f11] {
  color: var(--inv-warn-ink);
}
.inv-ac-sys[data-v-51942f11] {
  font-size: 12px;
}
.inv-ac-diff[data-v-51942f11] {
  margin-top: 3px;
  font-size: 12px;
  color: var(--inv-warn-ink);
  font-weight: 600;
}

/* 原型 .sheet .foot——flex gap 10、margin-top 18、按钮 flex:1 */
.inv-sheet-actions[data-v-51942f11] {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}
@supports not (gap: 1px) {
.inv-sheet-actions[data-v-51942f11] > * + * {
    margin-left: 10px;
}
}
.inv-sheet-actions .inv-btn[data-v-51942f11] {
  flex: 1;
}

/* B-378：照原型 03 short 弹层（.sub/.buy-line/.sw，来源选择器见注释） */

/* 原型 .sheet .sub——13px/行高 1.65 muted、margin-bottom 14 */
.inv-short-lead[data-v-bb4829d2] {
  font-size: 13px;
  line-height: 1.65;
  color: var(--muted);
  margin: 0 0 14px;
}

/* 原型 .buy-line——flex gap 12 居中对齐 */
.inv-buy-line[data-v-bb4829d2] {
  display: flex;
  align-items: center;
  gap: 12px;
}
@supports not (gap: 1px) {
.inv-buy-line[data-v-bb4829d2] > * + * {
    margin-left: 12px;
}
}

/* 原型 .buy-line .inp——宽 92、居中、flex:none */
.inv-buy-qty[data-v-bb4829d2] {
  width: 92px;
  flex: none;
  text-align: center;
}

/* 原型 .buy-line .unit-chips——flex:1 占满余量、无顶距 */
.inv-buy-units[data-v-bb4829d2] {
  flex: 1;
  min-width: 0;
  margin-top: 0;
}
.inv-buy-units .inv-unit-btn[data-v-bb4829d2] {
  min-height: 40px;
}

/* 原型 .buy-urgent：紧急开关格 */
.inv-urgent-cell[data-v-bb4829d2] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: none;
}
@supports not (gap: 1px) {
.inv-urgent-cell[data-v-bb4829d2] > * + * {
    margin-left: 6px;
}
}
.inv-urgent-label[data-v-bb4829d2] {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

/* 原型 .sw——46×28 圆角开关，::after 22px 圆钮；
   B-380：补 min-height:0 压过全局 44px 触控基线（否则 28 被顶成 44）。 */
.inv-sw[data-v-bb4829d2] {
  position: relative;
  width: 46px;
  height: 28px;
  min-height: 0;
  flex: none;
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: var(--inv-switch-off);
  cursor: pointer;
  transition: background 0.18s;
}
.inv-sw[data-v-bb4829d2]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 1px 3px rgba(67, 53, 43, 0.25);
  box-shadow: 0 1px 3px oklch(0.34 0.026 55 / 0.25);
  transition: left 0.18s;
}
.inv-sw.on[data-v-bb4829d2] {
  background: var(--accent);
}
.inv-sw.on[data-v-bb4829d2]::after {
  left: 21px;
}

/* 原型 .sheet .foot——flex gap 10、margin-top 18、按钮 flex:1 */
.inv-sheet-actions[data-v-bb4829d2] {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}
@supports not (gap: 1px) {
.inv-sheet-actions[data-v-bb4829d2] > * + * {
    margin-left: 10px;
}
}
.inv-sheet-actions .inv-btn[data-v-bb4829d2] {
  flex: 1;
}


/* B-387：入口选择弹层。外框沿用 .inv-sheet*；行样式同入库 push 第一步 .inv-pick-*。 */
.inv-pick-selects[data-v-4d379d96] {
  display: flex;
  gap: 10px;
  margin: 6px 0 2px;
}
@supports not (gap: 1px) {
.inv-pick-selects[data-v-4d379d96] > * + * {
    margin-left: 10px;
}
}
.inv-pick-field[data-v-4d379d96] {
  flex: 1;
  min-width: 0;
  display: block;
}
.inv-pick-label[data-v-4d379d96] {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}
.inv-pick-hint[data-v-4d379d96] {
  margin-bottom: 10px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--muted);
}
.inv-pick-search[data-v-4d379d96] {
  margin-bottom: 10px;
}
.inv-select[data-v-4d379d96] {
  width: 100%;
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--fg);
  font: inherit;
  font-size: 14px;
}
.inv-select[data-v-4d379d96]:disabled {
  opacity: 0.5;
}
.inv-pick-list[data-v-4d379d96] {
  margin-top: 10px;
  max-height: 46vh;
  overflow-y: auto;
}
.inv-pick-row[data-v-4d379d96] {
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 8px 4px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.inv-pick-name[data-v-4d379d96] {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: var(--fg);
}
.inv-pick-meta[data-v-4d379d96] {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}
.inv-pick-empty[data-v-4d379d96] {
  padding: 16px 0;
  text-align: center;
  font-size: 13px;
  color: var(--muted);
}
/* B-378：全部视觉值照原型 03「盘库」段（来源选择器见注释） */

/* B-379：本屏底部内距归零，让 .inv-count-wrap 的 min-height:100% 撑到滚动容器真正的底边，
   吸底条普通位即贴底（原型靠 .screen 底部 28px + sticky bottom:-28px 抵消，本实现改为
   直接不预留这段，实测条体盒底边与滚动容器底边间距为 0）。 */
.inv-count-screen[data-v-3b79b5f4] {
  padding-bottom: 0;
}

/* 原型 .count-wrap——撑满可视高、纵向排布，spacer 把吸底条推到容器底部 */
.inv-count-wrap[data-v-3b79b5f4] {
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

/* 原型 .count-spacer——内容不足时吃掉剩余高度（吸底条因此始终贴底） */
.inv-count-spacer[data-v-3b79b5f4] {
  flex: 1 1 auto;
  min-height: 18px;
}

/* 汇总数签行（2026-09-28 变体A，对齐小程序 pages/inventory 的 .inv-numline）：
   去卡片直铺页底、衬线数字唱主角，高度约为旧统计条一半 */
.inv-numline[data-v-3b79b5f4] {
  position: relative;
  margin: 0 0 14px;
}
.inv-numtiles[data-v-3b79b5f4] {
  display: flex;
  align-items: stretch;
}
.inv-numtile[data-v-3b79b5f4] {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 5px 0 7px;
  position: relative;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
  transition: background-color 0.18s ease;
}
@supports not (gap: 1px) {
.inv-numtile[data-v-3b79b5f4] > * + * {
    margin-top: 3px;
}
}

/* 按压态：整格淡墨晕（与小程序 .inv-tile:active 同手感；带下划线选中态不吃涟漪类） */
.inv-numtile[data-v-3b79b5f4]:active {
  background: rgba(62, 47, 36, 0.04);
}
.inv-numtile + .inv-numtile[data-v-3b79b5f4] {
  border-left: 1px solid var(--border);
}

/* 衬线数字（与两端页头标题同源）；:key 值变重建节点即播滚落动画 */
.inv-nt-num[data-v-3b79b5f4] {
  font-family: "Songti SC", "STSong", "Noto Serif SC", serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.1;
  color: var(--fg);
  font-variant-numeric: tabular-nums;
  transition: color 0.25s ease;
  animation: inv-nt-tick-3b79b5f4 0.45s ease-out;
}
@keyframes inv-nt-tick-3b79b5f4 {
0% { opacity: 0; transform: translateY(4px);
}
60% { opacity: 1; transform: translateY(-1px);
}
100% { transform: none;
}
}
.inv-nt-num.warn[data-v-3b79b5f4] {
  color: var(--inv-danger-ink);
}
.inv-nt-label[data-v-3b79b5f4] {
  font-size: 10.5px;
  line-height: 1;
  letter-spacing: 2px;
  color: var(--muted);
  transition: color 0.25s ease;
}

/* 选中态：accent 短下划线 + 数字/标签染色（与两端页签选中语言一致）。
   下划线 bottom 3px 上提（老爷 2026-09-29 报与墨线重合，对齐小程序 6rpx） */
.inv-numtile[data-v-3b79b5f4]::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 3px;
  width: 0;
  height: 2px;
  border-radius: 1px;
  background: var(--accent);
  transform: translateX(-50%);
  transition: width 0.22s ease;
}
.inv-numtile.on[data-v-3b79b5f4]::after {
  width: 24px;
}
.inv-numtile.on .inv-nt-num[data-v-3b79b5f4] {
  color: var(--inv-accent-ink);
}
.inv-numtile.on .inv-nt-num.warn[data-v-3b79b5f4] {
  color: var(--inv-danger-ink);
}
.inv-numtile.on .inv-nt-label[data-v-3b79b5f4] {
  color: var(--inv-accent-ink);
  font-weight: 600;
}

/* 墨线进度（替代旧 6px .pbar）：3px + 轨道加浓（对齐小程序 6rpx/0.15 真机浓度口径），
   入场 scaleX 生长、随后 width 平滑推进。margin-top 4px 与选中下划线拉开距离 */
.inv-inkbar[data-v-3b79b5f4] {
  height: 3px;
  border-radius: 1.5px;
  background: rgba(62, 47, 36, 0.15);
  overflow: hidden;
  margin-top: 4px;
}
.inv-inkbar > i[data-v-3b79b5f4] {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: 1px;
  transform-origin: left center;
  animation: inv-ink-grow-3b79b5f4 0.9s ease-out;
  transition: width 0.6s ease-out;
}
@keyframes inv-ink-grow-3b79b5f4 {
from { transform: scaleX(0);
}
to { transform: scaleX(1);
}
}

/* 刷新键（原型无，功能保留）：数签行右上角小 ghost */
.inv-refresh-btn[data-v-3b79b5f4] {
  position: absolute;
  top: 2px;
  right: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 14px;
  width: 26px;
  height: 26px;
  /* B-380：同款触控基线钳制——固定 26px 被全局 min-height:44px 顶成 26×44 */
  min-height: 0;
  border-radius: 7px;
  cursor: pointer;
}
.inv-refresh-btn[data-v-3b79b5f4]:hover {
  background: var(--inv-hover);
  color: var(--fg);
}

/* 原型 .count-done-banner——accent-soft 底、横幅线边框、accent-ink 14px/700 */
.inv-all-done[data-v-3b79b5f4] {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 13px 15px;
  margin-bottom: 14px;
  background: var(--soft-green);
  border: 1px solid var(--inv-banner-line);
  border-radius: 12px;
  color: var(--inv-accent-ink);
  font-size: 14px;
  font-weight: 700;
}
@supports not (gap: 1px) {
.inv-all-done[data-v-3b79b5f4] > * + * {
    margin-left: 9px;
}
}

/* 原型 .sec-title——12.5px/700 muted、margin 18 2 8；.danger 变体 danger-ink */
.inv-sec-title[data-v-3b79b5f4] {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--muted);
  margin: 18px 2px 8px;
}
@supports not (gap: 1px) {
.inv-sec-title[data-v-3b79b5f4] > * + * {
    margin-left: 7px;
}
}
.inv-sec-title svg[data-v-3b79b5f4] {
  flex: none;
}
.inv-sec-overdue[data-v-3b79b5f4] {
  color: var(--inv-danger-ink);
}

/* 原型 .group-head——12.5px/700 fg、min-height 40、margin 12 2 6、无描边 */
.inv-group-head[data-v-3b79b5f4] {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 40px;
  margin: 12px 2px 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--fg);
  font-size: 12.5px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-group-head[data-v-3b79b5f4] > * + * {
    margin-left: 7px;
}
}

/* 原型 .group-head .gp——12px mono muted，b fg 700 */
.inv-group-progress[data-v-3b79b5f4] {
  margin-left: auto;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.inv-group-progress b[data-v-3b79b5f4] {
  color: var(--fg);
  font-weight: 700;
}
.inv-group-caret[data-v-3b79b5f4] {
  color: var(--muted);
  font-size: 12px;
  transition: transform 0.2s ease;
}
.inv-group-caret.collapsed[data-v-3b79b5f4] {
  transform: rotate(-90deg);
}

/* 原型 .count-group .card：列表卡极轻投影 */
.inv-count-card[data-v-3b79b5f4] {
  padding: 0;
  box-shadow: 0 1px 2px rgba(67, 53, 43, 0.04);
  box-shadow: 0 1px 2px oklch(0.34 0.026 55 / 0.04);
}

/* 原型 .count-row——padding 13 14、行底细分隔线 */
.inv-task-row[data-v-3b79b5f4] {
  padding: 13px 14px;
  border-bottom: 1px solid var(--border);
}
.inv-task-row[data-v-3b79b5f4]:last-child {
  border-bottom: none;
}

/* 原型 .count-row .cr-top .t——15px/600 */
.inv-task-name-row[data-v-3b79b5f4] {
  display: flex;
  align-items: center;
  gap: 8px;
}
@supports not (gap: 1px) {
.inv-task-name-row[data-v-3b79b5f4] > * + * {
    margin-left: 8px;
}
}
.inv-task-name[data-v-3b79b5f4] {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 原型 .count-row .cr-sys——12px muted，mono 段 fg 600 */
.inv-task-meta[data-v-3b79b5f4] {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}
.inv-task-meta .inv-mono[data-v-3b79b5f4] {
  color: var(--fg);
  font-weight: 600;
}
.inv-task-by[data-v-3b79b5f4] {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}

/* 原型 .count-ops——flex gap 7、margin-top 11 */
.inv-task-ops[data-v-3b79b5f4] {
  display: flex;
  gap: 7px;
  margin-top: 11px;
}
@supports not (gap: 1px) {
.inv-task-ops[data-v-3b79b5f4] > * + * {
    margin-left: 7px;
}
}

/* 原型 .count-ops .op——flex:1、min-height 44、圆角 10、13px/600、surface 底 */
.inv-op[data-v-3b79b5f4] {
  flex: 1;
  min-height: 44px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.inv-op[data-v-3b79b5f4]:hover {
  background: var(--inv-hover);
}

/* 实盘键强调（原型 .op.done-like 同款 accent 三档，用于主操作引导） */
.inv-op-actual[data-v-3b79b5f4] {
  border-color: var(--accent);
  color: var(--inv-accent-ink);
  background: var(--soft-green);
}

/* 原型 .temp-add——全宽虚线钮、min-height 48、1px 虚线、surface 底、
   13.5px/600 muted、margin-top 10、padding 0 */
.inv-temp-btn[data-v-3b79b5f4] {
  width: 100%;
  min-height: 48px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px dashed var(--border);
  border-radius: var(--inv-radius-btn);
  background: var(--surface);
  color: var(--muted);
  font-size: 13.5px;
  font-weight: 600;
  margin-top: 10px;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-temp-btn[data-v-3b79b5f4] > * + * {
    margin-left: 6px;
}
}
.inv-temp-btn[data-v-3b79b5f4]:hover {
  background: var(--inv-hover);
}

/* 原型 .collapse-head——12.5px/700 muted、min-height 40、margin 14 2 4 */
.inv-done-toggle[data-v-3b79b5f4] {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 40px;
  margin: 14px 2px 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-done-toggle[data-v-3b79b5f4] > * + * {
    margin-left: 7px;
}
}

/* 原型 .count-done-line——12.5px muted、flex gap 8、margin-top 9 */
.inv-done-line[data-v-3b79b5f4] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 9px;
  font-size: 12.5px;
  color: var(--muted);
}
@supports not (gap: 1px) {
.inv-done-line[data-v-3b79b5f4] > * + * {
    margin-left: 8px;
}
}
.inv-done-ic[data-v-3b79b5f4] {
  flex: none;
  color: var(--inv-accent-ink);
}
.inv-done-result[data-v-3b79b5f4] {
  flex: 1;
  min-width: 0;
}
.inv-done-result .inv-mono[data-v-3b79b5f4] {
  color: var(--fg);
  font-weight: 600;
}

/* 原型 .mini-btn——36px 高、9px 圆角、12px/600 */
.inv-mini-btn[data-v-3b79b5f4] {
  flex: none;
  min-height: 36px;
  padding: 0 10px;
  border-radius: 9px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

/* 原型 .count-bottom——吸底条：margin 0 -16px 横向出血、bg 底、上描边；
   B-379：本屏底部内距已归零，sticky 阈值取 0 使条体盒底边与滚动容器底边齐平（真贴底，
   去掉原 margin-top 10 的额外空隙）；MobileShell 底栏在壳外层，与滚动区不重叠。
   B-380：条内下距由原型 42px（为 home indicator 预留）改为 10px + 安全区，避免按钮与
   底栏之间出现 42px 空白；安全区自带 inset 时仍避开 home indicator。 */
.inv-bulk[data-v-3b79b5f4] {
  position: sticky;
  bottom: 0;
  margin: 0 -16px;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: var(--bg);
  border-top: 1px solid var(--border);
}
.inv-btn-block[data-v-3b79b5f4] {
  width: 100%;
}

/* B-378：全部视觉值照原型 03「库存首页」段（来源选择器见注释） */
.inv-stock-screen[data-v-4aeb193e] {
  padding-bottom: calc(96px + env(safe-area-inset-bottom));
}

/* ---------- 骨架 ---------- */
.inv-sk-group[data-v-4aeb193e] {
  padding-top: 4px;
}
.inv-sk-title[data-v-4aeb193e] {
  width: 38%;
  height: 22px;
  margin-bottom: 16px;
}
.inv-sk-row[data-v-4aeb193e] {
  height: 44px;
  margin-bottom: 10px;
}

/* ---------- 待处理条：原型 .todo-bar/.todo-chip——
   margin 2 0 14、chip min-height 44、padding 0 14、13px */
.inv-todo-bar[data-v-4aeb193e] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 2px 0 14px;
}
@supports not (gap: 1px) {
.inv-todo-bar[data-v-4aeb193e] > * + * {
    margin-left: 8px;
}
}
.inv-todo-chip[data-v-4aeb193e] {
  min-height: 44px;
  padding: 0 14px;
  font-size: 13px;
}

/* 原型 .todo-chip .n：14px mono 600 */
.inv-todo-n[data-v-4aeb193e] {
  font-size: 14px;
  margin-left: 2px;
}

/* 原型 .todo-chip.c-warn/.c-danger 的数字色与选中态 */
.inv-n-warn[data-v-4aeb193e] {
  color: var(--inv-warn-ink);
}
.inv-n-danger[data-v-4aeb193e] {
  color: var(--inv-danger-ink);
}
.inv-todo-chip.active .inv-todo-n[data-v-4aeb193e],
.inv-chip.active .inv-todo-n[data-v-4aeb193e] {
  color: var(--surface);
}

/* ---------- 采买需求入口：原型 .purchase-entry 为独立纯文字行；
   B-380 老板改设计（偏离原型，台账已注）：并入搜索行右半，改为 chip——
   点击行为与旧独立入口一致（openPurchase）。flex:none + nowrap 保证窄屏不挤压换行。 */
.inv-purchase-entry[data-v-4aeb193e] {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--inv-accent-ink);
  font-size: 12.5px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-purchase-entry[data-v-4aeb193e] > * + * {
    margin-left: 4px;
}
}
.inv-purchase-entry[data-v-4aeb193e]:hover {
  background: var(--inv-hover);
}
.inv-purchase-entry svg[data-v-4aeb193e] {
  flex: none;
}

/* ---------- 搜索行：原型 .search-row；B-380 右侧并入采买需求 chip（搜索框占余下宽度） */
.inv-search-row[data-v-4aeb193e] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
}
@supports not (gap: 1px) {
.inv-search-row[data-v-4aeb193e] > * + * {
    margin-left: 8px;
}
}
.inv-search-ic[data-v-4aeb193e] {
  flex: none;
  color: var(--muted);
}
.inv-search-input[data-v-4aeb193e] {
  flex: 1;
  min-width: 0;
  min-height: 44px;
}
.inv-search-clear[data-v-4aeb193e] {
  flex: none;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  min-height: 32px;
  padding: 0 6px;
  cursor: pointer;
}

/* ---------- 分类 chip 行：原型 .cat-row——出血到屏边、chip 36px ---------- */
.inv-cat-row[data-v-4aeb193e] {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: 0 -16px;
  padding: 2px 16px 12px;
  scrollbar-width: none;
}
@supports not (gap: 1px) {
.inv-cat-row[data-v-4aeb193e] > * + * {
    margin-left: 8px;
}
}
.inv-cat-row[data-v-4aeb193e]::-webkit-scrollbar {
  display: none;
}
.inv-cat-row .inv-chip[data-v-4aeb193e] {
  min-height: 36px;
  flex: none;
}

/* 原型 .cat-row.sub——子类行 chip 32px、12px */
.inv-sub-row[data-v-4aeb193e] {
  margin-top: -6px;
  padding-bottom: 10px;
}
.inv-sub-row .inv-chip[data-v-4aeb193e] {
  min-height: 32px;
  font-size: 12px;
}
.inv-sub-lead[data-v-4aeb193e] {
  align-self: center;
  font-size: 11.5px;
  color: var(--muted);
  flex: none;
}

/* ---------- 物品列表：原型 .item-row——min-height 64、padding 14 ---------- */
.inv-list-card[data-v-4aeb193e] {
  padding: 0;
  box-shadow: 0 1px 2px rgba(67, 53, 43, 0.04);
  box-shadow: 0 1px 2px oklch(0.34 0.026 55 / 0.04);
}
.inv-item-row[data-v-4aeb193e] {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 64px;
  padding: 14px 14px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent; /* 原型 .item-row 无底色（surface 由 .list-card 卡提供） */
  color: var(--fg);
  font-family: var(--font-body);
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-item-row[data-v-4aeb193e] > * + * {
    margin-left: 10px;
}
}
.inv-item-row[data-v-4aeb193e]:last-child {
  border-bottom: none;
}
.inv-item-row[data-v-4aeb193e]:active {
  background: var(--inv-hover);
}

/* 原型 .item-row .nm .t：15px/600 */
.inv-item-nm[data-v-4aeb193e] {
  flex: 1;
  min-width: 0;
}
.inv-item-name[data-v-4aeb193e] {
  display: block;
  font-size: 15px;
  font-weight: 600;
}

/* 原型 .item-row .nm .s：12px muted、margin-top 3 */
.inv-item-sub[data-v-4aeb193e] {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}

/* 原型 .item-row .qty：15px/700 右对齐；.u/.qb 11px/500 muted */
.inv-item-qty[data-v-4aeb193e] {
  flex: none;
  /* 原型 .item-row .qty.mono——整块数字右栏等宽数字（含「（1000 ml）」基准行） */
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 700;
  text-align: right;
}
.inv-item-unit[data-v-4aeb193e] {
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
  margin-left: 2px;
}
.inv-item-base[data-v-4aeb193e] {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
  margin-top: 1px;
}
.inv-chev[data-v-4aeb193e] {
  flex: none;
  color: var(--muted);
}
.inv-list-empty[data-v-4aeb193e] {
  padding: 18px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}

/* ---------- 初次启用空态：原型 .empty-hero ---------- */
.inv-empty[data-v-4aeb193e] {
  text-align: center;
  padding: 56px 8px 0;
}
.inv-empty h3[data-v-4aeb193e] {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 800;
  max-width: 15em;
  margin: 18px auto 0;
}
.inv-empty p[data-v-4aeb193e] {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
  max-width: 24em;
  margin: 10px auto 26px;
}
.inv-empty .inv-btn[data-v-4aeb193e] {
  margin: 0 auto;
}

/* B-378：全部视觉值照原型 03「记录」段（来源选择器见注释） */
.inv-adj-screen[data-v-e1a5e825] {
  padding-bottom: 28px;
}

/* ---------- 无权限提示条：原型 .notice-bar——
   warn-soft 底、notice 线边框、warn-ink 字、padding 11 13、圆角 12 */
.inv-notice-bar[data-v-e1a5e825] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 13px;
  margin-bottom: 12px;
  border-radius: 12px;
  background: var(--soft-clay);
  border: 1px solid var(--inv-notice-line);
  color: var(--inv-warn-ink);
  font-size: 12.5px;
  line-height: 1.5;
}
@supports not (gap: 1px) {
.inv-notice-bar[data-v-e1a5e825] > * + * {
    margin-left: 8px;
}
}
.inv-notice-bar svg[data-v-e1a5e825] {
  flex: none;
}

/* ---------- 骨架 ---------- */
.inv-sk-group[data-v-e1a5e825] {
  padding-top: 4px;
}
.inv-sk-title[data-v-e1a5e825] {
  width: 38%;
  height: 22px;
  margin-bottom: 16px;
}
.inv-sk-row[data-v-e1a5e825] {
  height: 64px;
  margin-bottom: 10px;
}

/* ---------- 类型筛选（功能保留：原型无类型筛选 chip 行） ---------- */
.inv-cat-row[data-v-e1a5e825] {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: 0 -16px;
  padding: 2px 16px 12px;
  scrollbar-width: none;
}
@supports not (gap: 1px) {
.inv-cat-row[data-v-e1a5e825] > * + * {
    margin-left: 8px;
}
}
.inv-cat-row[data-v-e1a5e825]::-webkit-scrollbar {
  display: none;
}
.inv-cat-row .inv-chip[data-v-e1a5e825] {
  min-height: 36px;
  flex: none;
}

/* ---------- 台账列表：原型 .adj-item——padding 13 14 ---------- */
.inv-adj-list[data-v-e1a5e825] {
  padding: 0;
  box-shadow: 0 1px 2px rgba(67, 53, 43, 0.04);
  box-shadow: 0 1px 2px oklch(0.34 0.026 55 / 0.04);
}
.inv-adj-item[data-v-e1a5e825] {
  padding: 13px 14px;
  border-bottom: 1px solid var(--border);
}
.inv-adj-item[data-v-e1a5e825]:last-child {
  border-bottom: none;
}

/* 原型 .adj-item.revoked：整体灰化 .55 */
.inv-adj-item.revoked[data-v-e1a5e825] {
  opacity: 0.55;
}

/* R10：盘亏超库存部分扣减——行红标高亮（老板审核一眼可见） */
.inv-adj-item.partial[data-v-e1a5e825] {
  background: var(--soft-cinnabar);
}
.inv-adj-partial-tag[data-v-e1a5e825] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--inv-danger-ink);
  border: 1px solid currentColor;
  border-radius: 6px;
  padding: 2px 7px;
  margin-left: 6px;
  vertical-align: 1px;
}

/* 原型 .adj-top——名称 14.5px/600 flex:1 */
.inv-adj-top[data-v-e1a5e825] {
  display: flex;
  align-items: center;
  gap: 8px;
}
@supports not (gap: 1px) {
.inv-adj-top[data-v-e1a5e825] > * + * {
    margin-left: 8px;
}
}
.inv-adj-name[data-v-e1a5e825] {
  flex: 1;
  min-width: 0;
  font-size: 14.5px;
  font-weight: 600;
}

/* 原型 .adj-delta——mono 14.5px/700 */
.inv-adj-delta[data-v-e1a5e825] {
  flex: none;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 14.5px;
}

/* 原型 .adj-delta.gain=accent-ink / .loss=danger-ink */
.delta-gain[data-v-e1a5e825] {
  color: var(--inv-accent-ink);
}
.delta-loss[data-v-e1a5e825] {
  color: var(--inv-danger-ink);
}
.delta-plain[data-v-e1a5e825] {
  color: var(--muted);
  font-weight: 500;
}

/* plain 徽标：原型 .badge.plain——soft 底 muted 字 */
.inv-badge-plain[data-v-e1a5e825] {
  background: var(--soft);
  color: var(--muted);
}

/* 原型 .revoked-tag——11px/700 muted、细边框、圆角 6、padding 2 7、margin-left 6 */
.inv-revoked-tag[data-v-e1a5e825] {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 2px 7px;
  margin-left: 6px;
  vertical-align: 1px;
}

/* 原型 .adj-mid——12px muted、margin-top 5；mono 段 fg */
.inv-adj-mid[data-v-e1a5e825] {
  font-size: 12px;
  color: var(--muted);
  margin-top: 5px;
}
.inv-adj-mid .inv-mono[data-v-e1a5e825] {
  color: var(--fg);
}
.inv-adj-reason[data-v-e1a5e825] {
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}
.inv-adj-orig[data-v-e1a5e825] {
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
}

/* 原型 .adj-low——详情文字区 flex:1 + 撤销钮同排右置（B-379：此前钮独立成行） */
.inv-adj-low[data-v-e1a5e825] {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 5px;
}
@supports not (gap: 1px) {
.inv-adj-low[data-v-e1a5e825] > * + * {
    margin-left: 12px;
}
}

/* 原型 .adj-low-text：flex:1 min-width:0；窄屏长文本换行不溢出 */
.inv-adj-low-text[data-v-e1a5e825] {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}

/* 原型 .adj-low .adj-mid：同排时去掉详情行上边距 */
.inv-adj-low .inv-adj-mid[data-v-e1a5e825] {
  margin-top: 0;
}

/* 原型 .btn-sm——min-height 40、padding 0 14、13px、圆角 10 */
.inv-revoke-btn[data-v-e1a5e825] {
  flex: none;
  min-height: 40px;
  padding: 0 14px;
  font-size: 13px;
  border-radius: 10px;
}
.inv-list-empty[data-v-e1a5e825] {
  padding: 26px 14px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}

/* 原型空态为卡内一行说明（非空态英雄区） */
.inv-adj-empty-title[data-v-e1a5e825] {
  font-size: 13px;
  color: var(--fg);
  font-weight: 600;
  margin: 0 0 4px;
}
.inv-adj-empty-sub[data-v-e1a5e825] {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
  line-height: 1.6;
}


.ei-sub-label[data-v-a74762bd] {
  margin-top: 12px;
}

/* 分类双下拉 */
.inv-dd-pair[data-v-a74762bd] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.inv-dd-pair[data-v-a74762bd] > * + * {
    margin-left: 10px;
}
}
.inv-dd[data-v-a74762bd] {
  position: relative;
  flex: 1;
  min-width: 0;
}
.inv-dd-mini[data-v-a74762bd] {
  display: block;
  font-size: 11px;
  color: var(--muted-2);
  margin-bottom: 4px;
}
.inv-dd-btn[data-v-a74762bd] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-dd-btn[data-v-a74762bd] > * + * {
    margin-left: 6px;
}
}
.inv-dd-btn[data-v-a74762bd]:disabled {
  opacity: 0.5;
  cursor: default;
}
.inv-dd-btn .placeholder[data-v-a74762bd] {
  color: var(--muted);
}
.inv-dd-menu[data-v-a74762bd] {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 50;
  max-height: 240px;
  overflow-y: auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(58, 42, 32, 0.18);
  box-shadow: 0 8px 24px oklch(0.3 0.03 50 / 0.18);
}
.inv-dd-item[data-v-a74762bd] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: var(--fg);
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}
.inv-dd-item[data-v-a74762bd]:active {
  background: var(--soft);
}
.inv-dd-check[data-v-a74762bd] {
  color: var(--fg);
  flex-shrink: 0;
}

/* 锁定与警示 */
.inv-lock-note[data-v-a74762bd] {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--soft);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}
.inv-base-warn[data-v-a74762bd] {
  margin: -6px 0 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
  font-size: 12px;
  line-height: 1.6;
}

/* 标准单位族只读行 */
.inv-std-list[data-v-a74762bd] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.inv-std-list[data-v-a74762bd] > * + * {
    margin-top: 6px;
}
}
.inv-std-row[data-v-a74762bd] {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 34px;
  padding: 0 12px;
  border: 1px dashed var(--border);
  border-radius: 10px;
  font-size: 13px;
  color: var(--muted);
}
@supports not (gap: 1px) {
.inv-std-row[data-v-a74762bd] > * + * {
    margin-left: 10px;
}
}
.inv-std-name[data-v-a74762bd] {
  font-weight: 700;
  color: var(--fg);
}

/* 包装单位行 */
.inv-pack-row[data-v-a74762bd] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
@supports not (gap: 1px) {
.inv-pack-row[data-v-a74762bd] > * + * {
    margin-left: 8px;
}
}
.inv-pack-name[data-v-a74762bd] {
  flex: 1.4;
  min-width: 0;
}
.inv-pack-ratio[data-v-a74762bd] {
  flex: 1;
  min-width: 0;
}
.inv-pack-eq[data-v-a74762bd] {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
}
.inv-pack-locked[data-v-a74762bd] {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.inv-pack-del[data-v-a74762bd] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  /* B-380：同款触控基线钳制——固定 34px 被全局 min-height:44px 顶成 34×44 */
  min-height: 0;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--muted);
  cursor: pointer;
}
.inv-pack-add[data-v-a74762bd] {
  min-height: 34px;
  padding: 0 12px;
  border: 1px dashed #9C9185;
  border: 1px dashed color-mix(in oklab, var(--fg) 40%, var(--border));
  border-radius: 10px;
  background: transparent;
  color: var(--fg);
  font-size: 13px;
  cursor: pointer;
  margin-top: 4px;
}

/* 周期行 */
.ei-cycle-row[data-v-a74762bd] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--muted);
}
@supports not (gap: 1px) {
.ei-cycle-row[data-v-a74762bd] > * + * {
    margin-left: 8px;
}
}
.ei-cycle-row span[data-v-a74762bd] {
  flex-shrink: 0;
}
.ei-cycle-n[data-v-a74762bd] {
  width: 84px;
  text-align: center;
}

/* 启用开关 */
.ei-enabled-field[data-v-a74762bd] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ei-enabled-field .inv-field-label[data-v-a74762bd] {
  margin-bottom: 0;
}

/* B-380：B-350 同类根因——全局 :where(button){min-height:var(--touch-min)} 零特异性，
   但 min-height 与固定 height 并存取大值，46×27 被顶成 46×44 变椭圆。显式 min-height:0
   压回并把视觉盒照原型 .sw 复原为 46×28（圆角 14 / 滑块 22 顶 3 左 3 / 选中态左移 21）。 */
.inv-switch[data-v-a74762bd] {
  position: relative;
  width: 46px;
  height: 28px;
  min-height: 0;
  flex-shrink: 0;
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: var(--inv-switch-off);
  cursor: pointer;
  transition: background 0.18s;
}
.inv-switch[data-v-a74762bd]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 1px 3px rgba(67, 53, 43, 0.25);
  box-shadow: 0 1px 3px oklch(0.34 0.026 55 / 0.25);
  transition: left 0.18s;
}
.inv-switch.on[data-v-a74762bd] {
  background: var(--accent);
}
.inv-switch.on[data-v-a74762bd]::after {
  left: 21px;
}

/* 底部操作 */
.ei-actions[data-v-a74762bd] {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.ei-actions[data-v-a74762bd] > * + * {
    margin-left: 10px;
}
}
.ei-save-btn[data-v-a74762bd]:disabled {
  opacity: 0.5;
}

.inv-cats-body[data-v-323ba933] {
  max-height: 52vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.inv-cat-row[data-v-323ba933] {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.inv-cat-row[data-v-323ba933] > * + * {
    margin-left: 8px;
}
}
.inv-cat-sub[data-v-323ba933] {
  padding-left: 18px;
  min-height: 40px;
}
.inv-cat-mark[data-v-323ba933] {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--muted);
  flex-shrink: 0;
}
.inv-cat-name[data-v-323ba933] {
  font-size: 14px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.inv-cat-count[data-v-323ba933] {
  margin-left: auto;
  flex-shrink: 0;
  font-size: 12px;
  color: var(--muted);
}
.inv-cat-add-sub[data-v-323ba933] {
  flex-shrink: 0;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--fg);
  font-size: 12px;
  cursor: pointer;
}
.inv-cat-add-root[data-v-323ba933] {
  display: block;
  width: 100%;
  min-height: 44px;
  margin-top: 12px;
  border: 1px dashed #9C9185;
  border: 1px dashed color-mix(in oklab, var(--fg) 40%, var(--border));
  border-radius: 12px;
  background: transparent;
  color: var(--fg);
  font-size: 14px;
  cursor: pointer;
}
.inv-cat-actions[data-v-323ba933] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.inv-cat-actions[data-v-323ba933] > * + * {
    margin-left: 10px;
}
}

/* 嵌套新增弹层叠在分类 sheet 之上 */
.inv-add-mask[data-v-323ba933] {
  z-index: 55;
  align-items: center;
  padding: 0 16px;
}
.inv-add-mask .inv-sheet[data-v-323ba933] {
  border-radius: 20px;
  max-height: 70%;
}
/* B-378：以下视觉值照原型 03「管理」段（来源选择器见注释） */
.inv-admin-screen[data-v-b0ccceb5] {
  padding-bottom: 28px;
}

/* 锁态：原型 .locked——padding 90 24 0、图标 52 muted、h3 18/800 宋体 */
.inv-admin-locked[data-v-b0ccceb5] {
  text-align: center;
  padding: 90px 24px 0;
}
.inv-locked-ic[data-v-b0ccceb5] {
  width: 52px;
  height: 52px;
  margin: 0 auto;
  color: var(--muted);
}
.inv-admin-locked h3[data-v-b0ccceb5] {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 800;
  margin: 18px 0 0;
}
.inv-admin-locked p[data-v-b0ccceb5] {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.7;
  margin: 10px 0 0;
}

/* 工具行与搜索（原型 admin .search-row——图标 + .inp + mini-btn，无卡框） */
.inv-admin-toolbar[data-v-b0ccceb5] {
  display: flex;
  justify-content: flex-end;
  margin: -4px 0 2px;
}
.inv-admin-toolbar .inv-chip[data-v-b0ccceb5] {
  /* 原型 .topbar .chip：min-height 36、padding 0 11 */
  min-height: 36px;
  padding: 0 11px;
}
.inv-admin-search[data-v-b0ccceb5] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
}
@supports not (gap: 1px) {
.inv-admin-search[data-v-b0ccceb5] > * + * {
    margin-left: 8px;
}
}
.inv-admin-search-ic[data-v-b0ccceb5] {
  flex: none;
  color: var(--muted);
}
.inv-admin-search-input[data-v-b0ccceb5] {
  flex: 1;
  min-height: 44px;
}
.inv-admin-search-clear[data-v-b0ccceb5] {
  flex: none;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

/* 分类 chip 行（原型 .cat-row：出血横向滚动、chip 36px） */
.inv-admin-cats[data-v-b0ccceb5] {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: 0 -16px;
  padding: 2px 16px 12px;
  scrollbar-width: none;
}
@supports not (gap: 1px) {
.inv-admin-cats[data-v-b0ccceb5] > * + * {
    margin-left: 8px;
}
}
.inv-admin-cats[data-v-b0ccceb5]::-webkit-scrollbar {
  display: none;
}
.inv-admin-cats .inv-chip[data-v-b0ccceb5] {
  min-height: 36px;
  flex: none;
}
.inv-admin-cats-sub[data-v-b0ccceb5] {
  align-items: center;
  margin-top: -6px;
  padding-bottom: 10px;
}
.inv-admin-cats-sub .inv-chip[data-v-b0ccceb5] {
  min-height: 32px;
  font-size: 12px;
}
.inv-admin-sub-lead[data-v-b0ccceb5] {
  align-self: center;
  font-size: 11.5px;
  color: var(--muted);
  flex-shrink: 0;
}

/* 新增按钮（原型 .btn.primary.block：margin 14 0 12、全宽） */
.inv-admin-add[data-v-b0ccceb5] {
  width: 100%;
  margin: 14px 0 12px;
}

/* 列表（原型管理列表无卡框，行直接落在页面底色上、行间细线分隔） */
.inv-admin-empty[data-v-b0ccceb5] {
  padding: 26px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.inv-admin-list[data-v-b0ccceb5] {
  padding: 0;
  border-top: 1px solid var(--border);
}
.inv-admin-row[data-v-b0ccceb5] {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 56px;
  padding: 13px 14px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--fg);
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-admin-row[data-v-b0ccceb5] > * + * {
    margin-left: 10px;
}
}
.inv-admin-row[data-v-b0ccceb5]:last-child {
  border-bottom: 0;
}
.inv-admin-row.off .inv-admin-row-name[data-v-b0ccceb5] {
  color: var(--muted);
}
.inv-admin-row-text[data-v-b0ccceb5] {
  flex: 1;
  min-width: 0;
}

/* 原型 .admin-row .t .n：14.5px/600 */
.inv-admin-row-name[data-v-b0ccceb5] {
  display: block;
  font-size: 14.5px;
  font-weight: 600;
}
.inv-admin-off-tag[data-v-b0ccceb5] {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  vertical-align: 1px;
}

/* 原型 .admin-row .t .s：11.5px muted、margin-top 3、行高随正文基线 */
.inv-admin-row-summary[data-v-b0ccceb5] {
  display: block;
  margin-top: 3px;
  font-size: 11.5px;
  color: var(--muted);
}

/* 启停开关（原型 .sw：46×28、圆角 14、关底 --inv-switch-off、
   圆钮 22 内阴影滑块；EditItemSheet 另有同名单类实现，B-353 不动） */
.inv-switch[data-v-b0ccceb5] {
  position: relative;
  width: 46px;
  height: 28px;
  min-height: 0;
  flex-shrink: 0;
  padding: 0;
  border: 0;
  border-radius: 14px;
  background: var(--inv-switch-off);
  color: var(--fg);
  cursor: pointer;
  transition: background 0.18s;
}
.inv-switch[data-v-b0ccceb5]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 1px 3px rgba(67, 53, 43, 0.25);
  box-shadow: 0 1px 3px oklch(0.34 0.026 55 / 0.25);
  transition: left 0.18s;
}
.inv-switch.on[data-v-b0ccceb5] {
  background: var(--accent);
}
.inv-switch.on[data-v-b0ccceb5]::after {
  left: 21px;
}
.inv-admin-hint[data-v-b0ccceb5] {
  padding: 12px 2px 0;
  font-size: 12px;
  color: var(--muted-2);
  line-height: 1.6;
}


.inv-detail-head[data-v-f5678ad7] {
  margin-bottom: 12px;
}
.inv-detail-meta[data-v-f5678ad7] {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.inv-detail-meta[data-v-f5678ad7] > * + * {
    margin-left: 10px;
}
}
.inv-detail-chips[data-v-f5678ad7] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
@supports not (gap: 1px) {
.inv-detail-chips[data-v-f5678ad7] > * + * {
    margin-left: 10px;
}
}
.inv-expiring-toggle[data-v-f5678ad7] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  font-size: 12px;
  color: var(--muted);
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-expiring-toggle[data-v-f5678ad7] > * + * {
    margin-left: 6px;
}
}
.inv-batch-card[data-v-f5678ad7] {
  margin-bottom: 12px;
}
.inv-batch-head[data-v-f5678ad7] {
  display: flex;
  align-items: center;
  gap: 8px;
}
@supports not (gap: 1px) {
.inv-batch-head[data-v-f5678ad7] > * + * {
    margin-left: 8px;
}
}
.inv-batch-qty[data-v-f5678ad7] {
  font-size: 18px;
  font-weight: 700;
  margin-right: auto;
}
.inv-batch-finish[data-v-f5678ad7] {
  min-height: 30px;
  padding: 0 10px;
  font-size: 11px;
}
.inv-batch-dates[data-v-f5678ad7] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted);
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
@supports not (gap: 1px) {
.inv-batch-dates[data-v-f5678ad7] > * + * {
    margin-left: 6px 14px;
}
}
.inv-history summary[data-v-f5678ad7] {
  font-size: 13px;
  color: var(--muted);
  padding: 12px 0;
  cursor: pointer;
}
.inv-detail-actions[data-v-f5678ad7] {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.inv-detail-actions[data-v-f5678ad7] > * + * {
    margin-left: 10px;
}
}

.inv-buy-banner[data-v-d7b53b3b] {
  padding: 10px 14px;
  margin-bottom: 12px;
  border-radius: 12px;
  background: var(--soft-clay);
  color: var(--ink-card);
  font-size: 13px;
}

/* B-388：物品入口行（原型 .pick-row 逐值：min-height 52、padding 0 14px、
   r-btn 圆角、15/600，占位 .ph 灰常规字重，chevron 右靠） */
.inv-pick-trigger[data-v-d7b53b3b] {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 14px;
  border-radius: var(--inv-radius-btn);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.inv-pick-trigger[data-v-d7b53b3b] > * + * {
    margin-left: 8px;
}
}
.inv-pick-trigger .inv-pick-ph[data-v-d7b53b3b] {
  color: var(--muted);
  font-weight: 400;
}
.inv-pick-trigger .inv-chev[data-v-d7b53b3b] {
  margin-left: auto;
  color: var(--muted);
  flex: none;
}
.inv-date-btn[data-v-d7b53b3b] {
  text-align: left;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.inv-expiry-mode[data-v-d7b53b3b] {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.inv-expiry-mode[data-v-d7b53b3b] > * + * {
    margin-left: 8px;
}
}
.inv-spinner[data-v-d7b53b3b] {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(248, 245, 238, 0.4);
  border: 2px solid oklch(0.97 0.01 90 / 0.4);
  border-top-color: #F8F5EE;
  border-top-color: oklch(0.97 0.01 90);
  border-radius: 50%;
  animation: inv-spin-d7b53b3b 0.7s linear infinite;
}
@keyframes inv-spin-d7b53b3b {
to { transform: rotate(360deg);
}
}

.inv-pr-note[data-v-e0e54e67] {
  padding: 0 2px;
  margin-bottom: 12px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
}

/* 生成表单 */
.inv-pr-form[data-v-e0e54e67] {
  margin-bottom: 14px;
}
.inv-pr-form-title[data-v-e0e54e67] {
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
}
.inv-pr-form-line[data-v-e0e54e67] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.inv-pr-form-line[data-v-e0e54e67] > * + * {
    margin-left: 10px;
}
}
.inv-pr-qty[data-v-e0e54e67] {
  width: 96px;
  flex-shrink: 0;
}
.inv-pr-urgent[data-v-e0e54e67] {
  display: flex;
  align-items: center;
  padding: 10px 0;
  font-size: 14px;
  cursor: pointer;
}
.inv-pr-urgent-check[data-v-e0e54e67] {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  accent-color: var(--accent);
}
.inv-pr-submit[data-v-e0e54e67] {
  width: 100%;
  margin-top: 4px;
}

/* 待到货列表 */
.inv-pr-empty[data-v-e0e54e67] {
  padding: 26px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.inv-pr-row[data-v-e0e54e67] {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.inv-pr-row[data-v-e0e54e67]:last-child {
  border-bottom: 0;
}
.inv-pr-top[data-v-e0e54e67] {
  display: flex;
  align-items: center;
  gap: 6px;
}
@supports not (gap: 1px) {
.inv-pr-top[data-v-e0e54e67] > * + * {
    margin-left: 6px;
}
}
.inv-pr-name[data-v-e0e54e67] {
  font-size: 15px;
  font-weight: 600;
  margin-right: auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.inv-pr-urgent-badge[data-v-e0e54e67] {
  background: var(--soft-cinnabar);
  color: var(--fg);
}
.inv-pr-open-badge[data-v-e0e54e67] {
  background: var(--soft);
  color: var(--muted);
}
.inv-pr-meta[data-v-e0e54e67] {
  margin-top: 5px;
  font-size: 12px;
  color: var(--muted);
}
.inv-pr-qty-lead[data-v-e0e54e67] {
  color: var(--fg);
  font-weight: 600;
}
.inv-pr-ops[data-v-e0e54e67] {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}
.inv-pr-intake-btn[data-v-e0e54e67] {
  min-height: 34px;
  padding: 0 14px;
  font-size: 12px;
}
/**
 * 盘库与库存工作区样式（v3 暖色体系，原型 03 的视觉执行）。
 *
 * 设计规范（设计说明 §3）：
 * - 配色：米纸底 --bg + 暖纸白卡片 --surface + 咖啡墨文字 --fg + 赭石茶褐
 *   accent + 赭红警示 --cinnabar；badge 文字用 ink 档配 soft 档底（对比度 ≥4.5:1）；
 * - 标题（h1/h2/h3、badge）宋体 --font-display；正文系统无衬线 --font-body；
 * - 数字日期 ui-monospace + tabular-nums；日期「9月6日」（短）/「2026/9/8」（全）；
 * - accent 每屏至多两次：库存屏 accent 只给 FAB；盘库屏进度/选中用 fg 中性色，
 *   accent 让给「已完成」语义；
 * - 圆角：卡片 16 / 按钮 12 / chip 全圆角；细边框 + 极轻投影，仅 FAB 与 sheet
 *   有明显 elevation；纸纹 multiply 不随滚动（.paper-grain）。
 */

.inv-workspace {
  --inv-radius-card: 16px;
  --inv-radius-btn: 12px;
  --inv-touch: 44px;
  /* B-378：原型 03 有而 v3 令牌缺的派生色，按原型 :root 逐值建立页面作用域变量
     （来源选择器见注释，勿改色值——设计侧真源是 mobile-inventory/03 原型） */
  --inv-warn-ink: oklch(0.47 0.085 58);      /* 原型 :root --warn-ink（.badge.warn/.notice-bar 文字） */
  --inv-danger-ink: oklch(0.455 0.11 38);    /* 原型 :root --danger-ink（.badge.danger/警示数字） */
  --inv-accent-ink: oklch(0.475 0.092 50);   /* 原型 :root --accent-ink（.badge.ok/强调文字） */
  --inv-accent-solid-hover: oklch(0.505 0.09 50);  /* 原型 :root --accent-solid-hover */
  --inv-danger-solid-hover: oklch(0.42 0.105 38);  /* 原型 .btn.danger-solid:hover */
  --inv-hover: oklch(0.955 0.014 88);        /* 原型 .chip:hover/.back-btn:hover 底 */
  --inv-pbar-track: oklch(0.905 0.02 84);    /* 原型 .pbar 轨道 */
  --inv-banner-line: oklch(0.85 0.045 78);   /* 原型 .count-done-banner/.banner 边框 */
  --inv-notice-line: oklch(0.845 0.055 65);  /* 原型 .notice-bar 边框 */
  --inv-switch-off: oklch(0.86 0.02 80);     /* 原型 .sw 关态底 */
  min-height: 100%;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  /* B-378：原型正文基线 line-height 为 normal（非 app 全局 1.5），
     本页文本字号均显式声明，行高按原型 normal 口径 */
  line-height: normal;
  position: relative;
  display: flex;
  flex-direction: column;
}
@supports (not (color: oklch(0% 0 0))) {

.inv-workspace {
  --inv-warn-ink: #7E4E26;
  --inv-danger-ink: #883D25;
  --inv-accent-ink: #854B29;
  --inv-accent-solid-hover: #8D5433;
  --inv-danger-solid-hover: #7B351E;
  --inv-hover: #F4F0E6;
  --inv-pbar-track: #E6DFD1;
  --inv-banner-line: #DECBAD;
  --inv-notice-line: #E6C5A7;
  --inv-switch-off: #D8D0C3;
}
}

/* B-385：撤销 .paper-grain（task-center.css 通用类）的 isolation:isolate。
   否则工作区在 shell 层叠中只是一个 z:auto 块，内部弹层（.inv-sheet-mask z40）
   永远低于底栏 z20——实测弹层面板被底栏压住，提交钮下半不可点；
   本页纸纹背景不透明，取消隔离后 multiply 混合组不变、视觉无差。 */
.inv-workspace.paper-grain {
  isolation: auto;
}

/* ---------- 顶栏（工作区标题 + 次级导航） ---------- */

/* 2026-09-28 对齐小程序定稿（inv-topbar，rpx÷2）：透明底、relative + overflow hidden
   （波纹出血与角标悬挂都在栏内裁切）；padding-top 10px 吸收角标悬挂（top -6px 防裁切），
   padding-bottom 44px = 小程序 88rpx÷2：波纹 36px + 16px 呼吸，防图标文字与波纹贴死；
   左 titles 右链签钮两端对齐。
   横向 18px 内距不变（B-379：与四屏内容左对齐，逐值 = 原型 16+2）。 */
.inv-topbar {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 18px 44px;
  background: transparent;
}
@supports not (gap: 1px) {
  .inv-topbar > * + * {
    margin-left: 10px;
  }
}

/* 暖墨波纹收边（同日课页 .task-sand：left -4px 出血 + 108px 宽余量供 -100px 往返位移）；
   bottom: 0 = 小程序定稿（inventory.wxss .inv-sand bottom: 0） */
.inv-topbar .inv-sand {
  position: absolute;
  left: -4px;
  bottom: 0;
  width: calc(100% + 108px);
  height: 36px;
  pointer-events: none;
  animation: inv-sand-flow 16s ease-in-out infinite alternate;
}

@keyframes inv-sand-flow {
  from { transform: translateX(0); }
  to { transform: translateX(-100px); }
}

/* 顶栏标题组（flex:1 min-width:0，占满导航侧剩余宽度）；z-index 压过波纹 */
.inv-topbar .inv-titles {
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 2;
}

/* 小程序定稿 crumb：11px muted 字距 1px */
.inv-topbar .inv-crumb {
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 1px;
  white-space: nowrap;
}

/* 小程序定稿标题（40rpx÷2）：20px 宋体 600 字距 1px；两字标题与 2026-09-28 同批 */
.inv-topbar .inv-title {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 1px;
  color: var(--fg);
  margin: 2px 0 0;
  white-space: nowrap;
}

/* 小程序定稿 inv-subnav（rpx÷2）：链签钮组右挂，gap 10px */
.inv-subnav {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex: none;
  position: relative;
  z-index: 2;
}
@supports not (gap: 1px) {
  .inv-subnav > * + * {
    margin-left: 10px;
  }
}

/* 链签钮 = 日课页 .task-q-ico 同规格（小程序 88×112rpx÷2）：44×56 卡片钮，
   1px 暖线 + 12px 圆角 + 暖纸白底，竖排居中 gap 4px（CSS 图标 + 两字标签）；
   默认 muted，激活 #caa988 暖线 + accent */
.inv-subnav-btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 44px;
  height: 56px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--muted);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
@supports not (gap: 1px) {
  .inv-subnav-btn > * + * {
    margin-top: 4px;
  }
}

.inv-subnav-btn:hover {
  background: var(--inv-hover);
  color: var(--fg);
}

.inv-subnav-btn.active {
  border-color: #caa988; /* 小程序定稿激活暖线（对齐日课页 tk-q-ico） */
  color: var(--accent);
}

.inv-subnav-btn .inv-ico-label {
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.5px;
  color: var(--muted);
}

.inv-subnav-btn.active .inv-ico-label {
  color: var(--accent);
  font-weight: 600;
}

/* ---------- 链签图标（CSS 自绘，currentColor 随激活变色；18px 基准，外框线 1.5px） ---------- */

.inv-ico {
  position: relative;
  width: 18px;
  height: 18px;
  box-sizing: border-box;
}

/* 库存：格架（外框 + 十字分隔线） */
.inv-ico-stock {
  border: 1.5px solid currentColor;
  border-radius: 3.5px;
}
.inv-ico-stock::before,
.inv-ico-stock::after {
  content: "";
  position: absolute;
  background: currentColor;
}
.inv-ico-stock::before {
  left: 50%;
  top: 3px;
  bottom: 3px;
  width: 1.25px;
  margin-left: -0.625px;
}
.inv-ico-stock::after {
  top: 50%;
  left: 2.5px;
  right: 2.5px;
  height: 1.25px;
  margin-top: -0.625px;
}

/* 盘库：清单（外框 + 两行条目短横线） */
.inv-ico-count {
  border: 1.5px solid currentColor;
  border-radius: 3.5px;
}
.inv-ico-count::before,
.inv-ico-count::after {
  content: "";
  position: absolute;
  left: 3px;
  right: 3px;
  height: 1.25px;
  background: currentColor;
}
.inv-ico-count::before { top: 5px; }
.inv-ico-count::after { bottom: 5px; }

/* 记录：时间线（两条伪元素线 + 底边线，共三条横向线） */
.inv-ico-adj {
  border-bottom: 1.25px solid currentColor;
}
.inv-ico-adj::before,
.inv-ico-adj::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1.25px;
  border-radius: 1px;
  background: currentColor;
}
.inv-ico-adj::before { top: 3px; }
.inv-ico-adj::after { top: 8px; }

/* 管理：设置·简约（方框 + 中心小方块点） */
.inv-ico-admin {
  border: 1.5px solid currentColor;
  border-radius: 3.5px;
}
.inv-ico-admin::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4.5px;
  height: 4.5px;
  margin: -2.25px 0 0 -2.25px;
  border-radius: 1px;
  background: currentColor;
}

/* ---------- 主屏容器与切换 ---------- */

.inv-main {
  flex: 1;
  position: relative;
  overflow: hidden;
}

/* B-378：照原型 .screen——横向 16px 内距、底部 28px */
.inv-screen {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 16px 28px;
}
@supports not (inset: 0) {
.inv-screen {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

/* ---------- 通用元素 ---------- */

.inv-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.inv-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--inv-radius-card);
  padding: 12px 14px;
}

/* B-378：照原型 .btn——min-height 48、padding 0 18、12px 圆角、15px/700 */
.inv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 48px;
  padding: 0 18px;
  border-radius: var(--inv-radius-btn);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
@supports not (gap: 1px) {
  .inv-btn > * + * {
    margin-left: 7px;
  }
}

.inv-btn:hover {
  background: var(--inv-hover);
}

.inv-btn:disabled {
  opacity: 0.55;
  pointer-events: none;
}

/* 原型 .btn.primary：accent 实心 + paper-ink 字 */
.inv-btn-primary {
  background: var(--accent);
  border-color: transparent;
  color: var(--paper-ink);
}

.inv-btn-primary:hover {
  background: var(--inv-accent-solid-hover);
}

/* 主操作线框（老爷 2026-10-01 裁定：盘库主钮不要实底，未按下无填充） */
.inv-btn-line {
  background: transparent;
  border-color: var(--accent);
  color: var(--accent);
}

/* 原型 .btn.danger-solid：danger-ink 实心 + paper-ink 字 */
.inv-btn-danger {
  background: var(--inv-danger-ink);
  border-color: transparent;
  color: var(--paper-ink);
}

.inv-btn-danger:hover {
  background: var(--inv-danger-solid-hover);
}

/* B-378：照原型 .chip——min-height 32、padding 0 13、全圆角、12.5px/500、surface 底 */
.inv-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 32px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 12.5px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
}
@supports not (gap: 1px) {
  .inv-chip > * + * {
    margin-left: 5px;
  }
}

.inv-chip:hover {
  background: var(--inv-hover);
}

/* 原型 .chip.sel：fg 反色实心、600 */
.inv-chip.active {
  background: var(--fg);
  border-color: var(--fg);
  color: var(--surface);
  font-weight: 600;
}

/* 状态 badge：原型 .badge——min-height 22、padding 0 9、11px/700、
   字距 .05em、宋体（--font-display）；ink 文字 + soft 底成对 */
.inv-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  font-family: var(--font-display);
  white-space: nowrap;
}

/* 原型 .badge.warn：warn-soft 底 + warn-ink 字 */
.inv-badge-expiring {
  background: var(--soft-clay);
  color: var(--inv-warn-ink);
}

/* 原型 .badge.danger：danger-soft 底 + danger-ink 字 */
.inv-badge-expired {
  background: var(--soft-cinnabar);
  color: var(--inv-danger-ink);
}

/* 原型 .badge.out：fg 描边 1.5px 空心 */
.inv-badge-out {
  background: transparent;
  border: 1.5px solid var(--fg);
  color: var(--fg);
}

/* 原型 .badge.ok：accent-soft 底 + accent-ink 字 */
.inv-badge-done {
  background: var(--soft-green);
  color: var(--inv-accent-ink);
}

/* ---------- FAB（库存屏唯一实心主按钮） ---------- */

/* B-378：照原型 .fab——高 52、padding 0 20、圆角 14、bottom 28、accent 投影。
   B-380：原 position:absolute 的包含块是滚动容器 .inv-screen（overflow-y:auto），
   FAB 会随内容滚走；原型 .fab 的包含块是非滚动外层屏。改为 position:fixed 相对视口，
   底部 = MobileShell 底栏高 56 + 28；z-index 15 低于底栏 z-index 20，二者不重叠。 */
.inv-fab {
  position: fixed;
  right: 16px;
  bottom: calc(84px + env(safe-area-inset-bottom));
  z-index: 15;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 52px;
  min-height: 0;
  padding: 0 20px;
  border: 0;
  border-radius: 14px;
  background: var(--accent);
  color: var(--paper-ink);
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(162, 100, 64, 0.35);
  box-shadow: 0 6px 18px oklch(0.565 0.095 50 / 0.35);
  cursor: pointer;
}
@supports not (gap: 1px) {
  .inv-fab > * + * {
    margin-left: 7px;
  }
}

.inv-fab:hover {
  background: var(--inv-accent-solid-hover);
}

/* ---------- push 子屏（右滑入 / 返回左滑出） ---------- */

.inv-push {
  position: absolute;
  inset: 0;
  z-index: 30;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  animation: inv-push-in 0.24s var(--ease-push, cubic-bezier(0.32, 0.72, 0.2, 1)) both;
}

@supports not (inset: 0) {

.inv-push {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

.inv-push.inv-push-leaving {
  animation: inv-push-out 0.2s cubic-bezier(0.4, 0, 1, 1) both;
}

@keyframes inv-push-in {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

@keyframes inv-push-out {
  from { transform: translateX(0); }
  to { transform: translateX(100%); }
}

.inv-push-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  padding: 6px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  position: sticky;
  top: 0;
  z-index: 5;
}

@supports not (gap: 1px) {
  .inv-push-head > * + * {
    margin-left: 8px;
  }
}

.inv-push-back {
  border: 0;
  background: transparent;
  color: var(--fg);
  font-size: 15px;
  min-height: 40px;
  padding: 0 8px;
  cursor: pointer;
}

.inv-push-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
}

.inv-push-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 12px 14px calc(24px + env(safe-area-inset-bottom));
}

/* ---------- sheet（底部升起） ---------- */

/* B-378：照原型 .mask——oklch(0.340 0.026 55 / .42)。
   B-385：原型 .mask 为 absolute，是因为原型弹层挂在手机框层（#sheet-root 不随内容滚）；
   本实现弹层挂载在滚动容器 .inv-screen 内部，absolute 会钉在内容顶部、随滚动跑出视口。
   改为 fixed 相对视口（祖先链无 transform，安全；惯例同 QuickProcurementSheet/QuickReservationForm），
   视觉与前一致（遮罩盖满整屏、面板贴底）。 */
.inv-sheet-mask {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(67, 53, 43, 0.42);
  background: oklch(0.34 0.026 55 / 0.42);
  display: flex;
  align-items: flex-end;
  animation: inv-fade-in 0.18s ease-out both;
}
@supports not (inset: 0) {
.inv-sheet-mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

.inv-sheet-mask.inv-sheet-strict {
  /* 高风险动作确认层：遮罩不可点关 */
  pointer-events: auto;
}

/* B-378：照原型 .sheet——max-height 80%、padding 10px 20px 30px */
.inv-sheet {
  width: 100%;
  max-height: 80%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--surface);
  border-radius: 20px 20px 0 0;
  padding: 10px 20px calc(30px + env(safe-area-inset-bottom));
  animation: inv-sheet-up 0.26s cubic-bezier(0.32, 0.72, 0.2, 1) both;
}

/* 原型 .grip——38×4、圆角 2、margin 2px auto 12px */
.inv-sheet-grip {
  width: 38px;
  height: 4px;
  border-radius: 2px;
  background: var(--border);
  margin: 2px auto 12px;
}

/* 原型 .sheet h3：16px/800 宋体、margin-bottom 6px */
.inv-sheet-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 6px;
}

@keyframes inv-sheet-up {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

@keyframes inv-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ---------- 表单 ---------- */

/* B-378：照原型 .field——margin-bottom 16px */
.inv-field {
  margin-bottom: 16px;
}

/* 原型 .field .lb：12.5px/600 muted、margin-bottom 7px */
.inv-field-label {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--muted);
  margin-bottom: 7px;
}

/* 原型 .inp——min-height 48、padding 10px 14、surface 底、focus 描边 accent */
.inv-input {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  border-radius: var(--inv-radius-btn);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  font-family: inherit;
  box-sizing: border-box;
}

.inv-input:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

/* B-378：照原型 .hint-line——12.5px muted、margin-top 8px */
.inv-hint {
  font-size: 12.5px;
  color: var(--muted);
  margin-top: 8px;
  line-height: 1.6;
}

/* 原型 .equiv-line.err：赭红警示（无法整除等） */
.inv-hint-danger {
  color: var(--cinnabar);
  font-weight: 600;
}

/* 原型 .confirm-body——bg 底卡片、12px 圆角、13.5px/行高 1.65 */
.inv-confirm-body {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13.5px;
  line-height: 1.65;
}

/* 单位选择行（原型 .unit-chips + .radio-chip：44px 全圆角 chip） */
.inv-unit-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
  .inv-unit-row > * + * {
    margin-left: 8px;
  }
}

.inv-unit-btn {
  min-height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 12.5px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

@supports not (gap: 1px) {
  .inv-unit-btn > * + * {
    margin-left: 5px;
  }
}

/* 原型 .radio-chip.sel（同 .chip.sel）：fg 反色实心 */
.inv-unit-btn.active {
  background: var(--fg);
  border-color: var(--fg);
  color: var(--surface);
  font-weight: 600;
}

/* ---------- 步进器（实盘 − / +） ---------- */

.inv-stepper {
  display: flex;
  align-items: center;
  gap: 8px;
}

@supports not (gap: 1px) {
  .inv-stepper > * + * {
    margin-left: 8px;
  }
}

/* B-378：照原型 .ac-step-btn——40×40、圆角 10、18px；
   B-380：补 min-height:0 压过全局 44px 触控基线（否则 40 被顶成 44）。 */
.inv-step-btn {
  width: 40px;
  height: 40px;
  min-height: 0;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 18px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
}

.inv-step-btn:active {
  background: var(--soft);
}

/* 原型 .ac-inp——宽 64、居中 */
.inv-step-input {
  width: 64px;
  min-height: 40px;
  text-align: center;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  box-sizing: border-box;
}

.inv-zeroed {
  opacity: 0.45;
}

/* ---------- 空态 / 错误块 / 骨架 ---------- */

.inv-empty {
  text-align: center;
  padding: 48px 24px;
}

.inv-empty h3 {
  font-family: var(--font-display);
  font-size: 16px;
  margin-bottom: 6px;
}

.inv-empty p {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 16px;
}

.inv-error-block {
  text-align: center;
  padding: 40px 24px;
}

.inv-error-block p {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 14px;
}

.inv-skeleton {
  background: linear-gradient(
    100deg,
    #EDE5D6 40%,
    #F7F4EB 50%,
    #EDE5D6 60%
  );
  background: linear-gradient(
    100deg,
    var(--soft) 40%,
    color-mix(in oklab, var(--surface) 80%, var(--bg)) 50%,
    var(--soft) 60%
  );
  background-size: 200% 100%;
  animation: inv-shimmer 1.1s ease-in-out infinite;
  border-radius: 12px;
}

@keyframes inv-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

/* B-378：照原型 toast——顶部下滑（#toast-root top:10 left/right:14）、
   fg 底 surface 字、12px 圆角、13.5px/500、行高 1.45 */
.inv-toast {
  position: absolute;
  top: 10px;
  left: 14px;
  right: 14px;
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border-radius: 12px;
  background: var(--fg);
  color: var(--surface);
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.45;
  box-shadow: 0 8px 24px rgba(67, 53, 43, 0.28);
  box-shadow: 0 8px 24px oklch(0.34 0.026 55 / 0.28);
  animation: inv-toast-in 0.22s ease-out both;
}
@supports not (gap: 1px) {
  .inv-toast > * + * {
    margin-left: 12px;
  }
}

@keyframes inv-toast-in {
  from { transform: translateY(-140%); }
  to { transform: translateY(0); }
}

/* 原型 .toast-act：半透明底、paper-ink 字 */
.inv-toast-action {
  flex: none;
  min-height: 36px;
  padding: 0 12px;
  border: 0;
  border-radius: 9px;
  background: oklch(100% 0 0 / 0.16);
  color: var(--paper-ink);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.pc-toast-root[data-v-1df9156d] {
  position: fixed;
  top: var(--sp-4);
  left: 50%;
  transform: translateX(-50%);
  z-index: 1200;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  pointer-events: none;
}@supports not (gap: 1px) {
.pc-toast-root[data-v-1df9156d] > * + * {
    margin-top: var(--sp-2);
}
}
.pc-toast[data-v-1df9156d] {
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 520px;
  padding: 10px var(--sp-4);
  border-radius: var(--r-pill);
  background: var(--ink-card);
  color: var(--paper-ink);
  font-size: var(--fs-body);
  box-shadow: 0 8px 24px rgba(67, 53, 43, 0.25);
  box-shadow: 0 8px 24px color-mix(in oklab, var(--fg) 25%, transparent);
  animation: pc-toastin-1df9156d 0.22s cubic-bezier(0.3, 0.9, 0.4, 1);
}
@supports not (gap: 1px) {
.pc-toast[data-v-1df9156d] > * + * {
    margin-left: 8px;
}
}
@keyframes pc-toastin-1df9156d {
from {
    transform: translateY(-12px);
    opacity: 0;
}
}
.pc-toast--warn[data-v-1df9156d] {
  background: var(--cinnabar);
}
.pc-toast--ok[data-v-1df9156d] {
  background: var(--st-served);
}
@media (prefers-reduced-motion: reduce) {
.pc-toast[data-v-1df9156d] {
    animation: none;
}
}

.today-icon[data-v-86d59dc6] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.today-icon[data-v-86d59dc6] svg {
  display: block;
}

.today-moon-cat[data-v-d2c27214] { display: block;
}
.today-moon-cat svg[data-v-d2c27214] { display: block; width: 100%; height: 100%;
}
/* ============================================================
 * 门前 OA · PC 端「今日」与「今日设置」样式（features/today）
 *
 * 真源：门前OA-design/pc-today/03-PC端今日-高保真原型.html 的 \3c style> 逐字迁移；
 * 以 .today-pc 容器前缀实现页面级作用域（等价 scoped 的隔离语义）。
 * 令牌逐字沿用品牌「menqian-Createthisprojecta」（v3 暖色体系），
 * 零新增 hex（--paper-ink 与席卡四态锁定 hex 除外），派生只走 color-mix()。
 * 与原型差异（有意）：1) 宣纸噪点由壳 ManagerShell 全局提供，本页不重复叠加；
 * 2) body 级 reset/壳/评审控制台/演示外壳（rail、flyout、console、ws 占位、toast）
 *    不进生产，生产改用 PC 壳与共享 pcToast；3) 移动端 min-width 约束不设于容器。
 * ============================================================ */

.today-pc{
  color-scheme:only light;
  --bg:oklch(0.945 0.018 85);
  --surface:oklch(0.972 0.010 90);
  --fg:oklch(0.340 0.026 55);
  --muted:oklch(0.575 0.022 65);
  --border:oklch(0.878 0.020 82);
  --accent:oklch(0.565 0.095 50);
  --cinnabar:oklch(0.535 0.130 38);
  --soft:oklch(0.925 0.022 85);
  --soft-green:oklch(0.918 0.030 80);
  --soft-clay:oklch(0.905 0.040 60);
  --soft-cinnabar:oklch(0.905 0.035 45);
  --ink-soft:oklch(0.790 0.030 72);
  --muted-2:oklch(0.690 0.022 70);
  --ink-card:oklch(0.350 0.028 52);
  --paper-ink:#FBF7EC;
  --st-free:#F3EDE0; --st-busy:#A85C33; --st-served:#6E7B4C; --st-paid:#46596E;
  --font-display:'Songti SC','STSong','Noto Serif SC',serif;
  --font-body:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --font-mono:ui-monospace,'SF Mono',Menlo,monospace;
  --r-card:16px; --r-ctl:12px; --r-chip:999px; --r-tag:5px;
  --rail-w:64px;
  --console-h:288px;
  --shadow-card:0 3px 14px color-mix(in oklab,var(--fg) 6%,transparent);
  --shadow-pop:0 14px 36px color-mix(in oklab,var(--fg) 16%,transparent);
}
@supports (not (color: oklch(0% 0 0))){

.today-pc{
  --bg:#F2ECE0;
  --surface:#F8F6EE;
  --fg:#43352B;
  --muted:#82766C;
  --border:#DDD6C8;
  --accent:#A26440;
  --cinnabar:#AA4D30;
  --soft:#EDE5D6;
  --soft-green:#EFE2CE;
  --soft-clay:#F4DAC6;
  --soft-cinnabar:#F5D9CD;
  --ink-soft:#C7B8A6;
  --muted-2:#A4998D;
  --ink-card:#47372D;
  --shadow-card:0 3px 14px rgba(67, 53, 43, 0.06);
  --shadow-pop:0 14px 36px rgba(67, 53, 43, 0.16);
}
}
:where(.today-pc, .today-pc *){margin:0;padding:0;box-sizing:border-box}
.today-pc button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.today-pc a{color:inherit;text-decoration:none}
.today-pc :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.today-pc [hidden]{display:none!important}
.today-pc .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.today-pc .identity{position:relative;display:flex;align-items:flex-end;gap:16px;padding:2px 2px 16px;margin-bottom:18px;border-bottom:1px solid var(--border)}
@supports not (gap: 1px) {
  .today-pc .identity > * + * {
    margin-left: 16px;
  }
}
.today-pc .identity .cat-moon{position:absolute;right:8px;bottom:-6px;width:120px;height:120px;opacity:.08;color:var(--fg);pointer-events:none}
.today-pc .identity .id-main{position:relative;z-index:2}
.today-pc .identity .id-top{display:flex;align-items:center;gap:10px;min-height:24px}
@supports not (gap: 1px) {
  .today-pc .identity .id-top > * + * {
    margin-left: 10px;
  }
}
.today-pc .identity .id-shop{font-size:13px;color:var(--muted);letter-spacing:.03em}
.today-pc .identity h1{font:600 27px/1.2 var(--font-display);letter-spacing:.1em;margin-top:3px}
.today-pc .identity .id-date{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:8px}
@supports not (gap: 1px) {
  .today-pc .identity .id-date > * + * {
    margin-left: 8px;
  }
}
.today-pc .identity .id-sp{flex:1}
.today-pc .identity .id-actions{position:relative;z-index:2;display:flex;align-items:center;gap:10px;flex:none}
@supports not (gap: 1px) {
  .today-pc .identity .id-actions > * + * {
    margin-left: 10px;
  }
}
.today-pc .id-updated{font-family:var(--font-mono);font-size:11.5px;color:var(--muted-2);letter-spacing:.02em}
.today-pc .biz-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:2px 9px 2px 7px;border-radius:var(--r-chip);
  background:#DBDCCC;
  background:color-mix(in oklab,var(--st-served) 20%,var(--surface));font-family:var(--font-mono);letter-spacing:.02em}
@supports not (gap: 1px) {
  .today-pc .biz-chip > * + * {
    margin-left: 5px;
  }
}
.today-pc .biz-chip i{width:6px;height:6px;border-radius:50%;background:var(--st-served);display:block}
.today-pc .biz-chip.closed{background:var(--soft);color:var(--muted)}
.today-pc .biz-chip.closed i{background:var(--muted-2)}
.today-pc .btn-warm{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border-radius:10px;
  font-weight:600;font-size:13.5px;border:1px solid var(--border);border-bottom-width:2px;
  transition:background .16s ease,border-color .16s ease,transform .16s ease,color .16s ease}
@supports not (gap: 1px) {
  .today-pc .btn-warm > * + * {
    margin-left: 7px;
  }
}
.today-pc .btn-warm svg{width:16px;height:16px;display:block}
.today-pc .btn-warm:active{transform:translateY(1px)}
.today-pc .btn-warm.ghost{background:var(--surface)}
.today-pc .btn-warm.ghost:hover{background:var(--soft-green)}
.today-pc .btn-warm.bp{background:var(--accent);color:var(--paper-ink);border-color:transparent;border-bottom-color:#4F2E1B;border-bottom-color:color-mix(in oklab,var(--accent) 60%,black)}
.today-pc .btn-warm.bp:hover{background:#885334;background:color-mix(in oklab,var(--accent) 88%,black)}
.today-pc .btn-warm:disabled{opacity:.5;cursor:not-allowed;transform:none}
.today-pc .icon-ctl{width:40px;height:40px;padding:0;border-radius:10px}
.today-pc .icon-ctl svg{width:18px;height:18px}
.today-pc .icon-ctl.spin svg{animation:rot .9s linear infinite}

@keyframes rot{to{transform:rotate(360deg)}}
.today-pc .tgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;grid-auto-flow:dense}
.today-pc .mod{grid-column:span 12;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
  box-shadow:var(--shadow-card);padding:15px 17px 16px}
.today-pc .mod.sp7{grid-column:span 7}
.today-pc .mod.sp5{grid-column:span 5}
.today-pc .mod.sp6{grid-column:span 6}
.today-pc .mod-h{display:flex;align-items:center;gap:9px;margin-bottom:12px;min-height:24px}
@supports not (gap: 1px) {
  .today-pc .mod-h > * + * {
    margin-left: 9px;
  }
}
.today-pc .mod-h .eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.today-pc .mod-h .sp{flex:1}
.today-pc .mod-note{font-family:var(--font-mono);font-size:11px;color:var(--muted-2);letter-spacing:.02em}
.today-pc .mod-go{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;color:var(--accent);min-height:26px;padding:0 4px;border-radius:7px;letter-spacing:.01em}
@supports not (gap: 1px) {
  .today-pc .mod-go > * + * {
    margin-left: 3px;
  }
}
.today-pc .mod-go:hover{background:var(--soft-green)}
.today-pc .mod-go svg{width:13px;height:13px;display:block}
.today-pc .stat-strip{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.today-pc .stat-cell{position:relative;display:block;text-align:left;padding:10px 13px 11px;background:var(--bg);
  border:1px solid var(--border);border-radius:var(--r-ctl);min-height:82px;min-width:0}
.today-pc .stat-cell .sc-label{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);letter-spacing:.03em}
@supports not (gap: 1px) {
  .today-pc .stat-cell .sc-label > * + * {
    margin-left: 6px;
  }
}
.today-pc .stat-cell .sc-num{display:block;font-family:var(--font-mono);font-size:27px;font-weight:600;line-height:1.25;font-variant-numeric:tabular-nums;margin-top:4px}
.today-pc .stat-cell .sc-num small{font-size:12.5px;font-weight:500;color:var(--muted);margin-left:2px}
.today-pc .stat-cell .sc-num small.pre{margin:0 2px 0 0}
.today-pc .stat-cell .sc-sub{display:-webkit-box;font-size:11px;color:var(--muted-2);margin-top:3px;line-height:1.5;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.today-pc .stat-cell:hover{background:var(--soft-green)}
.today-pc .stat-cell .sc-dot{width:6px;height:6px;border-radius:50%;display:block;flex:none}
.today-pc .pbar{height:6px;border-radius:999px;background:var(--soft);overflow:hidden;margin-top:7px}
.today-pc .pbar i{display:block;height:100%;border-radius:999px;background:var(--st-served)}
.today-pc .stat-prog{grid-column:1 / -1;display:flex;align-items:center;gap:16px;min-height:0}
@supports not (gap: 1px) {
  .today-pc .stat-prog > * + * {
    margin-left: 16px;
  }
}
.today-pc .stat-prog .sc-label{margin:0}
.today-pc .stat-prog .sc-num{margin:0;font-size:20px}
.today-pc .stat-prog .pbar{flex:1;margin:0}
.today-pc .tag{display:inline-flex;align-items:center;gap:5px;flex:none;padding:2px 8px;border-radius:var(--r-chip);
  font-family:var(--font-display);font-size:10.5px;letter-spacing:.08em;line-height:1.6}
@supports not (gap: 1px) {
  .today-pc .tag > * + * {
    margin-left: 5px;
  }
}
.today-pc .tag i{width:6px;height:6px;border-radius:50%;display:block}
.today-pc .tag.t-cinnabar{background:#EEDCD0;background:color-mix(in oklab,var(--cinnabar) 15%,var(--surface));color:#974930;color:color-mix(in oklab,var(--cinnabar) 82%,var(--fg))}
.today-pc .tag.t-cinnabar i{background:var(--cinnabar)}
.today-pc .tag.t-busy{background:#EDDDCF;background:color-mix(in oklab,var(--st-busy) 16%,var(--surface));color:#935433;color:color-mix(in oklab,var(--st-busy) 80%,var(--fg))}
.today-pc .tag.t-busy i{background:var(--st-busy)}
.today-pc .tag.t-served{background:#DEDFCF;background:color-mix(in oklab,var(--st-served) 18%,var(--surface));color:#656B45;color:color-mix(in oklab,var(--st-served) 78%,var(--fg))}
.today-pc .tag.t-served i{background:var(--st-served)}
.today-pc .tag.t-paid{background:#DDDFDB;background:color-mix(in oklab,var(--st-paid) 14%,var(--surface));color:#465260;color:color-mix(in oklab,var(--st-paid) 80%,var(--fg))}
.today-pc .tag.t-paid i{background:var(--st-paid)}
.today-pc .tag.t-muted{background:var(--soft);color:var(--muted)}
.today-pc .tag.t-muted i{background:var(--muted-2)}
.today-pc .rows{display:flex;flex-direction:column;gap:8px}
@supports not (gap: 1px) {
  .today-pc .rows > * + * {
    margin-top: 8px;
  }
}
.today-pc .row{display:flex;align-items:center;gap:12px;min-height:52px;padding:9px 12px;background:var(--bg);border:1px solid var(--border);
  border-radius:var(--r-ctl);text-align:left;width:100%;position:relative}
@supports not (gap: 1px) {
  .today-pc .row > * + * {
    margin-left: 12px;
  }
}
.today-pc .row:hover{background:var(--soft-green)}
.today-pc .row .rr{flex:1;min-width:0}
.today-pc .row .rt{display:flex;align-items:center;gap:8px;min-width:0}
@supports not (gap: 1px) {
  .today-pc .row .rt > * + * {
    margin-left: 8px;
  }
}
.today-pc .row .rname{font-size:14px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-pc .row .rmeta{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.today-pc .row .rgo{flex:none;display:inline-flex;align-items:center;gap:2px;font-size:12.5px;color:var(--accent);font-family:var(--font-mono)}
@supports not (gap: 1px) {
  .today-pc .row .rgo > * + * {
    margin-left: 2px;
  }
}
.today-pc .row .rgo svg{width:14px;height:14px;display:block}
.today-pc .row .rtime{margin-left:auto;flex:none;font-family:var(--font-mono);font-size:11px;color:var(--muted-2);font-variant-numeric:tabular-nums}
.today-pc .res-time{flex:none;width:60px;font-family:var(--font-mono);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.today-pc .row.tone-warn{background:#F6E5D6;background:color-mix(in oklab,var(--soft-clay) 60%,var(--surface))}
.today-pc .row.tone-urgent{background:#F6E3D8;background:color-mix(in oklab,var(--soft-cinnabar) 66%,var(--surface))}
.today-pc .empty-note{padding:14px 15px;border:1px dashed var(--border);border-radius:var(--r-ctl);font-size:12.5px;color:var(--muted);line-height:1.7}
.today-pc .empty-note button{color:var(--accent);font-size:12.5px}
.today-pc .next-card{background:#F6E7D9;background:color-mix(in oklab,var(--soft-clay) 52%,var(--surface));border:1px solid #D3BBA7;border:1px solid color-mix(in oklab,var(--st-busy) 22%,var(--border));
  border-radius:var(--r-ctl);padding:13px 15px 11px;margin-bottom:12px}
.today-pc .next-top{display:flex;align-items:center;gap:10px}
@supports not (gap: 1px) {
  .today-pc .next-top > * + * {
    margin-left: 10px;
  }
}
.today-pc .next-time{font-family:var(--font-mono);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1}
.today-pc .next-in{font-family:var(--font-mono);font-size:11.5px;color:var(--st-busy);font-weight:600;margin-left:auto}
.today-pc .next-body{margin-top:8px;display:flex;flex-direction:column;gap:2px}
@supports not (gap: 1px) {
  .today-pc .next-body > * + * {
    margin-top: 2px;
  }
}
.today-pc .next-name{font-size:15px;font-weight:600;letter-spacing:.01em;word-break:break-word}
.today-pc .next-area{font-size:12.5px;color:var(--muted);word-break:break-word}
.today-pc .next-note{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.today-pc .next-foot{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:9px;border-top:1px dashed #D0B49E;border-top:1px dashed color-mix(in oklab,var(--st-busy) 28%,var(--border))}
@supports not (gap: 1px) {
  .today-pc .next-foot > * + * {
    margin-left: 10px;
  }
}
.today-pc .tlink{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 10px;border-radius:9px;font-size:12.5px;color:var(--accent)}
@supports not (gap: 1px) {
  .today-pc .tlink > * + * {
    margin-left: 4px;
  }
}
.today-pc .tlink:hover{background:var(--soft)}
.today-pc .tlink svg{width:13px;height:13px;display:block}
.today-pc .tlink.mut{color:var(--muted)}
.today-pc .seat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.today-pc .seat{display:flex;flex-direction:column;justify-content:flex-end;min-height:66px;border:1px solid var(--border);border-radius:10px;
  padding:8px 9px;text-align:left;transition:transform .14s ease}
.today-pc .seat:active{transform:translateY(1px)}
.today-pc .seat b{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-pc .seat span{font-family:var(--font-mono);font-size:9.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-pc .seat.free{background:var(--st-free)}
.today-pc .seat.free span{color:var(--muted)}
.today-pc .seat.busy{background:var(--st-busy);border-color:transparent;color:var(--paper-ink)}
.today-pc .seat.served{background:var(--st-served);border-color:transparent;color:var(--paper-ink)}
.today-pc .seat.paid{background:var(--st-paid);border-color:transparent;color:var(--paper-ink)}
.today-pc .seat.busy span,
.today-pc .seat.served span,
.today-pc .seat.paid span{color:rgba(251, 247, 236, 0.86);color:color-mix(in oklab,var(--paper-ink) 86%,transparent)}
.today-pc .seat-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:11px;font-size:11.5px;color:var(--muted)}
@supports not (gap: 1px) {
  .today-pc .seat-legend > * + * {
    margin-left: 14px;
  }
}
.today-pc .seat-legend span{display:inline-flex;align-items:center;gap:5px}
@supports not (gap: 1px) {
  .today-pc .seat-legend span > * + * {
    margin-left: 5px;
  }
}
.today-pc .seat-legend i{width:9px;height:9px;border-radius:3px;display:block;border:1px solid var(--border)}
.today-pc .seat-legend i.free{background:var(--st-free)}
.today-pc .seat-legend i.busy{background:var(--st-busy);border-color:transparent}
.today-pc .seat-legend i.served{background:var(--st-served);border-color:transparent}
.today-pc .seat-legend i.paid{background:var(--st-paid);border-color:transparent}
.today-pc .people{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
@supports not (gap: 1px) {
  .today-pc .people > * + * {
    margin-left: 7px;
  }
}
.today-pc .pchip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 4px;border:1px solid var(--border);border-radius:var(--r-chip);background:var(--bg);font-size:12px}
@supports not (gap: 1px) {
  .today-pc .pchip > * + * {
    margin-left: 6px;
  }
}
.today-pc .pchip .pa{width:20px;height:20px;border-radius:50%;background:var(--ink-card);color:var(--paper-ink);display:flex;align-items:center;justify-content:center;font:600 10px/1 var(--font-display);flex:none}
.today-pc .pchip.leave{color:var(--muted)}
.today-pc .pchip.leave .pa{background:var(--soft);color:var(--muted)}
.today-pc .pchip.off .pa{background:var(--muted-2)}
.today-pc .recon{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.today-pc .recon-step{position:relative;border:1px solid var(--border);border-radius:10px;padding:9px 10px;text-align:left;background:var(--bg)}
.today-pc .recon-step .rs-no{font-family:var(--font-mono);font-size:10.5px;color:var(--muted-2);letter-spacing:.08em}
.today-pc .recon-step .rs-name{display:block;font-size:13px;font-weight:600;margin-top:3px}
.today-pc .recon-step .rs-meta{display:block;font-size:11px;color:var(--muted);margin-top:2px;line-height:1.5}
.today-pc .recon-step.cur{border-color:#C4A28A;border-color:color-mix(in oklab,var(--accent) 45%,var(--border));background:#F2E8D8;background:color-mix(in oklab,var(--soft-green) 70%,var(--surface))}
.today-pc .recon-step.done{opacity:.72}
.today-pc .tl{position:relative;padding-left:20px}
.today-pc .tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--border)}
.today-pc .tl-row{position:relative;display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed var(--border)}
@supports not (gap: 1px) {
  .today-pc .tl-row > * + * {
    margin-left: 12px;
  }
}
.today-pc .tl-row:last-child{border-bottom:0}
.today-pc .tl-row::before{content:"";position:absolute;left:-19px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:var(--surface);border:2px solid var(--muted-2)}
.today-pc .tl-row.k-res::before{border-color:var(--st-paid)}
.today-pc .tl-row.k-task::before{border-color:var(--st-busy)}
.today-pc .tl-time{font-family:var(--font-mono);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;flex:none;width:52px}
.today-pc .tl-body{flex:1;min-width:0}
.today-pc .tl-title{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-pc .tl-meta{font-size:11.5px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-pc .quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.today-pc .qtile{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 13px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--bg);text-align:left;transition:background .15s ease,transform .15s ease}
@supports not (gap: 1px) {
  .today-pc .qtile > * + * {
    margin-left: 10px;
  }
}
.today-pc .qtile:hover{background:var(--soft-green)}
.today-pc .qtile:active{transform:translateY(1px)}
.today-pc .qtile .qi{width:32px;height:32px;border-radius:9px;background:#EEE4D8;background:color-mix(in oklab,var(--accent) 12%,var(--surface));color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none}
.today-pc .qtile .qi svg{width:17px;height:17px;display:block}
.today-pc .qtile .qt{font-size:13px;font-weight:600}
.today-pc .qtile .qs{font-size:11px;color:var(--muted);margin-top:1px}
.today-pc .sk-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:16px 18px}
.today-pc .sk{position:relative;overflow:hidden;background:var(--soft);border-radius:6px}
.today-pc .sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(248, 246, 238, 0.85),transparent);
  background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--surface) 85%,transparent),transparent);animation:shim 1.2s ease infinite}
@supports not (inset: 0){
.today-pc .sk::after{
    top:0;
    right:0;
    bottom:0;
    left:0}
}

@keyframes shim{to{transform:translateX(100%)}}
.today-pc .state-panel{max-width:540px;margin:40px auto 0;text-align:center;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:36px 34px 32px;box-shadow:var(--shadow-card)}
.today-pc .state-panel .s-mark{width:46px;height:46px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:600 20px/1 var(--font-display)}
.today-pc .state-panel.err{background:#F7E9DF;background:color-mix(in oklab,var(--soft-cinnabar) 45%,var(--surface));border-color:#D4B8A6;border-color:color-mix(in oklab,var(--cinnabar) 22%,var(--border))}
.today-pc .state-panel.err .s-mark{background:var(--soft-cinnabar);color:var(--cinnabar)}
.today-pc .state-panel.empty .s-mark{background:var(--soft);color:var(--muted)}
.today-pc .state-panel h3{font:600 17px/1.5 var(--font-display);letter-spacing:1px}
.today-pc .state-panel p{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.75}
.today-pc .state-panel .s-btn{margin-top:16px}
.today-pc .module-fail{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:var(--r-ctl);
  background:#F7E6DC;
  background:color-mix(in oklab,var(--soft-cinnabar) 55%,var(--surface));border:1px solid #D5BBA9;border:1px solid color-mix(in oklab,var(--cinnabar) 20%,var(--border));font-size:12.5px;color:#934930;color:color-mix(in oklab,var(--cinnabar) 78%,var(--fg))}
@supports not (gap: 1px) {
  .today-pc .module-fail > * + * {
    margin-left: 10px;
  }
}
.today-pc .module-fail svg{width:16px;height:16px;flex:none}
.today-pc .module-fail .grow{flex:1}
.today-pc .set-wrap{max-width:900px}
.today-pc .set-intro{font-size:12.5px;color:var(--muted);line-height:1.75;margin-bottom:16px;max-width:72ch}
.today-pc .seg{display:inline-grid;grid-auto-flow:column;gap:3px;background:var(--soft);border:1px solid var(--border);border-radius:var(--r-ctl);padding:3px;margin-bottom:16px}
.today-pc .seg button{min-height:38px;padding:0 20px;border-radius:9px;font-family:var(--font-display);font-size:14px;letter-spacing:.08em;color:var(--muted)}
.today-pc .seg button:hover{color:var(--fg)}
.today-pc .seg button.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-card)}
.today-pc .cfg-list{display:flex;flex-direction:column;gap:8px}
@supports not (gap: 1px) {
  .today-pc .cfg-list > * + * {
    margin-top: 8px;
  }
}
.today-pc .cfg{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctl);
  padding:11px 13px;box-shadow:var(--shadow-card)}
@supports not (gap: 1px) {
  .today-pc .cfg > * + * {
    margin-left: 12px;
  }
}
.today-pc .cfg.off{opacity:.66}
.today-pc .cfg .cf-cap{font-family:var(--font-mono);font-size:10.5px;color:var(--muted-2);width:22px;flex:none;text-align:center}
.today-pc .cfg .cf-body{flex:1;min-width:0}
.today-pc .cfg .cf-name{font-size:14px;font-weight:600}
.today-pc .cfg .cf-desc{font-size:11.5px;color:var(--muted);margin-top:1px}
.today-pc .cfg .cf-move{display:flex;gap:4px;flex:none}
@supports not (gap: 1px) {
  .today-pc .cfg .cf-move > * + * {
    margin-left: 4px;
  }
}
.today-pc .cfg .cf-move button{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.today-pc .cfg .cf-move button:hover{background:var(--soft-green);color:var(--fg)}
.today-pc .cfg .cf-move button:disabled{opacity:.38;cursor:not-allowed;background:var(--surface)}
.today-pc .cfg .cf-move svg{width:15px;height:15px;display:block}
.today-pc .switch{position:relative;flex:none;width:46px;height:26px;border-radius:999px;background:var(--soft);border:1px solid var(--border);transition:background .16s ease}
.today-pc .switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-card);transition:transform .16s ease}
.today-pc .switch.on{background:#935D3D;background:color-mix(in oklab,var(--accent) 85%,var(--fg))}
.today-pc .switch.on::after{transform:translateX(20px)}
.today-pc .set-foot{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
@supports not (gap: 1px) {
  .today-pc .set-foot > * + * {
    margin-left: 12px;
  }
}
.today-pc .set-foot .sf-note{font-size:12px;color:var(--muted-2);flex:1}
.today-pc .opt-badge{font-size:10.5px;color:var(--muted-2);border:1px dashed var(--border);border-radius:var(--r-tag);padding:1px 6px;margin-left:8px}

/* ── 生产补充：原型内联样式的类化落位（不改视觉值；原型直接写 style 的几处行内布局） ── */
.today-pc .mod-kpi{display:flex;align-items:flex-end;gap:14px}
@supports not (gap: 1px) {
  .today-pc .mod-kpi > * + * {
    margin-left: 14px;
  }
}
.today-pc .mod-kpi .kpi-main{min-width:0}
.today-pc .mod-kpi .sc-label{font-size:11.5px;color:var(--muted)}
.today-pc .mod-kpi .sc-num{margin-top:2px}
.today-pc .mod-kpi .pbar{flex:1;margin-bottom:8px}
.today-pc .mod-sub{font-size:11px;color:var(--muted-2);margin-top:4px;line-height:1.5}
.today-pc .mod-note-row{font-size:11px;color:var(--muted-2);margin-top:8px;line-height:1.5}
.today-pc .stock-head{font-size:11.5px;color:var(--muted);margin-bottom:6px;display:flex;align-items:baseline;gap:6px}
@supports not (gap: 1px) {
  .today-pc .stock-head > * + * {
    margin-left: 6px;
  }
}
.today-pc .stock-head + .stock-head{margin-top:16px}
.today-pc .stock-head .mod-note{margin:0}
/* 语义色点（五色：异常赭红 / 在岗苔色 / 进行中柿澄 / 计时蓝染） */
.today-pc .sc-dot.cinnabar{background:var(--cinnabar)}
.today-pc .sc-dot.served{background:var(--st-served)}
.today-pc .sc-dot.busy{background:var(--st-busy)}
.today-pc .sc-dot.paid{background:var(--st-paid)}
/* 不可达去向：降为静态格（保留数据展示，不渲染可点动作，B-282 语义） */
.today-pc .stat-cell.static,.today-pc .row.static,.today-pc .seat.static,.today-pc .recon-step.static{pointer-events:none}
.today-pc .seat.static:active{transform:none}
/* 非临近时段的「下一场」小字 */
.today-pc .next-in.quiet{color:var(--muted);font-weight:400}
/* 设置页：虚线签（页级说明标签）与居中身份带/淡水印 */
.today-pc .demo-tag{display:inline-flex;align-items:center;font-size:10.5px;color:var(--muted-2);border:1px dashed var(--border);border-radius:var(--r-tag);padding:1px 6px;letter-spacing:.02em}
.today-pc .identity.center{align-items:center}
.today-pc .cat-moon.faint{opacity:.05}
.today-pc .set-rel{margin-top:16px}

/* 全局 44px 触控基线（:where(button…) min-height）会抬升紧凑控件的 min-height；
 * 按原型契约显式声明尺寸（图标钮 40px、开关 46×26、设置行内移动钮 34px） */
.today-pc .switch{min-height:26px}
.today-pc .cfg .cf-move button{min-height:34px}
.today-pc .icon-ctl{min-height:40px}
.today-pc .empty-note button{min-height:auto;padding:0}

@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}

.today-pc {
  position: relative;
  color: var(--fg);
  font: 14px/1.6 var(--font-body);
  -webkit-font-smoothing: antialiased;
}

.scored[data-v-f0042b6e] { border: 1px solid var(--border); border-radius: 12px; background: var(--soft); padding: 10px 14px; margin: 10px 0;
}
.scored h4[data-v-f0042b6e] { margin: 0 0 6px; font-size: 13px; font-weight: 600;
}
.scored .dims[data-v-f0042b6e] { margin: 0 0 4px; display: flex; flex-wrap: wrap; gap: 4px;
}
@supports not (gap: 1px) {
.scored .dims[data-v-f0042b6e] > * + * {
    margin-left: 4px;
}
}
.scored .hint[data-v-f0042b6e] { margin: 2px 0 0;
}

.pc-dt[data-v-415308c8] { position: relative;
}
.pc-dt-in[data-v-415308c8] { cursor: pointer;
}
.pc-dt-pop[data-v-415308c8] {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 294px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-card, 16px);
  background: var(--surface);
  box-shadow: var(--shadow-card, 0 8px 24px rgba(67, 53, 43, 0.08));
  box-shadow: var(--shadow-card, 0 8px 24px color-mix(in oklab, var(--fg) 8%, transparent));
  z-index: 5;
}
.pc-dt-head[data-v-415308c8] { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px;
}
@supports not (gap: 1px) {
.pc-dt-head[data-v-415308c8] > * + * {
    margin-left: 8px;
}
}
.pc-dt-head b[data-v-415308c8] { font: 600 14px / 1.3 var(--font-display); letter-spacing: 0.4px; color: var(--fg);
}
.pc-dt-head button[data-v-415308c8] {
  min-width: 32px; min-height: 32px; border: 1px solid var(--border); border-radius: 9px;
  background: var(--surface); color: var(--fg); cursor: pointer;
}
.pc-dt-head button[data-v-415308c8]:hover { background: var(--soft-green); color: var(--fg);
}
.pc-dt-grid[data-v-415308c8] { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center;
}
.pc-dt-w[data-v-415308c8] { font: 600 10.5px / 1 var(--font-display); letter-spacing: 0.08em; color: var(--muted); padding: 6px 0 4px;
}
.pc-dt-d[data-v-415308c8] {
  min-height: 36px; border-radius: 9px; background: transparent; color: var(--fg);
  font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 12.5px;
  border: none; cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.pc-dt-d[data-v-415308c8]:hover { background: var(--soft-green); color: var(--fg);
}
.pc-dt-d.today[data-v-415308c8] { box-shadow: inset 0 0 0 1px var(--accent);
}
.pc-dt-d.sel[data-v-415308c8] { background: var(--accent); color: var(--paper-ink); box-shadow: none;
}
.pc-dt-d.sel[data-v-415308c8]:hover { background: #8C5636; background: color-mix(in oklab, var(--accent) 90%, black); color: var(--paper-ink);
}
.pc-dt-d.mute[data-v-415308c8] { color: var(--muted-2);
}
.pc-dt-d.mute[data-v-415308c8]:hover { background: var(--soft); color: var(--fg);
}

.pc-tt[data-v-031f4d9e] { position: relative;
}
.pc-tt-in[data-v-031f4d9e] { cursor: pointer;
}
.pc-tt-pop[data-v-031f4d9e] {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 180px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-card, 16px);
  background: var(--surface);
  box-shadow: var(--shadow-card, 0 8px 24px rgba(67, 53, 43, 0.08));
  box-shadow: var(--shadow-card, 0 8px 24px color-mix(in oklab, var(--fg) 8%, transparent));
  z-index: 5;
}
.pc-tt-col[data-v-031f4d9e] {
  display: flex; flex-direction: column; min-height: 0; overflow: hidden;
  border: 1px solid var(--border); border-radius: 10px; background: var(--bg);
}
.pc-tt-cap[data-v-031f4d9e] {
  flex: none; text-align: center; padding: 6px 0 4px;
  font: 600 10.5px / 1 var(--font-display); letter-spacing: 0.08em; color: var(--muted);
  border-bottom: 1px solid var(--border);
}
.pc-tt-list[data-v-031f4d9e] {
  position: relative; flex: none; height: 252px; overflow: hidden;
  touch-action: none; overscroll-behavior: none; user-select: none;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 16%, black 84%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 16%, black 84%, transparent 100%);
}
.pc-tt-track[data-v-031f4d9e] { position: relative; z-index: 1; transition: transform 0.15s ease;
}
.pc-tt-list button[data-v-031f4d9e] {
  display: block; width: 100%; min-height: 36px; border: none; background: transparent;
  color: var(--fg); font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  font-size: 13px; cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.pc-tt-list button[data-v-031f4d9e]:hover { background: var(--soft-green); color: var(--fg);
}
.pc-tt-list button.on[data-v-031f4d9e] { background: var(--accent); color: var(--paper-ink);
}
.pc-tt-list button.on[data-v-031f4d9e]:hover { background: #8C5636; background: color-mix(in oklab, var(--accent) 90%, black); color: var(--paper-ink);
}

.zone-title[data-v-43b9599f] { margin: 0 0 10px; font-size: 14px; color: var(--pc-muted, #6b6459);
}
.score-dim-row[data-v-43b9599f] { display: flex; align-items: center; gap: 12px; padding: 6px 0;
}
@supports not (gap: 1px) {
.score-dim-row[data-v-43b9599f] > * + * {
    margin-left: 12px;
}
}
.err[data-v-43b9599f] { margin: 10px 0 0; color: #a2402c; font-size: 13px;
}

.score-module[data-v-dbc13cab] { border: 1px solid var(--border); border-radius: var(--r-card, 14px); background: var(--surface); padding: 10px 16px; margin: 0 0 16px;
}
.fail-row[data-v-dbc13cab] { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 13px; color: var(--muted);
}
@supports not (gap: 1px) {
.fail-row[data-v-dbc13cab] > * + * {
    margin-left: 12px;
}
}
.sw-text[data-v-dbc13cab] { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
@supports not (gap: 1px) {
.sw-text[data-v-dbc13cab] > * + * {
    margin-top: 2px;
}
}
.sw-text strong[data-v-dbc13cab] { font-size: 14px; font-weight: 600;
}
.sw-text .hint[data-v-dbc13cab] { font-size: 12px; color: var(--muted);
}
/* ============================================================
 * 门前 OA · PC 任务管理页样式（features/tasks/pc）
 *
 * 原型 menqian-pc-tasks-prototype.html 的 :root 令牌与类名逐字迁移；
 * 以 .mq-tasks 容器前缀实现页面级作用域（等价 scoped 的隔离语义，
 * 且能覆盖子组件内部节点）。原型内 5 个 hex（--paper-ink/--st-free/
 * --st-busy/--st-served/--st-paid）是契约本身照抄；其余派生只走
 * color-mix()，零新增 hex。演示壳参数 --review-h/--rail-w 在生产置 0
 * （评审导览条与页面内 rail 不进生产，见 spec §4.1）。
 * 纸纹噪点由 body::before 改为容器 ::before（fixed 全屏，视觉等价）。
 * ============================================================ */
.mq-tasks {
  color-scheme: light;
  --bg: oklch(0.945 0.018 85);
  --surface: oklch(0.972 0.010 90);
  --fg: oklch(0.340 0.026 55);
  --muted: oklch(0.575 0.022 65);
  --border: oklch(0.878 0.020 82);
  --accent: oklch(0.565 0.095 50);
  --cinnabar: oklch(0.535 0.130 38);
  --soft: oklch(0.925 0.022 85);
  --soft-green: oklch(0.918 0.030 80);
  --soft-clay: oklch(0.905 0.040 60);
  --soft-cinnabar: oklch(0.905 0.035 45);
  --ink-soft: oklch(0.790 0.030 72);
  --muted-2: oklch(0.690 0.022 70);
  --ink-card: oklch(0.350 0.028 52);
  --paper-ink: #FBF7EC;
  --st-free: #F3EDE0;
  --st-busy: #A85C33;
  --st-served: #6E7B4C;
  --st-paid: #46596E;
  --font-display: "Songti SC","STSong","Noto Serif SC",serif;
  --font-body: -apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --font-mono: ui-monospace,"SF Mono",Menlo,monospace;
  --fs-title: 20px;
  --fs-section: 15px;
  --fs-body: 14px;
  --fs-aux: 12px;
  --fs-micro: 11px;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px;
  --r-card: 16px; --r-ctl: 12px; --r-chip: 999px; --r-tag: 5px;
  --shadow-card: 0 1px 2px color-mix(in oklab, var(--fg) 8%, transparent), 0 8px 24px color-mix(in oklab, var(--fg) 6%, transparent);
  --shadow-pop: 0 16px 48px color-mix(in oklab, var(--fg) 18%, transparent);
  --accent-hover: oklch(0.52 0.095 50);
  --review-h: 0px;  /* 生产无评审导览条 */
  --rail-w: 0px;    /* 生产壳由 ManagerShell 提供，页面内不再画 rail */
  --top-h: 56px;

  position: relative;
  min-width: 1080px;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.45;
  color-scheme: only light;
}
@supports (not (color: oklch(0% 0 0))) {
.mq-tasks {
  --bg: #F2ECE0;
  --surface: #F8F6EE;
  --fg: #43352B;
  --muted: #82766C;
  --border: #DDD6C8;
  --accent: #A26440;
  --cinnabar: #AA4D30;
  --soft: #EDE5D6;
  --soft-green: #EFE2CE;
  --soft-clay: #F4DAC6;
  --soft-cinnabar: #F5D9CD;
  --ink-soft: #C7B8A6;
  --muted-2: #A4998D;
  --ink-card: #47372D;
  --shadow-card: 0 1px 2px rgba(67, 53, 43, 0.08), 0 8px 24px rgba(67, 53, 43, 0.06);
  --shadow-pop: 0 16px 48px rgba(67, 53, 43, 0.18);
  --accent-hover: #945733;
}
}

/* 纸纹噪点：原型 body::before 的容器级等价实现（不碰全局 body）。 */
.mq-tasks::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2000;
  pointer-events: none;
  opacity: .45;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0.045 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.mq-tasks::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mq-tasks *, .mq-tasks *::before, .mq-tasks *::after { box-sizing: border-box;
}
.mq-tasks button, .mq-tasks input, .mq-tasks select, .mq-tasks textarea {
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  color: inherit;
}
.mq-tasks button { cursor: pointer;
}
.mq-tasks :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}
@keyframes mq-breathe {
50% { opacity: .55;
}
}
@keyframes mq-fadein {
from { opacity: 0;
}
to { opacity: 1;
}
}
@keyframes mq-pop {
from { opacity: 0; transform: translateY(8px) scale(.98);
}
to { opacity: 1; transform: none;
}
}
@keyframes mq-slidein {
from { transform: translateX(16px); opacity: 0;
}
to { transform: none; opacity: 1;
}
}

/* ---------- 工作区骨架（chrome / tabs / filters / pulse） ---------- */
.mq-tasks .workspace { display: flex; flex-direction: column; min-height: 0; padding: 4px 0 16px;
}
.mq-tasks .workspace.is-board { min-height: calc(100vh - 170px);
}
.mq-tasks .workspace.is-page { min-height: auto;
}
.mq-tasks .chrome { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding-bottom: 8px; border-bottom: 1px solid var(--border); flex: none;
}
@supports not (gap: 1px) {
.mq-tasks .chrome > * + * {
    margin-left: 8px 12px;
}
}
.mq-tasks .tabs { display: flex; align-items: flex-end; gap: 4px; border-bottom: 0;
}
@supports not (gap: 1px) {
.mq-tasks .tabs > * + * {
    margin-left: 4px;
}
}
.mq-tasks .tab { height: 40px; padding: 0 14px; border: 0; background: transparent; color: var(--muted); border-bottom: 2px solid transparent; font-size: 15px; font-family: var(--font-display);
}
.mq-tasks .tab[aria-selected="true"] { color: var(--fg); border-bottom-color: var(--accent);
}
.mq-tasks .tab:hover { color: var(--fg); background: var(--soft-green);
}
.mq-tasks .filters { display: flex; gap: 8px; align-items: center; padding: 0; margin-left: auto;
}
@supports not (gap: 1px) {
.mq-tasks .filters > * + * {
    margin-left: 8px;
}
}
.mq-tasks .search { height: 44px; min-width: 220px; width: 280px; border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--surface); padding: 0 12px 0 40px;
}
.mq-tasks .search-wrap { position: relative;
}
.mq-tasks .search-wrap .ico { position: absolute; left: 12px; top: 13px; color: var(--muted); pointer-events: none;
}
.mq-tasks select.ctl, .mq-tasks .ctl { height: 44px; border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--surface); padding: 0 12px; min-width: 148px;
}
.mq-tasks select.ctl { padding-right: 32px; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 13px) calc(50% - 2px); background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
.mq-tasks .pulse { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 10px; flex: none;
}
@supports not (gap: 1px) {
.mq-tasks .pulse > * + * {
    margin-left: 8px;
}
}
.mq-tasks .pulse .sp { flex: 1;
}
.mq-tasks .chip { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: var(--r-chip); background: var(--soft); color: var(--fg); font-size: 12px; border: 1px solid transparent;
}
@supports not (gap: 1px) {
.mq-tasks .chip > * + * {
    margin-left: 6px;
}
}
.mq-tasks .chip b { font-family: var(--font-mono); font-weight: 600;
}
.mq-tasks .chip.warn { background: var(--soft-cinnabar); color: var(--cinnabar);
}
.mq-tasks .chip.ok { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: var(--st-served);
}
.mq-tasks .chip.ink { background: #D9DBD9; background: color-mix(in oklab, var(--st-paid) 16%, var(--surface)); color: var(--st-paid);
}

/* ---------- 按钮 ---------- */
.mq-tasks .btn { min-height: 44px; min-width: 44px; padding: 0 16px; border-radius: var(--r-ctl); border: 1px solid var(--border); background: var(--surface); color: var(--fg); display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
@supports not (gap: 1px) {
.mq-tasks .btn > * + * {
    margin-left: 6px;
}
}
.mq-tasks .btn:hover { background: #ECE9E1; background: color-mix(in oklab, var(--fg) 6%, var(--surface));
}
.mq-tasks .btn:active { background: #E4E1D8; background: color-mix(in oklab, var(--fg) 10%, var(--surface));
}
.mq-tasks .btn-warm { background: var(--accent); color: var(--paper-ink); border-color: var(--accent); border-bottom-width: 2px; border-bottom-color: #77482D; border-bottom-color: color-mix(in oklab, var(--accent) 80%, black);
}
.mq-tasks .btn-warm:hover { background: var(--accent-hover); color: var(--paper-ink);
}
.mq-tasks .btn-warm:active { transform: translateY(1px); border-bottom-color: var(--accent-hover);
}
.mq-tasks .btn-danger { background: var(--cinnabar); color: var(--paper-ink); border-color: var(--cinnabar); border-bottom-width: 2px; border-bottom-color: #7D3721; border-bottom-color: color-mix(in oklab, var(--cinnabar) 80%, black);
}
.mq-tasks .btn-danger:hover { background: #8F4027; background: color-mix(in oklab, var(--cinnabar) 88%, black); color: var(--paper-ink);
}
.mq-tasks .btn-ghost { background: transparent;
}
.mq-tasks .btn[disabled], .mq-tasks .btn:disabled { opacity: .45; cursor: not-allowed;
}
.mq-tasks .btn-text { border: 0; background: transparent; min-height: 44px; padding: 0 8px; color: var(--accent); text-decoration: underline; text-underline-offset: 3px;
}
.mq-tasks .btn-text:hover { background: var(--soft-green); color: var(--accent);
}

/* ---------- 今日看板：日课包进度卡 + 四泳道 ---------- */
.mq-tasks .board { flex: 1; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 10px;
}
.mq-tasks .packs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px;
}
.mq-tasks .pack { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto auto; gap: 4px 16px; align-items: start; padding: 12px 16px 14px; border: 1px solid var(--border); border-radius: var(--r-card); background: var(--surface); box-shadow: var(--shadow-card); min-height: 92px; cursor: pointer; transition: background .15s ease, border-color .15s ease; text-align: left;
}
.mq-tasks .pack.now { box-shadow: inset 0 2px 0 var(--accent), var(--shadow-card);
}
/* upcoming：未到展示时刻的包卡收起态（2026-09-16 需求）——muted 化、无 hover 反馈，
   到点后随服务端刷新自动回到常规态。 */
.mq-tasks .pack.upcoming { background: var(--soft); border-style: dashed; cursor: default;
}
.mq-tasks .pack.upcoming .nums { color: var(--muted);
}
.mq-tasks .pack.upcoming:focus-visible { outline-color: var(--muted);
}
.mq-tasks .upcoming-flag { font-family: var(--font-display); font-size: 11px; letter-spacing: .08em; color: var(--muted); margin-left: 6px;
}
.mq-tasks .pack.late { border-color: #CCA08B; border-color: color-mix(in oklab, var(--cinnabar) 40%, var(--border)); background: var(--soft-cinnabar);
}
.mq-tasks .pack:hover { background: var(--soft-green);
}
.mq-tasks .pack.late:hover { background: #F0CEC0; background: color-mix(in oklab, var(--soft-cinnabar) 92%, var(--cinnabar));
}
.mq-tasks .pack.sel { border-color: var(--accent); background: var(--soft-green);
}
.mq-tasks .pack.late.sel { border-color: #C2856D; border-color: color-mix(in oklab, var(--cinnabar) 60%, var(--border)); background: var(--soft-cinnabar);
}
.mq-tasks .pack:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px;
}
.mq-tasks .pack .sel-hint { font-size: 11px; color: var(--accent); font-family: var(--font-mono); grid-column: 1 / -1;
}
.mq-tasks .pack h3 { margin: 0; font-size: 15px; font-family: var(--font-display); font-weight: 500; grid-column: 1;
}
.mq-tasks .pack .meta { font-size: 11px; color: var(--muted); font-family: var(--font-mono); grid-column: 1;
}
.mq-tasks .pack .late-txt { color: var(--cinnabar); font-size: 12px; grid-column: 1 / -1;
}
.mq-tasks .pack .nums { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-family: var(--font-mono); font-size: 28px; font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: .02em; line-height: 1; color: var(--fg);
}
.mq-tasks .pack.late .nums { color: var(--cinnabar);
}
.mq-tasks .bar { height: 6px; border-radius: 99px; background: var(--soft); overflow: hidden; grid-column: 1 / -1; margin-top: 4px;
}
.mq-tasks .bar > i { display: block; height: 100%; background: var(--st-served); border-radius: 99px;
}
.mq-tasks .pack.late .bar > i { background: var(--cinnabar);
}
.mq-tasks .now-flag { font-family: var(--font-display); font-size: 11px; letter-spacing: .08em; color: var(--accent); margin-left: 6px;
}
.mq-tasks .spine-title { font-family: var(--font-display); font-size: 16px; margin: 0 0 8px;
}
.mq-tasks .lanes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; min-height: 0;
}
.mq-tasks .lane { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-card); box-shadow: var(--shadow-card); min-height: 0; display: flex; flex-direction: column;
}
.mq-tasks .lane.head-warn { border-color: #CFA692; border-color: color-mix(in oklab, var(--cinnabar) 35%, var(--border));
}
.mq-tasks .lane-h { display: flex; align-items: baseline; gap: 8px; padding: 12px 12px 10px; border-bottom: 1px solid var(--border); flex: none;
}
@supports not (gap: 1px) {
.mq-tasks .lane-h > * + * {
    margin-left: 8px;
}
}
.mq-tasks .lane-h h2 { margin: 0; font-size: 15px; font-family: var(--font-display); font-weight: 500;
}
.mq-tasks .lane-h .sub { font-size: 11px; color: var(--muted);
}
.mq-tasks .lane-h .n { margin-left: auto; font-family: var(--font-mono); font-size: 18px; font-variant-numeric: tabular-nums; color: var(--fg);
}
.mq-tasks .lane.head-warn .n { color: var(--cinnabar);
}
.mq-tasks .lane-list { padding: 8px; display: flex; flex-direction: column; gap: 8px; overflow: auto; min-height: 0; flex: 1;
}
@supports not (gap: 1px) {
.mq-tasks .lane-list > * + * {
    margin-top: 8px;
}
}
.mq-tasks .lane-empty { margin: auto; padding: 24px 12px; color: var(--muted); font-size: 13px; text-align: center; max-width: 22ch;
}
.mq-tasks .tcard { display: flex; flex-direction: column; align-items: stretch; gap: 6px; padding: 10px 12px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg); text-align: left; width: 100%; cursor: pointer;
}
@supports not (gap: 1px) {
.mq-tasks .tcard > * + * {
    margin-top: 6px;
}
}
.mq-tasks .tcard:hover { background: var(--soft-green); border-color: #CDB39E; border-color: color-mix(in oklab, var(--accent) 30%, var(--border));
}
.mq-tasks .tcard .name { font-size: 13px; line-height: 1.4; overflow-wrap: anywhere;
}
.mq-tasks .tcard .meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
}
@supports not (gap: 1px) {
.mq-tasks .tcard .meta > * + * {
    margin-left: 6px;
}
}
.mq-tasks .tcard .who { font-size: 11px; color: var(--muted);
}
.mq-tasks .tcard .acts { display: flex; gap: 6px; margin-top: 2px;
}
@supports not (gap: 1px) {
.mq-tasks .tcard .acts > * + * {
    margin-left: 6px;
}
}
.mq-tasks .tcard .acts .btn { flex: 1;
}

/* ---------- 状态标签 / 数据签 ---------- */
.mq-tasks .tag { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px; border-radius: var(--r-chip); font-family: var(--font-display); font-size: 10.5px; letter-spacing: .08em; background: var(--soft); color: var(--fg); white-space: nowrap;
}
@supports not (gap: 1px) {
.mq-tasks .tag > * + * {
    margin-left: 5px;
}
}
.mq-tasks .tag i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; display: inline-block;
}
.mq-tasks .tag.s-todo { background: #F4EFE3; background: color-mix(in oklab, var(--st-free) 80%, var(--surface));
}
.mq-tasks .tag.s-doing { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: var(--st-busy);
}
.mq-tasks .tag.s-block { background: var(--soft-cinnabar); color: var(--cinnabar);
}
.mq-tasks .tag.s-review { background: #D9DBD9; background: color-mix(in oklab, var(--st-paid) 16%, var(--surface)); color: var(--st-paid);
}
.mq-tasks .tag.s-over { background: var(--soft-cinnabar); color: var(--cinnabar);
}
.mq-tasks .tag.s-done { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: var(--st-served);
}
.mq-tasks .tag.s-void, .mq-tasks .tag.s-undone { background: var(--soft); color: var(--muted);
}
.mq-tasks .tag.s-hang { background: var(--soft-clay); color: var(--accent);
}
.mq-tasks .tag.sq { border-radius: var(--r-tag); letter-spacing: 0; font-family: var(--font-body); font-size: 11px;
}
.mq-tasks .foot-link { color: var(--muted); font-size: 13px;
}
.mq-tasks .empty, .mq-tasks .fail, .mq-tasks .gate { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-card); box-shadow: var(--shadow-card); padding: 40px 32px;
}
.mq-tasks .empty h2, .mq-tasks .fail h2, .mq-tasks .gate h2 { font-family: var(--font-display); font-weight: 500; font-size: 22px; margin: 0 0 8px;
}
.mq-tasks .empty p, .mq-tasks .fail p, .mq-tasks .gate p { color: var(--muted); margin: 0 0 16px; max-width: 46ch;
}
.mq-tasks .skel { background: var(--soft); border-radius: 12px; animation: mq-breathe 1.4s ease-in-out infinite;
}
.mq-tasks .skel-pack { height: 92px;
}
.mq-tasks .skel-card { height: 88px;
}

/* ---------- 台账 ---------- */
.mq-tasks .ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.mq-tasks .day { border: 1px solid var(--border); background: var(--surface); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-height: 108px; text-align: left; width: 100%;
}
@supports not (gap: 1px) {
.mq-tasks .day > * + * {
    margin-top: 10px;
}
}
.mq-tasks .day:hover { background: var(--soft-green);
}
.mq-tasks .day .d { font-family: var(--font-display); font-size: 18px;
}
.mq-tasks .day .sig { display: flex; flex-wrap: wrap; gap: 8px;
}
@supports not (gap: 1px) {
.mq-tasks .day .sig > * + * {
    margin-left: 8px;
}
}
.mq-tasks .day.empty-day { opacity: .7;
}
.mq-tasks .day.empty-day .d { color: var(--muted);
}
.mq-tasks .compact { display: flex; flex-direction: column; gap: 6px;
}
@supports not (gap: 1px) {
.mq-tasks .compact > * + * {
    margin-top: 6px;
}
}
.mq-tasks .cline { display: grid; grid-template-columns: 72px minmax(0, 2fr) 88px 100px 110px 64px; gap: 10px; align-items: center; min-height: 48px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); text-align: left; width: 100%;
}
.mq-tasks .cline .t { font-family: var(--font-mono); font-size: 12px; color: var(--muted);
}
.mq-tasks .cline .nm { overflow-wrap: anywhere;
}
.mq-tasks .table { width: 100%; border-collapse: separate; border-spacing: 0 8px;
}
.mq-tasks .table th { text-align: left; font-size: 12px; color: var(--muted); font-weight: 500; padding: 0 12px 4px;
}
.mq-tasks .table td { background: var(--surface); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 12px; vertical-align: middle;
}
.mq-tasks .table td:first-child { border-left: 1px solid var(--border); border-radius: 12px 0 0 12px;
}
.mq-tasks .table td:last-child { border-right: 1px solid var(--border); border-radius: 0 12px 12px 0;
}

/* ---------- 详情抽屉（520px） ---------- */
.mq-tasks .drawer-mask, .mq-tasks .modal-mask { position: fixed; inset: var(--review-h) 0 0 var(--rail-w); background: rgba(67, 53, 43, 0.28); background: color-mix(in oklab, var(--fg) 28%, transparent); z-index: 950; animation: mq-fadein .18s ease;
}
.mq-tasks .drawer { position: fixed; top: var(--review-h); right: 0; bottom: 0; width: min(520px, calc(100vw - 64px)); background: var(--surface); z-index: 960; box-shadow: var(--shadow-pop); display: flex; flex-direction: column; animation: mq-slidein .22s cubic-bezier(.3,.9,.4,1);
}
.mq-tasks .drawer-h { display: flex; align-items: flex-start; gap: 12px; padding: 16px 16px 12px; border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.mq-tasks .drawer-h > * + * {
    margin-left: 12px;
}
}
.mq-tasks .drawer-h h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 4px 0 0; overflow-wrap: anywhere;
}
.mq-tasks .drawer-b { flex: 1; overflow: auto; padding: 16px;
}
.mq-tasks .drawer-f { display: flex; gap: 8px; justify-content: flex-end; align-items: center; padding: 12px 16px; border-top: 1px solid var(--border); background: var(--bg); flex-wrap: wrap;
}
@supports not (gap: 1px) {
.mq-tasks .drawer-f > * + * {
    margin-left: 8px;
}
}
.mq-tasks .drawer-f .hint { flex: 1; min-width: 200px; text-align: left;
}
.mq-tasks .facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0;
}
.mq-tasks .fact { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px;
}
.mq-tasks .fact dt { font-size: 11px; color: var(--muted);
}
.mq-tasks .fact dd { margin: 2px 0 0; font-size: 13px;
}
.mq-tasks .owner-card { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 8px 0 16px;
}
.mq-tasks .owner-card div { border: 1px solid var(--border); border-radius: 10px; padding: 8px; background: var(--bg); font-size: 12px;
}
.mq-tasks .owner-card b { display: block; font-weight: 500; margin-top: 2px;
}
.mq-tasks .dead { color: var(--cinnabar);
}
.mq-tasks .prose { font-size: 13px; color: var(--fg);
}
.mq-tasks .prose p { margin: 0 0 10px;
}
.mq-tasks .check { display: flex; gap: 8px; align-items: flex-start; min-height: 36px; font-size: 13px;
}
@supports not (gap: 1px) {
.mq-tasks .check > * + * {
    margin-left: 8px;
}
}
.mq-tasks .check .box { width: 16px; height: 16px; border: 1px solid var(--border); border-radius: 4px; margin-top: 2px; background: var(--surface); flex: none;
}
.mq-tasks .check.ok .box { background: var(--st-served); border-color: var(--st-served);
}
.mq-tasks .photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
.mq-tasks .ph { aspect-ratio: 4/3; border: 1px dashed #CAAD98; border: 1px dashed color-mix(in oklab, var(--accent) 35%, var(--border)); border-radius: 10px; background: var(--soft); display: grid; place-items: center; color: var(--muted); font-size: 11px; text-align: center; padding: 8px; overflow: hidden;
}
.mq-tasks .ph:hover { background: var(--soft-green);
}
.mq-tasks .ph img { width: 100%; height: 100%; object-fit: cover;
}
.mq-tasks .tl { list-style: none; margin: 0; padding: 0;
}
.mq-tasks .tl li { display: grid; grid-template-columns: 16px 1fr; gap: 10px; padding-bottom: 12px;
}
.mq-tasks .tl .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); margin-top: 5px; box-shadow: 0 0 0 3px var(--soft-green);
}
.mq-tasks .tl .when { font-family: var(--font-mono); font-size: 11px; color: var(--muted);
}
.mq-tasks .tl .self { color: var(--st-paid);
}

/* ---------- 弹层 ---------- */
.mq-tasks .modal-mask { display: grid; place-items: center; padding: 24px;
}
.mq-tasks .modal { position: fixed; left: var(--rail-w); right: 0; top: var(--review-h); bottom: 0; margin: auto; height: fit-content; z-index: 960; width: min(560px, calc(100vw - var(--rail-w) - 48px)); background: var(--surface); border-radius: var(--r-card); box-shadow: var(--shadow-pop); animation: mq-pop .2s cubic-bezier(.3,.9,.4,1); max-height: calc(100vh - var(--review-h) - 48px); display: flex; flex-direction: column;
}
.mq-tasks .modal.wide { width: min(720px, calc(100vw - var(--rail-w) - 48px));
}
.mq-tasks .modal-h { padding: 16px 18px 8px;
}
.mq-tasks .modal-h h2 { font-family: var(--font-display); font-size: 20px; font-weight: 500; margin: 0;
}
.mq-tasks .modal-h p { margin: 6px 0 0; color: var(--muted); font-size: 13px;
}
.mq-tasks .modal-b { padding: 8px 18px 16px; overflow: auto;
}
.mq-tasks .modal-f { display: flex; gap: 8px; justify-content: flex-end; padding: 12px 18px; border-top: 1px solid var(--border);
}
@supports not (gap: 1px) {
.mq-tasks .modal-f > * + * {
    margin-left: 8px;
}
}
.mq-tasks .quote { background: var(--soft-clay); border-radius: 10px; padding: 10px 12px; font-size: 13px; margin-bottom: 12px;
}
.mq-tasks .opt { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 8px; background: var(--bg);
}
@supports not (gap: 1px) {
.mq-tasks .opt > * + * {
    margin-left: 10px;
}
}
.mq-tasks .opt:hover, .mq-tasks .opt.on { background: var(--soft-green); border-color: #CAAD98; border-color: color-mix(in oklab, var(--accent) 35%, var(--border));
}
.mq-tasks .opt input[type="radio"] { position: absolute; opacity: 0; pointer-events: none;
}
.mq-tasks .opt:focus-within { outline: 2px solid rgba(162, 100, 64, 0.55); outline: 2px solid color-mix(in oklab, var(--accent) 55%, transparent); outline-offset: 1px;
}
.mq-tasks .field { display: flex; flex-direction: column; gap: 6px; margin: 10px 0;
}
@supports not (gap: 1px) {
.mq-tasks .field > * + * {
    margin-top: 6px;
}
}
.mq-tasks .field label { font-size: 12px; color: var(--muted);
}
.mq-tasks .field input, .mq-tasks .field textarea, .mq-tasks .field select { min-height: 44px; border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--surface); padding: 8px 12px;
}
.mq-tasks .field textarea { min-height: 88px; resize: vertical;
}
.mq-tasks .err { background: var(--soft-cinnabar); color: var(--cinnabar); border-radius: 10px; padding: 8px 10px; font-size: 13px; margin: 8px 0;
}
.mq-tasks .hint { font-size: 12px; color: var(--muted);
}
.mq-tasks .switch-row { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 12px;
}
@supports not (gap: 1px) {
.mq-tasks .switch-row > * + * {
    margin-left: 12px;
}
}
.mq-tasks .f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; align-items: start;
}
.mq-tasks .switch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 14px;
}
.mq-tasks .sw { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 12px; cursor: pointer;
}
@supports not (gap: 1px) {
.mq-tasks .sw > * + * {
    margin-left: 12px;
}
}
.mq-tasks .sw input { position: absolute; opacity: 0; pointer-events: none;
}
.mq-tasks .sw .track { flex: none; width: 40px; height: 24px; border-radius: 999px; background: var(--soft); border: 1px solid var(--border); position: relative; transition: background .15s ease;
}
.mq-tasks .sw .track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--surface); border: 1px solid var(--border); transition: left .15s ease;
}
.mq-tasks .sw input:checked + .track { background: var(--accent); border-color: var(--accent);
}
.mq-tasks .sw input:checked + .track::after { left: 18px; background: var(--paper-ink); border-color: var(--paper-ink);
}
.mq-tasks .sw input:focus-visible + .track { outline: 2px solid var(--accent); outline-offset: 2px;
}
.mq-tasks .stepper { display: flex; align-items: center; gap: 8px;
}
@supports not (gap: 1px) {
.mq-tasks .stepper > * + * {
    margin-left: 8px;
}
}
.mq-tasks .stepper button { width: 40px; height: 44px; border-radius: var(--r-ctl); border: 1px solid var(--border); background: var(--surface); color: var(--fg); font-size: 16px; line-height: 1; cursor: pointer;
}
.mq-tasks .stepper button:hover { background: var(--soft-green);
}
.mq-tasks .stepper .val { min-width: 20px; text-align: center; font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.mq-tasks .pack-member { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 6px 0; border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.mq-tasks .pack-member > * + * {
    margin-left: 12px;
}
}
.mq-tasks .pack-member:last-child { border-bottom: 0;
}
.mq-tasks .pack-member .pm-name { flex: 1;
}
.mq-tasks .pack-member .pm-cycle { font-size: 12px; color: var(--muted);
}
.mq-tasks .week { display: flex; gap: 6px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.mq-tasks .week > * + * {
    margin-left: 6px;
}
}
.mq-tasks .week button { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface);
}
.mq-tasks .week button.on { background: var(--soft-green); border-color: var(--accent); color: var(--accent);
}
.mq-tasks .ico { width: 20px; height: 20px; display: block;
}
.mq-tasks .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
}
.mq-tasks .people { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; max-height: 220px; overflow: auto;
}
.mq-tasks .people button { min-height: 44px; justify-content: center;
}
.mq-tasks .over-banner { background: var(--soft-cinnabar); border: 1px solid #D2B09D; border: 1px solid color-mix(in oklab, var(--cinnabar) 28%, var(--border)); border-radius: var(--r-card); padding: 12px 16px; margin: 0 0 12px;
}
.mq-tasks .over-banner h3 { font-family: var(--font-display); font-size: 16px; font-weight: 500; margin: 0 0 4px; color: var(--cinnabar);
}
.mq-tasks .over-banner p { margin: 0 0 10px; font-size: 13px; color: var(--fg);
}
.mq-tasks .over-banner .orow { display: grid; grid-template-columns: 88px minmax(0,1fr) 100px 88px 72px; gap: 8px; align-items: center; min-height: 44px; padding: 8px 10px; border-radius: 10px; background: var(--surface); border: 1px solid var(--border); margin-top: 6px; text-align: left; width: 100%;
}
.mq-tasks .over-banner .orow:hover { background: var(--soft-green);
}
.mq-tasks .muted { color: var(--muted); font-size: 13px;
}
.mq-tasks .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) {
.mq-tasks *, .mq-tasks *::before { animation: none !important; transition: none !important;
}
}
/* 日课包编辑：分类维度二选一排一排（用户 2026-09-14 走查反馈）。 */
.mq-tasks .dim-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px;
}
.mq-tasks .dim-row .opt { margin-bottom: 0;
}
/**
 * PC 预定工作台视觉契约（.mqv 作用域）。
 *
 * 令牌逐字绑定 menqian-Createthisprojecta v3（tokens-v3.css :root，与原型 :root 同名同值）；
 * 零新增 hex，派生一律 color-mix。类名契约来自原型 menqian-reservations-prototype.html：
 * datebar/.d-cal（选日期月历）、timestrip（当日时段）、rhead/.rrow（网格行）、
 * tag-tag 五态、dt-pop（月历+时分鼓轮）、hintbar、next-blocked 等。
 * 基础类（.btn/.pagehead/.ptabs/.seg/.search/.tcard/.drawer/.mask/.modal/.field/.notice/
 * .sk/.liststate/.sysmask）复用 features/members/pcCommon.css（.mqm 作用域，同族纪律）。
 */

/* ── 页头摘要 ── */
.mqv .ph-tools { display: flex; align-items: center; gap: 10px; flex: none;
}
@supports not (gap: 1px) {
.mqv .ph-tools > * + * {
    margin-left: 10px;
}
}
.mqv .kpis { display: flex; gap: 16px; margin-top: 8px; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqv .kpis > * + * {
    margin-left: 16px;
}
}
.mqv .kpis b { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--fg); font-weight: 600;
}

/* ── 查询工具区（顺序：页签 → 日期条 → 搜索 → 状态；原型 v1.5 锁定） ── */
.mqv .query { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-bottom: 12px;
}
@supports not (gap: 1px) {
.mqv .query > * + * {
    margin-left: 10px 12px;
}
}
.mqv .query .ptabs { margin-bottom: 0;
}
.mqv .datebar { display: flex; align-items: center; gap: 4px;
}
@supports not (gap: 1px) {
.mqv .datebar > * + * {
    margin-left: 4px;
}
}
.mqv .datebar .d-nav {
  width: 36px; height: 36px; min-height: 36px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface);
  display: flex; align-items: center; justify-content: center; color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.mqv .datebar .d-nav:hover { background: var(--soft-green); color: var(--fg);
}
.mqv .datebar .d-today {
  min-width: 148px; height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border);
  background: var(--surface); font: 600 13px / 1 var(--font-display); letter-spacing: 0.4px;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mqv .datebar .d-today:hover { background: var(--soft-green);
}
.mqv .datebar .d-today.on { border-color: var(--accent); background: var(--soft-green); color: var(--accent);
}
.mqv .datebar .d-pick {
  height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border);
  background: var(--surface); font-size: var(--fs-aux); color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.mqv .datebar .d-pick:hover { background: var(--soft-green); color: var(--fg);
}
.mqv .datebar .d-pick.on { border-color: var(--accent); background: var(--soft-green); color: var(--accent);
}
.mqv .datebar .d-pick.on:hover { background: #E2CBB4; background: color-mix(in oklab, var(--soft-green) 82%, var(--accent)); color: var(--accent);
}
.mqv .d-pick-wrap { position: relative; display: inline-flex; z-index: 32;
}

/* ── 自家月历（「选日期」下拉与表单同族；280px / 36px 格，原型契约不改 44） ── */
.mqv .d-cal {
  position: absolute; left: 0; top: calc(100% + 6px); z-index: 33; width: 280px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  box-shadow: 0 14px 36px rgba(67, 53, 43, 0.16);
  box-shadow: 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent); padding: 12px 12px 10px;
}
.mqv .d-cal-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px;
}
@supports not (gap: 1px) {
.mqv .d-cal-head > * + * {
    margin-left: 8px;
}
}
.mqv .d-cal-title { font: 600 14px / 1.3 var(--font-display); letter-spacing: 0.4px; color: var(--fg);
}
.mqv .d-cal-nav {
  width: 36px; height: 36px; min-height: 36px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface);
  display: flex; align-items: center; justify-content: center; color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.mqv .d-cal-nav:hover { background: var(--soft-green); color: var(--fg);
}
.mqv .d-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center;
}
.mqv .d-cal-w { font: 600 10.5px / 1 var(--font-display); letter-spacing: 0.08em; color: var(--muted); padding: 6px 0 4px;
}
.mqv .d-cal-d {
  min-height: 36px; border-radius: 9px; background: transparent; color: var(--fg);
  font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 12.5px;
  transition: background 0.15s ease, color 0.15s ease;
}
.mqv .d-cal-d:hover { background: var(--soft-green); color: var(--fg);
}
.mqv .d-cal-d.today { box-shadow: inset 0 0 0 1px var(--accent);
}
.mqv .d-cal-d.sel { background: var(--accent); color: var(--paper-ink); box-shadow: none;
}
.mqv .d-cal-d.sel:hover { background: #8C5636; background: color-mix(in oklab, var(--accent) 90%, black); color: var(--paper-ink);
}
.mqv .d-cal-d.mute { color: var(--muted-2);
}
.mqv .d-cal-d.mute:hover { background: var(--soft); color: var(--fg);
}
.mqv .d-cal-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border);
  font-size: 11px; color: var(--muted); line-height: 1.4;
}
@supports not (gap: 1px) {
.mqv .d-cal-foot > * + * {
    margin-left: 8px;
}
}
.mqv .d-cal-jump {
  min-height: 32px; height: 32px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--border);
  background: var(--surface); font-size: 12px; color: var(--fg);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mqv .d-cal-jump:hover { background: var(--soft-green); border-color: #B4AA9D; border-color: color-mix(in oklab, var(--fg) 25%, var(--border)); color: var(--fg);
}

/* ── 搜索说明条 ── */
.mqv .hintbar {
  display: none; align-items: center; gap: 10px; padding: 8px 12px; margin-bottom: 10px;
  background: var(--soft); border-radius: var(--mqm-r-ctl); font-size: var(--fs-aux); color: var(--muted);
}
.mqv .hintbar.show { display: flex;
}

/* ── 当日时段细轴（10:00–22:00，形状+颜色+文字三通道；不替代列表） ── */
.mqv .timestrip {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--mqm-r-card);
  box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06);
  box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); padding: 10px 16px 12px; margin-bottom: 12px;
}
.mqv .timestrip .ts-h { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px;
}
.mqv .timestrip .ts-h b { font: 600 13px / 1.4 var(--font-display); letter-spacing: 0.5px;
}
.mqv .timestrip .ts-h span { font-size: var(--fs-micro); color: var(--muted);
}
.mqv .ts-track { position: relative; height: 28px; margin: 0 8px;
}
.mqv .ts-line { position: absolute; left: 0; right: 0; top: 13px; height: 1px; background: var(--border);
}
.mqv .ts-tick { position: absolute; top: 0; transform: translateX(-50%); text-align: center;
}
.mqv .ts-tick i { display: block; width: 1px; height: 8px; background: var(--border); margin: 8px auto 0;
}
.mqv .ts-tick em { font: 10px / 1 var(--font-mono); color: var(--muted-2); font-style: normal; position: absolute; top: -2px; left: 50%; transform: translateX(-50%);
}
.mqv .ts-legend { display: flex; gap: 10px; flex-wrap: wrap; font-size: 10px; color: var(--muted); margin-top: 8px;
}
@supports not (gap: 1px) {
.mqv .ts-legend > * + * {
    margin-left: 10px;
}
}
.mqv .ts-legend i { display: inline-block; width: 8px; height: 8px; margin-right: 4px; vertical-align: 1px; border: 2px solid var(--surface); box-shadow: 0 0 0 1px var(--border);
}
.mqv .ts-legend .lg-p i { border-radius: 50%; background: var(--muted-2);
}
.mqv .ts-legend .lg-c i { border-radius: 50%; background: var(--st-busy);
}
.mqv .ts-legend .lg-a i { border-radius: 2px; background: var(--st-served);
}
.mqv .ts-legend .lg-d i { background: var(--st-paid); transform: rotate(45deg); border-radius: 1px;
}
.mqv .ts-dot {
  /* button 保留 44px 可访问热区；实际状态形状由子级 .ts-mark 绘制。 */
  position: absolute; top: -9px; width: 44px; height: 44px; min-height: var(--touch-min); box-sizing: border-box;
  padding: 0; border: 0; border-radius: 50%; transform: translateX(-50%); appearance: none; background: transparent; cursor: pointer;
}
.mqv .ts-dot .ts-mark {
  position: absolute; top: 50%; left: 50%; display: block; width: 12px; height: 12px;
  border: 2px solid var(--surface); border-radius: 50%; transform: translate(-50%, -50%); box-sizing: border-box;
}
.mqv .ts-dot.pending .ts-mark { background: var(--muted-2); border-radius: 50%;
}
.mqv .ts-dot.confirmed .ts-mark { background: var(--st-busy); border-radius: 50%;
}
.mqv .ts-dot.arrived .ts-mark { background: var(--st-served); border-radius: 2px;
}
.mqv .ts-dot.completed .ts-mark { background: var(--st-paid); border-radius: 1px; transform: translate(-50%, -50%) rotate(45deg);
}
.mqv .ts-dot.cancelled .ts-mark { background: var(--cinnabar); border-radius: 50%; opacity: 0.45;
}
.mqv .ts-dot:hover { filter: brightness(0.92);
}
.mqv .ts-dot:focus-visible { outline-offset: 3px;
}
.mqv .ts-dot .tip {
  position: absolute; bottom: 35px; left: 50%; transform: translateX(-50%);
  background: var(--ink-card); color: var(--paper-ink); font-size: 11px; padding: 4px 8px; border-radius: 6px;
  white-space: nowrap; opacity: 0; pointer-events: none;
}
.mqv .ts-dot:hover .tip { opacity: 1;
}

/* ── 主列表：高密度网格行（时间 18px 等宽为第一扫读锚点） ── */
.mqv .rhead, .mqv .rrow {
  display: grid;
  grid-template-columns: 108px minmax(128px, 1.5fr) 52px minmax(132px, 1.4fr) minmax(108px, 0.9fr) 96px minmax(0, 0.8fr) 132px;
  gap: 8px; align-items: center; padding: 0 16px;
}
.mqv .rhead {
  min-height: 40px; border-bottom: 1px solid var(--border);
  font-family: var(--font-mono); font-size: var(--fs-micro); letter-spacing: 0.05em; color: var(--muted);
}
.mqv .rgroup-h {
  display: flex; align-items: baseline; gap: 10px; padding: 10px 16px 6px;
  background: #F4EFE4;
  background: color-mix(in oklab, var(--bg) 70%, var(--surface));
  border-top: 1px solid var(--border); position: sticky; top: 0; z-index: 2;
}
@supports not (gap: 1px) {
.mqv .rgroup-h > * + * {
    margin-left: 10px;
}
}
.mqv .rgroup-h:first-child { border-top: 0;
}
.mqv .rgroup-h .g-t { font: 600 13px / 1.4 var(--font-display); letter-spacing: 0.6px;
}
.mqv .rgroup-h .g-n { font-family: var(--font-mono); font-size: 11px; color: var(--muted-2);
}
.mqv details.rgroup > .rgroup-h {
  width: 100%; min-height: 44px; box-sizing: border-box; border: 0; border-top: 1px solid var(--border);
  align-items: center; padding: 0 16px; cursor: pointer; list-style: none; transition: background 0.12s ease;
}
.mqv details.rgroup > .rgroup-h::-webkit-details-marker { display: none;
}
.mqv details.rgroup > .rgroup-h::before {
  content: ""; width: 6px; height: 6px; flex: none; margin: 0 2px 2px 1px;
  border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted);
  transform: rotate(-45deg); transition: transform 0.12s ease;
}
.mqv details.rgroup:first-of-type > .rgroup-h { border-top: 0;
}
.mqv details.rgroup[open] > .rgroup-h { background: #F2E9D9; background: color-mix(in oklab, var(--soft-green) 65%, var(--surface));
}
.mqv details.rgroup[open] > .rgroup-h::before { transform: rotate(45deg);
}
.mqv details.rgroup > .rgroup-h:hover { background: var(--soft-green);
}
.mqv details.rgroup > .rgroup-h:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px;
}
.mqv .rrow { min-height: 58px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background 0.12s ease, box-shadow 0.12s ease;
}
.mqv .rrow:last-child { border-bottom: 0;
}
.mqv .rrow:hover { background: var(--soft-green);
}
.mqv .rrow.is-selected {
  background: #F2E8D8;
  background: color-mix(in oklab, var(--soft-green) 70%, var(--surface));
  box-shadow: inset 0 0 0 1px #BA8F73;
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--accent) 62%, var(--border));
}
.mqv .rrow .tm { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 18px; font-weight: 650; letter-spacing: -0.02em; line-height: 1.1;
}
.mqv .rrow .td { font-size: 10px; color: var(--muted-2); margin-top: 2px; font-family: var(--font-mono);
}
.mqv .rrow .guest { font-weight: 650; min-width: 0;
}
.mqv .rrow .party { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--fg);
}
.mqv .rrow .place { min-width: 0; font-size: 13px;
}
.mqv .rrow .place .off { color: var(--cinnabar); font-size: 11px;
}
.mqv .rrow .contact { font-family: var(--font-mono); font-size: 12px; color: var(--muted); min-width: 0;
}
.mqv .rrow .note { font-size: 12px; color: var(--muted); min-width: 0;
}
.mqv .rrow .acts { display: flex; align-items: center; justify-content: flex-end; gap: 4px;
}
@supports not (gap: 1px) {
.mqv .rrow .acts > * + * {
    margin-left: 4px;
}
}

/* 状态五态签（浅底 16% + 色点 + 宋体文字；列表行不整行深染） */
.mqv .tag-pending { background: var(--soft); color: var(--muted);
}
.mqv .tag-pending .dot { background: var(--muted-2);
}
.mqv .tag-confirmed { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #844726; color: color-mix(in oklab, var(--st-busy) 84%, black);
}
.mqv .tag-confirmed .dot { background: var(--st-busy);
}
.mqv .tag-arrived { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqv .tag-arrived .dot { background: var(--st-served);
}
.mqv .tag-completed { background: #D9DBD9; background: color-mix(in oklab, var(--st-paid) 16%, var(--surface)); color: #384759; color: color-mix(in oklab, var(--st-paid) 86%, black);
}
.mqv .tag-completed .dot { background: var(--st-paid);
}
.mqv .tag-cancelled { background: #EFDED2; background: color-mix(in oklab, var(--cinnabar) 14%, var(--surface)); color: #823922; color: color-mix(in oklab, var(--cinnabar) 82%, black);
}
.mqv .tag-cancelled .dot { background: var(--cinnabar);
}

/* 搜索结果范围标记（5px 方角虚线） */
.mqv .dtag.scope { margin-left: 6px;
}
.mqv .dtag.ex { margin-left: 6px; border-style: solid; border-color: #CDAB94; border-color: color-mix(in oklab, var(--st-busy) 35%, var(--border)); color: #774022; color: color-mix(in oklab, var(--st-busy) 78%, black);
}

/* 未来阻塞态：不是按钮，点不了 */
.mqv .next-blocked {
  display: inline-flex; align-items: center; height: 32px; padding: 0 10px; border-radius: 8px;
  border: 1px dashed var(--border); background: var(--bg); font-size: 11px; color: var(--muted);
  cursor: default; pointer-events: none; user-select: none;
}

/* 店长确认勾选 / 准备任务清单 */
.mqv .chk { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; font-size: 13px; line-height: 1.55; cursor: pointer; color: var(--fg);
}
@supports not (gap: 1px) {
.mqv .chk > * + * {
    margin-left: 8px;
}
}
.mqv .chk input { width: 16px; height: 16px; margin-top: 3px; flex: none; accent-color: var(--accent);
}
.mqv .prep-list { margin: 8px 0 0 1.2em; font-size: 13px; line-height: 1.8;
}
.mqv .ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqv .clist { margin-top: 8px;
}
.mqv .clist .ci { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px dashed rgba(168, 92, 51, 0.22); border-bottom: 1px dashed color-mix(in oklab, var(--st-busy) 22%, transparent); font-size: 12px;
}
@supports not (gap: 1px) {
.mqv .clist .ci > * + * {
    margin-left: 10px;
}
}
.mqv .clist .ci:last-child { border-bottom: 0;
}

/* ── 表单专属控件：称谓片 / 步进 / 单选 ── */
.mqv .honor { display: flex; gap: 6px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.mqv .honor > * + * {
    margin-left: 6px;
}
}
.mqv .honor button {
  height: 26px; min-height: 26px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--r-pill, 999px);
  background: var(--surface); font-size: 11px; color: var(--muted);
}
.mqv .honor button:hover { background: var(--soft-green); color: var(--fg);
}
.mqv .stepper { display: flex; align-items: center; gap: 8px;
}
@supports not (gap: 1px) {
.mqv .stepper > * + * {
    margin-left: 8px;
}
}
.mqv .stepper button {
  width: 36px; height: 36px; min-height: 36px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface);
  font-size: 18px; line-height: 1;
}
.mqv .stepper button:hover { background: var(--soft-green);
}
.mqv .stepper .n { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 16px; font-weight: 650; min-width: 24px; text-align: center;
}
.mqv .radios { display: flex; flex-wrap: wrap; gap: 6px;
}
@supports not (gap: 1px) {
.mqv .radios > * + * {
    margin-left: 6px;
}
}
.mqv .radios button {
  height: 32px; min-height: 32px; padding: 0 12px; border: 1px solid var(--border); border-radius: var(--r-pill, 999px);
  background: var(--surface); font-size: 12px; color: var(--muted);
}
.mqv .radios button.on { border-color: var(--accent); background: var(--soft-green); color: var(--accent); font-weight: 600;
}

/* ── 表单日期时间弹层：左月历 + 右时/分鼓轮（7×36 视窗，选中钉正中，列不可滑） ── */
.mqv .dt-pop {
  position: relative; z-index: 40; width: 100%; margin-top: 8px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  box-shadow: 0 14px 36px rgba(67, 53, 43, 0.16);
  box-shadow: 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent); padding: 12px;
}
.mqv .dt-prev { font: 600 15px / 1.4 var(--font-display); letter-spacing: 0.4px; margin-bottom: 10px;
}
.mqv .dt-body { display: grid; grid-template-columns: minmax(0, 1fr) 136px; gap: 10px; align-items: start;
}
.mqv .dt-time { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; min-height: 0; align-self: stretch;
}
.mqv .dt-col { display: flex; flex-direction: column; min-height: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 10px; background: var(--bg);
}
.mqv .dt-col-cap {
  flex: none; font: 600 10.5px / 1 var(--font-display); letter-spacing: 0.08em; color: var(--muted);
  text-align: center; padding: 8px 0 6px; border-bottom: 1px solid var(--border);
}
.mqv .dt-col-list {
  position: relative; flex: none; height: 252px; overflow: hidden;
  touch-action: none; overscroll-behavior: none; user-select: none;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 16%, black 84%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, black 16%, black 84%, transparent 100%);
}
.mqv .dt-col-track { position: relative; z-index: 1; transition: transform 0.15s ease;
}
.mqv .dt-col-list button {
  display: block; width: 100%; height: 36px; min-height: 36px;
  font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13px; color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.mqv .dt-col-list button:hover { background: var(--soft-green); color: var(--fg);
}
.mqv .dt-col-list button.on { background: var(--accent); color: var(--paper-ink);
}
.mqv .dt-col-list button.on:hover { background: #8C5636; background: color-mix(in oklab, var(--accent) 90%, black); color: var(--paper-ink);
}
.mqv .dt-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--border);
}
@supports not (gap: 1px) {
.mqv .dt-foot > * + * {
    margin-left: 8px;
}
}

/* 详情抽屉 520 / 表单抽屉 480（覆盖 pcCommon 640 宽的会员规格） */
.mqv .drawer { width: 520px;
}
.mqv .drawer.form { width: 480px; z-index: 87;
}
.mqv .d-head { flex: none;
}
.mqv .d-head .d-time { font: 600 26px / 1.15 var(--font-display); letter-spacing: 1px;
}
.mqv .d-head .d-sub { font-size: var(--fs-aux); color: var(--muted); margin-top: 4px;
}
/* B-317：预定两个抽屉直接用 .d-body（非会员 .d-panels/.dpanel 体系），
   必须自己成为 flex 滚动容器，否则内容全高把 .d-foot 顶出视口。
   左右 22px 与 .d-foot 边距对齐，上下参照 pcInventory 抽屉节奏。 */
.mqv .d-body { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 22px 24px;
}
.mqv .d-foot {
  flex: none; padding: 12px 22px 16px; border-top: 1px solid var(--border);
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--surface);
}
@supports not (gap: 1px) {
.mqv .d-foot > * + * {
    margin-left: 8px;
}
}
.mqv .d-foot .danger-wrap { margin-left: auto; display: flex; gap: 4px;
}
@supports not (gap: 1px) {
.mqv .d-foot .danger-wrap > * + * {
    margin-left: 4px;
}
}

/* 1080–1280 收备注列，更窄再收联系列；不缩字号 */
@media (max-width: 1280px) {
.mqv .rhead, .mqv .rrow {
    grid-template-columns: 96px minmax(110px, 1.4fr) 44px minmax(110px, 1.2fr) minmax(90px, 0.8fr) 88px 120px;
}
.mqv .col-note, .mqv .rh-note { display: none;
}
}
@media (max-width: 1180px) {
.mqv .rhead, .mqv .rrow {
    grid-template-columns: 92px minmax(108px, 1.3fr) 44px minmax(108px, 1.2fr) 88px 118px;
}
.mqv .contact, .mqv .rhead > div:nth-child(5) { display: none;
}
}

.reservations-pc[data-v-8233d163] {
  /* 原型契约：PC 预定工作台最低可用宽度 1080（不缩字号，宽表由壳横向滚动） */
  min-width: 1080px;
}
.reservations-pc .wrap[data-v-8233d163] {
  max-width: 1240px;
  margin: 0 auto;
}

.pc-state-panel[data-v-2b6c6dda] {
  max-width: 540px;
  margin: 56px auto 0;
  text-align: center;
  padding: 38px 36px 34px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: var(--shadow-card, 0 3px 14px rgba(67, 53, 43, 0.06));
  box-shadow: var(--shadow-card, 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent));
  font-family: var(--font-body);
}
.pc-state-mark[data-v-2b6c6dda] {
  width: 46px;
  height: 46px;
  margin: 0 auto 12px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: var(--fs-title);
  font-weight: 600;
}
.error .pc-state-mark[data-v-2b6c6dda] {
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
}
.empty .pc-state-mark[data-v-2b6c6dda] {
  background: var(--soft);
  color: var(--muted);
}
.pc-state-title[data-v-2b6c6dda] {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: 1px;
  color: var(--fg);
}
.pc-state-desc[data-v-2b6c6dda] {
  margin: 6px 0 0;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--muted);
  white-space: pre-line;
}
/* 乙 · 器物手感按钮：2px 底厚，按下下沉 1px（与原型 .btn-warm.bp 同规格） */
.pc-state-btn[data-v-2b6c6dda] {
  margin-top: 16px;
  min-height: 44px;
  min-width: 44px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-bottom-width: 2px;
  border-bottom-color: #4F2E1B;
  border-bottom-color: color-mix(in oklab, var(--accent) 60%, black);
  border-radius: 10px;
  background: var(--accent);
  color: var(--paper-ink);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.16s ease, transform 0.16s ease;
}
.pc-state-btn[data-v-2b6c6dda]:hover {
  background: #885334;
  background: color-mix(in oklab, var(--accent) 88%, black);
}
.pc-state-btn[data-v-2b6c6dda]:active {
  transform: translateY(1px);
}
.pc-state-btn[data-v-2b6c6dda]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-state-action[data-v-2b6c6dda] {
  margin-top: 16px;
}
/* PC 出勤工作区：仅使用 v3 语义令牌，承载在 ManagerShell 的 .v3 作用域内。 */
.attendance-pc {
  min-height: 100%;
  overflow: auto;
  padding: var(--sp-6) 28px 72px;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
}
.attendance-pc__inner { max-width: 1240px; margin: 0 auto; }
.attendance-pc__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-4); }
@supports not (gap: 1px) {
  .attendance-pc__head > * + * {
    margin-left: var(--sp-4);
  }
}
.attendance-pc h1 { margin: 0; font: 600 var(--fs-title)/1.4 var(--font-display); letter-spacing: .06em; }
.attendance-pc h2 { margin: 0; font: 600 var(--fs-section)/1.5 var(--font-display); }
.attendance-pc p { margin: 0; }
.attendance-pc__eyebrow { margin-bottom: var(--sp-1) !important; color: var(--accent); font-size: var(--fs-micro); font-weight: 700; letter-spacing: .12em; }
.attendance-pc__sub, .attendance-pc small { color: var(--muted); font-size: var(--fs-aux); line-height: 1.65; }
.attendance-pc__actions, .attendance-pc__tabs, .attendance-pc__legend, .schedule-actions, .table-actions { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
@supports not (gap: 1px) {
  .attendance-pc__actions > * + *,
.attendance-pc__tabs > * + *,
.attendance-pc__legend > * + *,
.schedule-actions > * + *,
.table-actions > * + * {
    margin-left: var(--sp-2);
  }
}
.attendance-pc button, .attendance-pc input, .attendance-pc select, .attendance-pc textarea { font: inherit; }
.attendance-pc button { min-height: 36px; padding: 0 var(--sp-3); border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.attendance-pc button:hover:not(:disabled) { border-color: var(--accent); background: var(--soft-green); }
.attendance-pc button:active:not(:disabled) { transform: translateY(1px); }
.attendance-pc button:disabled { cursor: not-allowed; opacity: .52; }
.attendance-pc :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.attendance-pc .primary { border-color: var(--accent); background: var(--accent); color: var(--paper-ink); }
.attendance-pc .primary:hover:not(:disabled) { background: var(--accent); color: var(--paper-ink); }
.attendance-pc .quiet { border-color: transparent; background: transparent; }
.attendance-pc .danger { color: var(--cinnabar); }
.attendance-pc .notice, .attendance-pc .alert { margin-bottom: var(--sp-3); padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--soft-green); font-size: var(--fs-aux); line-height: 1.7; }
.attendance-pc .alert { background: var(--soft-cinnabar); color: var(--cinnabar); }
.attendance-pc .panel { overflow: hidden; border: 1px solid var(--border); border-radius: var(--r-card); background: var(--surface); box-shadow: 0 4px 18px rgba(67, 53, 43, 0.07); box-shadow: 0 4px 18px color-mix(in oklab, var(--fg) 7%, transparent); }
.attendance-pc .toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--border); }
@supports not (gap: 1px) {
  .attendance-pc .toolbar > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-pc .seg { display: inline-flex; padding: 3px; border-radius: var(--r-ctl); background: var(--soft); }
.attendance-pc .seg button, .attendance-pc__tabs button { min-height: 32px; border: 0; background: transparent; }
.attendance-pc .seg button.on, .attendance-pc__tabs button.on { background: var(--surface); color: var(--accent); box-shadow: 0 1px 5px rgba(67, 53, 43, 0.1); box-shadow: 0 1px 5px color-mix(in oklab, var(--fg) 10%, transparent); }
.attendance-pc .empty, .attendance-pc .loading { padding: 48px 20px; text-align: center; color: var(--muted); }
.attendance-pc .table-scroll { max-width: 100%; overflow: auto; }
.attendance-pc table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--fs-aux); }
.attendance-pc th, .attendance-pc td { min-width: 70px; height: 58px; padding: 6px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); text-align: center; vertical-align: middle; }
.attendance-pc th { height: 48px; background: var(--soft); font-weight: 600; }
.attendance-pc tfoot th, .attendance-pc tfoot td { border-bottom: 0; background: var(--soft-green); }
.attendance-pc th.freeze { z-index: 4; background: var(--soft); }
.attendance-pc .freeze { position: sticky; left: 0; z-index: 3; min-width: 158px; text-align: left; background: var(--surface); box-shadow: 8px 0 12px rgba(67, 53, 43, 0.04); box-shadow: 8px 0 12px color-mix(in oklab, var(--fg) 4%, transparent); }
.attendance-pc th small { display: block; font-weight: 400; }
.attendance-pc .closed { background: #ECE8E0; background: color-mix(in oklab, var(--muted) 10%, var(--surface)); color: var(--muted-2); }
.attendance-pc .cell-button { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 48px; padding: 3px 2px; border: 0; border-radius: 0; background: transparent; color: var(--fg); font: 600 10.5px/1.2 var(--font-display); letter-spacing: .04em; }
.attendance-pc .cell-button:disabled { opacity: 1; }
.attendance-pc .cell-button--rest { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black); }
.attendance-pc .cell-button--leave { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #844726; color: color-mix(in oklab, var(--st-busy) 84%, black); }
.attendance-pc .cell-button--unscheduled, .attendance-pc .cell-button--miss { background: var(--soft-cinnabar); color: var(--cinnabar); box-shadow: inset 0 0 0 1.5px dashed var(--cinnabar); }
.attendance-pc .cell-button--shift { background: #E5E5E1; background: color-mix(in oklab, var(--st-paid) 10%, var(--surface)); color: var(--fg); }
.attendance-pc .cell-button--work { background: transparent; }
.attendance-pc .cell-button--off { background: var(--soft); color: var(--muted); }
.attendance-pc .cell-button--closed { background: transparent; color: var(--muted); }
.attendance-pc .cell-main { font-weight: 600; max-width: 38px; overflow-wrap: anywhere; }
.attendance-pc .cell-sub { opacity: .8; font-size: 9.5px; margin-top: 1px; }
.attendance-pc .attendance-pc__metric { min-width: 112px; text-align: left; }
.attendance-pc .attendance-pc__metric strong, .attendance-pc .attendance-pc__metric small { display: block; }
.attendance-pc .attendance-pc__over-quota { color: var(--cinnabar); font-weight: 700; }
.attendance-pc .calendar-foot { display: flex; justify-content: space-between; gap: var(--sp-3); margin-top: 18px; padding: 0; color: var(--muted-2); font-size: var(--fs-aux); }
@supports not (gap: 1px) {
  .attendance-pc .calendar-foot > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-pc .attendance-leave-panel { margin-top: var(--sp-5); }
.attendance-pc .attendance-pc__tabs { padding: var(--sp-2) var(--sp-4); border-bottom: 1px solid var(--border); }
.attendance-pc .cards { display: grid; gap: var(--sp-3); }
.attendance-pc .setting-card { padding: var(--sp-4); }
.attendance-pc .setting-head { display: flex; justify-content: space-between; gap: var(--sp-4); align-items: flex-start; margin-bottom: var(--sp-3); }
@supports not (gap: 1px) {
  .attendance-pc .setting-head > * + * {
    margin-left: var(--sp-4);
  }
}
.attendance-pc .setting-sub { margin-top: 4px !important; color: var(--muted); font-size: var(--fs-aux); line-height: 1.65; }
.attendance-pc .setting-divider { height: 1px; margin: var(--sp-4) 0; background: var(--border); }
.attendance-pc .option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }
.attendance-pc .option { min-height: 86px; padding: var(--sp-3); text-align: left; }
.attendance-pc .option.on { border-color: var(--accent); background: var(--soft-green); box-shadow: inset 3px 0 var(--accent); }
.attendance-pc .option strong { display: block; font-family: var(--font-display); }
.attendance-pc .option small { display: block; margin-top: 3px; }
.attendance-pc .field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
.attendance-pc .field-invalid { border-color: var(--cinnabar); box-shadow: 0 0 0 1.5px var(--soft-cinnabar); }
.attendance-pc .field-error-text { color: var(--cinnabar); }
.attendance-pc .field-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.attendance-pc .field-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.attendance-pc .field-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.attendance-pc label { display: grid; gap: 5px; color: var(--muted); font-size: var(--fs-aux); }
.attendance-pc input, .attendance-pc select, .attendance-pc textarea { box-sizing: border-box; width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); }
.attendance-pc textarea { resize: vertical; }
.attendance-pc .weekday-picker { display: grid; gap: 5px; color: var(--muted); font-size: var(--fs-aux); }
.attendance-pc .weekday-picker button { min-width: 42px; padding: 0 var(--sp-2); }
.attendance-pc .weekday-picker button.on { border-color: var(--accent); background: var(--soft-green); color: var(--accent); }
.attendance-pc .attendance-mode-fields { margin-top: var(--sp-3); }
.attendance-pc .attendance-settings__savebar { position: sticky; bottom: var(--sp-3); z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border: 1px solid var(--border); border-radius: var(--r-card); background: #F8F5ED; background: color-mix(in oklab, var(--surface) 92%, var(--bg)); box-shadow: 0 8px 22px rgba(67, 53, 43, 0.1); box-shadow: 0 8px 22px color-mix(in oklab, var(--fg) 10%, transparent); }
@supports not (gap: 1px) {
  .attendance-pc .attendance-settings__savebar > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-pc .check-row { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; padding: var(--sp-2) 0; }
@supports not (gap: 1px) {
  .attendance-pc .check-row > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-pc .check-row label { display: inline-flex; align-items: center; gap: 4px; }
@supports not (gap: 1px) {
  .attendance-pc .check-row label > * + * {
    margin-left: 4px;
  }
}
.attendance-pc .check-row input { width: auto; min-height: auto; }
.attendance-pc .leave-type-editor { padding: var(--sp-3); border: 1px solid var(--border); border-radius: var(--r-ctl); background: #F7F4EB; background: color-mix(in oklab, var(--surface) 88%, var(--soft)); }
.attendance-pc .switch-stack { display: grid; }
.attendance-pc .switch-row, .attendance-pc .list-row { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); padding: 11px 0; border-bottom: 1px solid var(--border); }
@supports not (gap: 1px) {
  .attendance-pc .switch-row > * + *,
.attendance-pc .list-row > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-pc .switch-row:last-child, .attendance-pc .list-row:last-child { border-bottom: 0; }
.attendance-pc .switch-row small { display: block; margin-top: 3px; }
.attendance-pc .switch { min-width: 64px; }
.attendance-pc .switch.on { border-color: var(--accent); background: var(--accent); color: var(--paper-ink); }
.attendance-pc .schedule-actions { justify-content: flex-end; }
.attendance-pc .sch-card { border: 1px solid var(--border); border-radius: var(--r-card); background: var(--surface); box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); }
.attendance-pc .schedule-table { width: 100%; border-collapse: collapse; min-width: 920px; }
.attendance-pc .schedule-table th { background: var(--surface); font: 500 var(--fs-micro)/1.2 var(--font-mono); letter-spacing: .04em; color: var(--muted); height: auto; padding: 10px 8px; border: 0; border-bottom: 1px solid var(--border); }
.attendance-pc .schedule-table th small { display: block; font-weight: 400; }
.attendance-pc .schedule-table td { border: 0; border-bottom: 1px solid var(--border); padding: 8px; height: auto; vertical-align: top; }
.attendance-pc .schedule-table th.freeze { z-index: 4; background: var(--surface); }
.attendance-pc .schedule-table .freeze { position: sticky; left: 0; z-index: 3; min-width: 148px; width: 148px; padding: 8px 8px 8px 14px; text-align: left; background: var(--surface); box-shadow: 1px 0 0 var(--border); }
.attendance-pc .schedule-table th.closed { background: var(--surface); color: var(--muted); }
.attendance-pc .schedule-table td.closed { background: transparent; }
.attendance-pc .schedule-cell { min-width: 146px; }
.attendance-pc .schedule-cell .schedule-choice { display: grid; gap: 3px; width: 100%; min-height: 64px; padding: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); text-align: left; }
.attendance-pc .schedule-cell .schedule-choice strong { font-weight: 600; font-size: 13px; }
.attendance-pc .schedule-cell .schedule-choice small { display: block; font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.attendance-pc .schedule-cell .schedule-choice--off { background: var(--soft); }
.attendance-pc .schedule-cell .schedule-choice--off strong { color: var(--muted); }
.attendance-pc .schedule-cell .schedule-choice--off:hover:not(:disabled) { background: var(--soft); border-color: var(--border); }
.attendance-pc .schedule-cell .status-warn { border: 1.5px dashed var(--cinnabar); background: var(--soft-cinnabar); }
.attendance-pc .schedule-cell .status-warn strong { color: var(--cinnabar); }
.attendance-pc .schedule-cell .status-warn small { color: var(--muted); }
.attendance-pc .schedule-cell .status-warn:hover:not(:disabled) { background: var(--soft-cinnabar); border-color: var(--cinnabar); }
.attendance-shift-picker { position: fixed; z-index: 70; box-sizing: border-box; width: min(456px, calc(100vw - 24px)); overflow: auto; padding: var(--sp-3); border: 1px solid var(--border); border-radius: var(--r-card); background: var(--surface); box-shadow: 0 18px 42px rgba(67, 53, 43, 0.2); box-shadow: 0 18px 42px color-mix(in oklab, var(--fg) 20%, transparent); }
.attendance-shift-picker__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-3); }
@supports not (gap: 1px) {
  .attendance-shift-picker__head > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-shift-picker h3 { margin: 0; font: 600 var(--fs-section)/1.4 var(--font-display); }
.attendance-shift-picker__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2); }
.attendance-shift-picker__choice { display: grid; min-height: 52px; padding: 8px; border: 1px solid var(--border); border-radius: var(--r-ctl); background: var(--surface); color: var(--fg); text-align: left; }
.attendance-shift-picker__choice strong, .attendance-shift-picker__choice small { display: block; }
.attendance-shift-picker__choice.on { border-color: var(--accent); background: var(--soft-green); color: var(--accent); }
.attendance-shift-picker__choice--off { background: var(--soft); }
.attendance-shift-picker__clear { width: 100%; min-height: 44px; margin-top: var(--sp-2); border-style: dashed; border-color: var(--cinnabar); background: var(--soft-cinnabar); color: var(--cinnabar); }
.attendance-pc .schedule-cell .schedule-closed { display: grid; gap: 2px; min-height: 64px; padding: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--soft); color: var(--muted); }
.attendance-pc .schedule-cell .schedule-closed strong { font-weight: 600; font-size: 13px; }
.attendance-pc .schedule-cell .schedule-closed small { font-family: var(--font-mono); font-size: 11px; color: var(--muted-2); }
.attendance-pc .drawer-backdrop { position: fixed; inset: 0; z-index: 50; display: flex; justify-content: flex-end; background: rgba(67, 53, 43, 0.22); background: color-mix(in oklab, var(--fg) 22%, transparent); }
@supports not (inset: 0) {
.attendance-pc .drawer-backdrop {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
}
.attendance-pc .drawer { width: min(520px, 100%); height: 100%; overflow: auto; padding: var(--sp-5); background: var(--surface); border-left: 1px solid var(--border); box-shadow: -12px 0 32px rgba(67, 53, 43, 0.14); box-shadow: -12px 0 32px color-mix(in oklab, var(--fg) 14%, transparent); }
.attendance-pc .drawer--shift { width: min(456px, 100%); }
.attendance-pc .drawer--detail { width: min(480px, 100%); }
.attendance-pc .drawer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-4); }
@supports not (gap: 1px) {
  .attendance-pc .drawer-head > * + * {
    margin-left: var(--sp-3);
  }
}
.attendance-pc .drawer-actions { justify-content: flex-end; margin-top: var(--sp-5); }
.attendance-pc .drawer-list { margin-top: var(--sp-4); }
.attendance-pc .status { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px; border-radius: var(--r-pill); background: var(--soft); color: var(--fg); font-size: var(--fs-micro); white-space: nowrap; }
.attendance-pc .status.warn { background: var(--soft-cinnabar); color: var(--cinnabar); }
.attendance-pc .status.ok { background: var(--soft-green); color: var(--accent); }
.attendance-pc .status--rest { background: var(--soft); color: var(--muted); }
.attendance-pc .status--leave { background: var(--soft-clay); color: var(--accent); }
.attendance-pc .status--closed { background: #E9E6DD; background: color-mix(in oklab, var(--muted) 12%, var(--surface)); color: var(--muted); }
.attendance-pc .dtag { border-radius: var(--r-ctl); background: #D7DAD7; background: color-mix(in oklab, var(--st-paid) 17%, var(--surface)); color: var(--st-paid); }
.attendance-pc .table-actions { margin-top: var(--sp-2); }
.attendance-pc .inline-form, .attendance-pc .inline-confirm { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; margin-top: var(--sp-2); }
@supports not (gap: 1px) {
  .attendance-pc .inline-form > * + *,
.attendance-pc .inline-confirm > * + * {
    margin-left: var(--sp-2);
  }
}
.attendance-pc .inline-form input { min-width: 180px; flex: 1; }
.attendance-pc .inline-confirm { padding: var(--sp-2); border-radius: var(--r-ctl); background: var(--soft-cinnabar); color: var(--cinnabar); font-size: var(--fs-aux); }
.attendance-pc .time-mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.attendance-pc .summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-3); padding: var(--sp-5); }
.attendance-pc .summary-grid--drawer { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: var(--sp-4) 0; }
.attendance-pc .summary-card { display: grid; gap: var(--sp-1); min-height: 92px; padding: var(--sp-3); border: 1px solid var(--border); border-radius: var(--r-ctl); background: #F7F4EB; background: color-mix(in oklab, var(--surface) 88%, var(--soft)); }
.attendance-pc .summary-card span { color: var(--muted); font-size: var(--fs-aux); }
.attendance-pc .summary-card strong { font: 600 var(--fs-section)/1.4 var(--font-display); }
@media (max-width: 1120px) { .attendance-pc .field-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } .attendance-pc .summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) { .attendance-pc__head { align-items: flex-start; flex-direction: column; } .attendance-pc .field-grid, .attendance-pc .field-grid--three, .attendance-pc .field-grid--two { grid-template-columns: 1fr; } .attendance-pc .option-grid { grid-template-columns: 1fr; } .attendance-pc .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .attendance-pc .calendar-foot { flex-direction: column; } }

/* ═══ B-322 班次时间选择：自绘时分控件（原为浏览器原生 time 控件；与日期范围选择器同族） ═══ */
@keyframes ts-pop { from { opacity: 0; transform: translateY(8px) scale(.985); } }
.attendance-pc .ts { position: relative; }
.attendance-pc .ts-box { display: flex; align-items: center; width: 100%; padding: 0 10px; font-family: var(--font-mono); font-variant-numeric: tabular-nums; text-align: left; }
.attendance-pc .ts-box:hover:not(:disabled) { border-color: #C4A28A; border-color: color-mix(in oklab, var(--accent) 45%, var(--border)); background: var(--surface); }
.attendance-pc .ts-box.on { border-color: var(--accent); background: var(--surface); }
.attendance-pc .ts-box.ph .ts-v { color: var(--muted-2); }
.attendance-pc .ts-chev { margin-left: auto; color: var(--muted-2); font-size: 10px; line-height: 1; }
.attendance-pc .ts-pop { position: absolute; left: 0; top: calc(100% + 8px); z-index: 90; width: 264px; padding: 14px 14px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-pop, 0 14px 36px rgba(67, 53, 43, 0.16)); box-shadow: var(--shadow-pop, 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent)); animation: ts-pop .2s cubic-bezier(.3, .9, .4, 1); }
.attendance-pc .ts-head { display: flex; align-items: baseline; gap: 8px; padding: 0 2px 8px; }
@supports not (gap: 1px) {
  .attendance-pc .ts-head > * + * {
    margin-left: 8px;
  }
}
.attendance-pc .ts-head b { font: 600 15px/1 var(--font-display); letter-spacing: 1px; }
.attendance-pc .ts-cur { margin-left: auto; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13px; color: var(--accent); }
.attendance-pc .ts-cap { margin: 8px 2px 4px; font-size: 10.5px; color: var(--muted-2); }
.attendance-pc .ts-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2px; }
.attendance-pc .ts-d { min-height: 32px; padding: 0; border-color: transparent; border-radius: 8px; background: transparent; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 12.5px; }
.attendance-pc .ts-d:hover:not(:disabled) { border-color: transparent; background: var(--soft-green); }
.attendance-pc .ts-d.sel, .attendance-pc .ts-d.sel:hover:not(:disabled) { border-color: var(--accent); background: var(--accent); color: var(--paper-ink); font-weight: 600; }

/* ═══ B-326 出勤月历样式对齐原型（ymnav / legend / rulebar / cal 表口径） ═══ */
.attendance-pc .ymnav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
@supports not (gap: 1px) {
  .attendance-pc .ymnav > * + * {
    margin-left: 6px;
  }
}
.attendance-pc .ymnav > button { min-height: 32px; padding: 0 12px; font-size: var(--fs-aux); }
.attendance-pc .ym-select { width: auto; min-width: 8.6em; min-height: 32px; height: 32px; padding: 0 10px; font: 600 13px/1.2 var(--font-display); letter-spacing: .3px; }
.attendance-pc .badge-n { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; margin-left: 4px; padding: 0 5px; border-radius: 99px; background: var(--ink-card); color: var(--paper-ink); font: 600 10px/18px var(--font-mono); text-align: center; }
.attendance-pc .cal-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 12px; font-size: var(--fs-micro); color: var(--muted); }
@supports not (gap: 1px) {
  .attendance-pc .cal-legend > * + * {
    margin-left: 8px 14px;
  }
}
.attendance-pc .cal-legend .lg-i { display: inline-flex; align-items: center; gap: 6px; }
@supports not (gap: 1px) {
  .attendance-pc .cal-legend .lg-i > * + * {
    margin-left: 6px;
  }
}
.attendance-pc .cal-legend .swatch { width: 14px; height: 14px; border-radius: 3px; border: 1px solid var(--border); flex: none; }
.attendance-pc .cal-legend .swatch.rest { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); }
.attendance-pc .cal-legend .swatch.leave { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); }
.attendance-pc .cal-legend .swatch.shop { background: var(--soft); }
.attendance-pc .cal-legend .swatch.none { background: var(--surface); border-style: dashed; border-color: var(--cinnabar); }
.attendance-pc .cal-legend .swatch.off { background: var(--soft); border-style: solid; }
.attendance-pc .cal-legend .swatch.shift { background: #E1E2DE; background: color-mix(in oklab, var(--st-paid) 12%, var(--surface)); }
.attendance-pc .rulebar { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-start; padding: 12px 16px; margin-bottom: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-ctl); box-shadow: var(--shadow-card, 0 1px 4px rgba(67, 53, 43, 0.06)); box-shadow: var(--shadow-card, 0 1px 4px color-mix(in oklab, var(--fg) 6%, transparent)); }
@supports not (gap: 1px) {
  .attendance-pc .rulebar > * + * {
    margin-left: 10px 18px;
  }
}
.attendance-pc .rulebar .rb { font-size: var(--fs-aux); color: var(--muted); line-height: 1.65; max-width: 32em; }
.attendance-pc .rulebar .rb b { color: var(--fg); font-weight: 650; font-family: var(--font-display); letter-spacing: .04em; margin-right: 6px; }
.attendance-pc .attendance-calendar-table { border-collapse: separate; border-spacing: 0; min-width: max(100%, 1380px); }
.attendance-pc .attendance-calendar-table th,
.attendance-pc .attendance-calendar-table td { min-width: 42px; width: 42px; height: 48px; padding: 2px; }
.attendance-pc .attendance-calendar-table thead th { font: 500 var(--fs-micro)/1.2 var(--font-mono); letter-spacing: .04em; color: var(--muted); padding: 8px 4px; height: auto; position: sticky; top: 0; z-index: 3; background: var(--surface); }
.attendance-pc .attendance-calendar-table .cn { position: sticky; left: 0; z-index: 4; min-width: 132px; width: 132px; padding: 8px 12px; text-align: left; background: var(--surface); box-shadow: 1px 0 0 var(--border); }
.attendance-pc .attendance-calendar-table .cr { position: sticky; left: 132px; z-index: 4; min-width: 78px; width: 78px; padding: 8px; text-align: left; font-size: var(--fs-micro); background: var(--surface); box-shadow: 1px 0 0 var(--border); }
.attendance-pc .attendance-calendar-table thead .cn,
.attendance-pc .attendance-calendar-table thead .cr { z-index: 5; }
.attendance-pc .nm { font-weight: 600; font-size: 13px; }
.attendance-pc .meta { font-size: 11px; color: var(--muted); margin-top: 1px; }
.attendance-pc .attendance-calendar-table .dayb { display: block; font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--fg); font-size: 12px; }
.attendance-pc .attendance-calendar-table .wk { display: block; margin-top: 2px; font-size: 10.5px; color: var(--muted-2); }
.attendance-pc .attendance-calendar-table td.cell { padding: 0; cursor: pointer; background: var(--surface); transition: background .12s ease; }
.attendance-pc .attendance-calendar-table td.cell:hover { background: var(--soft-green); }
.attendance-pc .attendance-calendar-table td.closed, .attendance-pc .attendance-calendar-table td.closed:hover { background: var(--soft); cursor: default; }
.attendance-pc .attendance-calendar-table .today-h { background: var(--soft-green); }
.attendance-pc .attendance-calendar-table .over { display: inline-block; background: var(--soft-cinnabar); border-radius: 6px; padding: 3px 6px; color: var(--cinnabar); font-size: var(--fs-micro); line-height: 1.45; }
.attendance-pc .attendance-calendar-table .over b { font-weight: 650; }
.attendance-pc .attendance-calendar-table .okrest { color: var(--muted); font-size: var(--fs-micro); }
.attendance-pc .attendance-calendar-table tfoot td { position: sticky; bottom: 0; background: var(--bg); font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 11px; color: var(--muted); text-align: center; padding: 7px 2px; z-index: 2; }
.attendance-pc .attendance-calendar-table tfoot .cn,
.attendance-pc .attendance-calendar-table tfoot .cr { background: var(--bg); z-index: 4; color: var(--muted); font-family: var(--font-body); }
.attendance-pc .attendance-calendar-table thead th.closed { background: var(--surface); color: var(--muted); }
.attendance-pc .sch-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
@supports not (gap: 1px) {
  .attendance-pc .sch-toolbar > * + * {
    margin-left: 8px;
  }
}
.attendance-pc .sch-toolbar .sp { flex: 1; }
.attendance-pc .sch-range { font: 600 15px/1.3 var(--font-display); letter-spacing: .4px; }
.attendance-pc .draft-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--r-pill); background: var(--soft-clay); color: #6B381D; color: color-mix(in oklab, var(--st-busy) 72%, black); font-size: var(--fs-micro); }
@supports not (gap: 1px) {
  .attendance-pc .draft-pill > * + * {
    margin-left: 6px;
  }
}
.attendance-pc .cell-button--rest:hover:not(:disabled) { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); }
.attendance-pc .cell-button--leave:hover:not(:disabled) { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); }
.attendance-pc .cell-button--shift:hover:not(:disabled) { background: #E5E5E1; background: color-mix(in oklab, var(--st-paid) 10%, var(--surface)); }
.attendance-pc .cell-button--off:hover:not(:disabled) { background: var(--soft); }
.attendance-pc .cell-button--unscheduled:hover:not(:disabled), .attendance-pc .cell-button--miss:hover:not(:disabled) { background: var(--soft-cinnabar); }
.attendance-pc .tabs-end { margin-left: auto; }
/*
 * PC 每日对账的 v3 暖色视觉契约。
 * 令牌仅来自 tokens-v3.css；派生色一律 color-mix()。
 */
.mqr {
  --mqr-r-card: 16px;
  --mqr-r-ctl: 12px;
  --mqr-r-tag: 5px;
  --mqr-shadow-card: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
  --mqr-shadow-pop: 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent);
  min-width: 1080px;
  color: var(--fg);
  font-family: var(--font-body);
}
@supports (not (color: oklch(0% 0 0))) {
.mqr {
  --mqr-shadow-card: 0 3px 14px rgba(67, 53, 43, 0.06);
  --mqr-shadow-pop: 0 14px 36px rgba(67, 53, 43, 0.16);
}
}
.mqr .wrap { max-width: 1240px; margin: 0 auto;
}
.mqr .pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px;
}
@supports not (gap: 1px) {
.mqr .pagehead > * + * {
    margin-left: 16px;
}
}
.mqr .eyebrow { margin-bottom: 7px; color: var(--muted-2); font: 500 10px/1 var(--font-mono); letter-spacing: 0.22em;
}
.mqr .pagehead h1 { display: flex; align-items: center; gap: 0; font: 600 var(--fs-title)/1.35 var(--font-display); letter-spacing: 1px;
}
@supports not (gap: 1px) {
.mqr .pagehead h1 > * + * {
    margin-left: 0;
}
}
.mqr .pagehead .sub { max-width: 64ch; margin-top: 5px; color: var(--muted); font-size: var(--fs-aux); line-height: 1.7;
}
.mqr .demo-note { display: inline-flex; align-items: center; gap: 6px; margin-left: 12px; padding: 2px 8px; border: 1px dashed var(--border); border-radius: var(--mqr-r-tag); color: var(--muted); font-size: var(--fs-micro); font-weight: 400; vertical-align: 2px;
}
@supports not (gap: 1px) {
.mqr .demo-note > * + * {
    margin-left: 6px;
}
}
.mqr .ph-tools { display: flex; flex: none; align-items: center; gap: 10px; padding-bottom: 2px;
}
@supports not (gap: 1px) {
.mqr .ph-tools > * + * {
    margin-left: 10px;
}
}
.mqr .verify-toggle { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--mqr-r-ctl); background: var(--surface); cursor: pointer;
}
@supports not (gap: 1px) {
.mqr .verify-toggle > * + * {
    margin-left: 8px;
}
}
.mqr .verify-toggle.busy { opacity: .6; cursor: default;
}
.mqr .verify-toggle .vt-text { color: var(--fg); font-size: 12px; white-space: nowrap;
}
.mqr .verify-toggle input { position: absolute; opacity: 0; pointer-events: none;
}
.mqr .verify-toggle .vt-switch { position: relative; flex: none; width: 32px; height: 18px; border-radius: 999px; background: var(--border); transition: background 0.15s ease;
}
.mqr .verify-toggle .vt-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--surface); box-shadow: 0 1px 2px rgba(0, 0, 0, .18); transition: transform 0.15s ease;
}
.mqr .verify-toggle input:checked + .vt-switch { background: var(--accent);
}
.mqr .verify-toggle input:checked + .vt-switch::after { transform: translateX(14px);
}
.mqr .verify-toggle input:focus-visible + .vt-switch { outline: 2px solid var(--accent); outline-offset: 2px;
}
.mqr .datebox { position: relative; display: inline-flex;
}
.mqr .datebox input { position: relative; height: 36px; padding: 0 10px 0 30px; border: 1px solid var(--border); border-radius: var(--mqr-r-ctl); background: var(--surface); color: var(--fg); color-scheme: light; font-family: var(--font-mono); font-size: 13px; transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mqr .datebox input:hover { border-color: #B9B0A2; border-color: color-mix(in oklab, var(--fg) 22%, var(--border));
}
.mqr .datebox input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.mqr .datebox input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; cursor: pointer; opacity: 0;
}
@supports not (inset: 0) {
.mqr .datebox input::-webkit-calendar-picker-indicator {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mqr .datebox svg { position: absolute; z-index: 1; top: 50%; left: 9px; width: 15px; height: 15px; transform: translateY(-50%); color: var(--muted-2); pointer-events: none; transition: color 0.15s ease;
}
.mqr .datebox:has(input:hover) svg, .mqr .datebox:has(input:focus) svg { color: var(--accent);
}
.mqr .strow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px;
}
@supports not (gap: 1px) {
.mqr .strow > * + * {
    margin-left: 12px;
}
}
.mqr .strow .st-note { color: var(--muted); font-size: var(--fs-aux);
}
.mqr .tag { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--r-pill); font-family: var(--font-display); font-size: var(--fs-micro); letter-spacing: 0.08em;
}
@supports not (gap: 1px) {
.mqr .tag > * + * {
    margin-left: 6px;
}
}
.mqr .tag .dot { width: 6px; height: 6px; border-radius: 50%; flex: none;
}
.mqr .tag-wait { background: var(--soft); color: var(--muted);
}
.mqr .tag-wait .dot { background: var(--muted-2);
}
.mqr .tag-fine { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqr .tag-fine .dot { background: var(--st-served);
}
.mqr .tag-submit { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #844726; color: color-mix(in oklab, var(--st-busy) 84%, black);
}
.mqr .tag-submit .dot { background: var(--st-busy);
}
.mqr .tag-audit { background: #D9DBD9; background: color-mix(in oklab, var(--st-paid) 16%, var(--surface)); color: #384759; color: color-mix(in oklab, var(--st-paid) 86%, black);
}
.mqr .tag-audit .dot { background: var(--st-paid);
}
.mqr .tag-back, .mqr .tag-diff { background: #EFDED2; background: color-mix(in oklab, var(--cinnabar) 14%, var(--surface)); color: #823922; color: color-mix(in oklab, var(--cinnabar) 82%, black);
}
.mqr .tag-back .dot, .mqr .tag-diff .dot { background: var(--cinnabar);
}
.mqr .dtag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 6px; border: 1px dashed var(--border); border-radius: var(--mqr-r-tag); background: var(--surface); color: var(--muted); font-size: var(--fs-micro);
}
@supports not (gap: 1px) {
.mqr .dtag > * + * {
    margin-left: 4px;
}
}
.mqr .card, .mqr .tcard { overflow: visible; border: 1px solid var(--border); border-radius: var(--mqr-r-card); background: var(--surface); box-shadow: var(--mqr-shadow-card);
}
.mqr .card + .card, .mqr .tcard + .tcard { margin-top: 14px;
}
.mqr .sec-head { display: flex; align-items: flex-start; gap: 12px; padding: 16px 20px 0;
}
@supports not (gap: 1px) {
.mqr .sec-head > * + * {
    margin-left: 12px;
}
}
.mqr .sec-head h2 { font: 600 var(--fs-section)/1.5 var(--font-display); letter-spacing: 1px;
}
.mqr .sec-head .s-sub { max-width: 66ch; margin-top: 3px; color: var(--muted); font-size: var(--fs-aux); line-height: 1.7;
}
.mqr .sec-head .s-act { display: flex; flex: none; align-items: center; gap: 8px; margin-left: auto; padding-top: 2px;
}
@supports not (gap: 1px) {
.mqr .sec-head .s-act > * + * {
    margin-left: 8px;
}
}
.mqr .sec-body { padding: 12px 20px 18px;
}
.mqr .sumcard { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
}
.mqr .sc-cell { min-width: 0; padding: 14px 20px;
}
.mqr .sc-cell + .sc-cell { border-left: 1px solid var(--border);
}
.mqr .sc-k { color: var(--muted); font: 500 var(--fs-micro)/1 var(--font-mono); letter-spacing: 0.06em;
}
.mqr .sc-v { margin-top: 7px; color: var(--fg); font-family: var(--font-mono); font-size: 21px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.25;
}
.mqr .sc-v small { color: var(--muted); font-size: 12px; font-weight: 400;
}
.mqr .sc-v.warn { color: var(--cinnabar);
}
.mqr .sc-sub { margin-top: 4px; color: var(--muted-2); font-size: var(--fs-micro);
}
.mqr .cashgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 40px; margin-top: 4px;
}
.mqr .cg-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-width: 0; padding: 9px 0; border-bottom: 1px dashed var(--border);
}
@supports not (gap: 1px) {
.mqr .cg-row > * + * {
    margin-left: 12px;
}
}
.mqr .cg-row .k { flex: none; color: var(--muted); font-size: 13px;
}
.mqr .cg-row .cg-note { margin-left: 6px; color: var(--muted-2); font-size: var(--fs-micro);
}
.mqr .cg-row .v { color: var(--fg); font-family: var(--font-mono); font-size: 14.5px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mqr .cg-row .v.plain { font-weight: 400;
}
.mqr .cg-row .v.warn { color: var(--cinnabar);
}
.mqr .cg-row.hero { padding-bottom: 2px; border-bottom: 0;
}
.mqr .cg-row.hero .k { color: var(--fg); font-weight: 600;
}
.mqr .cash-input { width: 150px; height: 36px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--mqr-r-ctl); background: var(--surface); color: var(--fg); font-family: var(--font-mono); font-size: 14.5px; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mqr .cash-input::placeholder { color: var(--muted-2); font-weight: 400;
}
.mqr .cash-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.mqr .cash-input.err { border-color: var(--cinnabar);
}
.mqr .cg-open-tip { grid-column: 1 / -1; padding: 8px 0 2px; color: var(--muted-2); font-size: var(--fs-micro); line-height: 1.7;
}
.mqr .cash-ops { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px;
}
@supports not (gap: 1px) {
.mqr .cash-ops > * + * {
    margin-left: 10px;
}
}
.mqr .cash-hint { color: var(--muted-2); font-size: var(--fs-aux);
}
.mqr .cash-confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-left: auto;
}
@supports not (gap: 1px) {
.mqr .cash-confirm > * + * {
    margin-left: 10px;
}
}
.mqr .cash-items { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border);
}
.mqr .ci-cap { margin-bottom: 4px; color: var(--muted); font: 500 var(--fs-micro)/1 var(--font-mono); letter-spacing: 0.06em;
}
.mqr .ci-row { display: flex; align-items: baseline; gap: 8px; padding: 6px 0; border-bottom: 1px dashed var(--border); font-size: 13px;
}
@supports not (gap: 1px) {
.mqr .ci-row > * + * {
    margin-left: 8px;
}
}
.mqr .ci-row:last-child { border-bottom: 0;
}
.mqr .ci-amt { flex: none; color: var(--fg); font-family: var(--font-mono); font-weight: 600; font-variant-numeric: tabular-nums;
}
.mqr .ci-note { color: var(--muted);
}
.mqr .ci-way { color: var(--muted-2); font-size: var(--fs-micro);
}
.mqr .ci-row .tag { gap: 5px; padding: 1px 8px; font-size: 10.5px;
}
.mqr .ci-empty { padding: 8px 0 2px; color: var(--muted); font-size: var(--fs-aux);
}
.mqr .ci-delete { margin-left: auto; padding: 2px 6px;
}
.mqr .vscroll { overflow-x: auto; padding-bottom: 2px;
}
.mqr .vscroll .mtable { min-width: 1020px;
}
/* 虚拟核销有金额、券数与双差额列，保留横向滚动而不挤压账目信息。 */
.mqr [data-testid="virtual-table"] .mtable { min-width: 1120px;
}
.mqr .mtable { width: 100%; border-collapse: collapse;
}
.mqr .mtable th { padding: 12px 14px; border-bottom: 1px solid var(--border); color: var(--muted); font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 500; letter-spacing: 0.05em; text-align: left; white-space: nowrap;
}
.mqr .mtable th.r, .mqr .mtable td.r { text-align: right;
}
.mqr .mtable td { padding: 11px 14px; border-bottom: 1px solid var(--border); font-size: var(--fs-body); vertical-align: middle;
}
.mqr .mtable tbody tr:last-child td { border-bottom: 0;
}
.mqr .mtable tbody tr { transition: background 0.12s ease;
}
.mqr .mtable tbody tr:hover { background: var(--soft-green);
}
.mqr .readonly .mtable tbody tr:hover { background: transparent;
}
/* 未关联收款渠道的历史支付行（mapping_state=unlinked）：朱砂弱底 + 渠道名点出，如实提示需人工核对。 */
.mqr .mtable tr.row-unlinked td { background: #F5EDE4; background: color-mix(in oklab, var(--cinnabar) 5%, var(--surface));
}
.mqr .mtable tr.row-unlinked:hover td { background: #F2E7DC; background: color-mix(in oklab, var(--cinnabar) 9%, var(--surface));
}
.mqr .mtable tr.row-unlinked .ch-name { color: #79351F; color: color-mix(in oklab, var(--cinnabar) 78%, black);
}
.mqr .c-ch .ch-name { color: var(--fg); font-weight: 600;
}
.mqr .c-ch .ch-hint { margin-top: 2px; color: var(--muted-2); font-size: var(--fs-micro);
}
.mqr .c-acct { color: var(--muted); font-size: 13px;
}
.mqr .c-sys, .mqr .c-act, .mqr .c-diff, .mqr .mtext { font-family: var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.mqr .c-sys, .mqr .mtext { font-weight: 600;
}
/* B-369 后续 E：渠道行内充值收款标注（小字号跟在系统金额后）。 */
.mqr .recharge-tag { display: block; margin-top: 2px; color: var(--muted-2); font-size: var(--fs-micro); font-weight: 400;
}
.mqr .d-warn { color: var(--cinnabar); font-weight: 600;
}
.mqr .d-zero { color: var(--muted);
}
.mqr .d-none { color: var(--muted-2);
}
.mqr .cellbtns { display: flex; justify-content: flex-end; gap: 8px;
}
@supports not (gap: 1px) {
.mqr .cellbtns > * + * {
    margin-left: 8px;
}
}
.mqr .minput { width: 118px; height: 34px; padding: 0 10px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--fg); font-family: var(--font-mono); font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mqr .minput.narrow { width: 74px;
}
.mqr .minput::placeholder { color: var(--muted-2); font-weight: 400;
}
.mqr .minput:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.mqr .minput.err { border-color: var(--cinnabar);
}
.mqr .row-actual { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px;
}
@supports not (gap: 1px) {
.mqr .row-actual > * + * {
    margin-left: 8px;
}
}
.mqr .row-count { color: var(--muted-2); font-family: var(--font-body); font-size: var(--fs-micro); font-weight: 400;
}
.mqr .row-reopen { padding: 2px 6px;
}
.mqr .row-error { margin-top: 5px; color: var(--cinnabar); font-size: var(--fs-micro); text-align: right;
}
.mqr .diffcard { margin-top: 14px; padding: 14px 20px; border: 1px solid rgba(170, 77, 48, 0.32); border: 1px solid color-mix(in oklab, var(--cinnabar) 32%, transparent); border-radius: var(--mqr-r-card); background: var(--soft-cinnabar);
}
.mqr .diffcard .dc-cap { color: #823922; color: color-mix(in oklab, var(--cinnabar) 82%, black); font: 600 var(--fs-section)/1.5 var(--font-display); letter-spacing: 1px;
}
.mqr .diffcard ul { margin-top: 6px; list-style: none;
}
.mqr .diffcard li { display: flex; align-items: baseline; gap: 10px; padding: 5px 0; color: #79351F; color: color-mix(in oklab, var(--cinnabar) 78%, black); font-size: 13px;
}
@supports not (gap: 1px) {
.mqr .diffcard li > * + * {
    margin-left: 10px;
}
}
.mqr .diffcard li .num { color: #8F4027; color: color-mix(in oklab, var(--cinnabar) 88%, black); font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.mqr .auditbar { margin-top: 14px; padding: 10px 14px; border-radius: var(--mqr-r-ctl); background: var(--soft); color: var(--muted); font-size: var(--fs-aux); line-height: 1.7;
}
.mqr .vrow { position: relative; display: flex; gap: 12px; padding: 0 0 18px;
}
@supports not (gap: 1px) {
.mqr .vrow > * + * {
    margin-left: 12px;
}
}
.mqr .vrow::before { position: absolute; top: 16px; bottom: -2px; left: 5px; width: 1px; background: var(--border); content: "";
}
.mqr .vrow:last-child { padding-bottom: 2px;
}
.mqr .vrow:last-child::before { display: none;
}
.mqr .v-dot { width: 11px; height: 11px; flex: none; margin-top: 5px; border: 2px solid var(--surface); border-radius: 50%; box-shadow: 0 0 0 1px var(--border);
}
.mqr .v-dot.submit { background: var(--st-busy);
}
.mqr .v-dot.confirm { background: var(--st-served);
}
.mqr .v-dot.audit { background: var(--st-paid);
}
.mqr .v-dot.back { background: var(--cinnabar);
}
.mqr .v-main { min-width: 0; flex: 1;
}
.mqr .v-t1 { font-size: 13.5px; line-height: 1.5;
}
.mqr .v-t1 b { font-weight: 650;
}
.mqr .v-act { font-family: var(--font-display); letter-spacing: 0.05em;
}
.mqr .v-note { max-width: 64ch; margin-top: 3px; padding: 6px 10px; border: 1px dashed var(--border); border-radius: var(--mqr-r-tag); background: var(--bg); color: var(--muted); font-size: var(--fs-aux); line-height: 1.65;
}
.mqr .v-meta { margin-top: 5px; color: var(--muted-2); font: 400 var(--fs-micro)/1 var(--font-mono);
}
.mqr .v-empty { padding: 6px 0 2px; color: var(--muted); font-size: var(--fs-aux);
}
.mqr .submitbar { position: sticky; bottom: -90px; z-index: 20; display: flex; align-items: center; gap: 16px; margin: 24px -28px -90px; padding: 12px 28px; border-top: 1px solid var(--border); background: var(--surface); box-shadow: 0 -3px 14px rgba(67, 53, 43, 0.05); box-shadow: 0 -3px 14px color-mix(in oklab, var(--fg) 5%, transparent);
}
@supports not (gap: 1px) {
.mqr .submitbar > * + * {
    margin-left: 16px;
}
}
.mqr .submitbar .sb-note { min-width: 0; color: var(--muted); font-size: 12.5px; line-height: 1.6;
}
.mqr .submitbar .sb-act { display: flex; flex: none; align-items: center; gap: 12px; margin-left: auto;
}
@supports not (gap: 1px) {
.mqr .submitbar .sb-act > * + * {
    margin-left: 12px;
}
}
.mqr .submitbar .sb-hint { color: var(--muted-2); font-size: var(--fs-micro);
}
.mqr .sk { position: relative; overflow: hidden; height: 12px; border-radius: 6px; background: var(--soft);
}
.mqr .sk::after { position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(248, 246, 238, 0.85), transparent); background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--surface) 85%, transparent), transparent); animation: mqr-shim 1.2s ease infinite; content: "";
}
@supports not (inset: 0) {
.mqr .sk::after {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
@keyframes mqr-shim {
to { transform: translateX(100%);
}
}
.mqr .loadcap { display: flex; align-items: center; gap: 10px; margin: 8px 2px 0; color: var(--muted); font-size: 13px;
}
@supports not (gap: 1px) {
.mqr .loadcap > * + * {
    margin-left: 10px;
}
}
.mqr .sk-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--soft-clay);
}
.mqr .recon-skeleton .strow { margin-bottom: 14px;
}
.mqr .recon-skeleton .sumcard .sc-cell { min-height: 98px;
}
.mqr .liststate { padding: 56px 24px; text-align: center;
}
.mqr .liststate .ls-mark { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 auto 12px; border-radius: 50%; background: var(--soft); color: var(--muted); font: 600 18px/1 var(--font-display);
}
.mqr .liststate.err .ls-mark { background: var(--soft-cinnabar); color: var(--cinnabar);
}
.mqr .liststate .ls-title { font: 600 17px/1.5 var(--font-display); letter-spacing: 1px;
}
.mqr .liststate .ls-sub { margin-top: 6px; color: var(--muted); font-size: 13px; line-height: 1.7;
}
.mqr .liststate .ls-ops { display: flex; justify-content: center; gap: 10px; margin-top: 18px;
}
@supports not (gap: 1px) {
.mqr .liststate .ls-ops > * + * {
    margin-left: 10px;
}
}
.mqr .mo-note { margin-bottom: 14px; padding: 10px 12px; border-radius: var(--mqr-r-ctl); background: var(--soft); color: var(--muted); font-size: var(--fs-aux); line-height: 1.7;
}
.mqr .field .ferr { display: block; color: var(--cinnabar); font-size: var(--fs-micro);
}
.mqr .field .ferr:empty { display: none;
}
.mqr .input.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; text-align: right;
}
.mqr .modal .btn.bp { flex: none;
}
.mqr .modal .d-close { margin-left: 0;
}

/* B-369 后续 F：弹层内部结构/样式对齐原型 submitSheet/eventSheet
 * （daily-reconciliation-mobile 原型 457-467 行 verbatim 移植，仅套 .mqr 作用域）。 */
.mqr .sheet-modal { display: flex; flex-direction: column; gap: 8px; width: 420px; overflow: visible; background: transparent; border: 0; box-shadow: none;
}
@supports not (gap: 1px) {
.mqr .sheet-modal > * + * {
    margin-top: 8px;
}
}
.mqr .sheet-group { overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: var(--mqr-shadow-pop);
}
.mqr .sheet-title { padding: 14px 18px 12px; border-bottom: 1px solid var(--border); text-align: center; font-size: 14px; font-weight: 600; letter-spacing: 0.03em;
}
.mqr .sheet-sub { padding: 12px 18px 0; color: var(--muted); font-size: 12.5px; line-height: 1.7;
}
.mqr .sheet-body { padding: 12px 18px 16px;
}
.mqr .sheet-btn { display: block; width: 100%; min-height: 52px; border: 0; border-radius: 16px; background: var(--surface); color: var(--fg); font-size: 16px; cursor: pointer; transition: background 0.15s ease;
}
.mqr .sheet-btn:hover { background: #F7F5EC; background: color-mix(in oklab, var(--surface) 88%, var(--bg)); color: var(--fg);
}
.mqr .sheet-btn.primary { background: var(--accent); color: var(--surface); font-weight: 600; letter-spacing: 0.04em;
}
.mqr .sheet-btn.primary:hover { background: #965E3E; background: color-mix(in oklab, var(--accent) 88%, var(--fg)); color: var(--surface);
}
.mqr .sheet-btn.cancel { font-weight: 600;
}
.mqr .sheet-btn:disabled { opacity: 0.6; cursor: not-allowed;
}
.mqr .sysmask { z-index: 120;
}
.mqr .page-body.readonly .linkbtn, .mqr .page-body.readonly .btn { cursor: default;
}
@media (prefers-reduced-motion: reduce) {
.mqr *, .mqr *::before, .mqr *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important;
}
}

/* 规格§6：账务更正待复核专属审核态（三块 + 重新确认入口）。 */
.mqr .correction-review { display: grid; gap: 10px; border: 1px solid var(--line, rgba(0, 0, 0, 0.08));
}
.mqr .correction-review .cr-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px;
}
@supports not (gap: 1px) {
.mqr .correction-review .cr-head > * + * {
    margin-left: 8px;
}
}
.mqr .correction-review .cr-title { font-weight: 700; color: var(--ink, #1c1c1e);
}
.mqr .correction-review .cr-sub { color: var(--muted);
}
.mqr .correction-review .cr-blocks { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px;
}
.mqr .correction-review .cr-block { padding: 10px 12px; border-radius: var(--mqr-r-ctl); background: var(--card, #fff); border: 1px solid var(--line, rgba(0, 0, 0, 0.08)); min-width: 0;
}
.mqr .correction-review .cr-cap { font-weight: 600; margin-bottom: 6px;
}
.mqr .correction-review .cr-rows { display: grid; gap: 4px;
}
.mqr .correction-review .cr-rows li { display: flex; justify-content: space-between; gap: 10px; min-width: 0;
}
@supports not (gap: 1px) {
.mqr .correction-review .cr-rows li > * + * {
    margin-left: 10px;
}
}
.mqr .correction-review .cr-rows .num { color: var(--muted); text-align: right; overflow-wrap: anywhere;
}
.mqr .correction-review .cr-empty { color: var(--muted);
}
.mqr .correction-review .cr-note { margin-top: 6px; color: var(--muted);
}
.mqr .correction-review .cr-act { display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.mqr .correction-review .cr-act > * + * {
    margin-left: 10px;
}
}
.mqr .correction-review .cr-note-input { flex: 1 1 240px; min-width: 0;
}
.mqr .correction-review .cr-blocked { color: var(--muted);
}
/* 2026-09-24：差异来源行的渠道变化明细（源渠道 → 新渠道 · 金额 · 订单 · 操作人）。 */
.mqr .correction-review .cr-rows li { flex-wrap: wrap;
}
.mqr .correction-review .cr-rows .corr-change { flex: 1 0 100%; color: var(--fg); font-weight: 600; overflow-wrap: anywhere;
}

.incident-list[data-v-cd1bb4bd] {
  display: flex;
  flex-direction: column;
  gap: 14px;
}@supports not (gap: 1px) {
.incident-list[data-v-cd1bb4bd] > * + * {
    margin-top: 14px;
}
}
.empty[data-v-cd1bb4bd] {
  margin: 0;
  padding: 24px 16px;
  text-align: center;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.incident-group[data-v-cd1bb4bd] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.incident-group[data-v-cd1bb4bd] > * + * {
    margin-top: 6px;
}
}
.group-title[data-v-cd1bb4bd] {
  margin: 0;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
}
.group-list[data-v-cd1bb4bd] {
  margin: 0;
  padding: 0;
  list-style: none;
  background: var(--color-paper);
}
.incident-item[data-v-cd1bb4bd] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--color-border);
}
@supports not (gap: 1px) {
.incident-item[data-v-cd1bb4bd] > * + * {
    margin-top: 6px;
}
}
.incident-item.is-focused[data-v-cd1bb4bd] { background: var(--color-surface-clay); box-shadow: inset 3px 0 0 var(--color-clay);
}
.item-head[data-v-cd1bb4bd] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.item-time[data-v-cd1bb4bd] {
  font-size: 12px;
  color: var(--color-wood-gray);
}
.item-desc[data-v-cd1bb4bd] {
  margin: 0;
  font-size: 15px;
  color: var(--color-ink);
  line-height: 1.45;
}
.item-meta[data-v-cd1bb4bd] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
}
.item-resolution[data-v-cd1bb4bd],
.item-reopen[data-v-cd1bb4bd] {
  margin: 0;
  font-size: 12px;
  color: var(--color-green);
}
.item-reopen[data-v-cd1bb4bd] {
  color: var(--color-clay);
}
.item-actions[data-v-cd1bb4bd],
.item-prompt[data-v-cd1bb4bd] {
  display: flex;
  gap: 8px;
  margin-top: 2px;
}
@supports not (gap: 1px) {
.item-actions[data-v-cd1bb4bd] > * + *,
.item-prompt[data-v-cd1bb4bd] > * + * {
    margin-left: 8px;
}
}
.mini-btn[data-v-cd1bb4bd] {
  padding: 6px 12px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-paper);
  font-size: 13px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.mini-btn.primary[data-v-cd1bb4bd] {
  border-color: var(--color-green);
  background: var(--color-green);
  color: var(--color-paper);
}
.mini-btn[data-v-cd1bb4bd]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.prompt-input[data-v-cd1bb4bd] {
  flex: 1 1 auto;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
}

.manager-incidents[data-v-b8d0c198] {
  /* B-73：min-height:100vh 在 .shell-content(overflow:hidden) 内不产生滚动
     （元素随内容长高、overflow 永不触发），异常列表超高时被裁剪滑不到底。
     对齐 B-84 惯例：height:100% + overflow-y:auto，本容器为唯一滚动区。 */
  height: 100%;
  padding: 24px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  box-sizing: border-box;
  overflow-y: auto;
}
.page-title[data-v-b8d0c198] {
  margin: 0 0 16px;
  font-size: 22px;
  color: var(--color-ink);
}
.alert[data-v-b8d0c198] {
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 12px;
}
.alert.error[data-v-b8d0c198] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.hint[data-v-b8d0c198] {
  font-size: 13px;
  color: var(--color-wood-gray);
}

.pc-btn[data-v-99997757] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: var(--r-ctl);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition:
    background-color 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}@supports not (gap: 1px) {
.pc-btn[data-v-99997757] > * + * {
    margin-left: 6px;
}
}
.pc-btn[data-v-99997757]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-btn--lg[data-v-99997757] {
  min-height: 44px;
  padding: 0 20px;
  font-size: var(--fs-section);
}
.pc-btn--block[data-v-99997757] {
  width: 100%;
  flex: 1;
}
.pc-btn--primary[data-v-99997757] {
  background: var(--accent);
  color: var(--paper-ink);
}
.pc-btn--primary[data-v-99997757]:hover:not(:disabled) {
  background: #965E3E;
  background: color-mix(in oklab, var(--accent) 88%, var(--fg));
}
.pc-btn--primary[data-v-99997757]:active:not(:disabled) {
  background: #8C593C;
  background: color-mix(in oklab, var(--accent) 78%, var(--fg));
}
.pc-btn--secondary[data-v-99997757] {
  background: var(--surface);
  color: var(--fg);
  border-color: var(--border);
}
.pc-btn--secondary[data-v-99997757]:hover:not(:disabled) {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
  color: var(--accent);
}
.pc-btn--secondary[data-v-99997757]:active:not(:disabled) {
  background: var(--soft);
}
.pc-btn--danger[data-v-99997757] {
  background: var(--cinnabar);
  color: var(--paper-ink);
}
.pc-btn--danger[data-v-99997757]:hover:not(:disabled) {
  background: #9D4B30;
  background: color-mix(in oklab, var(--cinnabar) 88%, var(--fg));
}
.pc-btn--text[data-v-99997757] {
  background: none;
  border-color: transparent;
  color: var(--accent);
  min-height: 32px;
  padding: 0 8px;
  font-weight: 500;
}
.pc-btn--text[data-v-99997757]:hover:not(:disabled) {
  background: rgba(162, 100, 64, 0.08);
  background: color-mix(in oklab, var(--accent) 8%, transparent);
}
.pc-btn[data-v-99997757]:disabled {
  background: var(--soft);
  color: var(--muted-2);
  border-color: transparent;
  cursor: not-allowed;
  font-weight: 500;
  box-shadow: none;
}
.pc-btn--loading[data-v-99997757] {
  pointer-events: none;
  color: rgba(251, 247, 236, 0.7);
  color: color-mix(in oklab, var(--paper-ink) 70%, transparent);
}
.pc-btn--loading[data-v-99997757]::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 50%;
  flex: none;
  border: 2px solid rgba(251, 247, 236, 0.35);
  border: 2px solid color-mix(in oklab, var(--paper-ink) 35%, transparent);
  border-top-color: var(--paper-ink);
  animation: pc-btn-spin-99997757 0.8s linear infinite;
}
@keyframes pc-btn-spin-99997757 {
to {
    transform: rotate(360deg);
}
}

.pc-confirm-body[data-v-168124b0] {
  font-size: var(--fs-aux);
  line-height: 1.8;
  color: var(--muted);
}
.grow[data-v-168124b0] {
  flex: 1;
}
/* ============================================================
 * 门前 OA · PC 采买工作区样式（procurement-pc 作用域）
 *
 * 契约真源：menqian-pc-procurement-prototype.html（值逐字平移）；
 * 通用家族（按钮/表头/页签/卡片等）来自 members/pcCommon.css（.mqm）。
 * 色值纪律：颜色只引 var(--*)（tokens-v3.css 唯一色源），零新增 hex；
 * 派生只走 color-mix；圆角/间距等非色值按原型本地定义。
 * ============================================================ */
.procurement-pc {
  min-height: 100%;
  box-sizing: border-box;
}
.pcr-wrap {
  max-width: 1240px;
  margin: 0 auto;
}

/* ── 页头 ── */
.pcr .pagehead .ph-row { display: flex; align-items: baseline; gap: 12px;
}
@supports not (gap: 1px) {
.pcr .pagehead .ph-row > * + * {
    margin-left: 12px;
}
}
.pcr .ph-ops { display: flex; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.pcr .ph-ops > * + * {
    margin-left: 10px;
}
}
.pcr .pcr-count {
  font-size: var(--fs-aux);
  color: var(--muted);
  letter-spacing: 0.02em;
}

/* ── 页签计数徽标 ── */
.pcr .ptabs { gap: 26px;
}
.pcr .pcr-tab-cnt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 18px;
  margin-left: 6px;
  padding: 0 6px;
  border-radius: var(--r-pill);
  background: var(--soft);
  color: var(--muted);
  font-size: var(--fs-micro);
  font-weight: 600;
}
.pcr .ptab.on .pcr-tab-cnt {
  background: #EDE1D5;
  background: color-mix(in oklab, var(--accent) 14%, var(--surface));
  color: var(--accent);
}

/* ── 状态标签（六态，文字+形状+颜色三通道；形状画在 6px i 上） ── */
.pcr .ptag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-display);
  font-size: var(--fs-micro);
  letter-spacing: 0.08em;
  border-radius: var(--r-pill);
  padding: 3px 9px;
  line-height: 1.4;
  white-space: nowrap;
}
@supports not (gap: 1px) {
.pcr .ptag > * + * {
    margin-left: 5px;
}
}
.pcr .ptag i { width: 6px; height: 6px; flex: none; display: block;
}
.pcr .pl-tobuy { background: var(--soft-clay); color: #885334; color: color-mix(in oklab, var(--accent) 88%, black);
}
.pcr .pl-tobuy i { border-radius: 50%; border: 1.5px solid currentColor;
}
.pcr .pl-ordered { background: var(--soft); color: var(--fg);
}
.pcr .pl-ordered i {
  border-radius: 50%;
  border: 1.5px solid currentColor;
  background: linear-gradient(to right, currentColor 50%, transparent 50%);
}
.pcr .pl-urgent { background: var(--soft-cinnabar); color: #8A3D25; color: color-mix(in oklab, var(--cinnabar) 86%, black);
}
.pcr .pl-urgent i { border-radius: 1.5px; background: currentColor; transform: rotate(45deg);
}
.pcr .pl-overdue { background: var(--cinnabar); color: var(--paper-ink);
}
.pcr .pl-overdue i { border-radius: 1.5px; border: 1.5px solid currentColor; transform: rotate(45deg);
}
.pcr .pl-done { background: var(--soft-green); color: #885334; color: color-mix(in oklab, var(--accent) 88%, black);
}
.pcr .pl-done i { border-radius: 50%; background: currentColor;
}
.pcr .pl-cancel { background: var(--soft); color: var(--muted-2);
}
.pcr .pl-cancel i { border-radius: 50%; border: 1.5px solid currentColor;
}

/* ── 宽表单元格 ── */
.pcr .mtable { table-layout: fixed;
}
.pcr .mtable tbody tr { cursor: default;
}
.pcr .pcr-c-st { display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
}
@supports not (gap: 1px) {
.pcr .pcr-c-st > * + * {
    margin-top: 4px;
}
}
.pcr .pcr-c-item { min-width: 0;
}
.pcr .pcr-c-item .nm { display: flex; align-items: center; gap: 8px; min-width: 0;
}
@supports not (gap: 1px) {
.pcr .pcr-c-item .nm > * + * {
    margin-left: 8px;
}
}
.pcr .pcr-c-item .nm-t {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.pcr tr.is-cancel .nm-t {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  color: var(--muted);
}
.pcr .pcr-tag-ing {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: none;
  background: var(--soft-green);
  color: #885334;
  color: color-mix(in oklab, var(--accent) 88%, black);
  border-radius: var(--r-tag, 5px);
  padding: 2px 7px;
  font-size: var(--fs-micro);
  font-weight: 600;
}
@supports not (gap: 1px) {
.pcr .pcr-tag-ing > * + * {
    margin-left: 4px;
}
}
.pcr .pcr-c-qty {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pcr .pcr-c-qty .q-sub,
.pcr .pcr-c-qty + .q-sub {
  display: block;
  font-family: var(--font-body);
  font-size: var(--fs-micro);
  color: #4A5332;
  color: color-mix(in oklab, var(--st-served) 76%, black);
  margin-top: 1px;
}
.pcr .pcr-c-date { white-space: nowrap; font-size: 13px;
}
.pcr .pcr-c-date.od { color: var(--cinnabar); font-weight: 600;
}
.pcr .pcr-c-by { white-space: nowrap;
}
.pcr .pcr-c-by .by-t {
  display: block;
  font-size: var(--fs-micro);
  color: var(--muted-2);
  font-family: var(--font-mono);
  margin-top: 1px;
}
.pcr .pcr-opwrap { display: flex; align-items: center; justify-content: flex-end; gap: 8px;
}
@supports not (gap: 1px) {
.pcr .pcr-opwrap > * + * {
    margin-left: 8px;
}
}

/* ── 固定三槽（B-335）：键位固定，状态变化只在原位显隐；槽宽按各槽历史最长标签预留 ──
   槽1=下单、槽2=已买到 · 完成、槽3=不买；忙碌态「处理中…」亦在槽宽内。
   不可用槽渲染 .pcr-slot-hide 占位：visibility:hidden 保留布局尺寸，
   不响应点击、不进入 Tab 序、aria-hidden。 */
.pcr .pcr-slot {
  flex: none;
  box-sizing: border-box;
  white-space: nowrap;
  justify-content: center;
}
.pcr .pcr-slot.s1 { width: 88px;
}
.pcr .pcr-slot.s2 { width: 124px;
}
.pcr .pcr-slot.s3 { width: 48px;
}
.pcr .pcr-slot-hide { visibility: hidden; pointer-events: none;
}

/* ── 分组行（服务端顺序的视觉辅助，不重排） ── */
.pcr .pcr-grp td { border-bottom: 0; padding: 12px 16px 4px;
}
.pcr .pcr-grp + tr td { border-top: 0;
}
.pcr .pcr-grp-t {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--muted);
}
.pcr .pcr-grp-s { font-size: 11px; color: var(--muted-2); margin-left: 10px; letter-spacing: 0.02em;
}

/* ── 备注副行（截断 + 点击展开） ── */
.pcr .pcr-nt {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-aux);
  border-radius: 8px;
}
.pcr .pcr-nt::after { content: "⋯"; margin-left: 4px; color: var(--muted-2); flex: none;
}
.pcr .pcr-nt.open {
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  align-items: flex-start;
  padding-top: 12px;
}
.pcr .pcr-nt.open::after { content: "";
}
.pcr .pcr-nt:hover { color: var(--fg);
}

/* ── 行内动作钮（accent 预算：强调式主钮，不与页头实心抢） ── */
.pcr .pcr-act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  border-radius: var(--r-ctl);
  font-size: 13.5px;
  font-weight: 600;
  border: 1px solid transparent;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.pcr .pcr-act:active { transform: translateY(1px);
}
.pcr .pcr-act.p {
  background: var(--soft-green);
  border-color: rgba(162, 100, 64, 0.45);
  border-color: color-mix(in oklab, var(--accent) 45%, transparent);
  color: var(--accent);
}
.pcr .pcr-act.p:hover {
  background: #EDE1D5;
  background: color-mix(in oklab, var(--accent) 14%, var(--surface));
  border-color: rgba(162, 100, 64, 0.62);
  border-color: color-mix(in oklab, var(--accent) 62%, transparent);
}
.pcr .pcr-act.s { background: var(--surface); border-color: var(--border); color: var(--fg);
}
.pcr .pcr-act.s:hover {
  background: var(--soft-green);
  border-color: #B4AA9D;
  border-color: color-mix(in oklab, var(--fg) 25%, var(--border));
}
.pcr .pcr-act:disabled { cursor: not-allowed; transform: none; opacity: 0.55;
}

/* ── 文字钮（不买 / 恢复 / 删除） ── */
.pcr .pcr-oplink {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 8px;
  border-radius: 8px;
  font-size: var(--fs-aux);
  color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.pcr .pcr-oplink:hover { background: var(--soft-green); color: var(--fg);
}
.pcr .pcr-oplink.danger { color: #823922; color: color-mix(in oklab, var(--cinnabar) 82%, black);
}
.pcr .pcr-oplink.danger:hover { background: var(--soft-cinnabar); color: var(--cinnabar);
}

/* ── 日期步进条 ── */
.pcr .pcr-hbar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.pcr .pcr-hbar > * + * {
    margin-left: 10px;
}
}
.pcr .pcr-hstep { display: flex; align-items: center; gap: 6px;
}
@supports not (gap: 1px) {
.pcr .pcr-hstep > * + * {
    margin-left: 6px;
}
}
.pcr .pcr-hsb {
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  font-size: 18px;
  color: var(--fg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.pcr .pcr-hsb:hover:not(:disabled) {
  background: var(--soft-green);
  border-color: #B4AA9D;
  border-color: color-mix(in oklab, var(--fg) 25%, var(--border));
}
.pcr .pcr-hsb:disabled { opacity: 0.4; cursor: not-allowed;
}
.pcr .pcr-hsd {
  font: 600 15px / 1 var(--font-display);
  letter-spacing: 0.5px;
  min-width: 176px;
  text-align: center;
}
.pcr .pcr-hsd .hsd-sub {
  display: block;
  font: 400 11px / 1.6 var(--font-body);
  color: var(--muted-2);
  letter-spacing: 0.02em;
}
.pcr .pcr-sp { flex: 1;
}
.pcr .pcr-hcount { font-size: var(--fs-aux); color: var(--muted);
}
.pcr .pcr-back-today {
  position: relative;
  min-height: 32px;
  padding: 0 12px;
  border-radius: var(--r-ctl);
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-size: var(--fs-aux);
  font-weight: 600;
  transition: background 0.15s ease, color 0.15s ease;
}
.pcr .pcr-back-today::after {
  content: "";
  position: absolute;
  inset: -6px;
}
@supports not (inset: 0) {
.pcr .pcr-back-today::after {
    top: -6px;
    right: -6px;
    bottom: -6px;
    left: -6px;
}
}
.pcr .pcr-back-today:hover { background: var(--soft-green); color: var(--fg);
}

/* ── 日历浮层（触发钮 + 自绘月历，族内 .hcal 口径） ── */
.pcr .pcr-dp { position: relative; display: inline-flex;
}
.pcr .pcr-dp-btn {
  height: 44px;
  padding: 0 14px;
  gap: 8px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  font-family: var(--font-mono);
  font-size: var(--fs-aux);
  color: var(--fg);
  font-variant-numeric: tabular-nums;
  transition: background 0.15s ease, border-color 0.15s ease;
}
@supports not (gap: 1px) {
.pcr .pcr-dp-btn > * + * {
    margin-left: 8px;
}
}
.pcr .pcr-dp-btn:hover:not(:disabled) {
  background: var(--soft-green);
  border-color: #B4AA9D;
  border-color: color-mix(in oklab, var(--fg) 25%, var(--border));
}
.pcr .pcr-dp-btn:disabled { opacity: 0.45; cursor: not-allowed;
}
.pcr .pcr-dp-caret { color: var(--muted); font-size: 10px;
}
.pcr .pcr-dp-pop {
  position: fixed;
  width: 264px;
  z-index: 83;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow-pop, 0 14px 36px rgba(67, 53, 43, 0.16));
  box-shadow: var(--shadow-pop, 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent));
  padding: 10px 12px 8px;
}
.pcr .pcr-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px;
}
.pcr .pcr-cal-head b { font-size: 13px; letter-spacing: 0.5px;
}
.pcr .pcr-cal-nav {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}
.pcr .pcr-cal-nav::after {
  content: "";
  position: absolute;
  inset: -6px;
}
@supports not (inset: 0) {
.pcr .pcr-cal-nav::after {
    top: -6px;
    right: -6px;
    bottom: -6px;
    left: -6px;
}
}
.pcr .pcr-cal-nav:hover:not(:disabled) { background: var(--soft-green);
}
.pcr .pcr-cal-nav:disabled { opacity: 0.35; cursor: default;
}
.pcr .pcr-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  text-align: center;
}
.pcr .pcr-cal-w { font-size: 10.5px; color: var(--muted); padding: 3px 0;
}
.pcr .pcr-cal-d {
  min-height: 32px;
  border: none;
  border-radius: 9px;
  background: transparent;
  color: var(--fg);
  font: inherit;
  font-size: 12.5px;
  cursor: pointer;
  font-variant-numeric: tabular-nums;
  padding: 0;
}
.pcr .pcr-cal-d:hover:not(:disabled) { background: var(--soft);
}
.pcr .pcr-cal-d.today { box-shadow: inset 0 0 0 1px var(--accent);
}
.pcr .pcr-cal-d.sel { background: var(--accent); color: var(--paper-ink);
}
.pcr .pcr-cal-d.mute { color: var(--muted);
}
.pcr .pcr-cal-d.off,
.pcr .pcr-cal-d:disabled { color: var(--muted); opacity: 0.38; cursor: default;
}

/* ── 骨架 shimmer ── */
.pcr .pcr-skl-row td { padding: 16px;
}
.pcr .pcr-sk {
  position: relative;
  overflow: hidden;
  background: var(--soft);
  border-radius: 6px;
  height: 12px;
  display: block;
}
.pcr .pcr-sk::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(248, 246, 238, 0.85),
    transparent
  );
  background: linear-gradient(
    90deg,
    transparent,
    color-mix(in oklab, var(--surface) 85%, transparent),
    transparent
  );
  animation: pcr-shim 1.2s ease infinite;
}
@supports not (inset: 0) {
.pcr .pcr-sk::after {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
@keyframes pcr-shim {
to {
    transform: translateX(100%);
}
}

/* ── 状态面板容器 ── */
.pcr .pcr-card-flat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  box-shadow: var(--shadow-card, 0 3px 14px rgba(67, 53, 43, 0.06));
  box-shadow: var(--shadow-card, 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent));
}
.pcr .pcr-card-flat .pc-state-panel { margin-top: 0; border: 0; box-shadow: none; background: transparent;
}

/* ── 表单（抽屉 / 入库弹层共用，原型 .field 族） ── */
.pcr .pcr-form { display: block;
}
.pcr .pcr-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px;
}
@supports not (gap: 1px) {
.pcr .pcr-field > * + * {
    margin-top: 6px;
}
}
.pcr .pcr-field-label {
  font-size: var(--fs-aux);
  color: var(--muted);
  display: flex;
  align-items: baseline;
  gap: 6px;
}
@supports not (gap: 1px) {
.pcr .pcr-field-label > * + * {
    margin-left: 6px;
}
}
.pcr .pcr-field-label .req { color: var(--cinnabar); font-style: normal;
}
.pcr .pcr-field-label .opt { color: var(--muted-2); font-size: var(--fs-micro); font-style: normal;
}
.pcr .pcr-field-hint { font-size: var(--fs-micro); color: var(--muted-2); line-height: 1.6; margin: 0;
}
.pcr .pcr-input,
.pcr .pcr-select,
.pcr .pcr-textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  font-size: var(--fs-body);
  color: var(--fg);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  box-sizing: border-box;
}
.pcr .pcr-textarea { min-height: 74px; resize: vertical; line-height: 1.55;
}
.pcr .pcr-input::placeholder,
.pcr .pcr-textarea::placeholder { color: var(--muted-2);
}
.pcr .pcr-input:focus,
.pcr .pcr-select:focus,
.pcr .pcr-textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.pcr .pcr-select:disabled { color: var(--muted-2); background: var(--soft); cursor: not-allowed;
}
.pcr .pcr-readonly {
  margin: 0;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--soft);
  color: var(--muted);
  font-size: var(--fs-body);
}
.pcr .pcr-row2 { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.pcr .pcr-row2 > * + * {
    margin-left: 10px;
}
}
.pcr .pcr-row2 .pcr-field { flex: 1;
}
.pcr .pcr-inline-row { display: flex; align-items: center; gap: 8px;
}
@supports not (gap: 1px) {
.pcr .pcr-inline-row > * + * {
    margin-left: 8px;
}
}
.pcr .pcr-form-error {
  margin: 0 0 4px;
  border-radius: var(--r-ctl);
  padding: 10px 12px;
  font-size: var(--fs-aux);
  line-height: 1.6;
  background: var(--soft-cinnabar);
  color: #79351F;
  color: color-mix(in oklab, var(--cinnabar) 78%, black);
}

/* chips：视觉 32px，点击热区扩至 44px（03 §10 与原型 32px 视觉的折中） */
.pcr .pcr-chips { display: flex; flex-wrap: wrap; gap: 6px;
}
@supports not (gap: 1px) {
.pcr .pcr-chips > * + * {
    margin-left: 6px;
}
}
.pcr .pcr-chip {
  position: relative;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: var(--r-pill);
  padding: 6px 12px;
  min-height: 32px;
  font-size: var(--fs-aux);
  color: var(--muted);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.pcr .pcr-chip::after {
  content: "";
  position: absolute;
  inset: -6px;
}
@supports not (inset: 0) {
.pcr .pcr-chip::after {
    top: -6px;
    right: -6px;
    bottom: -6px;
    left: -6px;
}
}
.pcr .pcr-chip:hover { color: var(--fg); background: var(--soft-green);
}
.pcr .pcr-chip.on {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--soft-green);
  font-weight: 600;
}
.pcr .pcr-chip.ghost { background: transparent;
}

/* 关联物品：双下拉（B-336，左一级目录 + 右物品），选中提示 + 清除 */
.pcr .pcr-linkhint {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin: 10px 0 0;
  padding: 10px 12px;
  background: var(--soft-green);
  border-radius: var(--r-ctl);
  font-size: var(--fs-aux);
  color: #845033;
  color: color-mix(in oklab, var(--accent) 86%, black);
  line-height: 1.6;
}
@supports not (gap: 1px) {
.pcr .pcr-linkhint > * + * {
    margin-left: 8px;
}
}
.pcr .pcr-linkclear {
  margin-left: auto;
  flex: none;
  font-size: var(--fs-aux);
  color: var(--muted);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pcr .pcr-linkclear:hover { color: var(--fg);
}

/* 更多选项折叠 */
.pcr .pcr-more-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 4px;
  color: var(--muted);
  font-size: var(--fs-aux);
  border-top: 1px dashed var(--border);
  margin-top: 4px;
}
@supports not (gap: 1px) {
.pcr .pcr-more-toggle > * + * {
    margin-left: 8px;
}
}
.pcr .pcr-more-toggle:hover { color: var(--fg);
}
.pcr .pcr-more-toggle .pcr-more-arr { margin-left: auto; color: var(--muted-2); font-size: var(--fs-micro);
}
.pcr .pcr-more-body { padding-top: 12px;
}

/* 加急勾选行（兄弟元素承载视觉：input 隐藏，.pcr-ckbox 画框与勾） */
.pcr .pcr-check {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  cursor: pointer;
  font-size: var(--fs-body);
}
@supports not (gap: 1px) {
.pcr .pcr-check > * + * {
    margin-left: 10px;
}
}
.pcr .pcr-check input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.pcr .pcr-ckbox {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  border: 1.5px solid var(--border);
  background: var(--surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  transition: all 0.15s ease;
}
.pcr .pcr-check input:checked + .pcr-ckbox {
  background: var(--accent);
  border-color: var(--accent);
}
.pcr .pcr-check input:checked + .pcr-ckbox::after {
  content: "✓";
  color: var(--paper-ink);
  font-size: 12px;
  line-height: 1;
}
.pcr .pcr-check input:focus-visible + .pcr-ckbox {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pcr .pcr-check-text { min-width: 0;
}
.pcr .pcr-check-hint { font-size: var(--fs-micro); color: var(--muted-2); font-style: normal; line-height: 1.6;
}

/* 有效期三选一互斥组（radio 隐藏，.pcr-rdot 画点） */
.pcr fieldset.pcr-field { border: 0; padding: 0; margin: 0 0 16px;
}
.pcr fieldset.pcr-field legend.pcr-field-label { margin-bottom: 6px;
}
.pcr .pcr-ig { display: flex; flex-direction: column;
}
.pcr .pcr-ig-row { display: flex; align-items: center; gap: 10px; min-height: 44px;
}
@supports not (gap: 1px) {
.pcr .pcr-ig-row > * + * {
    margin-left: 10px;
}
}
.pcr .pcr-ig-row input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.pcr .pcr-rdot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  background: var(--surface);
  flex: none;
  position: relative;
}
.pcr .pcr-ig-row input:checked + .pcr-rdot { border-color: var(--accent);
}
.pcr .pcr-ig-row input:checked + .pcr-rdot::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--accent);
}
@supports not (inset: 0) {
.pcr .pcr-ig-row input:checked + .pcr-rdot::after {
    top: 3px;
    right: 3px;
    bottom: 3px;
    left: 3px;
}
}
.pcr .pcr-ig-row input:focus-visible + .pcr-rdot {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pcr .pcr-ig-row .pcr-ig-label {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: none;
  font-size: var(--fs-aux);
  color: var(--fg);
  cursor: pointer;
}
@supports not (gap: 1px) {
.pcr .pcr-ig-row .pcr-ig-label > * + * {
    margin-left: 8px;
}
}
.pcr .pcr-ig-row .pcr-ig-input { width: 130px;
}
.pcr .pcr-ig-input { display: inline-flex;
}
.pcr .pcr-ig-suffix { font-size: var(--fs-aux); color: var(--muted);
}
.pcr .pcr-ig-note { font-size: var(--fs-micro); color: var(--muted-2);
}

/* 确认模态警示条 */
.pcr .pcr-notice {
  display: block;
  margin-top: 10px;
  border-radius: var(--r-ctl);
  padding: 10px 12px;
  font-size: var(--fs-aux);
  line-height: 1.6;
  background: var(--soft-cinnabar);
  color: #79351F;
  color: color-mix(in oklab, var(--cinnabar) 78%, black);
}

/* 竞态模态正文 */
.pcr .pcr-race-p { margin: 0 0 8px; font-size: 13.5px; line-height: 1.75; color: var(--fg);
}
.pcr .pcr-race-p b { font-weight: 650;
}

/* 减动效（组件层已有 prefers-reduced-motion；此处全量压制页面级动画与过渡） */
@media (prefers-reduced-motion: reduce) {
.pcr .pcr-sk::after { animation: none;
}
.pcr *,
  .pcr *::before,
  .pcr *::after {
    transition: none !important;
    animation: none !important;
}
}
/**
 * PC 日用与器物工作台样式。类名与原型对齐。令牌来自 tokens-v3.css。
 * B-344：原型依赖的全局基线（按钮 UA 重置/工具类/阴影令牌/焦点环）在工程侧无全局对应，
 * 统一收在本页作用域顶部，避免 button 灰底（UA buttonface）等半成品观感泄漏。
 */
.pc-inv { --r-tag: 5px; min-width: 0; --shadow-card: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent); --shadow-pop: 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent); }
@supports (not (color: oklch(0% 0 0))) {
.pc-inv {
  --shadow-card: 0 3px 14px rgba(67, 53, 43, 0.06);
  --shadow-pop: 0 14px 36px rgba(67, 53, 43, 0.16);
} }
/* 原型 `button{background:none;border:0}` 基线：组件类（.btn/.act/.chip/.fact/.sw…）
 * 均为更高特异性的双类选择器，本重置不会覆盖其背景/边框声明。 */
.pc-inv button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.pc-inv input, .pc-inv select, .pc-inv textarea { font: inherit; color: inherit; }
.pc-inv :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
.pc-inv .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.pc-inv .muted { color: var(--muted); }
.pc-inv .pagehead {display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
@supports not (gap: 1px) {
  .pc-inv .pagehead > * + * {
    margin-left: 16px;
  }
}
.pc-inv .pagehead .ph-l {min-width:0}
.pc-inv .pagehead .ph-row {display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .pc-inv .pagehead .ph-row > * + * {
    margin-left: 12px;
  }
}
.pc-inv .pagehead h1 {font:600 var(--fs-title)/1.35 var(--font-display);letter-spacing:1px}
.pc-inv .demo-note {
  display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-micro);color:var(--muted);
  border:1px dashed var(--border);border-radius:var(--r-tag);padding:2px 8px;vertical-align:2px;
}
@supports not (gap: 1px) {
  .pc-inv .demo-note > * + * {
    margin-left: 6px;
  }
}
.pc-inv .pagehead .sub {color:var(--muted);font-size:var(--fs-aux);margin-top:3px}
.pc-inv .pagehead .ph-ops {display:flex;gap:10px;flex:none;align-items:center}
@supports not (gap: 1px) {
  .pc-inv .pagehead .ph-ops > * + * {
    margin-left: 10px;
  }
}
.pc-inv .btn {
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:36px;padding:0 14px;border-radius:var(--r-ctl);
  border:1px solid transparent;font-size:var(--fs-body);font-weight:600;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
@supports not (gap: 1px) {
  .pc-inv .btn > * + * {
    margin-left: 6px;
  }
}
.pc-inv .btn:active {transform:translateY(1px)}
.pc-inv .btn.lg {min-height:44px;padding:0 20px}
.pc-inv .btn.sm {min-height:32px;padding:0 12px;font-size:var(--fs-aux)}
.pc-inv .btn.bp {background:var(--accent);color:var(--paper-ink);border-bottom:1px solid #77482D;border-bottom:1px solid color-mix(in oklab,var(--accent) 80%,black)}
.pc-inv .btn.bp:hover {background:#945733;background:oklch(0.52 0.095 50)}
.pc-inv .btn.bp:disabled {background:#D5B7A3;background:color-mix(in oklab,var(--accent) 42%,var(--surface));border-bottom-color:transparent;color:rgba(251, 247, 236, 0.72);color:color-mix(in oklab,var(--paper-ink) 72%,transparent);cursor:not-allowed;transform:none}
.pc-inv .btn.bs {background:var(--surface);border-color:var(--border);color:var(--fg)}
.pc-inv .btn.bs:hover {background:var(--soft-green);border-color:#B4AA9D;border-color:color-mix(in oklab,var(--fg) 25%,var(--border))}
.pc-inv .btn.gh {background:transparent;color:var(--muted)}
.pc-inv .btn.gh:hover {background:var(--soft-green);color:var(--fg)}
.pc-inv .btn.bd {background:var(--cinnabar);color:var(--paper-ink);border-bottom:1px solid #7D3721;border-bottom:1px solid color-mix(in oklab,var(--cinnabar) 80%,black)}
.pc-inv .btn.bd:hover {background:#8F4027;background:color-mix(in oklab,var(--cinnabar) 88%,black)}
.pc-inv .btn:disabled {cursor:not-allowed;transform:none}
.pc-inv .btn.bs:disabled, .pc-inv .btn.gh:disabled {color:var(--muted-2)}
.pc-inv .btn svg {width:14px;height:14px;flex:none}
.pc-inv .ptabs {display:flex;gap:26px;border-bottom:1px solid var(--border);margin-bottom:16px}
@supports not (gap: 1px) {
  .pc-inv .ptabs > * + * {
    margin-left: 26px;
  }
}
.pc-inv .ptab {
  position:relative;height:44px;padding:0 2px;font:600 var(--fs-section)/1 var(--font-display);
  letter-spacing:1px;color:var(--muted);transition:color .15s ease;display:inline-flex;align-items:center;gap:8px;
}
@supports not (gap: 1px) {
  .pc-inv .ptab > * + * {
    margin-left: 8px;
  }
}
.pc-inv .ptab:hover {color:var(--fg)}
.pc-inv .ptab.on {color:var(--fg)}
.pc-inv .ptab.on::after {content:"";position:absolute;left:0;right:0;bottom:-1px;height:2.5px;border-radius:2px;background:var(--accent)}
.pc-inv .ptab .cnt {
  font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--muted);
  background:var(--soft);border-radius:var(--r-pill);padding:1px 8px;font-variant-numeric:tabular-nums;
}
.pc-inv .ptab.on .cnt {background:var(--soft-clay);color:var(--accent)}
.pc-inv .tcard {background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);overflow:hidden}
.pc-inv .mtable {width:100%;border-collapse:collapse}
.pc-inv .mtable th {
  text-align:left;font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:500;
  letter-spacing:.05em;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--border);
  white-space:nowrap;
}
.pc-inv .mtable th.r, .pc-inv .mtable td.r {text-align:right}
.pc-inv .mtable td {padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:var(--fs-body)}
.pc-inv .mtable tbody tr:last-child td {border-bottom:0}
.pc-inv .mtable tbody tr.row:hover {background:var(--soft-green)}
.pc-inv .mtable tbody tr.row {cursor:pointer}
.pc-inv .table-scroll {overflow-x:auto}
.pc-inv .stats {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;
}
.pc-inv .stat {
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
  padding:14px 18px;box-shadow:var(--shadow-card);text-align:left;
}
.pc-inv .stat .k {font-size:var(--fs-aux);color:var(--muted)}
.pc-inv .stat .v {font:600 28px/1.2 var(--font-mono);font-variant-numeric:tabular-nums;margin-top:4px;letter-spacing:-.02em}
.pc-inv .stat .v small {font-size:13px;font-weight:500;color:var(--muted);margin-left:4px}
.pc-inv .stat.warn .v {color:var(--cinnabar)}
.pc-inv .stat.ok .v {color:#505A36;color:color-mix(in oklab,var(--st-served) 80%,black)}
.pc-inv .facts {display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
@supports not (gap: 1px) {
  .pc-inv .facts > * + * {
    margin-left: 8px;
  }
}
.pc-inv .fact {
  min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:12px;
  background:var(--surface);display:inline-flex;align-items:center;gap:8px;
  transition:background .15s ease,border-color .15s ease;
}
@supports not (gap: 1px) {
  .pc-inv .fact > * + * {
    margin-left: 8px;
  }
}
.pc-inv .fact:hover {background:var(--soft-green)}
.pc-inv .fact .n {font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}
.pc-inv .fact.on {background:var(--soft-green);border-color:rgba(162, 100, 64, 0.45);border-color:color-mix(in oklab,var(--accent) 45%,transparent);color:var(--accent);font-weight:600}
.pc-inv .fact.warn {background:var(--soft-cinnabar);border-color:rgba(170, 77, 48, 0.28);border-color:color-mix(in oklab,var(--cinnabar) 28%,transparent)}
.pc-inv .fact.warn.on {color:var(--cinnabar)}
.pc-inv .hbar {display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .pc-inv .hbar > * + * {
    margin-left: 10px;
  }
}
.pc-inv .hbar .sp {flex:1}
.pc-inv .search {
  height:40px;min-width:220px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);
  /* B-350 同类：height:40 会被全局 44px 触控基线顶高，显式归零对齐 .input 的 40px */
  min-height:0;
}
.pc-inv .search:focus {outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.16);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}
.pc-inv .select {
  height:40px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);min-width:140px;
  /* B-350 同类：height:40 会被全局 44px 触控基线顶高，显式归零对齐 .input 的 40px */
  min-height:0;
}
.pc-inv .select:focus {outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.16);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}
.pc-inv .ptag {
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--font-display);font-size:var(--fs-micro);letter-spacing:.08em;
  border-radius:var(--r-pill);padding:3px 9px;line-height:1.4;white-space:nowrap;
}
@supports not (gap: 1px) {
  .pc-inv .ptag > * + * {
    margin-left: 5px;
  }
}
.pc-inv .ptag i {width:6px;height:6px;flex:none;display:block}
.pc-inv .tg-ok {background:var(--soft);color:var(--muted)}
.pc-inv .tg-ok i {border-radius:50%;background:currentColor}
.pc-inv .tg-near {background:var(--soft-clay);color:#885334;color:color-mix(in oklab,var(--accent) 88%,black)}
.pc-inv .tg-near i {border-radius:50%;border:1.5px solid currentColor}
.pc-inv .tg-exp {background:var(--soft-cinnabar);color:#8A3D25;color:color-mix(in oklab,var(--cinnabar) 86%,black)}
.pc-inv .tg-exp i {border-radius:1.5px;background:currentColor;transform:rotate(45deg)}
.pc-inv .tg-out {background:var(--cinnabar);color:var(--paper-ink)}
.pc-inv .tg-out i {border-radius:50%;background:var(--paper-ink)}
.pc-inv .tg-due {background:var(--soft-clay);color:#885334;color:color-mix(in oklab,var(--accent) 88%,black)}
.pc-inv .tg-due i {border-radius:50%;border:1.5px solid currentColor}
.pc-inv .tg-buy {background:var(--soft-green);color:#885334;color:color-mix(in oklab,var(--accent) 88%,black);border-radius:var(--r-tag);letter-spacing:.04em;font-family:var(--font-body)}
.pc-inv .tg-buy i {border-radius:1.5px;background:currentColor}
.pc-inv .tg-gain {background:var(--soft-green);color:#505A36;color:color-mix(in oklab,var(--st-served) 80%,black)}
.pc-inv .tg-gain i {border-radius:50%;background:currentColor}
.pc-inv .tg-loss {background:var(--soft-cinnabar);color:#8A3D25;color:color-mix(in oklab,var(--cinnabar) 86%,black)}
.pc-inv .tg-loss i {border-radius:1.5px;background:currentColor}
.pc-inv .tg-cal {background:var(--soft);color:var(--fg)}
.pc-inv .tg-cal i {border-radius:50%;border:1.5px solid currentColor;background:linear-gradient(to right,currentColor 50%,transparent 50%)}
.pc-inv .tg-undo {background:var(--soft);color:var(--muted-2)}
.pc-inv .tg-undo i {border-radius:50%;border:1.5px solid currentColor}
.pc-inv .tg-long {background:var(--soft);color:var(--muted)}
.pc-inv .tg-long i {border-radius:50%;border:1.5px solid currentColor}
.pc-inv .dtag {
  display:inline-flex;align-items:center;border-radius:var(--r-tag);padding:2px 7px;
  font-size:var(--fs-micro);background:var(--soft);color:var(--muted);
}
.pc-inv .workbench {display:grid;grid-template-columns:228px minmax(0,1fr);gap:16px;align-items:start}
.pc-inv .side {
  position:sticky;top:8px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-card);box-shadow:var(--shadow-card);overflow:hidden;
}
.pc-inv .side .sh {
  padding:14px 16px 8px;font:10px/1 var(--font-mono);letter-spacing:.14em;color:var(--muted-2);
}
.pc-inv .sitem {
  width:100%;display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;
  text-align:left;transition:background .15s ease;color:var(--fg);
}
@supports not (gap: 1px) {
  .pc-inv .sitem > * + * {
    margin-left: 8px;
  }
}
.pc-inv .sitem:hover {background:var(--soft-green)}
.pc-inv .sitem.on {background:var(--soft-green);color:var(--accent);font-weight:600;box-shadow:inset 2.5px 0 0 var(--accent)}
.pc-inv .sitem .sn {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-inv .sitem .sc {font-family:var(--font-mono);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.pc-inv .sitem.on .sc {color:var(--accent)}
.pc-inv .sitem.warn .sc {color:var(--cinnabar)}
.pc-inv .sitem.sep {margin-top:6px;border-top:1px dashed var(--border)}
.pc-inv .pane {min-width:0}
.pc-inv .pane-h {display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 10px}
@supports not (gap: 1px) {
  .pc-inv .pane-h > * + * {
    margin-left: 12px;
  }
}
.pc-inv .pane-h h2 {font:600 16px/1.4 var(--font-display);letter-spacing:.5px}
.pc-inv .pane-h .ps {font-size:var(--fs-aux);color:var(--muted)}
.pc-inv .crow {
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center;
  padding:10px 16px;border-bottom:1px solid var(--border);
}
.pc-inv .crow:last-child {border-bottom:0}
/* B-347：状态签移入左列与名称同行（flex-wrap，长名自然折行），右列只留操作钮并随 align-items:center 垂直居中，行高 98px→约64px */
.pc-inv .crow-main {min-width:0}
.pc-inv .crow-nameline {display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .pc-inv .crow-nameline > * + * {
    margin-left: 6px;
  }
}
.pc-inv .crow-name {font-weight:600;min-width:0}
.pc-inv .crow-meta {font-size:var(--fs-aux);color:var(--muted);margin-top:2px}
.pc-inv .crow-right {display:flex;align-items:center;justify-content:flex-end}
.pc-inv .crow-tags {display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
@supports not (gap: 1px) {
  .pc-inv .crow-tags > * + * {
    margin-left: 6px;
  }
}
.pc-inv .crow-ops {display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@supports not (gap: 1px) {
  .pc-inv .crow-ops > * + * {
    margin-left: 8px;
  }
}
.pc-inv .act {
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;padding:0 14px;border-radius:var(--r-ctl);
  font-size:13.5px;font-weight:600;border:1px solid transparent;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.pc-inv .act:active {transform:translateY(1px)}
.pc-inv .act.p {background:var(--soft-green);border-color:rgba(162, 100, 64, 0.45);border-color:color-mix(in oklab,var(--accent) 45%,transparent);color:var(--accent)}
.pc-inv .act.p:hover {background:#EDE1D5;background:color-mix(in oklab,var(--accent) 14%,var(--surface));border-color:rgba(162, 100, 64, 0.62);border-color:color-mix(in oklab,var(--accent) 62%,transparent)}
.pc-inv .act.s {background:var(--surface);border-color:var(--border);color:var(--fg)}
.pc-inv .act.s:hover {background:var(--soft-green);border-color:#B4AA9D;border-color:color-mix(in oklab,var(--fg) 25%,var(--border))}
.pc-inv .act.d {background:var(--surface);border-color:#CCA08B;border-color:color-mix(in oklab,var(--cinnabar) 40%,var(--border));color:var(--cinnabar)}
.pc-inv .act.d:hover {background:var(--soft-cinnabar)}
.pc-inv .act:disabled {cursor:not-allowed;transform:none;opacity:.55}
.pc-inv .oplink {
  display:inline-flex;align-items:center;min-height:44px;padding:0 8px;border-radius:8px;
  font-size:var(--fs-aux);color:var(--muted);transition:background .15s ease,color .15s ease;
}
.pc-inv .oplink:hover {background:var(--soft-green);color:var(--fg)}
.pc-inv .oplink.danger {color:#823922;color:color-mix(in oklab,var(--cinnabar) 82%,black)}
.pc-inv .oplink.danger:hover {background:var(--soft-cinnabar);color:var(--cinnabar)}
.pc-inv .count-foot {
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-card);box-shadow:var(--shadow-card);
}
@supports not (gap: 1px) {
  .pc-inv .count-foot > * + * {
    margin-left: 12px;
  }
}
.pc-inv .done-hero {
  text-align:center;padding:56px 24px 40px;position:relative;
}
.pc-inv .done-hero .cat {
  width:72px;height:72px;margin:0 auto 12px;opacity:.16;color:var(--fg);pointer-events:none;
}
.pc-inv .done-hero h3 {font:600 22px/1.4 var(--font-display);letter-spacing:1px}
.pc-inv .done-hero p {color:var(--muted);font-size:13px;margin-top:8px;line-height:1.7}
.pc-inv .liststate {padding:64px 24px;text-align:center}
.pc-inv .liststate .ls-mark {
  width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:var(--soft);color:var(--muted);
  display:flex;align-items:center;justify-content:center;
}
.pc-inv .liststate.err .ls-mark {background:var(--soft-cinnabar);color:var(--cinnabar)}
.pc-inv .liststate .ls-title {font:600 17px/1.5 var(--font-display);letter-spacing:1px}
.pc-inv .liststate .ls-sub {color:var(--muted);font-size:13px;margin-top:6px;line-height:1.7}
.pc-inv .liststate .ls-ops {display:flex;justify-content:center;gap:10px;margin-top:20px}
@supports not (gap: 1px) {
  .pc-inv .liststate .ls-ops > * + * {
    margin-left: 10px;
  }
}
.pc-inv .sk {position:relative;overflow:hidden;background:var(--soft);border-radius:6px;height:12px}
.pc-inv .sk::after {
  content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(248, 246, 238, 0.85),transparent);
  background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--surface) 85%,transparent),transparent);
  animation:shim 1.2s ease infinite;
}
@supports not (inset: 0) {
.pc-inv .sk::after { top: 0; right: 0; bottom: 0; left: 0;
} }
.pc-inv .skl-row td {padding:16px}
.pc-inv .qty {font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.pc-inv .qty .q-sub {display:block;font-family:var(--font-body);font-size:var(--fs-micro);color:var(--muted);margin-top:1px}
.pc-inv .c-date {white-space:nowrap;font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums}
.pc-inv .c-date.od {color:var(--cinnabar);font-weight:600}
.pc-inv .nm-t {font-weight:600}
.pc-inv .tags {display:flex;gap:6px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .pc-inv .tags > * + * {
    margin-left: 6px;
  }
}
.pc-inv .revoked td {opacity:.55}
.pc-inv .revoked .nm-t {text-decoration:line-through;text-decoration-thickness:1px}
/* R10：盘亏超库存部分扣减——行红标高亮 + 类型列「部分扣减」红标（老板审核一眼可见） */
.pc-inv tr.partial td {background:var(--soft-cinnabar)}
.pc-inv tr.partial td:first-child {box-shadow:inset 3px 0 0 var(--cinnabar)}
.pc-inv .pdtag {background:var(--cinnabar);color:var(--paper-ink)}
.pc-inv .scrim {
  position:fixed;inset:0;background:rgba(67, 53, 43, 0.3);background:color-mix(in oklab,var(--fg) 30%,transparent);
  opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:85;
}
@supports not (inset: 0) {
.pc-inv .scrim { top: 0; right: 0; bottom: 0; left: 0;
} }
.pc-inv .scrim.show {opacity:1;pointer-events:auto}
.pc-inv .drawer {
  position:fixed;top:0;right:0;bottom:0;width:580px;max-width:calc(100vw - 180px);
  background:var(--surface);border-left:1px solid var(--border);z-index:86;
  transform:translateX(103%);transition:transform .22s cubic-bezier(.3,.9,.4,1);
  display:flex;flex-direction:column;
}
.pc-inv .drawer.show {transform:translateX(0)}
.pc-inv .d-head {padding:20px 24px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:14px}
@supports not (gap: 1px) {
  .pc-inv .d-head > * + * {
    margin-left: 14px;
  }
}
.pc-inv .d-head .d-name {font:600 var(--fs-title)/1.35 var(--font-display);letter-spacing:.5px}
.pc-inv .d-head .d-sub {font-size:var(--fs-aux);color:var(--muted);margin-top:4px}
.pc-inv .d-close {
  margin-left:auto;color:var(--muted);width:34px;height:34px;border-radius:9px;flex:none;font-size:18px;
  display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;
  /* B-350 同类：压过全局 44px 触控基线，保持 34×34 正圆角方形 */
  min-height:0;
}
.pc-inv .d-close:hover {background:var(--soft-green);color:var(--fg)}
.pc-inv .d-body {flex:1;overflow-y:auto;padding:18px 24px 24px}
.pc-inv .d-foot {display:flex;justify-content:flex-end;gap:10px;padding:14px 24px 18px;border-top:1px solid var(--border);flex-wrap:wrap}
@supports not (gap: 1px) {
  .pc-inv .d-foot > * + * {
    margin-left: 10px;
  }
}
.pc-inv .sec {margin-bottom:18px}
.pc-inv .sec h3 {font:600 13px/1.4 var(--font-display);letter-spacing:.12em;color:var(--muted);margin-bottom:8px}
.pc-inv .batch {
  border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px;background:var(--bg);
}
.pc-inv .batch .b-top {display:flex;justify-content:space-between;gap:10px;align-items:baseline}
@supports not (gap: 1px) {
  .pc-inv .batch .b-top > * + * {
    margin-left: 10px;
  }
}
.pc-inv .batch .b-qty {font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}
.pc-inv .batch .b-meta {font-size:var(--fs-aux);color:var(--muted);margin-top:4px}
.pc-inv .batch.used {opacity:.6}
.pc-inv .eq {font-size:var(--fs-aux);color:var(--muted);line-height:1.7;background:var(--bg);border-radius:10px;padding:10px 12px}
.pc-inv .field {display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
@supports not (gap: 1px) {
  .pc-inv .field > * + * {
    margin-top: 6px;
  }
}
.pc-inv .field label {font-size:var(--fs-aux);color:var(--muted);display:flex;align-items:baseline;gap:6px}
@supports not (gap: 1px) {
  .pc-inv .field label > * + * {
    margin-left: 6px;
  }
}
.pc-inv .field label .req {color:var(--cinnabar)}
.pc-inv .field label .opt {color:var(--muted-2);font-size:var(--fs-micro)}
.pc-inv .input, .pc-inv .textarea {
  width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);font-size:var(--fs-body);min-height:40px;
}
.pc-inv .textarea {min-height:74px;resize:vertical;line-height:1.55}
.pc-inv .input:focus, .pc-inv .textarea:focus, .pc-inv .select:focus {outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.16);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}
.pc-inv .input.err {border-color:var(--cinnabar)}
.pc-inv .input[readonly], .pc-inv .input:disabled, .pc-inv .select:disabled {background:var(--soft);color:var(--muted)}
.pc-inv .field .hint {font-size:var(--fs-micro);color:var(--muted-2);line-height:1.6}
.pc-inv .field .ferr {font-size:var(--fs-micro);color:var(--cinnabar);display:none}
.pc-inv .field.has-err .ferr {display:block}
.pc-inv .frow {display:flex;gap:10px}
@supports not (gap: 1px) {
  .pc-inv .frow > * + * {
    margin-left: 10px;
  }
}
.pc-inv .frow .field {flex:1;min-width:0}
.pc-inv .notice {border-radius:var(--r-ctl);padding:10px 12px;font-size:var(--fs-aux);line-height:1.6;margin-bottom:14px}
.pc-inv .notice.danger {background:var(--soft-cinnabar);color:#79351F;color:color-mix(in oklab,var(--cinnabar) 78%,black)}
.pc-inv .notice.info {background:var(--soft);color:var(--muted)}
.pc-inv .notice.ok {background:var(--soft-green);color:#845033;color:color-mix(in oklab,var(--accent) 86%,black)}
.pc-inv .notice.warn {background:var(--soft-clay);color:#77482D;color:color-mix(in oklab,var(--accent) 80%,black)}
.pc-inv .mask {
  position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;
  background:rgba(67, 53, 43, 0.32);
  background:color-mix(in oklab,var(--fg) 32%,transparent);
}
@supports not (inset: 0) {
.pc-inv .mask { top: 0; right: 0; bottom: 0; left: 0;
} }
.pc-inv .mask.show {display:flex;animation:fadein .18s ease}
.pc-inv .modal {
  width:460px;max-width:calc(100vw - 64px);max-height:calc(100vh - 80px);overflow-y:auto;
  background:var(--surface);border-radius:var(--r-layer);border:1px solid var(--border);
  box-shadow:var(--shadow-pop);animation:pop .2s cubic-bezier(.3,.9,.4,1);
}
.pc-inv .modal.wide {width:560px}
.pc-inv .modal.mid {width:520px}
.pc-inv .mo-head {display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px 0;gap:12px}
@supports not (gap: 1px) {
  .pc-inv .mo-head > * + * {
    margin-left: 12px;
  }
}
.pc-inv .mo-head h2 {font:600 var(--fs-title)/1.4 var(--font-display);letter-spacing:1px}
.pc-inv .mo-sub {font-size:var(--fs-aux);color:var(--muted);margin-top:4px}
.pc-inv .mo-body {padding:16px 22px 6px}
.pc-inv .mo-body p {font-size:13.5px;line-height:1.75}
.pc-inv .mo-foot {display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 18px}
@supports not (gap: 1px) {
  .pc-inv .mo-foot > * + * {
    margin-left: 10px;
  }
}
.pc-inv .seg {display:flex;background:var(--soft);border-radius:10px;padding:3px;gap:2px}
@supports not (gap: 1px) {
  .pc-inv .seg > * + * {
    margin-left: 2px;
  }
}
.pc-inv .seg button {
  flex:1;min-height:36px;border-radius:8px;font-size:var(--fs-aux);color:var(--muted);font-weight:600;
}
.pc-inv .seg button.on {background:var(--surface);color:var(--fg);box-shadow:var(--shadow-card)}
.pc-inv .mdcal {
  padding:10px 12px 8px;background:var(--bg);
  border:1px solid var(--border);border-radius:14px;
}
.pc-inv .mdcal-wk, .pc-inv .mdcal-grid {display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.pc-inv .mdcal-wk span {
  font-family:var(--font-display);font-size:10.5px;letter-spacing:.08em;
  color:var(--muted);padding:3px 0;
}
.pc-inv .mdcal-d {
  min-height:36px;border:none;border-radius:9px;background:transparent;color:var(--fg);
  font:inherit;font-size:12.5px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  padding:0;transition:background .15s ease,color .15s ease;
}
.pc-inv button.mdcal-d:hover {background:var(--soft-green);color:var(--fg)}
.pc-inv button.mdcal-d.on {background:var(--accent);color:var(--paper-ink)}
.pc-inv button.mdcal-d.on:hover {background:#945733;background:oklch(0.52 0.095 50);color:var(--paper-ink)}
.pc-inv .mdcal-d.off {pointer-events:none}
.pc-inv .mdcal-sum {margin-top:8px;font-size:var(--fs-aux);color:var(--fg);font-weight:600}
.pc-inv .mdcal-nav {display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
@supports not (gap: 1px) {
  .pc-inv .mdcal-nav > * + * {
    margin-left: 8px;
  }
}
.pc-inv .mdcal-ttl {font:600 14px/1.3 var(--font-display);letter-spacing:.06em}
.pc-inv .mdcal-shift {
  width:36px;height:36px;border-radius:9px;color:var(--fg);font-size:18px;line-height:1;
  transition:background .15s ease,color .15s ease;
}
.pc-inv .mdcal-shift:hover {background:var(--soft-green);color:var(--fg)}
.pc-inv .mdcal-d.today:not(.on) {box-shadow:inset 0 0 0 1.5px rgba(162, 100, 64, 0.55);box-shadow:inset 0 0 0 1.5px color-mix(in oklab,var(--accent) 55%,transparent)}
.pc-inv .df {display:flex;align-items:center;gap:8px;min-width:0}
@supports not (gap: 1px) {
  .pc-inv .df > * + * {
    margin-left: 8px;
  }
}
.pc-inv .df-btn {
  flex:1;min-width:0;height:40px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;
  border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--fg);text-align:left;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
@supports not (gap: 1px) {
  .pc-inv .df-btn > * + * {
    margin-left: 8px;
  }
}
.pc-inv .df-btn:hover {background:var(--soft-green);border-color:#B9B0A2;border-color:color-mix(in oklab,var(--fg) 22%,var(--border));color:var(--fg)}
.pc-inv .df-btn.ph {color:var(--muted);font-family:var(--font-body);font-variant-numeric:normal}
.pc-inv .df-btn.ph:hover {color:var(--fg)}
.pc-inv .df-btn:disabled, .pc-inv .df-btn.dis {
  background:var(--soft);color:var(--muted-2);pointer-events:none;
}
.pc-inv .df-btn svg {width:16px;height:16px;flex:none;color:var(--muted)}
.pc-inv .df-btn:hover svg {color:var(--fg)}
.pc-inv .df-btn:disabled svg, .pc-inv .df-btn.dis svg {color:var(--muted-2)}
.pc-inv .df-back {position:fixed;inset:0;z-index:118}
@supports not (inset: 0) {
.pc-inv .df-back { top: 0; right: 0; bottom: 0; left: 0} }
.pc-inv .df-pop {
  position:fixed;z-index:119;width:280px;box-sizing:border-box;
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  box-shadow:var(--shadow-pop);padding:10px 12px 8px;
}
.pc-inv .exp-row .df {width:168px;flex:none}
.pc-inv .exp-row.off .df-btn {opacity:.45;background:var(--bg)}
.pc-inv .step {display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:var(--r-ctl);overflow:hidden;background:var(--surface)}
@supports not (gap: 1px) {
  .pc-inv .step > * + * {
    margin-left: 0;
  }
}
.pc-inv .step button {width:44px;height:40px;color:var(--fg)}
.pc-inv .step button:hover {background:var(--soft-green)}
.pc-inv .step input {width:72px;height:40px;border:0;text-align:center;font-family:var(--font-mono);font-variant-numeric:tabular-nums;background:transparent}
.pc-inv .phy-row {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px dashed var(--border)}
@supports not (gap: 1px) {
  .pc-inv .phy-row > * + * {
    margin-left: 12px;
  }
}
.pc-inv .phy-row:last-child {border-bottom:0}
.pc-inv .phy-row.zeroed {opacity:.55}
.pc-inv .phy-tot {display:flex;justify-content:space-between;align-items:baseline;padding:12px 0 4px;font-weight:600}
.pc-inv .phy-tot .n {font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.pc-inv .phy-eq {font-size:var(--fs-aux);color:var(--muted);font-weight:500;margin-top:4px}
.pc-inv .phy-eq.err {color:var(--cinnabar)}
.pc-inv .phy-ctrl {display:flex;align-items:center;gap:8px;flex:none}
@supports not (gap: 1px) {
  .pc-inv .phy-ctrl > * + * {
    margin-left: 8px;
  }
}
.pc-inv .unit-chips {display:flex;flex-wrap:wrap;gap:6px}
@supports not (gap: 1px) {
  .pc-inv .unit-chips > * + * {
    margin-left: 6px;
  }
}
.pc-inv .unit-chips .chip {min-height:44px;padding:0 14px}
.pc-inv .buy-line {display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .pc-inv .buy-line > * + * {
    margin-left: 10px;
  }
}
.pc-inv .buy-line .input {width:128px;flex:none}
.pc-inv .urgent-row {display:flex;align-items:center;gap:12px;min-height:44px}
@supports not (gap: 1px) {
  .pc-inv .urgent-row > * + * {
    margin-left: 12px;
  }
}
.pc-inv .urgent-row .ug-lb {font-size:var(--fs-aux);color:var(--muted)}
.pc-inv .arrive {margin-bottom:16px}
.pc-inv .arow {
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center;
  padding:10px 16px;border-bottom:1px solid var(--border);
}
.pc-inv .arow:last-child {border-bottom:0}
.pc-inv .arow-name {font-weight:600}
.pc-inv .arow-meta {font-size:var(--fs-aux);color:var(--muted);margin-top:2px}
.pc-inv .tg-urg {background:var(--soft-cinnabar);color:#8A3D25;color:color-mix(in oklab,var(--cinnabar) 86%,black)}
.pc-inv .tg-urg i {border-radius:50%;background:currentColor}
.pc-inv .pick-list {max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:12px}
.pc-inv .pick-row {
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:44px;padding:8px 12px;border-bottom:1px solid var(--border);text-align:left;
}
@supports not (gap: 1px) {
  .pc-inv .pick-row > * + * {
    margin-left: 10px;
  }
}
.pc-inv .pick-row:last-child {border-bottom:0}
.pc-inv .pick-row:hover {background:var(--soft-green)}
.pc-inv .pick-row.on {background:var(--soft-green)}
.pc-inv .admin-grid {display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}
.pc-inv .tree-item {width:100%;display:flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border-radius:8px;text-align:left}
@supports not (gap: 1px) {
  .pc-inv .tree-item > * + * {
    margin-left: 6px;
  }
}
.pc-inv .tree-item:hover {background:var(--soft-green)}
.pc-inv .tree-item.on {background:var(--soft-green);color:var(--accent);font-weight:600}
.pc-inv .tree-item.child {padding-left:22px;font-size:13px}
.pc-inv .tree-ops {margin-left:auto;display:flex;gap:2px;opacity:0}
@supports not (gap: 1px) {
  .pc-inv .tree-ops > * + * {
    margin-left: 2px;
  }
}
.pc-inv .tree-item:hover .tree-ops, .pc-inv .tree-item:focus-within .tree-ops {opacity:1}
.pc-inv .tree-kid {min-height:44px;padding-top:0;padding-bottom:0}
.pc-inv .tree-kid .tree-ops {opacity:1;align-items:center;gap:4px;flex:none}
.pc-inv .tree-kid.is-off:not(.on) {color:var(--muted)}
.pc-inv .tree-name {
  flex:1;min-width:0;
  display:inline-flex;align-items:center;gap:6px;
  min-height:44px;padding:0;
  text-align:left;font:inherit;color:inherit;background:transparent;
}
@supports not (gap: 1px) {
  .pc-inv .tree-name > * + * {
    margin-left: 6px;
  }
}
.pc-inv .tree-name .dtag {flex:none}
.pc-inv .tree-ico {
  flex:none;width:44px;height:44px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--muted);
  transition:background .15s ease,color .15s ease;
}
.pc-inv .tree-ico svg {width:16px;height:16px;display:block}
.pc-inv .tree-ico:hover {background:var(--surface);color:var(--fg)}
.pc-inv .tree-item.on .tree-ico {color:var(--accent)}
.pc-inv .tree-item.on .tree-ico:hover {background:var(--surface);color:var(--fg)}
.pc-inv .sw {
  flex:none;width:44px;height:26px;border-radius:var(--r-pill);background:var(--soft);
  border:1px solid var(--border);position:relative;transition:background .15s ease,border-color .15s ease;
  /* B-350：全局 :where(button){min-height:var(--touch-min)}（44px 触控基线，style.css）
   * 会压过 height——min-height 与 height 并存取大值，44×26 胶囊被顶成 44×44 正圆。
   * 显式归零恢复胶囊（与 staffRolesPc.css .sw 同法）；点击热区由 ::before 扩到 44px。 */
  min-height:0;
}
/* B-350 点击热区 ≥44px：视觉盒不变，26px 轨道上下各扩 9px 透明热区。 */
.pc-inv .sw::before { content:"";position:absolute;inset:-9px 0; }
@supports not (inset: 0) {
.pc-inv .sw::before { top: -9px; right: 0; bottom: -9px; left: 0; } }
.pc-inv .sw::after {
  content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:var(--surface);box-shadow:0 1px 3px rgba(67, 53, 43, 0.18);box-shadow:0 1px 3px color-mix(in oklab,var(--fg) 18%,transparent);
  transition:transform .16s ease;
}
.pc-inv .sw[aria-checked="true"] {background:var(--accent);border-color:var(--accent)}
.pc-inv .sw[aria-checked="true"]::after {transform:translateX(18px)}
.pc-inv .pack-block {margin-bottom:10px}
.pc-inv .pack-row {display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:0}
@supports not (gap: 1px) {
  .pc-inv .pack-row > * + * {
    margin-left: 8px;
  }
}
.pc-inv .pack-row .input, .pc-inv .pack-row .select {min-height:40px}
.pc-inv .pack-row .oplink {flex:none;white-space:nowrap;min-height:40px}
.pc-inv .pack-one {
  flex:none;width:16px;text-align:center;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--muted);font-size:13px;
}
.pc-inv .pack-row [data-pu] {flex:1;min-width:88px}
.pc-inv .pack-row [data-pr] {width:84px;flex:none}
.pc-inv .pack-row [data-pv] {width:96px;min-width:0;flex:none;padding:0 8px}
.pc-inv .pack-fold {
  margin:4px 0 0 24px;font-size:12px;line-height:1.5;
  color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.pc-inv .pack-fold.err {color:var(--cinnabar)}
.pc-inv .pack-fold:empty {display:none}
.pc-inv .sysmask {position:fixed;inset:0;z-index:120;background:var(--bg);display:none;align-items:center;justify-content:center}
@supports not (inset: 0) {
.pc-inv .sysmask { top: 0; right: 0; bottom: 0; left: 0} }
.pc-inv .sysmask.show {display:flex}
.pc-inv .sys-card {text-align:center;max-width:400px}
.pc-inv .sys-card .sys-code {font-family:var(--font-mono);font-size:var(--fs-aux);letter-spacing:.12em;color:var(--muted-2);margin-bottom:14px}
.pc-inv .sys-card h2 {font:600 22px/1.4 var(--font-display);letter-spacing:1px}
.pc-inv .sys-card p {color:var(--muted);font-size:13px;margin:10px 0 22px;line-height:1.8}
.pc-inv .toasts {position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:130;display:flex;flex-direction:column;gap:8px;align-items:center}
@supports not (gap: 1px) {
  .pc-inv .toasts > * + * {
    margin-top: 8px;
  }
}
.pc-inv .toast {
  position: fixed; top: 18px; left: 50%; transform: translateX(-50%); z-index: 130;
  display:flex;align-items:center;gap:9px;background:var(--ink-card);color:var(--paper-ink);
  font-size:13px;padding:9px 18px;border-radius:var(--r-pill);
  box-shadow:var(--shadow-pop);animation:toast-in .2s ease;max-width:70vw;
}
@supports not (gap: 1px) {
  .pc-inv .toast > * + * {
    margin-left: 9px;
  }
}
.pc-inv .toast.out {opacity:0;transition:opacity .25s ease}
.pc-inv .toast .t-dot {width:7px;height:7px;border-radius:50%;flex:none}
.pc-inv .toast.ok .t-dot {background:var(--st-served)}
.pc-inv .toast.err .t-dot {background:#CE907D;background:color-mix(in oklab,var(--cinnabar) 62%,white)}
.pc-inv .toast .t-act {margin-left:8px;color:var(--paper-ink);text-decoration:underline;text-underline-offset:3px;font-weight:600}
.pc-inv .demo-entry {
  position:fixed;right:18px;bottom:16px;z-index:30;
  border:1px dashed var(--border);background:rgba(248, 246, 238, 0.94);background:color-mix(in oklab,var(--surface) 94%,transparent);
  border-radius:var(--r-pill);padding:7px 14px;font-size:var(--fs-aux);color:var(--muted);
  box-shadow:var(--shadow-card);transition:color .15s ease,border-color .15s ease;
}
.pc-inv .demo-entry:hover {color:var(--fg);border-color:var(--muted-2)}
.pc-inv .protofoot {margin-top:18px;font-size:var(--fs-aux);color:var(--muted-2);line-height:1.7}
.pc-inv .chips {display:flex;flex-wrap:wrap;gap:6px}
@supports not (gap: 1px) {
  .pc-inv .chips > * + * {
    margin-left: 6px;
  }
}
.pc-inv .chip {
  border:1px solid var(--border);background:var(--surface);border-radius:var(--r-pill);
  padding:6px 12px;min-height:32px;font-size:var(--fs-aux);color:var(--muted);
}
.pc-inv .chip.on {border-color:var(--accent);color:var(--accent);background:var(--soft-green);font-weight:600}
.pc-inv .ckrow {display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
@supports not (gap: 1px) {
  .pc-inv .ckrow > * + * {
    margin-left: 10px;
  }
}
.pc-inv .ckrow input {position:absolute;opacity:0;width:1px;height:1px}
.pc-inv .ckbox {
  width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface);
  display:inline-flex;align-items:center;justify-content:center;flex:none;
}
.pc-inv .ckrow input:checked + .ckbox {background:var(--accent);border-color:var(--accent)}
.pc-inv .ckrow input:checked + .ckbox::after {content:"✓";color:var(--paper-ink);font-size:12px;line-height:1}
.pc-inv .exp-row {display:flex;align-items:center;gap:10px;min-height:44px}
@supports not (gap: 1px) {
  .pc-inv .exp-row > * + * {
    margin-left: 10px;
  }
}
.pc-inv .exp-row .rd {
  display:flex;align-items:center;gap:8px;flex:none;width:92px;
  position:relative;font-size:var(--fs-aux);font-weight:400;line-height:16px;
  color:var(--muted);cursor:pointer;
}
@supports not (gap: 1px) {
  .pc-inv .exp-row .rd > * + * {
    margin-left: 8px;
  }
}
.pc-inv .exp-row .rd input {
  position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;
  appearance:none;border:0;pointer-events:none;
}
@supports not (inset: 0) {
.pc-inv .exp-row .rd input { top: 0; right: 0; bottom: 0; left: 0;
} }
.pc-inv .rdot {width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface);flex:none;position:relative}
.pc-inv .exp-row .rd input:checked + .rdot {border-color:var(--accent)}
.pc-inv .exp-row .rd input:checked + .rdot::after {content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
@supports not (inset: 0) {
.pc-inv .exp-row .rd input:checked + .rdot::after { top: 3px; right: 3px; bottom: 3px; left: 3px} }
.pc-inv .exp-row .rd .rd-t {font-weight:400;line-height:16px;transform:none}
.pc-inv .exp-row .input {position:static;opacity:1;height:40px;padding:6px 10px;width:140px;flex:none}
.pc-inv .exp-row.off .input {opacity:.45;pointer-events:none}
.pc-inv .rl {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--border)}
@supports not (gap: 1px) {
  .pc-inv .rl > * + * {
    margin-left: 14px;
  }
}
.pc-inv .rl:last-child {border-bottom:0}
.pc-inv .rl .rl-t {font-weight:600;font-size:13px}
.pc-inv .rl .rl-d {color:var(--muted);font-size:var(--fs-micro);margin-top:2px;line-height:1.5}
.pc-inv .rules-cap {font:600 13px/1 var(--font-display);letter-spacing:1px;margin:14px 0 2px}
.pc-inv .rules-cap:first-child {margin-top:0}
.pc-inv .rules-ops {display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
@supports not (gap: 1px) {
  .pc-inv .rules-ops > * + * {
    margin-left: 8px;
  }
}
@media (prefers-reduced-motion:reduce){

  *,*::before,*::after{animation:none!important;transition:none!important}

}
.pc-inv body.reduce-motion *, .pc-inv body.reduce-motion *::before, .pc-inv body.reduce-motion *::after {
  animation-duration:.01ms!important;transition-duration:.01ms!important;
}
.pc-inv [hidden] {display:none!important}
.pc-inv .cal { width: 280px; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 10px; box-shadow: 0 14px 36px rgba(67, 53, 43, 0.16); box-shadow: 0 14px 36px color-mix(in oklab, var(--fg) 16%, transparent); }
.pc-inv .cal-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font: 600 13px/1 var(--font-display); }
.pc-inv .cal-nav { width: 28px; height: 28px; border-radius: 7px; min-height: 0; /* B-350 同类：压过全局 44px 触控基线，保持 28×28 */ }
.pc-inv .cal-nav:hover { background: var(--soft-green); }
.pc-inv .cal-w, .pc-inv .cal-g { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.pc-inv .cal-w { font-size: 11px; color: var(--muted-2); margin-bottom: 4px; }
.pc-inv .cal-d { height: 32px; border-radius: 8px; font-variant-numeric: tabular-nums; min-height: 0; /* B-350 同类：压过全局 44px 触控基线，保持 32px 格高 */ }
.pc-inv .cal-d:hover { background: var(--soft-green); }
.pc-inv .cal-d.on { background: var(--accent); color: var(--paper-ink); }
.pc-inv .cal-d.mute { color: var(--muted-2); }
.pc-inv .cal-d.dis { color: var(--muted-2); cursor: not-allowed; }
.pc-inv .cal-pop { position: absolute; z-index: 80; margin-top: 6px; }
.pc-inv .df { position: relative; }
.pc-inv .month-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.pc-inv .month-days button { height: 32px; border-radius: 8px; min-height: 0; /* B-350 同类：压过全局 44px 触控基线，保持 32px 格高 */ }
.pc-inv .month-days button.on { background: var(--accent); color: var(--paper-ink); }
/* 左索引：密度/选中态对齐原型 .sitem（44px 行高 + 左侧 accent 竖条） */
.pc-inv .side .sh { padding: 10px 16px 6px; }
.pc-inv .idx { width: 100%; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; text-align: left; transition: background .15s ease, color .15s ease; color: var(--fg); }
@supports not (gap: 1px) {
  .pc-inv .idx > * + * {
    margin-left: 8px;
  }
}
.pc-inv .idx:hover { background: var(--soft-green); }
.pc-inv .idx.on { background: var(--soft-green); color: var(--accent); font-weight: 600; box-shadow: inset 2.5px 0 0 var(--accent); }
.pc-inv .idx.warn { color: var(--cinnabar); font-weight: 600; }
/* 小节标题（分组/分类卡片头）：原型 .side .sh 规格（mono 大写节标） */
.pc-inv .sh { padding: 14px 16px 8px; font: 10px/1 var(--font-mono); letter-spacing: .14em; color: var(--muted-2); }
.pc-inv .admin-split { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 16px; align-items: start; }
/* 管理左栏：tcard 卡片面（class 挂于模板 aside）+ 分类树行（对齐原型 .tree-name/.tree-ico） */
.pc-inv .admin-cats { display: flex; flex-direction: column; gap: 2px; padding: 6px 8px 10px; }
@supports not (gap: 1px) {
  .pc-inv .admin-cats > * + * {
    margin-top: 2px;
  }
}
/* B-352：分类树结构对齐原型——「全部物品」置顶行（默认选中 + 右侧件数）、一级折叠分组、选中一级行才显示 改名/+二级/启停 */
.pc-inv .tree-all { width: 100%; display: flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 10px; border-radius: 8px; text-align: left; font-weight: 600; }
@supports not (gap: 1px) {
  .pc-inv .tree-all > * + * {
    margin-left: 6px;
  }
}
.pc-inv .tree-all:hover { background: var(--soft-green); }
.pc-inv .tree-all.on { background: var(--soft-green); color: var(--accent); }
.pc-inv .tree-all .cnt { margin-left: auto; flex: none; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: var(--fs-micro); color: var(--muted-2); background: var(--soft); border-radius: var(--r-pill); padding: 1px 8px; }
.pc-inv .tree-all.on .cnt { color: var(--accent); }
.pc-inv .cat-caret { flex: none; width: 14px; color: var(--muted-2); font-size: 11px; text-align: center; }
.pc-inv .cat-ops { margin-left: auto; display: flex; align-items: center; gap: 4px; flex: none; }
@supports not (gap: 1px) {
  .pc-inv .cat-ops > * + * {
    margin-left: 4px;
  }
}
.pc-inv .admin-cats > .sh { display: flex; justify-content: space-between; align-items: center; padding: 10px 8px 6px; }
.pc-inv .cat-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 2px 0; }
@supports not (gap: 1px) {
  .pc-inv .cat-row > * + * {
    margin-left: 4px 6px;
  }
}
.pc-inv .cat-row.kid { padding-left: 14px; }
.pc-inv .cat-name { flex: 1; min-width: 0; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 8px; border-radius: 8px; text-align: left; }
@supports not (gap: 1px) {
  .pc-inv .cat-name > * + * {
    margin-left: 6px;
  }
}
/* B-351：一级分类行 600（原型父行 font-weight:600）；子级 13px/400（原型 .tree-item.child + .tree-name font:inherit） */
.pc-inv .cat-row > .cat-name { font-weight: 600; }
.pc-inv .cat-row.kid .cat-name { font-size: 13px; font-weight: 400; }
.pc-inv .cat-name:hover { background: var(--soft-green); }
.pc-inv .cat-name.on { color: var(--accent); font-weight: 600; }
.pc-inv .icon { flex: none; width: 32px; height: 32px; min-height: 0; /* B-350 同类：压过全局 44px 触控基线，保持 32×32 */ border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; color: var(--muted); transition: background .15s ease, color .15s ease; }
.pc-inv .icon:hover { background: var(--surface); color: var(--fg); }
/* 调整记录筛选条与表格之间留白（原型 inline margin-bottom:12px） */
.pc-inv [data-od-id=ledger-filter] { margin-bottom: 12px; }
@media (prefers-reduced-motion: reduce) {
  .pc-inv *, .pc-inv *::before, .pc-inv *::after { animation: none !important; transition: none !important; }
}
@keyframes shim{to{transform:translateX(100%)}}
@keyframes fadein{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.985)}}
@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}}/* ============================================================
 * 门前 OA · H5 手机端员工与角色页样式（features/accounts/mobile，.am 作用域）
 *
 * 权威：tokens-v3.css（全 OA 唯一色源，v3 暖色令牌）。零新增 hex/oklch 字面值；
 * 派生（8% 铺底、按压加深）只走 color-mix。
 * 规范落点（2026-08-28 双规格 + 2026-10-01 实现规格 §2）：
 * - 字阶：页面标题 20/28·600（衬线气场位）；区块标题 17/600；正文 15/22.5；辅助 13/18
 * - 间距：4/8/12/16/24/32 六档；手机页边距 16
 * - 圆角：卡片/弹层 12、控件 10、pill；表面无阴影、浮层 --shadow-float
 * - 触控 ≥44px；动效 150–220ms 只动 opacity/transform，尊重 reduced-motion
 * - 语义状态唯一映射：正常=苔绿+8%铺底、待处理=深棕细线框、提醒=赭石+8%、
 *   错误/紧急=朱红+8%、不可操作=弱字；状态「颜色+文字」双通道
 * - 遮罩暖棕：color-mix(fg 45%)；骨架=暖米深一档呼吸块
 * ============================================================ */
.am {
  --am-ease: cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
  overflow-y: auto;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.5;
  -webkit-tap-highlight-color: transparent;
}
.am button,
.am input,
.am select {
  font-family: inherit;
}
.am button {
  cursor: pointer;
}
.am :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ── 页头 ── */
.am-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px 0;
}
@supports not (gap: 1px) {
.am-head > * + * {
    margin-left: 8px;
}
}
.am-back {
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  background: transparent;
  color: var(--fg);
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
@supports not (gap: 1px) {
.am-back > * + * {
    margin-left: 2px;
}
}
.am-back .chev {
  font-size: 20px;
  line-height: 1;
  color: var(--muted);
}
.am-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--fg);
}
.am-page-desc {
  margin: 8px 16px 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
}

/* ── 工具区（搜索/筛选/页签） ── */
.am-tools {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 16px 4px;
}
@supports not (gap: 1px) {
.am-tools > * + * {
    margin-top: 12px;
}
}
.am-searchbox {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 8px 0 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}
@supports not (gap: 1px) {
.am-searchbox > * + * {
    margin-left: 8px;
}
}
.am-searchbox:focus-within {
  border-color: var(--accent);
}
.am-searchbox svg {
  width: 17px;
  flex: none;
  color: var(--muted);
}
.am-searchbox input {
  width: 0;
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--fg);
  font-size: 15px;
}
.am-searchbox input::placeholder {
  color: var(--muted-2);
}
.am-clear {
  display: flex;
  width: 36px;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
}
.am-filter-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
@supports not (gap: 1px) {
.am-filter-row > * + * {
    margin-left: 10px;
}
}
.am-select {
  position: relative;
  flex: 1;
  min-width: 0;
}
.am-select select {
  width: 100%;
  min-height: 44px;
  padding: 0 32px 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--fg);
  font-size: 14px;
  appearance: none;
}
.am-select::after {
  content: "▾";
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-size: 12px;
  pointer-events: none;
}
.am-tabs {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.am-tabs > * + * {
    margin-left: 8px;
}
}
.am-tab {
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--muted);
  font-size: 14px;
  transition: background 0.18s var(--am-ease), color 0.18s var(--am-ease);
}
.am-tab.is-on {
  background: var(--ink-card);
  border-color: var(--ink-card);
  color: var(--paper-ink);
  font-weight: 600;
}

/* ── 列表卡片区 ── */
.am-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 16px 0;
}
@supports not (gap: 1px) {
.am-list > * + * {
    margin-top: 8px;
}
}
.am-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  padding: 12px 14px;
}
.am-card:active {
  background: var(--soft);
}
.am-card.is-frozen {
  opacity: 0.62;
}
.am-card.is-flash {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.18);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 18%, transparent);
}
.am-card-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
@supports not (gap: 1px) {
.am-card-head > * + * {
    margin-left: 8px;
}
}
.am-card-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--fg);
}
.am-card-meta {
  margin: 4px 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  font-size: 13px;
  color: var(--muted);
}
@supports not (gap: 1px) {
.am-card-meta > * + * {
    margin-left: 6px 10px;
}
}
.am-link {
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--accent);
  font-size: 13px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.am-link:active {
  text-decoration: underline;
}

/* ── 标签 / 徽标（颜色+文字双通道） ── */
.am-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 1px 10px;
  border-radius: var(--r-pill);
  font-size: 12px;
  border: 1px solid var(--border);
  color: var(--fg);
  background: transparent;
}
.am-tag-ok {
  border-color: transparent;
  background: rgba(110, 123, 76, 0.12);
  background: color-mix(in oklab, var(--st-served) 12%, transparent);
  color: var(--st-served);
}
.am-tag-clay {
  border-color: transparent;
  background: rgba(162, 100, 64, 0.1);
  background: color-mix(in oklab, var(--accent) 10%, transparent);
  color: var(--accent);
}
.am-tag-warn {
  border-color: transparent;
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
}
.am-tag-muted {
  color: var(--muted);
}

/* ── 按钮 ── */
.am-btn {
  min-height: 44px;
  padding: 0 16px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-size: 14px;
  transition: opacity 0.16s var(--am-ease), transform 0.16s var(--am-ease);
}
.am-btn:active {
  transform: translateY(1px);
}
.am-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.am-btn-primary {
  border-color: var(--ink-card);
  background: var(--ink-card);
  color: var(--paper-ink);
  font-weight: 600;
  letter-spacing: 0.08em;
}
.am-btn-danger {
  border-color: rgba(170, 77, 48, 0.55);
  border-color: color-mix(in oklab, var(--cinnabar) 55%, transparent);
  color: var(--cinnabar);
}
.am-btn-danger-solid {
  border-color: var(--cinnabar);
  background: var(--cinnabar);
  color: var(--paper-ink);
  font-weight: 600;
}
.am-btn-text {
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--accent);
  font-size: 13px;
  padding: 0 4px;
}
.am-btn-text.is-danger {
  color: var(--cinnabar);
}

/* ── 底部固定主操作 ── */
.am-footer {
  position: sticky;
  bottom: 0;
  margin-top: auto;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background: var(--bg);
  border-top: 1px solid var(--border);
}
.am-footer .am-btn {
  width: 100%;
}

/* ── 骨架屏（暖米深一档呼吸块） ── */
.am-skel {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 16px 0;
}
@supports not (gap: 1px) {
.am-skel > * + * {
    margin-top: 8px;
}
}
.am-skel-row {
  height: 64px;
  border-radius: 12px;
  background: var(--soft);
  animation: am-breath 1.4s var(--am-ease) infinite alternate;
}
@keyframes am-breath {
from { opacity: 0.55;
}
to { opacity: 1;
}
}

/* ── 状态区（空态/错误/403） ── */
.am-state {
  margin: 24px 16px 0;
  padding: 32px 20px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  text-align: center;
}
.am-state h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--fg);
}
.am-state p {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--muted);
}
.am-state .am-btn {
  margin-top: 16px;
}
.am-err-inline {
  margin: 8px 16px 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
  font-size: 13px;
}
.am-foot-meta {
  padding: 16px;
  font-size: 12px;
  color: var(--muted-2);
  text-align: center;
}

/* ── 底部抽屉 ── */
.am-mask {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(67, 53, 43, 0.45);
  background: color-mix(in oklab, var(--fg) 45%, transparent);
  animation: am-fade 0.18s var(--am-ease);
}
@supports not (inset: 0) {
.am-mask {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.am-sheet {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  border-radius: 12px 12px 0 0;
  background: var(--surface);
  box-shadow: 0 -8px 24px rgba(67, 53, 43, 0.16);
  box-shadow: 0 -8px 24px color-mix(in oklab, var(--fg) 16%, transparent);
  animation: am-rise 0.2s var(--am-ease);
}
@keyframes am-fade {
from { opacity: 0;
}
}
@keyframes am-rise {
from { opacity: 0; transform: translateY(8px);
}
}
.am-sheet-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 16px 16px 12px;
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.am-sheet-head > * + * {
    margin-left: 8px;
}
}
.am-sheet-head .grabber {
  position: absolute;
  left: 50%;
  top: 6px;
  width: 36px;
  height: 4px;
  border-radius: var(--r-pill);
  transform: translateX(-50%);
  background: var(--border);
}
.am-sheet-title-wrap {
  min-width: 0;
  flex: 1;
}
.am-sheet-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--fg);
}
.am-sheet-sub {
  margin: 2px 0 0;
  font-size: 12px;
  color: var(--muted);
}
.am-sheet-close {
  flex: none;
  width: 44px;
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font-size: 16px;
}
.am-sheet-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 12px 16px;
}
.am-sheet-foot {
  display: flex;
  gap: 10px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border);
  background: var(--surface);
}
@supports not (gap: 1px) {
.am-sheet-foot > * + * {
    margin-left: 10px;
}
}
.am-sheet-foot > * {
  flex: 1;
}

/* ── 抽屉分区 ── */
.am-zone {
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}
.am-zone:last-child {
  border-bottom: 0;
}
.am-zone h4 {
  margin: 0 0 12px;
  font-size: 17px;
  font-weight: 600;
  color: var(--fg);
}
.am-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.am-field > * + * {
    margin-top: 6px;
}
}
.am-field:last-child {
  margin-bottom: 0;
}
.am-lbl {
  font-size: 13px;
  color: var(--muted);
}
.am-input,
.am-zone select {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--fg);
  font-size: 15px;
  box-sizing: border-box;
}
.am-input:focus {
  outline: 2px solid rgba(162, 100, 64, 0.35);
  outline: 2px solid color-mix(in oklab, var(--accent) 35%, transparent);
  outline-offset: 1px;
  border-color: var(--accent);
}
.am-help {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.65;
  color: var(--muted);
}
.am-err {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--cinnabar);
}

/* 分段选择（用工类型/页签） */
.am-seg {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.am-seg > * + * {
    margin-left: 8px;
}
}
.am-seg button {
  flex: 1;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--muted);
  font-size: 14px;
}
.am-seg button.is-on {
  border-color: var(--ink-card);
  background: var(--ink-card);
  color: var(--paper-ink);
  font-weight: 600;
}

/* 店铺多选 chip */
.am-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@supports not (gap: 1px) {
.am-picks > * + * {
    margin-left: 8px;
}
}
.am-picks label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--fg);
  font-size: 14px;
}
@supports not (gap: 1px) {
.am-picks label > * + * {
    margin-left: 8px;
}
}
.am-picks label.is-on {
  border-color: var(--accent);
  background: rgba(162, 100, 64, 0.1);
  background: color-mix(in oklab, var(--accent) 10%, transparent);
  color: var(--accent);
  font-weight: 600;
}
.am-picks label.is-disabled {
  opacity: 0.55;
}
.am-picks input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
}

/* ── 开关（细线轨道 + 赭石圆点） ── */
.am-sw {
  position: relative;
  flex: none;
  width: 48px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--soft);
  transition: background 0.18s var(--am-ease), border-color 0.18s var(--am-ease);
}
.am-sw::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.18s var(--am-ease), background 0.18s var(--am-ease);
}
.am-sw[aria-checked="true"] {
  background: var(--accent);
  border-color: var(--accent);
}
.am-sw[aria-checked="true"]::after {
  transform: translateX(20px);
  background: var(--paper-ink);
  border-color: transparent;
}
.am-sw:disabled {
  opacity: 0.45;
}
.am-rowline {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
}
@supports not (gap: 1px) {
.am-rowline > * + * {
    margin-left: 12px;
}
}

/* ── 覆盖矩阵 / 权限矩阵（12 组折叠） ── */
.am-perm-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
@supports not (gap: 1px) {
.am-perm-toolbar > * + * {
    margin-left: 10px;
}
}
.am-count-pill {
  flex: none;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border: 1px dashed var(--border);
  border-radius: var(--r-pill);
  font-size: 12px;
  color: var(--muted);
}
.am-count-pill .mono,
.am-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.am-perm-toolbar .am-searchbox {
  flex: 1;
  min-height: 40px;
}
.am-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-bottom: 10px;
  font-size: 12px;
  color: var(--muted);
}
@supports not (gap: 1px) {
.am-legend > * + * {
    margin-left: 6px 14px;
}
}
.am-legend .am-sw {
  width: 32px;
  height: 19px;
  vertical-align: -5px;
  pointer-events: none;
}
.am-legend .am-sw::after {
  width: 13px;
  height: 13px;
}
.am-legend .am-sw[aria-checked="true"]::after {
  transform: translateX(13px);
}
.am-badge-ov {
  display: inline-block;
  margin-left: 4px;
  padding: 0 6px;
  border-radius: 4px;
  background: rgba(162, 100, 64, 0.14);
  background: color-mix(in oklab, var(--accent) 14%, transparent);
  color: var(--accent);
  font-size: 11px;
}
.am-group {
  border-top: 1px solid var(--border);
}
.am-group:first-of-type {
  border-top: 0;
}
.am-group-h {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 0 2px;
  font-size: 14px;
}
@supports not (gap: 1px) {
.am-group-h > * + * {
    margin-left: 8px;
}
}
.am-group-toggle {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--fg);
  font-size: 14px;
  text-align: left;
}
@supports not (gap: 1px) {
.am-group-toggle > * + * {
    margin-left: 8px;
}
}
.am-group-toggle .gname {
  font-weight: 600;
}
.am-group-h .gsum,
.am-group-toggle .gsum {
  font-size: 12px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.am-group-h .chev,
.am-group-toggle .chev {
  margin-left: auto;
  color: var(--muted);
  font-size: 12px;
}
.am-perm-list {
  display: flex;
  flex-direction: column;
  padding-bottom: 8px;
}
.am-perm-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 4px 0;
}
@supports not (gap: 1px) {
.am-perm-row > * + * {
    margin-left: 12px;
}
}
.am-perm-row .pname {
  flex: 1;
  min-width: 0;
  font-size: 14px;
  color: var(--fg);
}
.am-perm-row .pmeta {
  flex: none;
  font-size: 12px;
  color: var(--muted);
}
.am-perm-row.is-override-on {
  background: rgba(162, 100, 64, 0.08);
  background: color-mix(in oklab, var(--accent) 8%, transparent);
}
.am-perm-row.is-override-off {
  background: rgba(170, 77, 48, 0.07);
  background: color-mix(in oklab, var(--cinnabar) 7%, transparent);
}

/* ── 系统级只读卡（虚线） ── */
.am-sys-card {
  padding: 12px 14px;
  border: 1px dashed var(--border);
  border-radius: 12px;
}
.am-sys-card h5 {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}
.am-sys-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: var(--fg);
}
@supports not (gap: 1px) {
.am-sys-card ul > * + * {
    margin-top: 4px;
}
}
.am-sys-card .sys-on {
  color: var(--st-served);
}
.am-sys-card .sys-off {
  color: var(--muted-2);
}
.am-sys-card p {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--muted);
}

/* ── 提示条 ── */
.am-note {
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(162, 100, 64, 0.08);
  background: color-mix(in oklab, var(--accent) 8%, transparent);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}
.am-note.am-note-warn {
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
}

/* ── 一次性密码 ── */
.am-pwd-hero {
  padding: 20px 12px;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 28px;
  letter-spacing: 4px;
  font-variant-numeric: tabular-nums;
  color: var(--fg);
  background: var(--soft);
  border-radius: 12px;
  user-select: all;
}
.am-alert-keep {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(162, 100, 64, 0.1);
  background: color-mix(in oklab, var(--accent) 10%, transparent);
  color: var(--accent);
  font-size: 13px;
  line-height: 1.65;
}

/* ── Toast ── */
.am-toast-host {
  position: fixed;
  left: 50%;
  bottom: calc(88px + env(safe-area-inset-bottom, 0px));
  z-index: 120;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  pointer-events: none;
}
@supports not (gap: 1px) {
.am-toast-host > * + * {
    margin-top: 8px;
}
}
.am-toast {
  max-width: 84vw;
  padding: 10px 18px;
  border-radius: var(--r-pill);
  background: var(--ink-card);
  color: var(--paper-ink);
  font-size: 13px;
  text-align: center;
  line-height: 1.5;
  animation: am-rise 0.18s var(--am-ease);
}
.am-toast.is-warn {
  background: var(--cinnabar);
}
.am-toast.is-ok {
  background: var(--st-served);
}
.am-toast.is-leaving {
  opacity: 0;
  transition: opacity 0.2s var(--am-ease);
}
@media (prefers-reduced-motion: reduce) {
.am *,
  .am-mask,
  .am-sheet,
  .am-toast {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
}
}

.manager-terminals[data-v-7984a7d7] {
  /* 对齐 B-84 惯例：本容器为唯一滚动区 */
  height: 100%;
  padding: 24px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  box-sizing: border-box;
  overflow-y: auto;
}
.page-title[data-v-7984a7d7] {
  margin: 0 0 16px;
  font-size: 22px;
  color: var(--color-ink);
}
.alert[data-v-7984a7d7] {
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 12px;
}
.alert.error[data-v-7984a7d7] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.alert.success[data-v-7984a7d7] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.panel[data-v-7984a7d7] {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  margin-bottom: 16px;
}
.panel-head[data-v-7984a7d7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.panel-head[data-v-7984a7d7] > * + * {
    margin-left: 12px;
}
}
.panel-title[data-v-7984a7d7] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.panel-meta[data-v-7984a7d7] {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--color-wood-gray);
}
.config-grid[data-v-7984a7d7] {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.config-grid[data-v-7984a7d7] > * + * {
    margin-left: 16px;
}
}
.field[data-v-7984a7d7] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-7984a7d7] > * + * {
    margin-top: 6px;
}
}
.config-grid .field[data-v-7984a7d7] {
  flex: 1;
  min-width: 200px;
}
.label[data-v-7984a7d7] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[type="number"][data-v-7984a7d7] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 15px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.page-options[data-v-7984a7d7] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
@supports not (gap: 1px) {
.page-options[data-v-7984a7d7] > * + * {
    margin-left: 8px 16px;
}
}
.page-option[data-v-7984a7d7] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--color-ink);
  cursor: pointer;
}
@supports not (gap: 1px) {
.page-option[data-v-7984a7d7] > * + * {
    margin-left: 6px;
}
}
.page-option input[data-v-7984a7d7] {
  cursor: pointer;
}
.page-option input[data-v-7984a7d7]:disabled {
  cursor: not-allowed;
}
.locked-tag[data-v-7984a7d7] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
  font-size: 12px;
}
.hint[data-v-7984a7d7] {
  margin: 0;
  font-size: 12px;
  color: var(--color-clay);
}
.btn-primary[data-v-7984a7d7] {
  margin-top: 12px;
  min-height: 36px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-primary[data-v-7984a7d7]:hover {
  opacity: 0.9;
}
.btn-primary[data-v-7984a7d7]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.btn-create[data-v-7984a7d7] {
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-create[data-v-7984a7d7]:hover {
  opacity: 0.9;
}
.panel-actions[data-v-7984a7d7] {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
@supports not (gap: 1px) {
.panel-actions[data-v-7984a7d7] > * + * {
    margin-left: 10px;
}
}
.btn-secondary[data-v-7984a7d7] {
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 16px;
  border: 1px solid var(--color-green);
  border-radius: var(--radius);
  background: transparent;
  color: var(--color-green);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-secondary[data-v-7984a7d7]:hover {
  background: var(--color-green);
  color: var(--color-paper);
}
.btn-retry[data-v-7984a7d7] {
  margin-left: 8px;
  padding: 4px 12px;
  border: 1px solid var(--color-cinnabar);
  border-radius: var(--radius);
  background: transparent;
  color: var(--color-cinnabar);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.device-table[data-v-7984a7d7] {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.device-table th[data-v-7984a7d7] {
  padding: 8px 10px;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-wood-gray);
  border-bottom: 1px solid var(--color-border);
}
.device-table td[data-v-7984a7d7] {
  padding: 10px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-ink);
}
.device-table tr:last-child td[data-v-7984a7d7] {
  border-bottom: none;
}
.col-name[data-v-7984a7d7] {
  font-weight: 600;
}
.col-info[data-v-7984a7d7] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.rename-input[data-v-7984a7d7] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 15px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
  box-sizing: border-box;
}
.col-action[data-v-7984a7d7] {
  white-space: nowrap;
}
.session-none[data-v-7984a7d7],
.action-na[data-v-7984a7d7] {
  color: var(--color-text-soft);
  font-size: 13px;
}
.status-revoked[data-v-7984a7d7] {
  display: inline-block;
  padding: 2px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 12px;
}
.status-ok[data-v-7984a7d7] {
  color: var(--color-wood-gray);
  font-size: 12px;
}
.btn-danger[data-v-7984a7d7] {
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-danger[data-v-7984a7d7]:hover {
  border-color: var(--color-cinnabar);
}
.overlay[data-v-7984a7d7] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.overlay[data-v-7984a7d7] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dialog[data-v-7984a7d7] {
  width: 100%;
  max-width: 400px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.dialog[data-v-7984a7d7] > * + * {
    margin-top: 12px;
}
}
.dialog-head[data-v-7984a7d7] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dialog-title[data-v-7984a7d7] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-7984a7d7] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.dialog-target[data-v-7984a7d7] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
  font-size: 13px;
  line-height: 1.6;
}
.error-box[data-v-7984a7d7] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.enroll-code[data-v-7984a7d7] {
  padding: 16px;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  text-align: center;
  font-family: var(--font-mono, monospace);
  font-size: 40px;
  letter-spacing: 12px;
  color: var(--color-ink);
  font-weight: 600;
}
.dialog-actions[data-v-7984a7d7] {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
@supports not (gap: 1px) {
.dialog-actions[data-v-7984a7d7] > * + * {
    margin-left: 10px;
}
}
.btn-cancel[data-v-7984a7d7] {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-submit[data-v-7984a7d7] {
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-danger-main[data-v-7984a7d7] {
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-cinnabar);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-cancel[data-v-7984a7d7]:disabled,
.btn-submit[data-v-7984a7d7]:disabled,
.btn-danger-main[data-v-7984a7d7]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ── 身份门宣传图 ── */
.caption-toggle[data-v-7984a7d7] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.caption-toggle[data-v-7984a7d7] > * + * {
    margin-left: 10px;
}
}
.caption-option[data-v-7984a7d7] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--color-ink);
  cursor: pointer;
}
@supports not (gap: 1px) {
.caption-option[data-v-7984a7d7] > * + * {
    margin-left: 6px;
}
}
.caption-option input[data-v-7984a7d7] {
  cursor: pointer;
}
.photo-empty[data-v-7984a7d7] {
  margin: 0 0 12px;
  padding: 14px;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--color-wood-gray);
}
.photo-list[data-v-7984a7d7] {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.photo-card[data-v-7984a7d7] {
  display: flex;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface-soft);
}
@supports not (gap: 1px) {
.photo-card[data-v-7984a7d7] > * + * {
    margin-left: 10px;
}
}
.photo-thumb[data-v-7984a7d7] {
  width: 96px;
  height: 72px;
  object-fit: cover;
  border-radius: var(--radius);
  flex-shrink: 0;
  background: var(--color-border);
}
.photo-info[data-v-7984a7d7] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.photo-info[data-v-7984a7d7] > * + * {
    margin-top: 6px;
}
}
.photo-order[data-v-7984a7d7] {
  font-size: 12px;
  color: var(--color-wood-gray);
}
.photo-caption-input[data-v-7984a7d7] {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 13px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
  box-sizing: border-box;
}
.photo-actions[data-v-7984a7d7] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.photo-actions[data-v-7984a7d7] > * + * {
    margin-left: 6px;
}
}
.btn-mini[data-v-7984a7d7] {
  padding: 4px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.btn-mini[data-v-7984a7d7]:hover:not(:disabled) {
  color: var(--color-ink);
  border-color: var(--color-green);
}
.btn-mini[data-v-7984a7d7]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.photo-actions .btn-danger[data-v-7984a7d7] {
  padding: 4px 10px;
  font-size: 12px;
}
.photo-upload[data-v-7984a7d7] {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.photo-upload[data-v-7984a7d7] > * + * {
    margin-left: 10px;
}
}
.btn-upload[data-v-7984a7d7] {
  min-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-upload[data-v-7984a7d7]:hover:not(:disabled) {
  opacity: 0.9;
}
.btn-upload[data-v-7984a7d7]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.photo-file[data-v-7984a7d7] {
  font-size: 13px;
  color: var(--color-ink);
}
.photo-caption-new[data-v-7984a7d7] {
  flex: 1;
  min-width: 180px;
}

.manager-printing[data-v-7b85c07e] {
  /* 对齐 B-84 惯例：本容器为唯一滚动区 */
  height: 100%;
  padding: 24px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  box-sizing: border-box;
  overflow-y: auto;
}
.page-title[data-v-7b85c07e] {
  margin: 0 0 16px;
  font-size: 22px;
  color: var(--color-ink);
}
.alert[data-v-7b85c07e] {
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 12px;
}
.alert.error[data-v-7b85c07e] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.alert.success[data-v-7b85c07e] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.panel[data-v-7b85c07e] {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  margin-bottom: 16px;
}
.panel-head[data-v-7b85c07e] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.panel-head[data-v-7b85c07e] > * + * {
    margin-left: 12px;
}
}
.panel-title[data-v-7b85c07e] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.panel-meta[data-v-7b85c07e] {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--color-wood-gray);
}
.empty[data-v-7b85c07e] {
  padding: 18px;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  color: var(--color-wood-gray);
  font-size: 13px;
}
.printer-table[data-v-7b85c07e] {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  color: var(--color-ink);
}
.printer-table th[data-v-7b85c07e],
.printer-table td[data-v-7b85c07e] {
  padding: 8px 10px;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
}
.printer-table th[data-v-7b85c07e] {
  color: var(--color-wood-gray);
  font-weight: 500;
}
.order-cell[data-v-7b85c07e],
.action-cell[data-v-7b85c07e] {
  white-space: nowrap;
}
.status-tag[data-v-7b85c07e] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 12px;
}
.status-tag.off[data-v-7b85c07e] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.config-grid[data-v-7b85c07e] {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.config-grid[data-v-7b85c07e] > * + * {
    margin-left: 16px;
}
}
.field[data-v-7b85c07e] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-7b85c07e] > * + * {
    margin-top: 6px;
}
}
.config-grid .field[data-v-7b85c07e] {
  flex: 1;
  min-width: 200px;
}
.label[data-v-7b85c07e] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[type="text"][data-v-7b85c07e],
.field select[data-v-7b85c07e],
.field textarea[data-v-7b85c07e] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.field textarea[data-v-7b85c07e] {
  resize: vertical;
}
.switch-row[data-v-7b85c07e] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 4px;
}
@supports not (gap: 1px) {
.switch-row[data-v-7b85c07e] > * + * {
    margin-left: 8px 20px;
}
}
.switch-option[data-v-7b85c07e] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--color-ink);
  cursor: pointer;
}
@supports not (gap: 1px) {
.switch-option[data-v-7b85c07e] > * + * {
    margin-left: 6px;
}
}
.qrcode-url-field[data-v-7b85c07e] {
  margin-top: 10px;
}
.btn-primary[data-v-7b85c07e] {
  margin-top: 12px;
  min-height: 36px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-primary[data-v-7b85c07e]:hover {
  opacity: 0.9;
}
.btn-primary[data-v-7b85c07e]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.btn-secondary[data-v-7b85c07e] {
  min-height: 32px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-mini[data-v-7b85c07e] {
  min-height: 26px;
  padding: 0 10px;
  margin-right: 6px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.btn-mini[data-v-7b85c07e]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-danger[data-v-7b85c07e] {
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid var(--color-cinnabar);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.btn-danger-solid[data-v-7b85c07e] {
  min-height: 36px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-cinnabar);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-danger-solid[data-v-7b85c07e]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.btn-retry[data-v-7b85c07e] {
  margin-left: 8px;
  border: none;
  background: none;
  color: inherit;
  text-decoration: underline;
  cursor: pointer;
  font-size: inherit;
}
.sheet-mask[data-v-7b85c07e] {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.36);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 60;
}
@supports not (inset: 0) {
.sheet-mask[data-v-7b85c07e] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.sheet[data-v-7b85c07e] {
  width: min(480px, 92vw);
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 18px;
}
.sheet-title[data-v-7b85c07e] {
  margin: 0 0 10px;
  font-size: 16px;
  color: var(--color-ink);
}
.sheet-desc[data-v-7b85c07e] {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--color-wood-gray);
}
.sheet-form[data-v-7b85c07e] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.sheet-form[data-v-7b85c07e] > * + * {
    margin-top: 12px;
}
}
.sheet-actions[data-v-7b85c07e] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}
@supports not (gap: 1px) {
.sheet-actions[data-v-7b85c07e] > * + * {
    margin-left: 10px;
}
}

.manager-notify[data-v-767caddb] {
  height: 100%;
  padding: 24px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  box-sizing: border-box;
  overflow-y: auto;
}
.page-title[data-v-767caddb] {
  margin: 0 0 16px;
  font-size: 22px;
  color: var(--color-ink);
}
.alert[data-v-767caddb] {
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 12px;
}
.alert.error[data-v-767caddb] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.alert.warn[data-v-767caddb] {
  background: var(--color-surface-clay);
  color: var(--color-cinnabar);
}
.panel[data-v-767caddb] {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
}
.panel-head[data-v-767caddb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.panel-head[data-v-767caddb] > * + * {
    margin-left: 12px;
}
}
.panel-title[data-v-767caddb] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.panel-meta[data-v-767caddb] {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--color-wood-gray);
}
.hint[data-v-767caddb] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.config-list[data-v-767caddb] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.config-list[data-v-767caddb] > * + * {
    margin-top: 12px;
}
}
.config-item[data-v-767caddb] {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 12px 14px;
  background: var(--color-surface-soft);
}
.config-head[data-v-767caddb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
@supports not (gap: 1px) {
.config-head[data-v-767caddb] > * + * {
    margin-left: 12px;
}
}
.config-name[data-v-767caddb] {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.config-name[data-v-767caddb] > * + * {
    margin-left: 6px;
}
}
.kind-tag[data-v-767caddb] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 11px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.mode-tag[data-v-767caddb] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  font-size: 11px;
}
.mode-tag.broadcast[data-v-767caddb] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.mode-tag.direct[data-v-767caddb] {
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
}
.row-error[data-v-767caddb] {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.row-ok[data-v-767caddb] {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.config-body[data-v-767caddb] {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.config-col[data-v-767caddb] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.config-col[data-v-767caddb] > * + * {
    margin-top: 6px;
}
}
.config-col-wide[data-v-767caddb] {
  grid-column: span 2;
}
.col-title[data-v-767caddb] {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-wood-gray);
}
.col-empty[data-v-767caddb] {
  margin: 0;
  font-size: 12px;
  color: var(--color-text-soft);
}
.chip-check[data-v-767caddb] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  font-size: 13px;
  color: var(--color-ink);
  cursor: pointer;
}
@supports not (gap: 1px) {
.chip-check[data-v-767caddb] > * + * {
    margin-left: 6px;
}
}
.chip-check input[type="checkbox"][data-v-767caddb] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-green);
  cursor: pointer;
}
.role-chips[data-v-767caddb] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@supports not (gap: 1px) {
.role-chips[data-v-767caddb] > * + * {
    margin-left: 6px;
}
}
.channel-chips[data-v-767caddb] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@supports not (gap: 1px) {
.channel-chips[data-v-767caddb] > * + * {
    margin-left: 6px;
}
}
.template-id[data-v-767caddb] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  word-break: break-all;
}
.switch[data-v-767caddb] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  position: relative;
}
@supports not (gap: 1px) {
.switch[data-v-767caddb] > * + * {
    margin-left: 8px;
}
}
.switch input[data-v-767caddb] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.switch-dot[data-v-767caddb] {
  width: 36px;
  height: 20px;
  border-radius: var(--radius-pill);
  background: var(--color-green);
  position: relative;
  transition: background 0.15s;
  flex-shrink: 0;
}
.switch-dot[data-v-767caddb]::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 18px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-paper);
  transition: left 0.15s;
}
.switch.off .switch-dot[data-v-767caddb] {
  background: var(--color-border);
}
.switch.off .switch-dot[data-v-767caddb]::after {
  left: 2px;
}
.switch-label[data-v-767caddb] {
  font-size: 12px;
  color: var(--color-wood-gray);
}
.config-foot[data-v-767caddb] {
  margin-top: 10px;
  display: flex;
  justify-content: flex-end;
}
.btn-save[data-v-767caddb] {
  min-height: 34px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-save[data-v-767caddb]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
/* 门前 OA 设计令牌（Task 10 统一接入，视觉简报冻结）。
 * 与 src/shared/tokens.ts 的值必须一致（见该文件测试）。
 * 组件样式一律引用 var(--color-*)，不在组件内散落色值。 */
[data-v-8ef55afb]:root {
  /* 品牌色 */
  --color-ink: #243832;          /* 深叶墨：顶栏、主文字、当前选择 */
  --color-green: #4f7768;        /* 庭院绿：主操作、完成与正常状态 */
  --color-lime: #f4f5f0;         /* 石灰白：页面主背景 */
  --color-paper: #ffffff;        /* 纸白：任务与表单表面 */
  --color-wood-gray: #6d7771;    /* 旧木灰：辅助文字与结构线 */
  --color-clay: #bd6e4a;         /* 陶土色：预定变化、重要提醒 */
  --color-cinnabar: #a64f38;     /* 深朱红：紧急、错误、盘点差异 */

  /* 衍生结构色 */
  --color-border: #dde0da;       /* 结构细线 */
  --color-surface-soft: #f0f2ee; /* 浅底 / 胶囊底 */
  --color-surface-green: #e2ede7; /* 完成 / 正常浅底 */
  --color-surface-clay: #f5e9e2; /* 陶土浅底（重要提醒） */
  --color-surface-cinnabar: #f7e3de; /* 紧急浅底 */
  --color-text-soft: #b9c4bd;    /* 深色底上的辅助文字 */
  --color-text-muted: #9aa49d;   /* 次级灰 */
  --color-paper-veil: rgba(244, 245, 240, 0.18); /* 深色底上的纸白薄纱，hero 刷新按钮等浮层 */
  --color-surface-warm: rgba(255, 253, 247, 0.7); /* 会员弹窗内的暖纸卡片底 */
  --color-surface-wash: linear-gradient(135deg, rgba(224, 231, 178, 0.22), transparent 62%); /* 会员弹窗内的浅色渐变底 */

  /* 手机端预定工作区 v3 暖色语义（2026-09-05 移交文档）。
   * 保留以上全局庭院绿 token，避免单个工作区改造重绘无关页面。 */
  --color-reservation-bg: #f2ecdf;
  --color-reservation-surface: #fbf7ee;
  --color-reservation-fg: #3e2f24;
  --color-reservation-muted: #8d7b66;
  --color-reservation-border: #e3d8c4;
  --color-reservation-accent: #a6632e;
  --color-reservation-cinnabar: #af4a30;
  --color-reservation-soft: #ede4d2;
  --color-reservation-soft-green: #f0e3cc;
  --color-reservation-soft-clay: #f2ddc2;
  --color-reservation-soft-cinnabar: #f3ddcf;
  --color-reservation-ink-card: #413025;
  --color-reservation-text-soft: #cdbea6;
  --color-reservation-muted-two: #a89a86;
  --color-reservation-mask: rgba(62, 47, 36, 0.42);
  --color-reservation-shadow: 0 -8px 24px rgba(62, 47, 36, 0.14);

  /* 遮罩与浮层 */
  --mask-ink: rgba(36, 56, 50, 0.4); /* 图片头遮罩 / 弹层背景 */
  --shadow-float: 0 4px 16px rgba(36, 56, 50, 0.12);

  /* 几何 */
  --radius: 10px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  --touch-min: 44px;

  /* 动效（2026-08-01 视觉重构：短促、克制的过渡） */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 150ms;

  /* 字体 */
  --font-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC",
    system-ui, sans-serif;

  /* 手机「我的」茶单暖色命名空间（brand-spec v3，避免污染庭院绿体系） */
  --me-bg: #f2ecdf;
  --me-surface: #fbf7ee;
  --me-fg: #3e2f24;
  --me-muted: #8d7b66;
  --me-border: #e3d8c4;
  --me-accent: #a6632e;
  --me-cinnabar: #af4a30;
  --me-soft: #ede4d2;
  --me-soft-green: #f0e3cc;
  --me-soft-clay: #f2ddc2;
  --me-soft-cinnabar: #f3ddcf;
  --me-ink-soft: #cdbea6;
  --me-muted-2: #a89a86;
  --me-ink-card: #413025;
  --me-font-display: "Songti SC", "STSong", "Noto Serif SC", serif;
  --me-font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --me-font-mono: ui-monospace, "SF Mono", Menlo, monospace;
  --me-icon: color-mix(in oklab, var(--me-fg) 80%, var(--me-accent));
  --me-paper-grain: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 .42 0 0 0 0 .35 0 0 0 0 .26 0 0 0 .045 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}
@supports (not (color: oklch(0% 0 0))) {
[data-v-8ef55afb]:root {
  --me-icon: #523927;
}
}
.sc-page[data-v-8ef55afb] {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--sp-24, 24px);
}
.page-head[data-v-8ef55afb] {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--sp-24, 24px);
}
.page-title[data-v-8ef55afb] {
  margin: 0;
  font-size: 20px;
  line-height: 28px;
  font-weight: 600;
  font-family: var(--font-serif, serif);
}
.page-sub[data-v-8ef55afb] {
  margin: 4px 0 0;
  font-size: 13px;
  line-height: 18px;
  color: var(--brown, #6e5340);
}
.card[data-v-8ef55afb] {
  background: var(--card, #fbf5ea);
  border: 1px solid var(--line, #e0d3c0);
  border-radius: var(--radius-lg, 12px);
  padding: var(--sp-24, 24px);
}

/* 骨架：暖米深一档呼吸块 */
.skel[data-v-8ef55afb] {
  display: grid;
  gap: var(--sp-12, 12px);
}
.skel-row[data-v-8ef55afb] {
  height: 64px;
  border-radius: var(--radius, 10px);
  background: #F1EBE3;
  background: color-mix(in srgb, var(--line, #e0d3c0) 45%, var(--paper, #f6efe3));
  animation: sc-breathe-8ef55afb 1.6s ease-in-out infinite;
}
@keyframes sc-breathe-8ef55afb {
0%, 100% { opacity: 0.55;
}
50% { opacity: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.skel-row[data-v-8ef55afb] { animation: none;
}
}
.state[data-v-8ef55afb] {
  display: grid;
  gap: var(--sp-8, 8px);
  justify-items: start;
}
.state-title[data-v-8ef55afb] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
}
.state-sub[data-v-8ef55afb] {
  margin: 0;
  font-size: 13px;
  color: var(--brown, #6e5340);
}
.state-ops[data-v-8ef55afb] {
  margin-top: var(--sp-8, 8px);
}
.btn-primary[data-v-8ef55afb] {
  min-height: 44px;
  padding: 0 var(--sp-16, 16px);
  border: none;
  border-radius: var(--radius-pill, 999px);
  background: var(--ink, #382a1f);
  color: var(--paper, #f6efe3);
  font-size: 15px;
  cursor: pointer;
}
.btn-primary[data-v-8ef55afb]:active {
  background: var(--ink-deep, #2a1f15);
}
.sc-group[data-v-8ef55afb] {
  margin-bottom: var(--sp-24, 24px);
}
.group-title[data-v-8ef55afb] {
  margin: 0 0 var(--sp-12, 12px);
  font-size: 17px;
  line-height: 24px;
  font-weight: 600;
}
.sc-grid[data-v-8ef55afb] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--sp-12, 12px);
}
.sc-card[data-v-8ef55afb] {
  display: grid;
  gap: 6px;
  justify-items: start;
  min-height: 88px;
  padding: var(--sp-16, 16px);
  text-align: left;
  background: var(--card, #fbf5ea);
  border: 1px solid var(--line, #e0d3c0);
  border-radius: var(--radius, 10px);
  cursor: pointer;
  transition: transform 150ms ease, opacity 150ms ease, border-color 150ms ease;
}
.sc-card[data-v-8ef55afb]:hover {
  border-color: var(--clay, #b5714a);
}
.sc-card[data-v-8ef55afb]:active {
  transform: scale(0.99);
  opacity: 0.9;
}
.sc-name[data-v-8ef55afb] {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink, #382a1f);
}
.sc-desc[data-v-8ef55afb] {
  font-size: 13px;
  line-height: 18px;
  color: var(--brown, #6e5340);
}

.mobile-settings[data-v-656d2749] { position: relative; display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; overflow: hidden; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.settings-nav[data-v-656d2749] { display: flex; min-height: 52px; align-items: flex-end; gap: 8px; padding: 10px 12px 18px;
}
@supports not (gap: 1px) {
.settings-nav[data-v-656d2749] > * + * {
    margin-left: 8px;
}
}
.settings-nav p[data-v-656d2749] { flex: 1; margin: 0 0 8px 2px; overflow: hidden; color: var(--me-fg); font: 600 20px/1.4 var(--me-font-display); letter-spacing: .08em; text-overflow: ellipsis; white-space: nowrap;
}
.nav-placeholder[data-v-656d2749] { width: 44px; flex: none;
}
.back-btn[data-v-656d2749] { display: flex; width: auto; min-height: 44px; margin-bottom: 2px; align-items: center; justify-content: center; padding: 0 9px; gap: 1px; border: 0; border-radius: 10px; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}
@supports not (gap: 1px) {
.back-btn[data-v-656d2749] > * + * {
    margin-left: 1px;
}
}
.back-btn[data-v-656d2749]:active { background: var(--me-soft);
}
.settings-scroll[data-v-656d2749] { min-height: 0; flex: 1 1 auto; overflow-y: auto; scrollbar-width: none; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
}
.settings-scroll[data-v-656d2749]::-webkit-scrollbar { display: none;
}
.skeleton-list[data-v-656d2749] { display: flex; flex-direction: column; gap: 10px; padding: 0 16px;
}
@supports not (gap: 1px) {
.skeleton-list[data-v-656d2749] > * + * {
    margin-top: 10px;
}
}
.section-skeleton[data-v-656d2749] { display: block; height: 64px; border-radius: 14px; background: linear-gradient(100deg, var(--me-soft) 40%, var(--me-surface) 50%, var(--me-soft) 60%); background-size: 200% 100%; animation: settings-shimmer-656d2749 1.2s linear infinite;
}
@keyframes settings-shimmer-656d2749 {
from { background-position: 120% 0;
}
to { background-position: -80% 0;
}
}
.inline-error[data-v-656d2749] { display: flex; align-items: center; gap: 9px; margin: 12px 16px 0; padding: 12px 13px; border-radius: 12px; background: var(--me-soft-cinnabar); color: var(--me-cinnabar); font-size: 13px;
}
@supports not (gap: 1px) {
.inline-error[data-v-656d2749] > * + * {
    margin-left: 9px;
}
}
.inline-error span[data-v-656d2749] { flex: 1;
}
.inline-error button[data-v-656d2749] { min-height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}
.empty-state[data-v-656d2749] { display: flex; min-height: 260px; flex-direction: column; align-items: center; justify-content: center; padding: 36px 28px; text-align: center;
}
.empty-state h1[data-v-656d2749] { margin: 0; color: var(--me-fg); font: 600 18px var(--me-font-display); letter-spacing: .06em;
}
.empty-state p[data-v-656d2749] { max-width: 30ch; margin: 6px 0 0; color: var(--me-muted); font-size: 13px; line-height: 1.7;
}
.settings-group[data-v-656d2749] { margin-top: 4px;
}
.group-heading[data-v-656d2749] { margin: 16px 20px 8px; color: var(--me-muted); font: 600 13px var(--me-font-display); letter-spacing: .18em;
}
.section-list[data-v-656d2749] { overflow: hidden; margin: 0 16px; border: 1px solid var(--me-border); border-radius: 14px; background: var(--me-surface);
}
.section-row[data-v-656d2749] { display: flex; width: 100%; min-height: 64px; align-items: center; gap: 11px; padding: 10px 14px; border: 0; border-top: 1px solid transparent; background: transparent; color: var(--me-fg); cursor: pointer; text-align: left;
}
@supports not (gap: 1px) {
.section-row[data-v-656d2749] > * + * {
    margin-left: 11px;
}
}
.section-row + .section-row[data-v-656d2749] { border-top-color: var(--me-border);
}
.section-row[data-v-656d2749]:active { background: var(--me-soft);
}
.section-row[data-v-656d2749]:focus-visible { outline: 2px solid var(--me-accent); outline-offset: -2px;
}
.section-main[data-v-656d2749] { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 2px;
}
@supports not (gap: 1px) {
.section-main[data-v-656d2749] > * + * {
    margin-top: 2px;
}
}
.section-main strong[data-v-656d2749] { font-size: 15px;
}
.section-main small[data-v-656d2749] { overflow: hidden; color: var(--me-muted); font-size: 12px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap;
}
.section-chevron[data-v-656d2749] { width: 17px; flex: none; color: var(--me-muted-2); font-size: 18px; line-height: 1;
}
.list-end[data-v-656d2749] { margin: 0; padding: 16px 0 0; color: var(--me-muted-2); font-size: 12px; letter-spacing: .1em; text-align: center;
}
@media (min-width: 680px) {
.settings-scroll[data-v-656d2749] { width: min(100%, 560px); align-self: center;
}
}
@media (prefers-reduced-motion: reduce) {
.mobile-settings[data-v-656d2749] *, .mobile-settings[data-v-656d2749] *::before, .mobile-settings[data-v-656d2749] *::after { animation: none !important; transition: none !important;
}
}

.mobile-notify-config[data-v-d21cd7f8] { position: relative; display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; overflow: hidden; background: var(--me-bg); color: var(--me-fg); font-family: var(--me-font-body);
}
.nc-nav[data-v-d21cd7f8] { display: flex; min-height: 52px; align-items: flex-end; gap: 8px; padding: 10px 12px 18px;
}
@supports not (gap: 1px) {
.nc-nav[data-v-d21cd7f8] > * + * {
    margin-left: 8px;
}
}
.nc-nav p[data-v-d21cd7f8] { flex: 1; margin: 0 0 8px 2px; overflow: hidden; color: var(--me-fg); font: 600 20px/1.4 var(--me-font-display); letter-spacing: .08em; text-overflow: ellipsis; white-space: nowrap;
}
.nav-placeholder[data-v-d21cd7f8] { width: 44px; flex: none;
}
.back-btn[data-v-d21cd7f8] { display: flex; width: auto; min-height: 44px; margin-bottom: 2px; align-items: center; justify-content: center; padding: 0 9px; gap: 1px; border: 0; border-radius: 10px; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}
@supports not (gap: 1px) {
.back-btn[data-v-d21cd7f8] > * + * {
    margin-left: 1px;
}
}
.back-btn[data-v-d21cd7f8]:active { background: var(--me-soft);
}
.nc-scroll[data-v-d21cd7f8] { min-height: 0; flex: 1 1 auto; overflow-y: auto; scrollbar-width: none; padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
}
.nc-scroll[data-v-d21cd7f8]::-webkit-scrollbar { display: none;
}
.skeleton-list[data-v-d21cd7f8] { display: flex; flex-direction: column; gap: 10px; padding: 0 16px;
}
@supports not (gap: 1px) {
.skeleton-list[data-v-d21cd7f8] > * + * {
    margin-top: 10px;
}
}
.nc-skeleton[data-v-d21cd7f8] { display: block; height: 64px; border-radius: 14px; background: linear-gradient(100deg, var(--me-soft) 40%, var(--me-surface) 50%, var(--me-soft) 60%); background-size: 200% 100%; animation: nc-shimmer-d21cd7f8 1.2s linear infinite;
}
@keyframes nc-shimmer-d21cd7f8 {
from { background-position: 120% 0;
}
to { background-position: -80% 0;
}
}
.inline-error[data-v-d21cd7f8] { display: flex; align-items: center; gap: 9px; margin: 12px 16px 0; padding: 12px 13px; border-radius: 12px; background: var(--me-soft-cinnabar); color: var(--me-cinnabar); font-size: 13px;
}
@supports not (gap: 1px) {
.inline-error[data-v-d21cd7f8] > * + * {
    margin-left: 9px;
}
}
.inline-error span[data-v-d21cd7f8] { flex: 1;
}
.inline-error button[data-v-d21cd7f8] { min-height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--me-accent); cursor: pointer; font: 14px var(--me-font-body);
}
.empty-state[data-v-d21cd7f8] { display: flex; min-height: 260px; flex-direction: column; align-items: center; justify-content: center; padding: 36px 28px; text-align: center;
}
.empty-state h1[data-v-d21cd7f8] { margin: 0; color: var(--me-fg); font: 600 18px var(--me-font-display); letter-spacing: .06em;
}
.empty-state p[data-v-d21cd7f8] { max-width: 30ch; margin: 6px 0 0; color: var(--me-muted); font-size: 13px; line-height: 1.7;
}
.nc-hint[data-v-d21cd7f8] { margin: 4px 20px 10px; color: var(--me-muted); font-size: 13px; line-height: 1.6;
}
.nc-list[data-v-d21cd7f8] { display: flex; flex-direction: column; gap: 10px; padding: 0 16px;
}
@supports not (gap: 1px) {
.nc-list[data-v-d21cd7f8] > * + * {
    margin-top: 10px;
}
}
.nc-item[data-v-d21cd7f8] { overflow: hidden; border: 1px solid var(--me-border); border-radius: 14px; background: var(--me-surface);
}
.nc-row[data-v-d21cd7f8] { display: flex; width: 100%; min-height: 64px; align-items: center; gap: 11px; padding: 10px 14px; border: 0; background: transparent; color: var(--me-fg); cursor: pointer; text-align: left;
}
@supports not (gap: 1px) {
.nc-row[data-v-d21cd7f8] > * + * {
    margin-left: 11px;
}
}
.nc-row[data-v-d21cd7f8]:active { background: var(--me-soft);
}
.nc-row[data-v-d21cd7f8]:focus-visible { outline: 2px solid var(--me-accent); outline-offset: -2px;
}
.nc-main[data-v-d21cd7f8] { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 3px;
}
@supports not (gap: 1px) {
.nc-main[data-v-d21cd7f8] > * + * {
    margin-top: 3px;
}
}
.nc-main strong[data-v-d21cd7f8] { font-size: 15px;
}
.nc-main small[data-v-d21cd7f8] { display: flex; gap: 8px; align-items: baseline;
}
@supports not (gap: 1px) {
.nc-main small[data-v-d21cd7f8] > * + * {
    margin-left: 8px;
}
}
.nc-main small em[data-v-d21cd7f8] { font-style: normal; font-size: 12px;
}
.nc-state[data-v-d21cd7f8] { color: var(--me-accent);
}
.nc-state.off[data-v-d21cd7f8] { color: var(--me-muted-2);
}
.nc-meta[data-v-d21cd7f8] { color: var(--me-muted);
}
.nc-chevron[data-v-d21cd7f8] { width: 17px; flex: none; color: var(--me-muted-2); font-size: 18px; line-height: 1; transition: transform .2s ease;
}
.nc-item.open .nc-chevron[data-v-d21cd7f8] { transform: rotate(90deg);
}
.nc-edit[data-v-d21cd7f8] { display: flex; flex-direction: column; gap: 14px; padding: 12px 14px 14px; border-top: 1px dashed var(--me-border);
}
@supports not (gap: 1px) {
.nc-edit[data-v-d21cd7f8] > * + * {
    margin-top: 14px;
}
}
.nc-switch-row[data-v-d21cd7f8] { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; font-size: 15px;
}
@supports not (gap: 1px) {
.nc-switch-row[data-v-d21cd7f8] > * + * {
    margin-left: 12px;
}
}
.nc-switch-row span[data-v-d21cd7f8] { display: flex; flex-direction: column; gap: 2px;
}
@supports not (gap: 1px) {
.nc-switch-row span[data-v-d21cd7f8] > * + * {
    margin-top: 2px;
}
}
.nc-switch-row span small[data-v-d21cd7f8] { color: var(--me-muted); font-size: 12px;
}
.switch[data-v-d21cd7f8] { position: relative; width: 48px; height: 28px; flex: none; border: 0; border-radius: 99px; background: var(--me-soft); cursor: pointer; transition: background .18s ease;
}
.switch i[data-v-d21cd7f8] { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 99px; background: var(--me-surface); transition: transform .18s ease; box-shadow: 0 1px 2px rgba(62, 47, 36, 0.25); box-shadow: 0 1px 2px color-mix(in oklab, var(--me-fg) 25%, transparent);
}
.switch.on[data-v-d21cd7f8] { background: var(--me-accent);
}
.switch.on i[data-v-d21cd7f8] { transform: translateX(20px);
}
.nc-field[data-v-d21cd7f8] { display: flex; flex-direction: column; gap: 8px;
}
@supports not (gap: 1px) {
.nc-field[data-v-d21cd7f8] > * + * {
    margin-top: 8px;
}
}
.nc-label[data-v-d21cd7f8] { margin: 0; color: var(--me-muted); font-size: 13px; letter-spacing: .04em;
}
.nc-note[data-v-d21cd7f8] { margin: 0; color: var(--me-muted-2); font-size: 11px;
}
.chips[data-v-d21cd7f8] { display: flex; flex-wrap: wrap; gap: 8px;
}
@supports not (gap: 1px) {
.chips[data-v-d21cd7f8] > * + * {
    margin-left: 8px;
}
}
.chip[data-v-d21cd7f8] { min-height: 36px; padding: 0 15px; border: 1px solid var(--me-border); border-radius: 99px; background: var(--me-surface); color: var(--me-muted); cursor: pointer; font: 13px var(--me-font-body);
}
.chip.active[data-v-d21cd7f8] { border-color: var(--me-fg); background: var(--me-fg); color: var(--me-bg); font-weight: 600;
}
.nc-error[data-v-d21cd7f8] { margin: 0; padding: 8px 12px; border-radius: 10px; background: var(--me-soft-cinnabar); color: var(--me-cinnabar); font-size: 13px;
}
.nc-actions[data-v-d21cd7f8] { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.nc-actions[data-v-d21cd7f8] > * + * {
    margin-left: 10px;
}
}
.btn-primary[data-v-d21cd7f8], .btn-secondary[data-v-d21cd7f8] { flex: 1; min-height: 44px; border-radius: 12px; cursor: pointer; font: 15px var(--me-font-body); letter-spacing: .05em;
}
.btn-primary[data-v-d21cd7f8] { border: 1px solid var(--me-accent); background: var(--me-accent); color: var(--me-surface);
}
.btn-primary[data-v-d21cd7f8]:disabled { opacity: .55; cursor: not-allowed;
}
.btn-secondary[data-v-d21cd7f8] { border: 1px solid var(--me-border); background: var(--me-surface); color: var(--me-fg);
}
.btn-primary[data-v-d21cd7f8]:active { opacity: .84;
}
.btn-secondary[data-v-d21cd7f8]:active { background: var(--me-soft);
}
.list-end[data-v-d21cd7f8] { margin: 0; padding: 16px 0 0; color: var(--me-muted-2); font-size: 12px; letter-spacing: .1em; text-align: center;
}
.nc-toast[data-v-d21cd7f8] { position: absolute; z-index: 30; bottom: 18px; left: 50%; max-width: 84%; margin: 0; transform: translateX(-50%); padding: 10px 18px; border-radius: 99px; background: var(--me-fg); color: var(--me-bg); font-size: 13px; text-align: center;
}
@media (min-width: 680px) {
.nc-scroll[data-v-d21cd7f8] { width: min(100%, 560px); align-self: center;
}
}
@media (prefers-reduced-motion: reduce) {
.mobile-notify-config[data-v-d21cd7f8] *, .mobile-notify-config[data-v-d21cd7f8] *::before, .mobile-notify-config[data-v-d21cd7f8] *::after { animation: none !important; transition: none !important;
}
}

.orders-placeholder[data-v-e833d26c] {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 24px;
  background: var(--pos-paper, #f5efe5);
  color: var(--pos-ink, #34261d);
  font-family: var(--pos-font-sans, system-ui, sans-serif);
}
.card[data-v-e833d26c] {
  max-width: 460px;
  padding: 32px;
  border-radius: var(--pos-radius, 10px);
  background: var(--pos-card, #fbf7ef);
  box-shadow: 0 6px 24px rgba(56, 42, 31, 0.08);
  text-align: center;
}
.card h1[data-v-e833d26c] {
  margin: 0 0 10px;
  font-family: var(--pos-font-serif, Georgia, serif);
  font-size: 22px;
  letter-spacing: 0.12em;
  color: var(--pos-ink, #34261d);
}
.card p[data-v-e833d26c] {
  margin: 0 0 22px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--pos-muted, #806b5a);
}
.actions[data-v-e833d26c] {
  display: flex;
  gap: 10px;
  justify-content: center;
}
@supports not (gap: 1px) {
.actions[data-v-e833d26c] > * + * {
    margin-left: 10px;
}
}
.actions button[data-v-e833d26c] {
  padding: 9px 18px;
  border-radius: var(--pos-radius-sm, 8px);
  border: none;
  font-size: 13px;
  letter-spacing: 0.08em;
  cursor: pointer;
}
.actions .primary[data-v-e833d26c] {
  background: var(--pos-fill-clay, #e8d3c3);
  color: var(--pos-clay, #b5714a);
}
.actions .ghost[data-v-e833d26c] {
  background: transparent;
  border: 1px solid var(--pos-line, #e4d8c8);
  color: var(--pos-brown, #5c463a);
}
/*!
 * Vditor v3.11.2 - A markdown editor written in TypeScript.
 *
 * MIT License
 *
 * Copyright (c) 2018-present B3log 开源, b3log.org
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 */
/*!
 * Vditor v3.11.2 - A markdown editor written in TypeScript.
 *
 * MIT License
 *
 * Copyright (c) 2018-present B3log 开源, b3log.org
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 */
.vditor {
  --border-color: #d1d5da;
  --second-color: rgba(88, 96, 105, 0.36);
  --panel-background-color: #fff;
  --panel-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  --toolbar-background-color: #f6f8fa;
  --toolbar-icon-color: #586069;
  --toolbar-icon-hover-color: #4285f4;
  --toolbar-height: 35px;
  --toolbar-divider-margin-top: 8px;
  --textarea-background-color: #fafbfc;
  --textarea-text-color: #24292e;
  --resize-icon-color: var(--toolbar-icon-color);
  --resize-background-color: var(--toolbar-background-color);
  --resize-hover-icon-color: var(--panel-background-color);
  --resize-hover-background-color: var(--toolbar-icon-hover-color);
  --count-background-color: rgba(27, 31, 35, 0.05);
  --heading-border-color: #eaecef;
  --blockquote-color: #6a737d;
  --ir-heading-color: #660e7a;
  --ir-title-color: #808080;
  --ir-bi-color: #0033b3;
  --ir-link-color: #008000;
  --ir-bracket-color: #0000ff;
  --ir-paren-color: #008000;
}
.vditor--dark {
  --border-color: #141414;
  --second-color: rgba(185, 185, 185, 0.36);
  --panel-background-color: #24292e;
  --panel-shadow: 0 1px 2px rgba(255, 255, 255, 0.2);
  --toolbar-background-color: #1d2125;
  --toolbar-icon-color: #b9b9b9;
  --toolbar-icon-hover-color: #fff;
  --textarea-background-color: #2f363d;
  --textarea-text-color: #d1d5da;
  --resize-icon-color: var(--border-color);
  --resize-background-color: var(--second-color);
  --resize-hover-icon-color: var(--toolbar-icon-hover-color);
  --resize-hover-background-color: rgba(185, 185, 185, 0.86);
  --count-background-color: rgba(66, 133, 244, 0.36);
  --heading-border-color: var(--textarea-text-color);
  --blockquote-color: var(--toolbar-icon-color);
  --ir-heading-color: #9876aa;
  --ir-title-color: #808080;
  --ir-bi-color: #cc7832;
  --ir-link-color: #ffc66d;
  --ir-bracket-color: #287bde;
  --ir-paren-color: #6a8759;
}
/**
 * tool tip.
 *
 * @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
 * @version 0.1.0.0, Jan 25, 2019
 */
@keyframes tooltip-appear {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.vditor-tooltipped {
  position: relative;
  cursor: pointer;
}
.vditor-tooltipped::after {
  position: absolute;
  z-index: 1000000;
  display: none;
  padding: 5px 8px;
  font-size: 11px;
  font-weight: normal;
  -webkit-font-smoothing: subpixel-antialiased;
  color: #fff;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: break-word;
  white-space: pre;
  pointer-events: none;
  content: attr(aria-label);
  background: #3b3e43;
  border-radius: 3px;
  line-height: 16px;
  opacity: 0;
}
.vditor-tooltipped::before {
  position: absolute;
  z-index: 1000001;
  display: none;
  width: 0;
  height: 0;
  color: #3b3e43;
  pointer-events: none;
  content: "";
  border: 5px solid transparent;
  opacity: 0;
}
.vditor-tooltipped--hover::before,
.vditor-tooltipped--hover::after,
.vditor-tooltipped:hover::before,
.vditor-tooltipped:hover::after,
.vditor-tooltipped:active::before,
.vditor-tooltipped:active::after,
.vditor-tooltipped:focus::before,
.vditor-tooltipped:focus::after {
  display: inline-block;
  text-decoration: none;
  animation-name: tooltip-appear;
  animation-duration: 0.15s;
  animation-fill-mode: forwards;
  animation-timing-function: ease-in;
}
.vditor-tooltipped__s::after,
.vditor-tooltipped__se::after,
.vditor-tooltipped__sw::after {
  top: 100%;
  right: 50%;
  margin-top: 5px;
}
.vditor-tooltipped__s::before,
.vditor-tooltipped__se::before,
.vditor-tooltipped__sw::before {
  top: auto;
  right: 50%;
  bottom: -5px;
  margin-right: -5px;
  border-bottom-color: #3b3e43;
}
.vditor-tooltipped__se::after {
  right: auto;
  left: 50%;
  margin-left: -15px;
}
.vditor-tooltipped__sw::after {
  margin-right: -15px;
}
.vditor-tooltipped__n::after,
.vditor-tooltipped__ne::after,
.vditor-tooltipped__nw::after {
  right: 50%;
  bottom: 100%;
  margin-bottom: 5px;
}
.vditor-tooltipped__n::before,
.vditor-tooltipped__ne::before,
.vditor-tooltipped__nw::before {
  top: -5px;
  right: 50%;
  bottom: auto;
  margin-right: -5px;
  border-top-color: #3b3e43;
}
.vditor-tooltipped__ne::after {
  right: auto;
  left: 50%;
  margin-left: -15px;
}
.vditor-tooltipped__nw::after {
  margin-right: -15px;
}
.vditor-tooltipped__s::after,
.vditor-tooltipped__n::after {
  transform: translateX(50%);
}
.vditor-tooltipped__w::after {
  right: 100%;
  bottom: 50%;
  margin-right: 5px;
  transform: translateY(50%);
}
.vditor-tooltipped__w::before {
  top: 50%;
  bottom: 50%;
  left: -5px;
  margin-top: -5px;
  border-left-color: #3b3e43;
}
.vditor-tooltipped__e::after {
  bottom: 50%;
  left: 100%;
  margin-left: 5px;
  transform: translateY(50%);
}
.vditor-tooltipped__e::before {
  top: 50%;
  right: -5px;
  bottom: 50%;
  margin-top: -5px;
  border-right-color: #3b3e43;
}
@media screen and (max-width: 520px) {
  .vditor-tooltipped:before,
  .vditor-tooltipped:after {
    content: none;
  }
}
/**
 * panel.
 *
 * @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
 * @version 1.0.0.0, Jan 22, 2020
 */
@keyframes scale-in {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
.vditor-panel {
  background-color: var(--panel-background-color);
  position: absolute;
  box-shadow: var(--panel-shadow);
  border-radius: 3px;
  padding: 5px;
  z-index: 3;
  font-size: 14px;
  display: none;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  max-width: 320px;
  min-width: 80px;
  animation-duration: 0.15s;
  animation-name: scale-in;
  animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);
  color: var(--toolbar-icon-color);
}
.vditor-panel--none {
  padding: 0;
  animation: none;
  min-width: auto;
  max-width: none;
  white-space: nowrap;
  opacity: 0.86;
}
.vditor-panel--arrow:before {
  position: absolute;
  width: 0;
  height: 0;
  pointer-events: none;
  content: " ";
  border: 7px solid transparent;
  top: -14px;
  left: 5px;
  border-bottom-color: var(--panel-background-color);
}
.vditor-panel--left {
  right: 0;
}
.vditor-panel--left.vditor-panel--arrow:before {
  right: 5px;
  left: auto;
}
.vditor-input {
  border: 0;
  padding: 3px 5px;
  background-color: var(--panel-background-color);
  font-size: 12px;
  color: var(--textarea-text-color);
}
.vditor-input:focus {
  background-color: var(--toolbar-background-color);
  outline: none;
}
.vditor-icon {
  color: var(--toolbar-icon-color);
  cursor: pointer;
  float: left;
  padding: 4px 5px;
  height: 21px;
  width: 23px;
  background-color: transparent;
  border: 0;
  box-sizing: border-box;
}
.vditor-icon:hover,
.vditor-icon--current {
  color: var(--toolbar-icon-hover-color);
  background-color: transparent;
}
.vditor-icon:focus {
  outline: none;
}
.vditor-icon svg {
  height: 13px !important;
  width: 13px !important;
  float: left;
  fill: currentColor;
  pointer-events: none;
}
.vditor-toolbar {
  background-color: var(--toolbar-background-color);
  border-bottom: 1px solid var(--border-color);
  padding: 0 5px;
  line-height: 1;
}
.vditor-toolbar--pin {
  position: sticky;
  top: 0;
  z-index: 1;
}
.vditor-toolbar--hide {
  transition: all 0.15s ease-in-out;
  height: 5px;
  overflow: hidden;
}
.vditor-toolbar--hide:hover {
  background-color: var(--toolbar-background-color);
  height: auto;
  overflow: visible;
}
.vditor-toolbar__item {
  float: left;
  position: relative;
}
.vditor-toolbar__item .vditor-tooltipped {
  color: var(--toolbar-icon-color);
  border: 0;
  padding: 10px 5px;
  background-color: transparent;
  height: var(--toolbar-height);
  width: 25px;
  box-sizing: border-box;
  font-size: 0;
}
.vditor-toolbar__item .vditor-tooltipped:focus {
  outline: none;
}
.vditor-toolbar__item .vditor-tooltipped:focus {
  cursor: pointer;
  color: var(--toolbar-icon-hover-color);
}
.vditor-toolbar__item svg {
  fill: currentColor;
  display: inline-block;
  stroke-width: 0;
  stroke: currentColor;
  width: 15px;
  height: 15px;
}
.vditor-toolbar__item input {
  position: absolute;
  width: 25px;
  height: var(--toolbar-height);
  top: 0;
  left: 0;
  cursor: pointer;
  opacity: 0.001;
  overflow: hidden;
}
.vditor-toolbar__divider {
  float: left;
  height: calc(var(--toolbar-height) - (var(--toolbar-divider-margin-top) * 2));
  border-left: 1px solid var(--second-color);
  margin: var(--toolbar-divider-margin-top) 8px;
}
.vditor-toolbar__br {
  width: 100%;
  padding: 0 !important;
  height: 0 !important;
}
.vditor-menu--current {
  color: var(--toolbar-icon-hover-color) !important;
}
.vditor-menu--disabled {
  color: var(--second-color) !important;
  cursor: not-allowed !important;
}
.vditor-emojis {
  display: inline-block;
  overflow: auto;
}
.vditor-emojis::-webkit-scrollbar {
  display: none;
}
.vditor-emojis__tip {
  flex: 1;
  min-width: 1px;
  width: 200px;
  margin-right: 10px;
  color: var(--toolbar-icon-color);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.vditor-emojis__tail {
  margin-top: 5px;
  font-size: 12px;
  color: var(--toolbar-icon-color);
  display: flex;
}
.vditor-emojis__tail a {
  text-decoration: none;
  color: var(--toolbar-icon-color);
}
.vditor-emojis__tail a:hover {
  color: var(--toolbar-icon-hover-color);
}
.vditor-emojis button {
  cursor: pointer;
  border-radius: 3px;
  float: left;
  height: 30px;
  width: 30px;
  text-align: center;
  line-height: 26px;
  padding: 3px;
  box-sizing: border-box;
  font-size: 16px;
  transition: all 0.15s ease-in-out;
  border: 0;
  margin: 0;
  background-color: transparent;
  overflow: hidden;
}
.vditor-emojis button:focus {
  outline: none;
}
.vditor-emojis button:hover .vditor-emojis__icon {
  display: inline-block;
  transform: scale(1.2);
}
.vditor-emojis img {
  height: 20px;
  width: 20px;
  float: left;
  margin: 3px 0 0 3px;
}
@media screen and (max-width: 520px) {
  .vditor-toolbar__item {
    padding: 0 12px;
  }
  .vditor-panel--left.vditor-panel--arrow:before {
    right: 17px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .vditor-toolbar__item .vditor-tooltipped:hover {
    color: var(--toolbar-icon-hover-color);
  }
}
@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.vditor {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color);
  border-radius: 3px;
  box-sizing: border-box;
  font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
}
.vditor--fullscreen {
  position: fixed;
  top: 0;
  width: 100% !important;
  left: 0;
  height: 100vh !important;
  z-index: 90;
  border-radius: 0;
}
.vditor-content {
  display: flex;
  min-height: 60px;
  flex: 1;
  min-width: 1px;
  position: relative;
}
.vditor-preview {
  flex: 1;
  min-width: 1px;
  overflow: auto;
  margin-left: -1px;
  border-left: 1px solid var(--border-color);
  box-sizing: border-box;
  border-radius: 0 0 3px 0;
  background-color: var(--textarea-background-color);
}
.vditor-preview::-webkit-scrollbar {
  display: none;
}
.vditor-preview__action {
  text-align: center;
  padding: 10px;
  background-color: var(--toolbar-background-color);
}
.vditor-preview__action button {
  background-color: var(--toolbar-background-color);
  color: var(--toolbar-icon-color);
  line-height: 20px;
  border: 0;
  margin: 0 10px;
  cursor: pointer;
  padding: 0 7px;
  font-size: 12px;
}
.vditor-preview__action button.vditor-preview__action--current,
.vditor-preview__action button:hover {
  color: var(--toolbar-icon-hover-color);
  background-color: var(--toolbar-background-color);
}
.vditor-preview__action button:focus {
  outline: none;
}
.vditor-preview__action button svg {
  fill: currentColor;
  height: 15px;
  width: 15px;
  vertical-align: middle;
}
.vditor-preview > .vditor-reset {
  padding: 10px;
  margin: 0 auto;
}
.vditor-preview img:not(.emoji) {
  cursor: pointer;
}
.vditor-devtools {
  display: none;
  background-color: var(--textarea-background-color);
  overflow: auto;
  flex: 1;
  min-width: 1px;
  box-shadow: inset 1px 0 var(--border-color);
  box-sizing: border-box;
  border-radius: 0 0 3px 0;
  padding: 10px;
}
.vditor-counter {
  padding: 3px;
  color: var(--toolbar-icon-color);
  background-color: var(--count-background-color);
  border-radius: 3px;
  font-size: 12px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  float: right;
  margin: 8px 3px 0 0;
}
.vditor-counter--error {
  color: #d23f31;
  background-color: rgba(210, 63, 49, 0.1);
}
.vditor-resize {
  padding: 3px 0;
  cursor: row-resize;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  position: absolute;
  width: 100%;
}
.vditor-resize--top {
  top: -3px;
}
.vditor-resize--bottom {
  bottom: -3px;
}
.vditor-resize > div {
  height: 3px;
  background-color: var(--resize-background-color);
  transition: all 0.15s ease-in-out;
}
.vditor-resize:hover > div,
.vditor-resize--selected > div {
  background-color: var(--resize-hover-background-color);
}
.vditor-resize:hover svg,
.vditor-resize--selected svg {
  color: var(--resize-hover-icon-color);
}
.vditor-resize svg {
  fill: currentColor;
  stroke-width: 0;
  stroke: currentColor;
  width: 13px;
  height: 3px;
  display: block;
  margin: 0 auto;
  color: var(--resize-icon-color);
}
.vditor-upload {
  position: absolute;
  height: 3px;
  left: 0;
  top: -2px;
  transition: all 0.15s ease-in-out;
  background-color: #4285f4;
}
.vditor-tip {
  position: absolute;
  font-size: 12px;
  top: 10px;
  animation-duration: 0.15s;
  animation-fill-mode: both;
  left: 50%;
  z-index: 5;
}
.vditor-tip--show {
  display: block;
  animation-name: slideInDown;
}
.vditor-tip__content {
  text-align: left;
  display: inline-block;
  line-height: 16px;
  padding: 3px 10px;
  border-radius: 3px;
  background: var(--toolbar-background-color);
  position: relative;
  margin-left: -50%;
  color: var(--toolbar-icon-color);
  max-width: 100%;
  box-shadow: var(--panel-shadow);
}
.vditor-tip__content ul {
  margin: 2px 0;
  padding: 0 0 0 18px;
}
.vditor-tip__content a {
  color: #4285f4;
}
.vditor-tip__close {
  position: absolute;
  color: var(--toolbar-icon-color);
  top: -7px;
  right: -15px;
  font-weight: bold;
  cursor: pointer;
}
.vditor-tip__close:hover {
  color: var(--toolbar-icon-hover-color);
}
.vditor-img {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  z-index: 100;
}
.vditor-img__bar {
  border-bottom: 1px solid var(--border-color);
  background-color: var(--toolbar-background-color);
  text-align: center;
  height: 36px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vditor-img__btn {
  display: flex;
  align-items: center;
  cursor: pointer;
  margin-left: 24px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  color: var(--toolbar-icon-color);
}
.vditor-img__btn:hover {
  color: var(--toolbar-icon-hover-color);
}
.vditor-img__btn svg {
  height: 14px;
  width: 14px;
  margin-right: 8px;
  fill: currentColor;
}
.vditor-img__img {
  flex: 1;
  background-color: var(--textarea-background-color);
  overflow: auto;
  cursor: zoom-out;
}
.vditor-img__img img {
  max-width: none;
}
.vditor-hint {
  background-color: var(--panel-background-color);
  position: absolute;
  box-shadow: var(--panel-shadow);
  border-radius: 3px;
  padding: 5px 0;
  z-index: 4;
  line-height: 20px;
  list-style: none;
  font-size: 12px;
  margin: 0;
  max-width: 250px;
  min-width: 80px;
  display: none;
}
.vditor-hint .vditor-hint {
  margin-top: -31px;
  left: 100%;
  right: auto;
}
.vditor-hint .vditor-hint.vditor-panel--left {
  right: 100%;
  left: auto;
}
.vditor-hint button {
  color: var(--toolbar-icon-color);
  display: block;
  padding: 3px 10px;
  border: 0;
  border-radius: 0;
  line-height: 20px;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  margin: 0;
  background-color: transparent;
  cursor: pointer;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.vditor-hint button:focus {
  outline: none;
}
.vditor-hint--current,
.vditor-hint button:not(.vditor-menu--disabled):hover {
  background-color: var(--toolbar-background-color) !important;
  color: var(--toolbar-icon-hover-color) !important;
}
.vditor-hint__emoji {
  font-size: 16px;
  float: left;
  margin-right: 3px;
}
.vditor-hint img {
  height: 20px;
  width: 20px;
  float: left;
  margin-right: 3px;
}
.vditor-reset {
  color: #24292e;
  font-variant-ligatures: no-common-ligatures;
  font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
  word-wrap: break-word;
  overflow: auto;
  line-height: 1.5;
  font-size: 16px;
  word-break: break-word;
}
.vditor-reset--anchor {
  padding-left: 20px;
}
.vditor-reset--error {
  color: #d23f31;
  font-size: 12px;
  display: block;
  line-height: 16px;
}
.vditor-reset ul ul ul {
  list-style-type: square;
}
.vditor-reset ul ul {
  list-style-type: circle;
}
.vditor-reset ul {
  list-style-type: disc;
}
.vditor-reset ul,
.vditor-reset ol {
  padding-left: 2em;
  margin-top: 0;
  margin-bottom: 16px;
}
.vditor-reset li + li {
  margin-top: 0.25em;
}
.vditor-reset li p {
  margin-top: 16px;
}
.vditor-reset audio {
  max-width: 100%;
}
.vditor-reset audio:focus {
  outline: none;
}
.vditor-reset video {
  max-height: 90vh;
  max-width: 100%;
}
.vditor-reset img {
  max-width: 100%;
}
.vditor-reset img.emoji {
  cursor: auto;
  max-width: 20px;
  vertical-align: sub;
}
.vditor-reset h1,
.vditor-reset h2,
.vditor-reset h3,
.vditor-reset h4,
.vditor-reset h5,
.vditor-reset h6 {
  margin-top: 24px;
  margin-bottom: 16px;
  font-weight: 600;
  line-height: 1.25;
}
.vditor-reset h1:hover .vditor-anchor svg,
.vditor-reset h2:hover .vditor-anchor svg,
.vditor-reset h3:hover .vditor-anchor svg,
.vditor-reset h4:hover .vditor-anchor svg,
.vditor-reset h5:hover .vditor-anchor svg,
.vditor-reset h6:hover .vditor-anchor svg {
  visibility: visible;
}
.vditor-reset h1 {
  font-size: 1.75em;
}
.vditor-reset h2 {
  font-size: 1.55em;
}
.vditor-reset h3 {
  font-size: 1.38em;
}
.vditor-reset h4 {
  font-size: 1.25em;
}
.vditor-reset h5 {
  font-size: 1.13em;
}
.vditor-reset h6 {
  font-size: 1em;
}
.vditor-reset hr {
  height: 2px;
  padding: 0;
  margin: 24px 0;
  background-color: #eaecef;
  border: 0;
}
.vditor-reset p {
  margin-top: 0;
  margin-bottom: 16px;
}
.vditor-reset blockquote {
  padding: 0 1em;
  color: #6a737d;
  border-left: 0.25em solid #eaecef;
  margin: 0 0 16px 0;
}
.vditor-reset blockquote > :first-child {
  margin-top: 0;
}
.vditor-reset blockquote > :last-child {
  margin-bottom: 0;
}
.vditor-reset ins > iframe {
  border: 0;
}
.vditor-reset iframe {
  border: 1px solid #d1d5da;
  max-width: 100%;
  box-sizing: border-box;
}
.vditor-reset iframe.iframe__video {
  min-width: 80%;
  min-height: 36vh;
}
.vditor-reset table {
  border-collapse: collapse;
  empty-cells: show;
  margin-bottom: 16px;
  overflow: auto;
  border-spacing: 0;
  display: block;
  word-break: keep-all;
  width: 100%;
}
.vditor-reset table tr {
  background-color: #fafbfc;
  border-top: 1px solid #c6cbd1;
}
.vditor-reset table td,
.vditor-reset table th {
  padding: 6px 13px;
  border: 1px solid #dfe2e5;
  word-break: normal;
  white-space: nowrap;
}
.vditor-reset table td:first-child::after,
.vditor-reset table th:first-child::after {
  content: "";
  display: inline-block;
  vertical-align: top;
  min-height: 24px;
}
.vditor-reset table th {
  font-weight: 600;
}
.vditor-reset table tbody tr:nth-child(2n) {
  background-color: #fff;
}
.vditor-reset code:not(.hljs):not(.highlight-chroma) {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  border-radius: 3px;
  font-family: mononoki, Consolas, "Liberation Mono", Menlo, Courier, monospace, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
  word-break: break-word;
  background-size: 20px 20px;
  white-space: pre-wrap;
}
.vditor-reset pre {
  margin: 1em 0;
}
.vditor-reset pre > code {
  margin: 0;
  font-size: 85%;
  padding: 0.5em;
  border-radius: 5px;
  display: block;
  overflow: auto;
  white-space: pre;
  font-family: mononoki, Consolas, "Liberation Mono", Menlo, Courier, monospace, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
  background-size: 20px 20px;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==);
  word-break: initial;
  word-wrap: normal;
}
.vditor-reset pre:hover div.vditor-copy {
  display: block;
}
.vditor-reset .language-math,
.vditor-reset .language-echarts,
.vditor-reset .language-mindmap,
.vditor-reset .language-plantuml,
.vditor-reset .language-mermaid,
.vditor-reset .language-smiles,
.vditor-reset .language-markmap,
.vditor-reset .language-abc,
.vditor-reset .language-flowchart,
.vditor-reset .language-graphviz {
  margin-bottom: 16px;
}
.vditor-reset .language-math mjx-container:focus {
  outline: none;
  cursor: context-menu;
}
.vditor-reset .language-math .katex-display > .katex > .katex-html > .tag {
  display: inline-block;
  font-size: 1.21rem;
  right: 2px;
}
.vditor-reset .language-echarts,
.vditor-reset .language-mindmap {
  overflow: hidden;
  height: 420px;
}
.vditor-reset .language-mermaid,
.vditor-reset .language-markmap,
.vditor-reset .language-flowchart,
.vditor-reset .language-graphviz {
  text-align: center;
}
.vditor-reset .language-graphviz parsererror {
  overflow: auto;
}
.vditor-reset kbd {
  display: inline-block;
  padding: 3px 5px;
  font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
  line-height: 10px;
  color: #24292e;
  vertical-align: middle;
  background-color: #fafbfc;
  border: solid 1px #d1d5da;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #d1d5da;
}
.vditor-reset summary {
  cursor: pointer;
}
.vditor-reset summary:focus {
  outline: none;
}
.vditor-reset svg {
  height: auto;
  width: auto;
  stroke-width: initial;
}
.vditor-reset p:last-child,
.vditor-reset blockquote:last-child,
.vditor-reset pre:last-child,
.vditor-reset ul:last-child,
.vditor-reset ol:last-child,
.vditor-reset hr:last-child {
  margin-bottom: 0;
}
.vditor-comment {
  border-bottom: 2px solid #f8e6ab;
}
.vditor-comment--focus,
.vditor-comment--hover {
  background-color: #faf1d1;
  border-bottom: 2px solid #ffc60a;
}
.vditor-comment--focus .vditor-comment,
.vditor-comment--hover .vditor-comment {
  border-bottom: 2px solid #ffc60a;
}
.vditor-task {
  list-style: none !important;
  word-break: break-all;
}
.vditor-task input {
  margin: 0 0.2em 0.25em -1.6em;
  font-size: 12px;
  vertical-align: middle;
}
.vditor-copy {
  position: relative;
  display: none;
  z-index: 1;
}
.vditor-copy textarea {
  position: absolute;
  left: -100000px;
  height: 10px;
}
.vditor-copy span {
  cursor: pointer;
  position: absolute;
  right: 15px;
  top: 0.5em;
}
.vditor-copy svg {
  color: #586069;
  height: 14px;
  width: 14px !important;
  display: block;
  fill: currentColor;
}
.vditor-linenumber {
  padding-left: 4em !important;
  position: relative;
}
.vditor-linenumber__rows {
  position: absolute;
  pointer-events: none;
  top: 1em;
  left: 0;
  width: 3em;
  /* works for line-numbers below 1000 lines */
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  counter-reset: linenumber;
}
.vditor-linenumber__rows > span {
  pointer-events: none;
  display: block;
}
.vditor-linenumber__rows > span::before {
  counter-increment: linenumber;
  content: counter(linenumber);
  color: rgba(158, 150, 150, 0.38);
  display: block;
  padding-right: 1em;
  text-align: right;
}
.vditor-speech {
  position: absolute;
  display: none;
  background-color: #f6f8fa;
  border: 1px solid #d1d5da;
  border-radius: 3px;
  padding: 3px;
  cursor: pointer;
  color: #586069;
}
.vditor-speech:hover,
.vditor-speech--current {
  color: #4285f4;
}
.vditor-speech svg {
  height: 14px;
  width: 14px;
  fill: currentColor;
  display: block;
  stroke-width: 0;
  stroke: currentColor;
}
.vditor-anchor {
  margin-left: 5px;
}
.vditor-anchor--left {
  float: left;
  padding-right: 4px;
  margin-left: -20px;
}
.vditor-anchor svg {
  visibility: hidden;
}
.vditor-anchor:hover svg {
  visibility: visible;
}
.vditor-anchor:focus {
  outline: none;
}
.vditor-linkcard {
  margin: 31px auto 16px;
  transition: all 0.15s ease-in-out;
  cursor: pointer;
  max-width: 768px;
  padding: 0 10px;
}
.vditor-linkcard a {
  border-radius: 3px;
  background-color: #f6f8fa;
  overflow: hidden;
  max-height: 250px;
  display: flex;
  text-decoration: none;
  flex-wrap: wrap-reverse;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.vditor-linkcard a:hover {
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.13), 0 3px 6px rgba(0, 0, 0, 0.26);
  text-decoration: none;
}
.vditor-linkcard a:visited .vditor-linkcard__abstract {
  color: rgba(88, 96, 105, 0.36);
}
.vditor-linkcard__info {
  padding: 10px;
  min-width: 200px;
  box-sizing: border-box;
  flex: 1;
}
.vditor-linkcard__title {
  font-size: 14px;
  font-weight: 400;
  color: #24292e;
  display: flex;
  align-items: center;
}
.vditor-linkcard__title img {
  cursor: pointer;
  height: 20px;
  width: 20px;
  border-radius: 3px;
  flex-shrink: 0;
  margin-right: 5px;
}
.vditor-linkcard__abstract {
  word-wrap: break-word;
  word-break: break-all;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  font-size: 13px;
  color: #586069;
  margin: 5px 0;
}
.vditor-linkcard__site {
  font-size: 12px;
  color: #4285f4;
}
.vditor-linkcard__image {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  max-width: 250px;
  min-width: 126px;
  cursor: pointer;
  background-color: rgba(88, 96, 105, 0.36);
}
.vditor-footnotes__goto-ref {
  text-decoration: none;
}
.vditor-toc {
  margin-bottom: 16px;
  -webkit-user-select: text;
     -moz-user-select: text;
          user-select: text;
  color: #4285f4;
}
.vditor-toc .vditor-outline__action {
  display: none;
}
.vditor-toc ul {
  list-style: none !important;
  padding-left: 1em;
}
.vditor-toc > ul {
  padding-left: 0;
}
.vditor-toc span {
  cursor: pointer;
}
.vditor-toc li > span > svg {
  width: 0;
  height: 0;
}
.vditor-outline {
  width: 250px;
  border-right: 1px solid var(--border-color);
  background-color: var(--panel-background-color);
  display: none;
  overflow: auto;
}
.vditor-outline--right {
  border-right: 0;
  border-left: 1px solid var(--border-color);
}
.vditor-outline::-webkit-scrollbar {
  display: none;
}
.vditor-outline ul {
  list-style: none !important;
  padding-left: 1em;
  margin: 0;
}
.vditor-outline__content > ul {
  padding-left: 0;
}
.vditor-outline li > span {
  display: flex;
  align-items: center;
  padding: 5px 10px;
  cursor: pointer;
  color: var(--textarea-text-color);
}
.vditor-outline li > span > svg {
  height: 10px;
  width: 10px;
  flex-shrink: 0;
}
.vditor-outline li > span:hover {
  color: var(--toolbar-icon-hover-color);
}
.vditor-outline li > span > span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.vditor-outline__title {
  border-bottom: 1px dashed var(--border-color);
  padding: 5px 10px;
  color: var(--toolbar-icon-color);
  font-size: 12px;
}
.vditor-outline__action {
  transition: all 0.15s ease-in-out;
  fill: currentColor;
  margin-right: 5px;
  flex-shrink: 0;
}
.vditor-outline__action--close {
  transform: rotate(-90deg);
}
.vditor-wysiwyg {
  box-sizing: border-box;
  flex: 1;
  position: relative;
  width: 100%;
  min-width: 1px;
}
.vditor-wysiwyg pre.vditor-reset {
  background-color: var(--panel-background-color);
  margin: 0;
  white-space: pre-wrap;
  height: 100%;
  box-sizing: border-box;
}
.vditor-wysiwyg pre.vditor-reset[contenteditable="false"] {
  opacity: 0.3;
  cursor: not-allowed;
}
.vditor-wysiwyg pre.vditor-reset:empty::before {
  content: attr(placeholder);
  color: var(--second-color);
}
.vditor-wysiwyg pre.vditor-reset:focus {
  outline: none;
  background-color: var(--textarea-background-color);
}
.vditor-wysiwyg pre.vditor-reset:after {
  content: "";
  height: var(--editor-bottom);
  display: block;
}
.vditor-wysiwyg blockquote:empty::before,
.vditor-wysiwyg pre > code:empty::before,
.vditor-wysiwyg p:empty::before,
.vditor-wysiwyg h1:empty::after,
.vditor-wysiwyg h2:empty::after,
.vditor-wysiwyg h3:empty::after,
.vditor-wysiwyg h4:empty::after,
.vditor-wysiwyg h5:empty::after,
.vditor-wysiwyg h6:empty::after {
  content: ' ';
}
.vditor-wysiwyg code[data-marker="`"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.vditor-wysiwyg__block pre:first-child {
  margin-bottom: -1em;
}
.vditor-wysiwyg__block pre:first-child code {
  color: var(--textarea-text-color);
  height: auto;
  text-align: left;
}
.vditor-wysiwyg__block pre:last-child {
  margin-bottom: 1em;
}
.vditor-wysiwyg__preview {
  cursor: pointer;
  white-space: initial;
  min-height: 27px;
}
.vditor-wysiwyg > .vditor-reset > h1:before,
.vditor-wysiwyg > .vditor-reset > h2:before,
.vditor-wysiwyg > .vditor-reset > h3:before,
.vditor-wysiwyg > .vditor-reset > h4:before,
.vditor-wysiwyg > .vditor-reset > h5:before,
.vditor-wysiwyg > .vditor-reset > h6:before,
.vditor-wysiwyg div.vditor-wysiwyg__block:before,
.vditor-wysiwyg div[data-type="link-ref-defs-block"]:before,
.vditor-wysiwyg div[data-type="footnotes-block"]:before,
.vditor-wysiwyg .vditor-toc:before {
  float: left;
  padding-right: 4px;
  margin-left: -29px;
  content: 'H1';
  font-size: 0.85rem;
  font-weight: normal;
  color: var(--second-color);
}
.vditor-wysiwyg > .vditor-reset > h2:before {
  content: 'H2';
}
.vditor-wysiwyg > .vditor-reset > h3:before {
  content: 'H3';
}
.vditor-wysiwyg > .vditor-reset > h4:before {
  content: 'H4';
}
.vditor-wysiwyg > .vditor-reset > h5:before {
  content: 'H5';
}
.vditor-wysiwyg > .vditor-reset > h6:before {
  content: 'H6';
}
.vditor-wysiwyg div[data-type="link-ref-defs-block"]:before {
  content: '"A"';
}
.vditor-wysiwyg div[data-type="footnotes-block"]:before {
  content: '^F';
}
.vditor-wysiwyg div.vditor-wysiwyg__block:before {
  content: "</>";
}
.vditor-wysiwyg div.vditor-wysiwyg__block[data-type="yaml-front-matter"]:before {
  content: "F";
}
.vditor-wysiwyg div.vditor-wysiwyg__block[data-type="math-block"]:before {
  content: "$$";
}
.vditor-wysiwyg .vditor-toc:before {
  content: "ToC";
}
.vditor-wysiwyg hr {
  display: inline-block;
  margin: 12px 0;
  width: 100%;
}
.vditor-wysiwyg details {
  white-space: initial;
}
.vditor-wysiwyg a {
  cursor: pointer;
}
.vditor-wysiwyg span[data-type="backslash"] > span {
  display: none;
  color: var(--second-color);
}
.vditor-wysiwyg span[data-type="link-ref"],
.vditor-wysiwyg sup[data-type="footnotes-ref"] {
  color: #4285f4;
}
.vditor-wysiwyg span[data-type="toc-h"] {
  color: #4285f4;
  text-decoration: underline;
}
.vditor-wysiwyg div[data-type="footnotes-block"] {
  border-top: 2px solid var(--heading-border-color);
  padding-top: 24px;
  margin-top: 24px;
}
.vditor-wysiwyg div[data-type="link-ref-defs-block"] {
  color: var(--blockquote-color);
}
@media screen and (max-width: 520px) {
  .vditor-wysiwyg h1:before,
  .vditor-wysiwyg h2:before,
  .vditor-wysiwyg h3:before,
  .vditor-wysiwyg h4:before,
  .vditor-wysiwyg h5:before,
  .vditor-wysiwyg h6:before,
  .vditor-wysiwyg div.vditor-wysiwyg__block:before,
  .vditor-wysiwyg div[data-type="link-ref-defs-block"]:before,
  .vditor-wysiwyg div[data-type="footnotes-block"]:before,
  .vditor-wysiwyg .vditor-toc:before {
    content: none;
  }
}
.vditor-ir {
  box-sizing: border-box;
  flex: 1;
  min-width: 1px;
  position: relative;
  width: 100%;
}
.vditor-ir__node[data-type="code-block"]:before,
.vditor-ir__node[data-type="code-block"]:after,
.vditor-ir__node[data-type="yaml-front-matter"]:before,
.vditor-ir__node[data-type="yaml-front-matter"]:after,
.vditor-ir__node[data-type="math-block"]:before,
.vditor-ir__node[data-type="math-block"]:after {
  content: ' ';
  color: var(--second-color);
}
.vditor-ir__node:not(.vditor-ir__node--expand) .vditor-ir__marker {
  padding: 0 !important;
}
.vditor-ir__node:not(.vditor-ir__node--expand)[data-type="a"] {
  cursor: pointer;
}
.vditor-ir__node[data-type="link-ref"],
.vditor-ir__node[data-type="footnotes-ref"] {
  color: #4285f4;
}
.vditor-ir__node[data-type="html-block"] {
  margin-bottom: 1em;
}
.vditor-ir__node .vditor-ir__marker {
  width: 0;
  overflow: hidden;
  display: inline-block;
  height: 0;
  transition: all 0.15s ease-in-out;
}
.vditor-ir__node--hidden .vditor-ir__marker {
  visibility: hidden;
}
.vditor-ir__node--expand .vditor-ir__marker {
  color: var(--second-color);
  display: inline;
  height: auto;
  width: auto;
}
.vditor-ir__node--expand .vditor-ir__marker--hide {
  display: none;
}
.vditor-ir__node--expand .vditor-ir__marker--heading {
  color: var(--ir-heading-color);
}
.vditor-ir__node--expand .vditor-ir__marker--bi {
  color: var(--ir-bi-color);
}
.vditor-ir__node--expand .vditor-ir__marker--link {
  color: var(--ir-link-color);
}
.vditor-ir__node--expand .vditor-ir__marker--title {
  color: var(--ir-title-color);
}
.vditor-ir__node--expand .vditor-ir__marker--bracket {
  color: var(--ir-bracket-color);
  text-decoration: underline;
}
.vditor-ir__node--expand .vditor-ir__marker--paren {
  color: var(--ir-paren-color);
}
.vditor-ir__node--expand .vditor-ir__marker--info {
  color: var(--ir-heading-color);
}
.vditor-ir__node--expand .vditor-ir__marker--pre code {
  color: var(--textarea-text-color);
  height: auto;
  text-align: left;
}
.vditor-ir__node--expand[data-type="code-block"]:before,
.vditor-ir__node--expand[data-type="code-block"]:after {
  content: '```';
}
.vditor-ir__node--expand[data-type="yaml-front-matter"]:before,
.vditor-ir__node--expand[data-type="yaml-front-matter"]:after {
  content: '---';
}
.vditor-ir__node--expand[data-type="math-block"]:before,
.vditor-ir__node--expand[data-type="math-block"]:after {
  content: '$$';
}
.vditor-ir__node span[data-type="code-block-open-marker"],
.vditor-ir__node span[data-type="code-block-close-marker"],
.vditor-ir__node span[data-type="yaml-front-matter-open-marker"],
.vditor-ir__node span[data-type="yaml-front-matter-close-marker"],
.vditor-ir__node span[data-type="math-block-open-marker"],
.vditor-ir__node span[data-type="math-block-close-marker"] {
  display: none;
}
.vditor-ir__preview {
  cursor: pointer;
  white-space: initial;
  min-height: 27px;
}
.vditor-ir__link {
  color: var(--ir-bracket-color);
  text-decoration: underline;
}
.vditor-ir pre.vditor-reset {
  background-color: var(--panel-background-color);
  margin: 0;
  white-space: pre-wrap;
  height: 100%;
  box-sizing: border-box;
}
.vditor-ir pre.vditor-reset[contenteditable="false"] {
  opacity: 0.3;
  cursor: not-allowed;
}
.vditor-ir pre.vditor-reset:empty::before {
  content: attr(placeholder);
  color: var(--second-color);
}
.vditor-ir pre.vditor-reset:focus {
  outline: none;
  background-color: var(--textarea-background-color);
}
.vditor-ir pre.vditor-reset:after {
  content: "";
  height: var(--editor-bottom);
  display: block;
}
.vditor-ir pre.vditor-reset pre {
  margin: 0;
}
.vditor-ir hr {
  display: inline-block;
  margin: 12px 0;
  width: 100%;
}
.vditor-ir blockquote:empty::before,
.vditor-ir pre > code:empty::before,
.vditor-ir p:empty::before,
.vditor-ir h1:empty::after,
.vditor-ir h2:empty::after,
.vditor-ir h3:empty::after,
.vditor-ir h4:empty::after,
.vditor-ir h5:empty::after,
.vditor-ir h6:empty::after {
  content: ' ';
}
.vditor-ir .vditor-reset > h1:before,
.vditor-ir .vditor-reset > h2:before,
.vditor-ir .vditor-reset > h3:before,
.vditor-ir .vditor-reset > h4:before,
.vditor-ir .vditor-reset > h5:before,
.vditor-ir .vditor-reset > h6:before,
.vditor-ir div[data-type="link-ref-defs-block"]:before,
.vditor-ir div[data-type="footnotes-block"]:before,
.vditor-ir .vditor-toc:before {
  float: left;
  padding-right: 4px;
  margin-left: -29px;
  content: 'H1';
  font-size: 0.85rem;
  font-weight: normal;
  color: var(--second-color);
}
.vditor-ir .vditor-reset > h2:before {
  content: 'H2';
}
.vditor-ir .vditor-reset > h3:before {
  content: 'H3';
}
.vditor-ir .vditor-reset > h4:before {
  content: 'H4';
}
.vditor-ir .vditor-reset > h5:before {
  content: 'H5';
}
.vditor-ir .vditor-reset > h6:before {
  content: 'H6';
}
.vditor-ir div[data-type="link-ref-defs-block"] {
  color: var(--blockquote-color);
}
.vditor-ir div[data-type="link-ref-defs-block"]:before {
  content: '"A"';
}
.vditor-ir div[data-type="footnotes-block"] {
  border-top: 2px solid var(--heading-border-color);
  padding-top: 24px;
  margin-top: 24px;
}
.vditor-ir div[data-type="footnotes-block"]:before {
  content: '^F';
}
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > ul,
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > ol,
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > p,
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > blockquote,
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > pre,
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > table,
.vditor-ir div[data-type="footnotes-block"] > div[data-type="footnotes-def"] > hr {
  margin-left: 8px;
}
.vditor-ir .vditor-toc:before {
  content: "ToC";
}
.vditor-ir .vditor-toc span[data-type="toc-h"] {
  color: #4285f4;
  text-decoration: underline;
}
@media screen and (max-width: 520px) {
  .vditor-ir h1:before,
  .vditor-ir h2:before,
  .vditor-ir h3:before,
  .vditor-ir h4:before,
  .vditor-ir h5:before,
  .vditor-ir h6:before,
  .vditor-ir div[data-type="link-ref-defs-block"]:before,
  .vditor-ir div[data-type="footnotes-block"]:before,
  .vditor-ir .vditor-toc:before {
    content: none;
  }
}
.vditor-sv {
  font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
  margin: 0 1px 0 0;
  overflow: auto;
  width: 100%;
  flex: 1;
  min-width: 1px;
  border: 0;
  resize: none;
  padding: 10px 9px 10px 10px;
  box-sizing: border-box;
  background-color: var(--panel-background-color);
  outline: 0 none;
  font-size: 16px;
  line-height: 22px;
  color: var(--textarea-text-color);
  border-radius: 0 0 3px 3px;
  font-variant-ligatures: no-common-ligatures;
  white-space: pre-wrap;
  word-break: break-word;
  word-wrap: break-word;
}
.vditor-sv[contenteditable="false"] {
  opacity: 0.3;
  cursor: not-allowed;
}
.vditor-sv:empty::before {
  content: attr(placeholder);
  color: var(--second-color);
}
.vditor-sv:focus {
  background-color: var(--textarea-background-color);
}
.vditor-sv:after {
  content: "";
  height: var(--editor-bottom);
  display: block;
}
.vditor-sv span[data-type="newline"] + span[data-type="text"]:empty {
  display: inherit;
}
.vditor-sv .sup {
  vertical-align: super;
  font-size: smaller;
}
.vditor-sv .strong {
  font-weight: bold;
}
.vditor-sv .em {
  font-style: italic;
}
.vditor-sv .s {
  text-decoration: line-through;
}
.vditor-sv .mark:not(.vditor-sv__marker) {
  background-color: yellow;
  color: black;
}
.vditor-sv .h1 {
  font-size: 1.75em;
  line-height: 44px;
}
.vditor-sv .h2 {
  font-size: 1.55em;
  line-height: 38px;
}
.vditor-sv .h3 {
  font-size: 1.38em;
  line-height: 27px;
}
.vditor-sv .h4 {
  font-size: 1.25em;
  line-height: 25px;
}
.vditor-sv .h5 {
  font-size: 1.13em;
}
.vditor-sv .h6 {
  font-size: 1em;
}
.vditor-sv__marker {
  color: var(--second-color);
}
.vditor-sv__marker--heading {
  color: var(--ir-heading-color);
}
.vditor-sv__marker--bi {
  color: var(--ir-bi-color);
}
.vditor-sv__marker--link {
  color: var(--ir-link-color);
}
.vditor-sv__marker--title {
  color: var(--ir-title-color);
}
.vditor-sv__marker--bracket {
  color: var(--ir-bracket-color);
}
.vditor-sv__marker--paren {
  color: var(--ir-paren-color);
}
.vditor-sv__marker--info {
  color: var(--ir-heading-color);
}
.vditor-sv__marker--strong {
  font-weight: bold;
}


/* 视觉系统规范 v1（禅茶暖色）：--pos-* 为唯一色源。两栏铺满弹层宽度。 */
.bpick[data-v-84b39e28] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(196px, 32%);
  min-height: 280px;
  max-height: min(42vh, 420px);
  border: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 6px;
  background: var(--pos-card, #fbf5ea);
  overflow: hidden;
}
.bpick-catalog[data-v-84b39e28],
.bpick-chosen[data-v-84b39e28] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
.bpick-chosen[data-v-84b39e28] {
  border-left: 1px solid var(--pos-line, #e0d3c0);
  background: var(--pos-paper, #f6efe3);
}
.bpick-search[data-v-84b39e28] {
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-bottom: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 0;
  background: transparent;
  font-size: 13px;
  color: var(--pos-ink, #382a1f);
  box-sizing: border-box;
}
.bpick-search[data-v-84b39e28]:focus {
  outline: none;
  border-bottom-color: var(--pos-clay, #b5714a);
}
.bpick-search[data-v-84b39e28]::placeholder {
  color: var(--pos-muted, #8a7a68);
}
.bpick-list[data-v-84b39e28],
.bpick-chosen-list[data-v-84b39e28] {
  margin: 0;
  padding: 0;
  list-style: none;
  flex: 1;
  overflow-y: auto;
}
.bpick-empty[data-v-84b39e28] {
  padding: 16px 10px;
  font-size: 12px;
  color: var(--pos-muted, #8a7a68);
  text-align: center;
}
.bpick-group + .bpick-group[data-v-84b39e28] {
  margin-top: 2px;
}
.bpick-ghead[data-v-84b39e28] {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0;
  padding: 6px 10px 4px;
  border-bottom: 1px solid var(--pos-line, #e0d3c0);
  background: var(--pos-card, #fbf5ea);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--pos-muted, #8a7a68);
}
.bpick-row[data-v-84b39e28] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  cursor: pointer;
  font-size: 13px;
  color: var(--pos-ink, #382a1f);
}
@supports not (gap: 1px) {
.bpick-row[data-v-84b39e28] > * + * {
    margin-left: 8px;
}
}
.bpick-row[data-v-84b39e28]:hover {
  background: var(--pos-paper, #f6efe3);
}
.bpick-row.on[data-v-84b39e28] {
  background: var(--pos-paper, #f6efe3);
  box-shadow: var(--pos-ring-clay, inset 0 0 0 1.5px #b5714a);
}
.bpick-row.off[data-v-84b39e28] {
  cursor: not-allowed;
  opacity: 0.55;
}
.bpick-row.off[data-v-84b39e28]:hover {
  background: transparent;
}
.bpick-row input[type="checkbox"][data-v-84b39e28] {
  accent-color: var(--pos-clay, #b5714a);
}
.bpick-name[data-v-84b39e28] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bpick-tag[data-v-84b39e28] {
  flex: 0 0 auto;
  padding: 0 5px;
  border: 1px solid var(--pos-clay, #b5714a);
  border-radius: 2px;
  font-size: 11px;
  line-height: 16px;
  color: var(--pos-clay, #b5714a);
}
.bpick-price[data-v-84b39e28],
.bpick-cat[data-v-84b39e28] {
  font-size: 12px;
  color: var(--pos-brown, #6e5340);
  font-variant-numeric: tabular-nums;
}
.bpick-cat[data-v-84b39e28] {
  color: var(--pos-muted, #8a7a68);
}
.bpick-taken[data-v-84b39e28] {
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--pos-muted, #8a7a68);
}
.bpick-chosen-head[data-v-84b39e28] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  border-bottom: 1px solid var(--pos-line, #e0d3c0);
  font-size: 12px;
  color: var(--pos-muted, #8a7a68);
}
.bpick-clear[data-v-84b39e28] {
  padding: 2px 0;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 12px;
  color: var(--pos-clay, #b5714a);
}
.bpick-clear[data-v-84b39e28]:hover {
  text-decoration: underline;
}
.bpick-chosen-row[data-v-84b39e28] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--pos-line, #e0d3c0);
}
@supports not (gap: 1px) {
.bpick-chosen-row[data-v-84b39e28] > * + * {
    margin-left: 8px;
}
}
.bpick-chosen-meta[data-v-84b39e28] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
@supports not (gap: 1px) {
.bpick-chosen-meta[data-v-84b39e28] > * + * {
    margin-top: 2px;
}
}
.bpick-remove[data-v-84b39e28] {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 2px;
  background: transparent;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  color: var(--pos-muted, #8a7a68);
}
.bpick-remove[data-v-84b39e28]:hover {
  border-color: var(--pos-cinnabar, #a64f38);
  color: var(--pos-cinnabar, #a64f38);
}
@media (max-width: 720px) {
.bpick[data-v-84b39e28] {
    grid-template-columns: 1fr;
    max-height: none;
}
.bpick-catalog[data-v-84b39e28] {
    max-height: 280px;
    border-right: none;
    border-bottom: 1px solid var(--pos-line, #e0d3c0);
}
.bpick-chosen[data-v-84b39e28] {
    max-height: 180px;
    border-left: none;
}
}

/* 视觉系统规范 v1（禅茶暖色）：--pos-* 为唯一色源。 */
.bce[data-v-625da12e] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.bce[data-v-625da12e] > * + * {
    margin-top: 12px;
}
}
.bce-modes[data-v-625da12e] {
  display: flex;
  gap: 8px;
}
@supports not (gap: 1px) {
.bce-modes[data-v-625da12e] > * + * {
    margin-left: 8px;
}
}
.bce-mode[data-v-625da12e] {
  flex: 1;
  padding: 8px 12px 7px;
  border: 1px solid var(--pos-line, #e0d3c0);
  border-bottom: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 2px;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  letter-spacing: 0.05em;
  color: var(--pos-ink, #382a1f);
}
.bce-mode.on[data-v-625da12e] {
  border-bottom: 2px solid var(--pos-clay, #b5714a);
  padding-bottom: 6px;
  color: var(--pos-clay, #b5714a);
  font-weight: 500;
}
.bce-hint[data-v-625da12e] {
  margin: 0;
  font-size: 12px;
  color: var(--pos-muted, #8a7a68);
}
.bce-group[data-v-625da12e] {
  border: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 6px;
  background: var(--pos-card, #fbf5ea);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@supports not (gap: 1px) {
.bce-group[data-v-625da12e] > * + * {
    margin-top: 10px;
}
}
.bce-group-head[data-v-625da12e] {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}
@supports not (gap: 1px) {
.bce-group-head[data-v-625da12e] > * + * {
    margin-left: 12px;
}
}
.bce-field[data-v-625da12e] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 12px;
  color: var(--pos-brown, #6e5340);
}
@supports not (gap: 1px) {
.bce-field[data-v-625da12e] > * + * {
    margin-top: 2px;
}
}
.bce-label-field[data-v-625da12e] {
  flex: 1;
}
.bce-pickn-field[data-v-625da12e] {
  width: 84px;
}
.bce-field input[data-v-625da12e] {
  padding: 6px 2px;
  border: none;
  border-bottom: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 0;
  font-size: 13px;
  color: var(--pos-ink, #382a1f);
  background: transparent;
}
.bce-field input[data-v-625da12e]:focus {
  outline: none;
  border-bottom-color: var(--pos-clay, #b5714a);
}
.bce-del[data-v-625da12e] {
  padding: 5px 10px;
  border: 1px solid var(--pos-cinnabar, #a64f38);
  border-radius: 2px;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  color: var(--pos-cinnabar, #a64f38);
}
.bce-add[data-v-625da12e] {
  padding: 8px 12px;
  border: 1px solid var(--pos-line, #e0d3c0);
  border-radius: 2px;
  background: var(--pos-card, #fbf5ea);
  cursor: pointer;
  font-size: 13px;
  color: var(--pos-ink, #382a1f);
}
.bce-add[data-v-625da12e]:hover {
  border-color: var(--pos-clay, #b5714a);
  color: var(--pos-clay, #b5714a);
}

.overlay[data-v-e4782537] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.overlay[data-v-e4782537] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dialog[data-v-e4782537] {
  width: 100%;
  max-width: 560px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.dialog[data-v-e4782537] > * + * {
    margin-top: 12px;
}
}
.dialog-head[data-v-e4782537] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dialog-title[data-v-e4782537] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-e4782537] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.steps[data-v-e4782537] {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
@supports not (gap: 1px) {
.steps[data-v-e4782537] > * + * {
    margin-left: 8px;
}
}
.steps li[data-v-e4782537] {
  flex: 1;
  text-align: center;
  padding: 6px 0;
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
  font-size: 12px;
}
.steps li.on[data-v-e4782537] {
  background: var(--color-green);
  color: var(--color-paper);
}
.step-body[data-v-e4782537] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.step-body[data-v-e4782537] > * + * {
    margin-top: 12px;
}
}
.category-grid[data-v-e4782537] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.category-grid[data-v-e4782537] > * + * {
    margin-left: 10px;
}
}
.category-card[data-v-e4782537] {
  flex: 1;
  padding: 20px 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 15px;
  cursor: pointer;
  font-family: inherit;
}
.category-card.on[data-v-e4782537] {
  border-color: var(--color-green);
  background: var(--color-surface-green);
  font-weight: 600;
}
.field[data-v-e4782537] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-e4782537] > * + * {
    margin-top: 6px;
}
}
.field-row[data-v-e4782537] {
  display: flex;
  gap: 12px;
  align-items: flex-end;
}
@supports not (gap: 1px) {
.field-row[data-v-e4782537] > * + * {
    margin-left: 12px;
}
}
.field-row .field[data-v-e4782537] {
  flex: 1;
}
.label[data-v-e4782537] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[data-v-e4782537],
.field select[data-v-e4782537],
.unit-row input[data-v-e4782537],
.unit-row select[data-v-e4782537],
.unit-extra textarea[data-v-e4782537] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.check[data-v-e4782537] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--color-ink);
  padding-bottom: 10px;
}
@supports not (gap: 1px) {
.check[data-v-e4782537] > * + * {
    margin-left: 8px;
}
}
.dynamic-fields[data-v-e4782537] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-top: 1px dashed var(--color-border);
  padding-top: 12px;
}
@supports not (gap: 1px) {
.dynamic-fields[data-v-e4782537] > * + * {
    margin-top: 12px;
}
}
.vditor-host[data-v-e4782537] {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
}
.manual[data-v-e4782537] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-top: 1px dashed var(--color-border);
  padding-top: 12px;
}
@supports not (gap: 1px) {
.manual[data-v-e4782537] > * + * {
    margin-top: 12px;
}
}
.manual-tip[data-v-e4782537] {
  margin: 0;
  font-size: 12px;
  color: var(--color-clay);
}
.image-list[data-v-e4782537] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@supports not (gap: 1px) {
.image-list[data-v-e4782537] > * + * {
    margin-left: 8px;
}
}
.image-thumb[data-v-e4782537] {
  width: 64px;
  height: 64px;
  border-radius: var(--radius);
  object-fit: cover;
}
.btn-upload[data-v-e4782537] {
  display: inline-block;
  padding: 9px 18px;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  color: var(--color-green);
  font-size: 13px;
  cursor: pointer;
  align-self: flex-start;
}
.btn-upload input[data-v-e4782537] {
  display: none;
}
.unit-card[data-v-e4782537] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 10px;
}
@supports not (gap: 1px) {
.unit-card[data-v-e4782537] > * + * {
    margin-top: 8px;
}
}
.unit-row[data-v-e4782537] {
  display: flex;
  gap: 8px;
  align-items: center;
}
@supports not (gap: 1px) {
.unit-row[data-v-e4782537] > * + * {
    margin-left: 8px;
}
}
.unit-row input[data-v-e4782537] {
  flex: 1;
  min-width: 0;
}
.price-input[data-v-e4782537] {
  max-width: 120px;
}
.qty-input[data-v-e4782537] {
  max-width: 80px;
}
.unit-active[data-v-e4782537] {
  padding-bottom: 0;
  white-space: nowrap;
}
.unit-extra[data-v-e4782537] {
  border-top: 1px dashed var(--color-border);
  padding-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@supports not (gap: 1px) {
.unit-extra[data-v-e4782537] > * + * {
    margin-top: 8px;
}
}
.mini-btn[data-v-e4782537] {
  padding: 4px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  align-self: flex-start;
}
.mini-btn.danger[data-v-e4782537] {
  color: var(--color-cinnabar);
}
.dialog-actions[data-v-e4782537] {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
@supports not (gap: 1px) {
.dialog-actions[data-v-e4782537] > * + * {
    margin-left: 10px;
}
}
.btn-cancel[data-v-e4782537],
.btn-secondary[data-v-e4782537] {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-submit[data-v-e4782537] {
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-cancel[data-v-e4782537]:disabled,
.btn-secondary[data-v-e4782537]:disabled,
.btn-submit[data-v-e4782537]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.error-box[data-v-e4782537] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.ok-box[data-v-e4782537] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.hint[data-v-e4782537] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
}

.overlay[data-v-4353e531] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.overlay[data-v-4353e531] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dialog[data-v-4353e531] {
  width: 100%;
  max-width: 560px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.dialog[data-v-4353e531] > * + * {
    margin-top: 12px;
}
}
.dialog-head[data-v-4353e531] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dialog-title[data-v-4353e531] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-4353e531] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.error-box[data-v-4353e531] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.section[data-v-4353e531] {
  border-top: 1px solid var(--color-border);
  padding-top: 12px;
}
.section-title[data-v-4353e531] {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-ink);
}
.category-list[data-v-4353e531],
.field-list[data-v-4353e531] {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.category-list[data-v-4353e531] > * + *,
.field-list[data-v-4353e531] > * + * {
    margin-top: 6px;
}
}
.category-item[data-v-4353e531] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  cursor: pointer;
}
@supports not (gap: 1px) {
.category-item[data-v-4353e531] > * + * {
    margin-left: 8px;
}
}
.category-item.on[data-v-4353e531] {
  border-color: var(--color-green);
  background: var(--color-surface-green);
}
.category-name[data-v-4353e531] {
  flex: 1;
  font-size: 14px;
  color: var(--color-ink);
}
.category-actions[data-v-4353e531],
.field-actions[data-v-4353e531] {
  display: flex;
  gap: 4px;
}
@supports not (gap: 1px) {
.category-actions[data-v-4353e531] > * + *,
.field-actions[data-v-4353e531] > * + * {
    margin-left: 4px;
}
}
.field-item[data-v-4353e531] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
}
@supports not (gap: 1px) {
.field-item[data-v-4353e531] > * + * {
    margin-left: 8px;
}
}
.field-label[data-v-4353e531] {
  font-size: 14px;
  color: var(--color-ink);
}
.field-meta[data-v-4353e531] {
  flex: 1;
  font-size: 12px;
  color: var(--color-wood-gray);
}
.preset-badge[data-v-4353e531] {
  padding: 1px 8px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-soft);
  color: var(--color-wood-gray);
  font-size: 11px;
}
.add-row[data-v-4353e531] {
  display: flex;
  gap: 8px;
  align-items: center;
}
@supports not (gap: 1px) {
.add-row[data-v-4353e531] > * + * {
    margin-left: 8px;
}
}
.add-row input[data-v-4353e531],
.rename-input[data-v-4353e531] {
  flex: 1;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 13px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.add-row select[data-v-4353e531] {
  padding: 8px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 13px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.mini-btn[data-v-4353e531] {
  padding: 4px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
}
.mini-btn[data-v-4353e531]:hover:not(:disabled) {
  border-color: var(--color-green);
  color: var(--color-green);
}
.mini-btn[data-v-4353e531]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.mini-btn.primary[data-v-4353e531] {
  border-color: transparent;
  background: var(--color-green);
  color: var(--color-paper);
}
.mini-btn.danger[data-v-4353e531] {
  color: var(--color-cinnabar);
}
.mini-btn.danger[data-v-4353e531]:hover:not(:disabled) {
  border-color: var(--color-cinnabar);
  color: var(--color-cinnabar);
}
.hint[data-v-4353e531] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
}

.cropper-overlay[data-v-7293426d] {
  position: fixed;
  inset: 0;
  z-index: 65;
  background: rgba(36, 56, 50, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.cropper-overlay[data-v-7293426d] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.cropper-dialog[data-v-7293426d] {
  width: min(92vw, 560px);
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.cropper-dialog[data-v-7293426d] > * + * {
    margin-top: 12px;
}
}
.cropper-head[data-v-7293426d] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cropper-title[data-v-7293426d] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-7293426d] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
  font-family: inherit;
}
.cropper-error[data-v-7293426d] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.cropper-stage[data-v-7293426d] {
  position: relative;
  max-height: 62vh;
  overflow: hidden;
  background: var(--color-surface-soft);
  border-radius: var(--radius);
  user-select: none;
  touch-action: none;
}
.stage-img[data-v-7293426d] {
  display: block;
  max-width: 100%;
  max-height: 62vh;
  margin: 0 auto;
  object-fit: contain;
  pointer-events: none;
}
.crop-box[data-v-7293426d] {
  position: absolute;
  border: 1.5px solid var(--color-green);
  box-shadow: 0 0 0 9999px rgba(15, 22, 19, 0.5);
  cursor: move;
  box-sizing: border-box;
}
.crop-box.is-free[data-v-7293426d] {
  cursor: default;
}
.handle[data-v-7293426d] {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 2px solid var(--color-paper);
  background: var(--color-green);
  border-radius: 2px;
  box-sizing: border-box;
}
.handle-nw[data-v-7293426d] {
  left: -7px;
  top: -7px;
  cursor: nwse-resize;
}
.handle-ne[data-v-7293426d] {
  right: -7px;
  top: -7px;
  cursor: nesw-resize;
}
.handle-sw[data-v-7293426d] {
  left: -7px;
  bottom: -7px;
  cursor: nesw-resize;
}
.handle-se[data-v-7293426d] {
  right: -7px;
  bottom: -7px;
  cursor: nwse-resize;
}
.cropper-controls[data-v-7293426d] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
@supports not (gap: 1px) {
.cropper-controls[data-v-7293426d] > * + * {
    margin-left: 10px;
}
}
.aspect-label[data-v-7293426d] {
  font-size: 12px;
  color: var(--color-wood-gray);
}
.cropper-actions[data-v-7293426d] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.cropper-actions[data-v-7293426d] > * + * {
    margin-left: 10px;
}
}
.btn-cancel[data-v-7293426d] {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-confirm[data-v-7293426d] {
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-cancel[data-v-7293426d]:disabled,
.btn-confirm[data-v-7293426d]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.overlay[data-v-35a403fe] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.overlay[data-v-35a403fe] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dialog[data-v-35a403fe] {
  width: 100%;
  max-width: 520px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.dialog[data-v-35a403fe] > * + * {
    margin-top: 12px;
}
}
.dialog-head[data-v-35a403fe] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dialog-title[data-v-35a403fe] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-35a403fe] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.error-box[data-v-35a403fe] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.upload-ok[data-v-35a403fe] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.field[data-v-35a403fe] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-35a403fe] > * + * {
    margin-top: 6px;
}
}
.field-row[data-v-35a403fe] {
  display: flex;
  gap: 12px;
  align-items: flex-end;
}
@supports not (gap: 1px) {
.field-row[data-v-35a403fe] > * + * {
    margin-left: 12px;
}
}
.field-row .field[data-v-35a403fe] {
  flex: 1;
}
.field-sort[data-v-35a403fe] {
  max-width: 110px;
}
.label[data-v-35a403fe] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[data-v-35a403fe],
.field select[data-v-35a403fe],
.field textarea[data-v-35a403fe] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.field textarea[data-v-35a403fe] {
  resize: vertical;
  line-height: 1.6;
}
.vditor-host[data-v-35a403fe] {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
}

/* 商品专属微信码（V2R-01） */
.pf-wechat-qr-body[data-v-35a403fe] {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
@supports not (gap: 1px) {
.pf-wechat-qr-body[data-v-35a403fe] > * + * {
    margin-left: 12px;
}
}
.pf-wechat-qr-preview[data-v-35a403fe] {
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pf-wechat-qr-preview img[data-v-35a403fe] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pf-wechat-qr-ph[data-v-35a403fe] {
  font-size: 10px;
  color: var(--color-wood-gray);
  text-align: center;
  line-height: 1.7;
}
.pf-wechat-qr-actions[data-v-35a403fe] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
@supports not (gap: 1px) {
.pf-wechat-qr-actions[data-v-35a403fe] > * + * {
    margin-top: 8px;
}
}
.pf-wechat-qr-actions .btn-upload[data-v-35a403fe] {
  flex: none;
  padding: 7px 16px;
  font-size: 12px;
}
.pf-wechat-qr-remove[data-v-35a403fe] {
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.pf-wechat-qr-remove[data-v-35a403fe]:hover {
  border-color: var(--color-cinnabar);
}

/* 封面大图（B-110） */
.pf-cover-body[data-v-35a403fe] {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
@supports not (gap: 1px) {
.pf-cover-body[data-v-35a403fe] > * + * {
    margin-left: 12px;
}
}
.pf-cover-preview[data-v-35a403fe] {
  flex: 0 0 96px;
  width: 96px;
  height: 96px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pf-cover-preview img[data-v-35a403fe] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pf-cover-ph[data-v-35a403fe] {
  font-size: 10px;
  color: var(--color-wood-gray);
  text-align: center;
  line-height: 1.7;
}
.pf-cover-actions[data-v-35a403fe] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
@supports not (gap: 1px) {
.pf-cover-actions[data-v-35a403fe] > * + * {
    margin-top: 8px;
}
}
.pf-cover-actions .btn-upload[data-v-35a403fe] {
  flex: none;
  padding: 7px 16px;
  font-size: 12px;
}
.pf-cover-remove[data-v-35a403fe] {
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.pf-cover-remove[data-v-35a403fe]:hover {
  border-color: var(--color-cinnabar);
}
.pf-cover-tip[data-v-35a403fe] {
  margin: 0 0 10px;
}
.check[data-v-35a403fe] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--color-ink);
  padding-bottom: 10px;
}
@supports not (gap: 1px) {
.check[data-v-35a403fe] > * + * {
    margin-left: 8px;
}
}
.hint[data-v-35a403fe] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
}
/* 商城商品页链接（B-72）：对齐表单辅助文案风格 */
.shop-link[data-v-35a403fe] {
  align-self: flex-start;
  font-size: 12px;
  color: var(--color-green);
  text-decoration: none;
  line-height: 1.6;
}
.shop-link[data-v-35a403fe]:hover {
  text-decoration: underline;
}
.image-list[data-v-35a403fe] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@supports not (gap: 1px) {
.image-list[data-v-35a403fe] > * + * {
    margin-left: 8px;
}
}
.image-item[data-v-35a403fe] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 84px;
  text-align: center;
  align-items: center;
}
@supports not (gap: 1px) {
.image-item[data-v-35a403fe] > * + * {
    margin-top: 2px;
}
}
.image-item img[data-v-35a403fe],
.image-ph[data-v-35a403fe] {
  width: 76px;
  height: 76px;
  border-radius: var(--radius);
  object-fit: cover;
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-wood-gray);
  font-size: 18px;
}
.image-item img.image-thumb[data-v-35a403fe] {
  cursor: zoom-in;
}
.image-item img.image-thumb[data-v-35a403fe]:hover {
  outline: 2px solid var(--color-green);
  outline-offset: 2px;
}
.image-meta[data-v-35a403fe] {
  font-size: 11px;
  color: var(--color-wood-gray);
}
.image-actions[data-v-35a403fe] {
  display: flex;
  gap: 4px;
  margin-top: 2px;
}
@supports not (gap: 1px) {
.image-actions[data-v-35a403fe] > * + * {
    margin-left: 4px;
}
}
.img-btn[data-v-35a403fe] {
  min-width: 22px;
  padding: 1px 4px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  background: var(--color-paper);
  color: var(--color-green);
  font-size: 12px;
  line-height: 1.6;
  cursor: pointer;
  font-family: inherit;
}
.img-btn[data-v-35a403fe]:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.img-btn-del[data-v-35a403fe] {
  color: var(--color-cinnabar);
}
.image-busy[data-v-35a403fe] {
  font-size: 11px;
  color: var(--color-wood-gray);
  margin-top: 2px;
}
.image-item.busy .image-meta[data-v-35a403fe] {
  opacity: 0.5;
}
.upload-row[data-v-35a403fe] {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}
@supports not (gap: 1px) {
.upload-row[data-v-35a403fe] > * + * {
    margin-left: 10px;
}
}
.btn-upload[data-v-35a403fe] {
  flex: 1;
  padding: 10px 0;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  color: var(--color-green);
  font-size: 13px;
  text-align: center;
  cursor: pointer;
}
.btn-upload input[data-v-35a403fe] {
  display: none;
}
.dialog-actions[data-v-35a403fe] {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
@supports not (gap: 1px) {
.dialog-actions[data-v-35a403fe] > * + * {
    margin-left: 10px;
}
}
.btn-cancel[data-v-35a403fe] {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-submit[data-v-35a403fe] {
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-cancel[data-v-35a403fe]:disabled,
.btn-submit[data-v-35a403fe]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* 图片大图预览（lightbox）：对齐表单 overlay 视觉，层级更高 */
.preview-overlay[data-v-35a403fe] {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(15, 22, 19, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.preview-overlay[data-v-35a403fe] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.preview-img[data-v-35a403fe] {
  max-width: min(92vw, 1080px);
  max-height: 86vh;
  border-radius: var(--radius-lg);
  background: var(--color-paper);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  object-fit: contain;
}
.preview-close[data-v-35a403fe] {
  position: absolute;
  top: 16px;
  right: 20px;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-paper);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
}
.preview-close[data-v-35a403fe]:hover {
  background: rgba(255, 255, 255, 0.22);
}

.manager-products[data-v-343fa8e3] {
  /* 对齐 B-84 惯例：本容器为唯一滚动区 */
  height: 100%;
  padding: 24px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  box-sizing: border-box;
  overflow-y: auto;
}
.page-title[data-v-343fa8e3] {
  margin: 0 0 16px;
  font-size: 22px;
  color: var(--color-ink);
}
.alert[data-v-343fa8e3] {
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 12px;
}
.alert.error[data-v-343fa8e3] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.alert.success[data-v-343fa8e3] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.panel[data-v-343fa8e3] {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  margin-bottom: 16px;
}
.panel-head[data-v-343fa8e3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.panel-head[data-v-343fa8e3] > * + * {
    margin-left: 12px;
}
}
.panel-title[data-v-343fa8e3] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.panel-meta[data-v-343fa8e3] {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--color-wood-gray);
}
.head-actions[data-v-343fa8e3] {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
@supports not (gap: 1px) {
.head-actions[data-v-343fa8e3] > * + * {
    margin-left: 8px;
}
}

/* 品类 Tab */
.cat-nav[data-v-343fa8e3] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.cat-nav[data-v-343fa8e3] > * + * {
    margin-left: 8px;
}
}
.cat-chip[data-v-343fa8e3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
@supports not (gap: 1px) {
.cat-chip[data-v-343fa8e3] > * + * {
    margin-left: 6px;
}
}
.cat-chip[data-v-343fa8e3]:hover {
  border-color: var(--color-green);
}
.cat-chip.on[data-v-343fa8e3] {
  border-color: transparent;
  background: var(--color-green);
  color: var(--color-paper);
}

/* 搜索与状态筛选 */
.filter-row[data-v-343fa8e3] {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.filter-row[data-v-343fa8e3] > * + * {
    margin-left: 8px;
}
}
.keyword-input[data-v-343fa8e3] {
  flex: 1;
  max-width: 280px;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 13px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.status-filter[data-v-343fa8e3] {
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 13px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.hint[data-v-343fa8e3] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.cat-empty[data-v-343fa8e3] {
  padding: 18px 0;
  text-align: center;
}
.btn-create[data-v-343fa8e3] {
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-create[data-v-343fa8e3]:hover {
  opacity: 0.9;
}
.btn-secondary[data-v-343fa8e3] {
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-secondary[data-v-343fa8e3]:hover {
  border-color: var(--color-green);
  color: var(--color-green);
}
.product-table[data-v-343fa8e3] {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.product-table th[data-v-343fa8e3] {
  padding: 8px 10px;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-wood-gray);
  border-bottom: 1px solid var(--color-border);
}
.product-table td[data-v-343fa8e3] {
  padding: 10px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-ink);
}
.product-table tr:last-child td[data-v-343fa8e3] {
  border-bottom: none;
}
.col-name[data-v-343fa8e3] {
  font-weight: 600;
}
.col-action[data-v-343fa8e3] {
  white-space: nowrap;
}
.cover-thumb[data-v-343fa8e3] {
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  object-fit: cover;
  display: block;
}
.cover-ph[data-v-343fa8e3] {
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-wood-gray);
  font-size: 12px;
}

/* 上下架开关 */
.active-toggle[data-v-343fa8e3] {
  min-width: 56px;
  padding: 4px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.active-toggle.on[data-v-343fa8e3] {
  border-color: transparent;
  background: var(--color-green);
  color: var(--color-paper);
}
.btn-edit[data-v-343fa8e3] {
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-edit[data-v-343fa8e3]:hover {
  border-color: var(--color-green);
  color: var(--color-green);
}

/* 分页 */
.pager[data-v-343fa8e3] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 0 4px;
}
@supports not (gap: 1px) {
.pager[data-v-343fa8e3] > * + * {
    margin-left: 12px;
}
}
.pager-info[data-v-343fa8e3] {
  font-size: 12px;
  color: var(--color-wood-gray);
  font-variant-numeric: tabular-nums;
}

/* 当前店铺微信码设置块（V2R-01/B-214） */
.global-qr-body[data-v-343fa8e3] {
  display: flex;
  gap: 18px;
  align-items: flex-start;
}
@supports not (gap: 1px) {
.global-qr-body[data-v-343fa8e3] > * + * {
    margin-left: 18px;
}
}
.global-qr-preview[data-v-343fa8e3] {
  flex: 0 0 120px;
  width: 120px;
  height: 120px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
}
.global-qr-preview img[data-v-343fa8e3] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.global-qr-ph[data-v-343fa8e3] {
  font-size: 12px;
  color: var(--color-wood-gray);
  text-align: center;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.global-qr-actions[data-v-343fa8e3] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
@supports not (gap: 1px) {
.global-qr-actions[data-v-343fa8e3] > * + * {
    margin-top: 8px;
}
}
.btn-upload[data-v-343fa8e3] {
  display: inline-block;
  padding: 9px 18px;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  color: var(--color-green);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-upload[data-v-343fa8e3]:hover {
  border-color: var(--color-green);
}
.btn-upload input[data-v-343fa8e3] {
  display: none;
}
.btn-del[data-v-343fa8e3] {
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-del[data-v-343fa8e3]:hover {
  border-color: var(--color-cinnabar);
}
.global-qr-remove[data-v-343fa8e3] {
  margin-left: 0;
}

.product-workbench[data-v-a232c5d3]{height:100%;box-sizing:border-box;overflow-y:auto;padding:28px 32px 40px;background:var(--color-lime);font-family:var(--font-sans);color:var(--color-ink)}
.workbench-header[data-v-a232c5d3]{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 auto 24px;max-width:1100px}
@supports not (gap: 1px) {
.workbench-header[data-v-a232c5d3] > * + * {
    margin-left: 24px;
}
}
.eyebrow[data-v-a232c5d3]{margin:0 0 8px;color:var(--color-clay);font-size:11px;letter-spacing:.12em}
h1[data-v-a232c5d3]{margin:0;font-size:28px;letter-spacing:.02em}
.subtitle[data-v-a232c5d3]{margin:7px 0 0;color:var(--color-wood-gray);font-size:13px}
.create-actions[data-v-a232c5d3]{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@supports not (gap: 1px) {
.create-actions[data-v-a232c5d3] > * + * {
    margin-left: 8px;
}
}
.button[data-v-a232c5d3]{min-height:36px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.button.primary[data-v-a232c5d3]{border-color:var(--color-green);background:var(--color-green);color:var(--color-paper)}
.button.secondary[data-v-a232c5d3]{background:var(--color-paper);color:var(--color-ink)}
.button.secondary[data-v-a232c5d3]:hover{border-color:var(--color-green);color:var(--color-green)}
.filter-bar[data-v-a232c5d3]{display:flex;align-items:center;gap:8px;max-width:1100px;margin:0 auto 12px}
@supports not (gap: 1px) {
.filter-bar[data-v-a232c5d3] > * + * {
    margin-left: 8px;
}
}
.search-wrap[data-v-a232c5d3]{flex:1;min-width:160px}
.filter-bar input[data-v-a232c5d3],.filter-bar select[data-v-a232c5d3]{box-sizing:border-box;width:100%;height:36px;padding:0 11px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-paper);color:var(--color-ink);font:inherit;font-size:13px}
.filter-bar label[data-v-a232c5d3]:not(.search-wrap){width:132px}
.result-count[data-v-a232c5d3]{margin-left:auto;color:var(--color-wood-gray);font-size:12px;white-space:nowrap}
.source-notice[data-v-a232c5d3]{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:1078px;margin:0 auto 8px;padding:9px 11px;border:1px solid rgba(163,59,43,.2);border-radius:var(--radius);background:var(--color-surface-cinnabar);color:var(--color-cinnabar);font-size:12px}
@supports not (gap: 1px) {
.source-notice[data-v-a232c5d3] > * + * {
    margin-left: 10px;
}
}
.notice-retry[data-v-a232c5d3]{padding:3px 8px;border:1px solid currentColor;border-radius:var(--radius);background:transparent;color:inherit;font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}
.loading-state[data-v-a232c5d3],.empty-state[data-v-a232c5d3]{max-width:1078px;margin:0 auto;padding:48px 20px;text-align:center;color:var(--color-wood-gray);font-size:13px}
.empty-state[data-v-a232c5d3]{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:rgba(255,255,255,.3)}
@supports not (gap: 1px) {
.empty-state[data-v-a232c5d3] > * + * {
    margin-top: 8px;
}
}
.empty-state strong[data-v-a232c5d3]{font-size:15px;color:var(--color-ink)}
.empty-state .button[data-v-a232c5d3]{margin-top:8px}
.item-list[data-v-a232c5d3]{max-width:1100px;margin:0 auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-paper);overflow:hidden}
.item-row[data-v-a232c5d3]{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto auto 22px;align-items:center;gap:14px;width:100%;padding:11px 16px;border:0;border-bottom:1px solid var(--color-border);background:var(--color-paper);text-align:left;color:inherit;font:inherit;cursor:pointer}
.item-row[data-v-a232c5d3]:last-child{border-bottom:0}
.item-row[data-v-a232c5d3]:hover{background:var(--color-paper-veil)}
.item-cover[data-v-a232c5d3]{width:40px;height:40px;overflow:hidden;border-radius:var(--radius);background:var(--color-surface-soft)}
.item-cover img[data-v-a232c5d3]{display:block;width:100%;height:100%;object-fit:cover}
.cover-placeholder[data-v-a232c5d3]{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:var(--color-clay);font-size:16px}
.item-main[data-v-a232c5d3]{display:flex;min-width:0;flex-direction:column;gap:4px}
@supports not (gap: 1px) {
.item-main[data-v-a232c5d3] > * + * {
    margin-top: 4px;
}
}
.item-main strong[data-v-a232c5d3]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.item-meta[data-v-a232c5d3]{color:var(--color-wood-gray);font-size:12px}
.tag[data-v-a232c5d3]{padding:4px 8px;border-radius:var(--radius-pill);font-size:11px;white-space:nowrap}
.scene-tag[data-v-a232c5d3]{background:var(--color-surface-green);color:var(--color-green)}
.kind-tag[data-v-a232c5d3]{background:var(--color-surface-soft);color:var(--color-clay)}
.ingredient-tag[data-v-a232c5d3]{background:var(--color-surface-cinnabar);color:var(--color-cinnabar)}
.active-state[data-v-a232c5d3]{color:var(--color-green);font-size:12px;white-space:nowrap}
.active-state.off[data-v-a232c5d3]{color:var(--color-cinnabar)}
.row-arrow[data-v-a232c5d3]{color:var(--color-wood-gray);font-size:17px;transition:transform .15s}
.item-row:hover .row-arrow[data-v-a232c5d3]{transform:translateX(2px);color:var(--color-green)}
.sr-only[data-v-a232c5d3]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:700px){.product-workbench[data-v-a232c5d3]{padding:20px 16px 32px}.workbench-header[data-v-a232c5d3]{display:block}.create-actions[data-v-a232c5d3]{justify-content:flex-start;margin-top:16px}.filter-bar[data-v-a232c5d3]{flex-wrap:wrap}.search-wrap[data-v-a232c5d3]{flex-basis:100%}.filter-bar label[data-v-a232c5d3]:not(.search-wrap){flex:1;width:auto}.result-count[data-v-a232c5d3]{margin-left:0}.item-row[data-v-a232c5d3]{grid-template-columns:36px minmax(0,1fr) auto 18px;gap:10px;padding:10px}.item-cover[data-v-a232c5d3]{width:34px;height:34px}.kind-tag[data-v-a232c5d3],.active-state[data-v-a232c5d3]{display:none}.item-meta[data-v-a232c5d3]{font-size:11px}.scene-tag[data-v-a232c5d3]{font-size:10px;padding:3px 6px}}

.overlay[data-v-60a9fb84] {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(36, 56, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans);
}
@supports not (inset: 0) {
.overlay[data-v-60a9fb84] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dialog[data-v-60a9fb84] {
  width: 100%;
  max-width: 520px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--color-paper);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@supports not (gap: 1px) {
.dialog[data-v-60a9fb84] > * + * {
    margin-top: 12px;
}
}
.dialog-head[data-v-60a9fb84] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dialog-title[data-v-60a9fb84] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--color-ink);
}
.close-btn[data-v-60a9fb84] {
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 24px;
  color: var(--color-wood-gray);
  cursor: pointer;
}
.error-box[data-v-60a9fb84] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
  font-size: 13px;
}
.upload-ok[data-v-60a9fb84] {
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--radius);
  background: var(--color-surface-green);
  color: var(--color-green);
  font-size: 13px;
}
.field[data-v-60a9fb84] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
@supports not (gap: 1px) {
.field[data-v-60a9fb84] > * + * {
    margin-top: 6px;
}
}
.field-row[data-v-60a9fb84] {
  display: flex;
  gap: 12px;
  align-items: flex-end;
}
@supports not (gap: 1px) {
.field-row[data-v-60a9fb84] > * + * {
    margin-left: 12px;
}
}
.field-row .field[data-v-60a9fb84] {
  flex: 1;
}
.field-sort[data-v-60a9fb84] {
  max-width: 110px;
}
.label[data-v-60a9fb84] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.field input[data-v-60a9fb84],
.field textarea[data-v-60a9fb84],
.field select[data-v-60a9fb84] {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 14px;
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-paper);
}
.field select[data-v-60a9fb84] {
  /* 与输入框高度一致（select 默认行高略不同），保证 field-row 对齐 */
  line-height: 1.4;
  cursor: pointer;
}
.field select[data-v-60a9fb84]:invalid {
  color: var(--color-wood-gray);
}
.field textarea[data-v-60a9fb84] {
  resize: vertical;
  line-height: 1.6;
}
.vditor-host[data-v-60a9fb84] {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
}
.hint[data-v-60a9fb84] {
  margin: 0;
  font-size: 12px;
  color: var(--color-wood-gray);
}
.cover-preview[data-v-60a9fb84] {
  margin-bottom: 4px;
}
.cover-preview img[data-v-60a9fb84] {
  max-width: 100%;
  max-height: 160px;
  border-radius: var(--radius);
  object-fit: cover;
}
.btn-upload[data-v-60a9fb84] {
  display: block;
  padding: 10px 0;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  background: var(--color-surface-soft);
  color: var(--color-green);
  font-size: 13px;
  text-align: center;
  cursor: pointer;
}
.btn-upload input[data-v-60a9fb84] {
  display: none;
}
.check[data-v-60a9fb84] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--color-ink);
}
@supports not (gap: 1px) {
.check[data-v-60a9fb84] > * + * {
    margin-left: 8px;
}
}
.dialog-actions[data-v-60a9fb84] {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
@supports not (gap: 1px) {
.dialog-actions[data-v-60a9fb84] > * + * {
    margin-left: 10px;
}
}
.btn-cancel[data-v-60a9fb84] {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-submit[data-v-60a9fb84] {
  min-height: 40px;
  padding: 0 18px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.btn-cancel[data-v-60a9fb84]:disabled,
.btn-submit[data-v-60a9fb84]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.manager-events[data-v-ddf9d76b] {
  /* B-73：min-height:100vh 在 .shell-content(overflow:hidden) 内不产生滚动
     （元素随内容长高、overflow 永不触发），茶事列表超高时被裁剪滑不到底。
     对齐 B-84 惯例：height:100% + overflow-y:auto，本容器为唯一滚动区。 */
  height: 100%;
  padding: 24px;
  background: var(--color-lime);
  font-family: var(--font-sans);
  box-sizing: border-box;
  overflow-y: auto;
}
.page-title[data-v-ddf9d76b] {
  margin: 0 0 16px;
  font-size: 22px;
  color: var(--color-ink);
}
.alert[data-v-ddf9d76b] {
  padding: 10px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 12px;
}
.alert.error[data-v-ddf9d76b] {
  background: var(--color-surface-cinnabar);
  color: var(--color-cinnabar);
}
.alert.success[data-v-ddf9d76b] {
  background: var(--color-surface-green);
  color: var(--color-green);
}
.panel[data-v-ddf9d76b] {
  background: var(--color-paper);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
}
.panel-head[data-v-ddf9d76b] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
@supports not (gap: 1px) {
.panel-head[data-v-ddf9d76b] > * + * {
    margin-left: 12px;
}
}
.panel-title[data-v-ddf9d76b] {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.panel-meta[data-v-ddf9d76b] {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  color: var(--color-wood-gray);
}
.btn-create[data-v-ddf9d76b] {
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius);
  background: var(--color-green);
  color: var(--color-paper);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-create[data-v-ddf9d76b]:hover {
  opacity: 0.9;
}
.hint[data-v-ddf9d76b] {
  font-size: 13px;
  color: var(--color-wood-gray);
}
.event-table[data-v-ddf9d76b] {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.event-table th[data-v-ddf9d76b] {
  padding: 8px 10px;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-wood-gray);
  border-bottom: 1px solid var(--color-border);
}
.event-table td[data-v-ddf9d76b] {
  padding: 10px;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-ink);
}
.event-table tr:last-child td[data-v-ddf9d76b] {
  border-bottom: none;
}
.col-title[data-v-ddf9d76b] {
  font-weight: 600;
}
.col-summary[data-v-ddf9d76b] {
  color: var(--color-wood-gray);
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.col-action[data-v-ddf9d76b] {
  white-space: nowrap;
}
.active-toggle[data-v-ddf9d76b] {
  min-width: 56px;
  padding: 4px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-paper);
  color: var(--color-wood-gray);
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
}
.active-toggle.on[data-v-ddf9d76b] {
  border-color: transparent;
  background: var(--color-green);
  color: var(--color-paper);
}
.btn-edit[data-v-ddf9d76b] {
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-ink);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-edit[data-v-ddf9d76b]:hover {
  border-color: var(--color-green);
  color: var(--color-green);
}
.btn-del[data-v-ddf9d76b] {
  margin-left: 8px;
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-cinnabar);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-del[data-v-ddf9d76b]:hover {
  border-color: var(--color-cinnabar);
}
/* 复制按钮（B-115）：对齐编辑按钮，低风险操作轻样式 */
.btn-copy[data-v-ddf9d76b] {
  margin-left: 8px;
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  background: var(--color-paper);
  color: var(--color-clay);
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.btn-copy[data-v-ddf9d76b]:hover {
  border-color: var(--color-clay);
}

.wx-loading[data-v-4e7d494c] {
  padding: 6px 0;
  color: var(--muted-2);
  font-size: var(--fs-aux);
}
.wx-who[data-v-4e7d494c] {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
@supports not (gap: 1px) {
.wx-who[data-v-4e7d494c] > * + * {
    margin-left: 8px;
}
}
.wx-avatar[data-v-4e7d494c] {
  width: 26px;
  height: 26px;
  flex: none;
  border-radius: 50%;
  object-fit: cover;
}
.wx-avatar-fb[data-v-4e7d494c] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--border);
  color: var(--muted-2);
  font-size: 12px;
}
.wx-failed[data-v-4e7d494c] {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--cinnabar);
  font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.wx-failed[data-v-4e7d494c] > * + * {
    margin-left: 10px;
}
}
.wx-failed span[data-v-4e7d494c] {
  flex: 1;
}
.wx-qr[data-v-4e7d494c] {
  display: flex;
  width: 208px;
  height: 208px;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--mqm-r-card, 12px);
  background: #fff;
}
.wx-qr[data-v-4e7d494c] svg {
  width: 100%;
  height: 100%;
}
.wx-url-row[data-v-4e7d494c] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}
@supports not (gap: 1px) {
.wx-url-row[data-v-4e7d494c] > * + * {
    margin-left: 10px;
}
}
.wx-url[data-v-4e7d494c] {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: var(--fs-aux);
}
.wx-panel-error[data-v-4e7d494c] {
  margin-top: 10px;
  color: var(--cinnabar);
  font-size: var(--fs-aux);
}
.mo-foot .spacer[data-v-4e7d494c] {
  flex: 1;
}

.wrap[data-v-7e7494eb] {
  max-width: 1240px;
  margin: 0 auto;
}

.mqm[data-v-ecab2523] {
  min-height: 200px;
}

.seat-home[data-v-171f071c] { min-height: 100%; padding: 0 0 18px; color: var(--pos-mobile-fg); -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent;
}
.seat-home[data-v-171f071c], .seat-home[data-v-171f071c] * { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none;
}
.seats-head[data-v-171f071c] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 14px 16px 2px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.seats-head[data-v-171f071c] > * + * {
    margin-left: 10px;
}
}
.view-title[data-v-171f071c] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em;
}
.view-sub[data-v-171f071c] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.head-links[data-v-171f071c] { display: flex; flex: none; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: 6px; margin-top: 2px; max-width: 100%;
}
@supports not (gap: 1px) {
.head-links[data-v-171f071c] > * + * {
    margin-left: 6px;
}
}
button.takeout-link[data-v-171f071c], button.retail-btn[data-v-171f071c] { box-sizing: border-box; display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 36px; padding: 0 13px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; cursor: pointer;
}
button.takeout-link.sub[data-v-171f071c] { padding: 0 10px; color: var(--pos-mobile-muted); font-size: 12px; font-weight: 500;
}
.takeout-link.sub[data-v-171f071c]:active { color: var(--pos-mobile-accent);
}
.area-chips[data-v-171f071c], .seat-areas[data-v-171f071c] { display: flex; gap: 8px; overflow-x: auto; padding: 10px 16px 2px; scrollbar-width: none;
}
@supports not (gap: 1px) {
.area-chips[data-v-171f071c] > * + *,
.seat-areas[data-v-171f071c] > * + * {
    margin-left: 8px;
}
}
.seat-areas[data-v-171f071c]::-webkit-scrollbar { display: none;
}
button.area-pill[data-v-171f071c] { box-sizing: border-box; display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; line-height: 1.2; white-space: nowrap; cursor: pointer;
}
.area-pill.active[data-v-171f071c], .area-pill.on[data-v-171f071c] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent); font-weight: 600;
}
.seat-groups[data-v-171f071c] { display: grid;
}
.seat-area-label[data-v-171f071c] { position: sticky; top: 0; z-index: 4; display: flex; align-items: baseline; gap: 9px; margin: 0; padding: 12px 20px 6px; background: var(--pos-mobile-bg); color: var(--pos-mobile-muted); font-size: 12px; font-weight: 500; letter-spacing: .22em; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; pointer-events: none;
}
@supports not (gap: 1px) {
.seat-area-label[data-v-171f071c] > * + * {
    margin-left: 9px;
}
}
.seat-area-label span[data-v-171f071c] { color: var(--pos-mobile-muted-2); font-family: var(--pos-mobile-font-display); font-size: 15px; font-weight: 600; letter-spacing: 0;
}
.seat-grid[data-v-171f071c], .seat-skeleton[data-v-171f071c] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 14px 4px;
}
.seat-card[data-v-171f071c] { position: relative; display: flex; aspect-ratio: 1 / 1; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 2px; overflow: hidden; padding: 10px 11px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background-color: var(--pos-mobile-surface); color: var(--pos-mobile-fg); text-align: left; cursor: pointer; touch-action: pan-y; -webkit-touch-callout: none; user-select: none;
}
@supports not (gap: 1px) {
.seat-card[data-v-171f071c] > * + * {
    margin-top: 2px;
}
}
.seat-card[data-v-171f071c]::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; mix-blend-mode: multiply; opacity: .5; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23n)' opacity='0.5'/></svg>");
}
@supports not (inset: 0) {
.seat-card[data-v-171f071c]::after { top: 0; right: 0; bottom: 0; left: 0;
}
}
.seat-card.selected[data-v-171f071c] { border-color: var(--pos-mobile-accent); box-shadow: inset 0 0 0 1px var(--pos-mobile-accent);
}
button.seat-card.tone-busy[data-v-171f071c] { background-color: var(--pos-mobile-busy); border-color: transparent; color: var(--pos-mobile-paper-white);
}
button.seat-card.tone-served[data-v-171f071c] { background-color: var(--pos-mobile-served); border-color: transparent; color: var(--pos-mobile-paper-white);
}
button.seat-card.tone-settled[data-v-171f071c] { background-color: var(--pos-mobile-settled); border-color: transparent; color: var(--pos-mobile-paper-white);
}
button.seat-card.tone-busy.selected[data-v-171f071c], button.seat-card.tone-served.selected[data-v-171f071c], button.seat-card.tone-settled.selected[data-v-171f071c] { border-color: rgba(251, 247, 236, .85); box-shadow: inset 0 0 0 1px rgba(251, 247, 236, .85);
}
.seat-cat[data-v-171f071c] { position: absolute; top: 7px; right: 7px; width: 44px; height: 44px; object-fit: contain; pointer-events: none;
}
.reservation-tags[data-v-171f071c] { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; align-self: stretch; gap: 3px; margin: 0 -4px 4px;
}
@supports not (gap: 1px) {
.reservation-tags[data-v-171f071c] > * + * {
    margin-top: 3px;
}
}
.reservation-tag[data-v-171f071c] { box-sizing: border-box; display: inline-flex; align-items: center; gap: 0; max-width: 100%; min-height: 0; height: auto; overflow: hidden; padding: 4px 5px; border: 1px solid #BE977D; border: 1px solid color-mix(in oklab, var(--pos-mobile-accent) 55%, var(--pos-mobile-border)); border-radius: 6px; background: rgba(248, 246, 238, 0.9); background: color-mix(in oklab, var(--pos-mobile-surface) 90%, transparent); color: var(--pos-mobile-accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 400; line-height: 1; letter-spacing: 0; white-space: nowrap; cursor: grab; touch-action: none; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
}
@supports not (gap: 1px) {
.reservation-tag[data-v-171f071c] > * + * {
    margin-left: 0;
}
}
.reservation-tag .t-name[data-v-171f071c] { max-width: 3.6em; overflow: hidden; font-family: var(--pos-mobile-font-body); color: var(--pos-mobile-fg); font-size: 10px; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap;
}
.reservation-tag.more[data-v-171f071c] { border-style: dashed; color: var(--pos-mobile-muted); cursor: pointer;
}
.reservation-tag.held[data-v-171f071c] { opacity: .32; border-style: dashed;
}
.seat-copy[data-v-171f071c] { position: relative; z-index: 1; display: grid; gap: 2px; min-width: 0;
}
.seat-copy strong[data-v-171f071c] { overflow: hidden; font-family: var(--pos-mobile-font-display); font-size: 12px; font-weight: 600; letter-spacing: .08em; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap;
}
.status[data-v-171f071c] { display: flex; align-items: center; gap: 5px; color: var(--pos-mobile-muted); font-size: 11px; letter-spacing: .04em; line-height: 1.45;
}
@supports not (gap: 1px) {
.status[data-v-171f071c] > * + * {
    margin-left: 5px;
}
}
.status[data-v-171f071c]::before { content: ""; flex: none; width: 5px; height: 5px; border-radius: 50%; background: currentColor;
}
.tone-busy .seat-copy strong[data-v-171f071c], .tone-served .seat-copy strong[data-v-171f071c], .tone-settled .seat-copy strong[data-v-171f071c] { color: var(--pos-mobile-paper-white);
}
.tone-busy .status[data-v-171f071c], .tone-served .status[data-v-171f071c], .tone-settled .status[data-v-171f071c] { color: rgba(251, 247, 236, .92);
}
.skeleton-card[data-v-171f071c] { aspect-ratio: 1; border-radius: 12px; background: var(--pos-mobile-border); animation: paper-breathe-171f071c 1.6s ease-in-out infinite alternate;
}
.skeleton-card[data-v-171f071c]:nth-child(2n) { animation-delay: .16s;
}
.skeleton-card[data-v-171f071c]:nth-child(3n) { animation-delay: .32s;
}
.empty-seat[data-v-171f071c] { margin: 42px 0; color: var(--pos-mobile-muted); text-align: center;
}
.is-holding .seat-card[data-v-171f071c] { border-color: #C8AA93; border-color: color-mix(in oklab, var(--pos-mobile-accent) 38%, var(--pos-mobile-border));
}
.seat-card.drop-target[data-v-171f071c] { border-color: var(--pos-mobile-accent); box-shadow: inset 0 0 0 1px #A26440, 0 4px 14px rgba(162, 100, 64, 0.18); box-shadow: inset 0 0 0 1px var(--pos-mobile-accent), 0 4px 14px color-mix(in oklab, var(--pos-mobile-accent) 18%, transparent);
}
@keyframes paper-breathe-171f071c {
from { opacity: .38;
}
to { opacity: .72;
}
}
@media (prefers-reduced-motion: reduce) {
.skeleton-card[data-v-171f071c] { animation: none;
}
}

.rsv-ghost { position: fixed; top: 0; left: 0; z-index: 80; pointer-events: none; box-shadow: 0 6px 18px rgba(67, 53, 43, 0.22); box-shadow: 0 6px 18px color-mix(in oklab, var(--pos-mobile-fg) 22%, transparent); background: var(--pos-mobile-surface);
}
.rsv-dock { position: fixed; right: 10px; bottom: calc(56px + env(safe-area-inset-bottom, 0px) + 10px); left: 10px; z-index: 30; display: flex; align-items: center; gap: 8px; padding: 9px 10px; border: 1px solid var(--pos-mobile-accent); border-radius: 12px; background: var(--pos-mobile-surface); box-shadow: 0 8px 24px rgba(67, 53, 43, 0.18); box-shadow: 0 8px 24px color-mix(in oklab, var(--pos-mobile-fg) 18%, transparent); color: var(--pos-mobile-fg);
}
@supports not (gap: 1px) {
.rsv-dock > * + * {
    margin-left: 8px;
}
}
.rsv-dock .d-hint { flex: 1; min-width: 0; color: var(--pos-mobile-muted); font-size: 11px; line-height: 1.5;
}
.rsv-dock .d-hint b { color: var(--pos-mobile-fg); font-weight: 600;
}
.rsv-dock .d-cancel { flex: none; min-height: 32px; padding: 0 12px; border: 1px solid var(--pos-mobile-border); border-radius: 8px; background: var(--pos-mobile-bg); color: var(--pos-mobile-muted); font: inherit; font-size: 12px;
}
.rsv-confirm-mask { position: fixed; z-index: 90; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.rsv-confirm-mask { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.rsv-confirm-sheet { width: 100%; padding: 8px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-radius: 18px 18px 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); transform: none;
}
.rsv-confirm-sheet .sheet-grip { width: 36px; height: 4px; margin: 10px auto 0; border-radius: 999px; background: var(--pos-mobile-border);
}
.rsv-confirm-sheet header { display: flex; align-items: flex-start; gap: 10px; padding: 12px 0 10px;
}
@supports not (gap: 1px) {
.rsv-confirm-sheet header > * + * {
    margin-left: 10px;
}
}
.rsv-confirm-sheet .sheet-title { flex: 1; margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.rsv-confirm-sheet .sheet-x { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.rsv-confirm-sheet .confirm-body { margin: 0 0 16px; font-size: 14px; line-height: 1.8;
}
.rsv-confirm-sheet .cta-actions { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.rsv-confirm-sheet .cta-actions > * + * {
    margin-left: 10px;
}
}
.rsv-confirm-sheet .btn-line { flex: 1; min-height: 48px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14.5px;
}
.rsv-confirm-sheet .save-btn { flex: 1; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-cinnabar); color: var(--pos-mobile-surface); font: inherit; font-size: 15px;
}

.menu-view[data-v-9777ab59] { display: flex; flex: 1; width: 100%; min-width: 0; min-height: 0; flex-direction: column; overflow-x: hidden; color: var(--pos-mobile-fg);
}
.cat-tabs[data-v-9777ab59], .category-scroll[data-v-9777ab59] { display: flex; flex: none; gap: 2px; overflow-x: auto; padding: 8px 12px 0; border-bottom: 1px solid var(--pos-mobile-border); scrollbar-width: none;
}
@supports not (gap: 1px) {
.cat-tabs[data-v-9777ab59] > * + *,
.category-scroll[data-v-9777ab59] > * + * {
    margin-left: 2px;
}
}
.category-scroll[data-v-9777ab59]::-webkit-scrollbar, .subcategory-scroll[data-v-9777ab59]::-webkit-scrollbar { display: none;
}
button.ctab[data-v-9777ab59] { display: inline-flex; flex: none; align-items: center; min-height: 40px; padding: 0 12px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--pos-mobile-muted); font: inherit; font-size: 14px; white-space: nowrap; cursor: pointer;
}
.ctab.active[data-v-9777ab59], .ctab.on[data-v-9777ab59] { color: var(--pos-mobile-fg); font-weight: 600; border-bottom-color: var(--pos-mobile-accent);
}
.sub-chips[data-v-9777ab59], .subcategory-scroll[data-v-9777ab59] { display: flex; flex: none; gap: 8px; overflow-x: auto; padding: 10px 16px 2px; scrollbar-width: none;
}
@supports not (gap: 1px) {
.sub-chips[data-v-9777ab59] > * + *,
.subcategory-scroll[data-v-9777ab59] > * + * {
    margin-left: 8px;
}
}
button.rchip[data-v-9777ab59] { display: inline-flex; flex: none; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; line-height: 1.2; white-space: nowrap; cursor: pointer;
}
.rchip.active[data-v-9777ab59], .rchip.on[data-v-9777ab59] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent); font-weight: 600;
}
.menu-list[data-v-9777ab59] { flex: 1; min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 2px 0 8px; scrollbar-width: none;
}
.cat2-name[data-v-9777ab59], .product-grid h2[data-v-9777ab59] { margin: 0; padding: 12px 18px 2px; color: var(--pos-mobile-muted); font-family: var(--pos-mobile-font-display); font-size: 13px; font-weight: 600; letter-spacing: .12em;
}
.product-grid[data-v-9777ab59] { display: flex; flex-wrap: wrap; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; padding: 8px 8px 6px;
}
.product-card[data-v-9777ab59] { box-sizing: border-box; position: relative; display: flex; flex: 0 0 33.333%; max-width: 33.333%; min-width: 0; flex-direction: column; gap: 5px; padding: 6px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: inherit; font: inherit; text-align: left; cursor: pointer; overflow: hidden; -webkit-appearance: none; appearance: none; touch-action: manipulation;
}
@supports not (gap: 1px) {
.product-card[data-v-9777ab59] > * + * {
    margin-top: 5px;
}
}
.product-card[data-v-9777ab59]:active { background: var(--pos-mobile-soft);
}
.product-card.selected[data-v-9777ab59] { border-color: #C7A891; border-color: color-mix(in oklab, var(--pos-mobile-accent) 40%, var(--pos-mobile-border));
}
.thumb[data-v-9777ab59], .product-image[data-v-9777ab59] { display: grid; width: 100%; aspect-ratio: 1; place-items: center; overflow: hidden; border-radius: 8px; background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2);
}
.product-image img[data-v-9777ab59] { width: 100%; height: 100%; object-fit: contain;
}
.product-image svg[data-v-9777ab59] { width: 26px; height: 26px;
}
.qty-badge[data-v-9777ab59] { position: absolute; top: 2px; right: 2px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--pos-mobile-cinnabar); color: var(--pos-mobile-surface); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-style: normal; line-height: 20px; text-align: center;
}
.p-name[data-v-9777ab59] { display: -webkit-box; overflow: hidden; min-height: 2.9em; font-size: 12.5px; font-weight: 600; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.p-price[data-v-9777ab59] { color: var(--pos-mobile-accent); font-size: 13px; font-weight: 600;
}
.cta-bar[data-v-9777ab59] { display: flex; flex: none; flex-direction: column; gap: 8px; padding: 10px 16px 12px; border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface);
}
@supports not (gap: 1px) {
.cta-bar[data-v-9777ab59] > * + * {
    margin-top: 8px;
}
}
.cta-actions[data-v-9777ab59] { display: flex; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.cta-actions[data-v-9777ab59] > * + * {
    margin-left: 10px;
}
}
.cta-due[data-v-9777ab59] { display: grid; flex: none; padding-left: 4px;
}
.cta-due small[data-v-9777ab59] { display: block; color: var(--pos-mobile-muted); font-size: 11px;
}
.cta-due .money[data-v-9777ab59] { font-family: var(--pos-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap;
}
button.save-btn[data-v-9777ab59] { display: inline-flex; flex: 1; align-items: center; justify-content: center; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px; letter-spacing: .06em; cursor: pointer;
}
button.save-btn[data-v-9777ab59]:disabled { background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2); cursor: default;
}
.save-btn[data-v-9777ab59]:active { opacity: .85;
}

.sep[data-v-6e427351] {
  display: inline-block;
  width: 0.45em;
  margin: 0;
  color: var(--pos-mobile-muted-2);
  font-size: 10px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0;
}

.queue-view[data-v-0f659adc] { min-height: 100%; color: var(--pos-mobile-fg);
}
.view-scroll[data-v-0f659adc] { padding-bottom: 16px;
}
.view-head[data-v-0f659adc] { padding: 14px 18px 4px;
}
.view-title[data-v-0f659adc] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em;
}
.view-sub[data-v-0f659adc] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.group-card[data-v-0f659adc] { margin: 10px 16px 0; overflow: hidden; border: 1px solid var(--pos-mobile-border); border-radius: 14px; background: var(--pos-mobile-surface);
}
/* B-468：排序条（label muted + pill 钮单行随文字，窄屏横滚；选中 soft-green + 箭头） */
.q-sort[data-v-0f659adc] { display: flex; align-items: center; gap: 8px; margin: 10px 18px 0;
}
@supports not (gap: 1px) {
.q-sort[data-v-0f659adc] > * + * {
    margin-left: 8px;
}
}
.q-sort-label[data-v-0f659adc] { flex: none; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .1em;
}
.q-sort-chips[data-v-0f659adc] { display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none;
}
@supports not (gap: 1px) {
.q-sort-chips[data-v-0f659adc] > * + * {
    margin-left: 7px;
}
}
.q-sort-chips[data-v-0f659adc]::-webkit-scrollbar { display: none;
}
.q-sort-chip[data-v-0f659adc] { flex: none; display: inline-flex; align-items: center; min-height: 32px; padding: 0 13px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; white-space: nowrap;
}
.q-sort-chip.on[data-v-0f659adc] { border-color: var(--pos-mobile-border); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-fg); font-weight: 600;
}
.q-sort-arrow[data-v-0f659adc] { margin-left: 3px; font-size: 10px; color: var(--pos-mobile-accent);
}
.combo-head[data-v-0f659adc] { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: var(--pos-mobile-soft); font-size: 13px; font-weight: 600;
}
@supports not (gap: 1px) {
.combo-head[data-v-0f659adc] > * + * {
    margin-left: 8px;
}
}
.combo-head .ch-t[data-v-0f659adc] { flex: 1; min-width: 0;
}
.combo-head .ch-sub[data-v-0f659adc] { display: block; color: var(--pos-mobile-muted); font-size: 11px; font-weight: 400;
}
.mini-btn[data-v-0f659adc] { flex: none; display: inline-flex; min-height: 36px; align-items: center; padding: 0 12px; border: 1px solid var(--pos-mobile-accent); border-radius: 10px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600;
}
.q-row[data-v-0f659adc] { display: flex; align-items: center; gap: 10px; padding: 11px 14px;
}
@supports not (gap: 1px) {
.q-row[data-v-0f659adc] > * + * {
    margin-left: 10px;
}
}
.q-row + .q-row[data-v-0f659adc], .combo-head + .q-row[data-v-0f659adc] { border-top: 1px solid var(--pos-mobile-border);
}
.q-child[data-v-0f659adc] { padding-left: 30px; background: #F4EFE4; background: color-mix(in oklab, var(--pos-mobile-surface) 60%, var(--pos-mobile-soft));
}
.qt[data-v-0f659adc] { flex: 1; min-width: 0;
}
.q-name[data-v-0f659adc] { font-size: 14.5px; font-weight: 600; line-height: 1.4;
}
.q-sub[data-v-0f659adc] { margin-top: 2px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.5;
}
.q-sub .sep[data-v-0f659adc] { display: inline-block; width: 0.45em; margin: 0; color: var(--pos-mobile-muted-2); font-size: 10px; font-weight: 400; text-align: center; letter-spacing: 0;
}
.q-sub .warnline[data-v-0f659adc] { color: var(--pos-mobile-cinnabar); font-weight: 600;
}
.q-tag[data-v-0f659adc] { display: inline-block; margin-right: 4px; padding: 0 5px; border: 1px solid var(--pos-mobile-border); border-radius: 4px; color: var(--pos-mobile-muted); font-family: var(--pos-mobile-font-display); font-size: 10px; letter-spacing: .06em; vertical-align: 1px;
}
.st-btn[data-v-0f659adc] { flex: none; min-width: 76px; min-height: 44px; padding: 0 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; font-weight: 600; letter-spacing: .04em;
}
.st-btn.s-entered[data-v-0f659adc] { border-color: #C4A28A; border-color: color-mix(in oklab, var(--pos-mobile-accent) 45%, var(--pos-mobile-border)); color: var(--pos-mobile-accent);
}
.st-btn.s-preparing[data-v-0f659adc] { border-color: transparent; background: var(--pos-mobile-soft-clay); color: var(--pos-mobile-accent);
}
.st-btn.s-ready[data-v-0f659adc] { border-color: transparent; background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent);
}
.empty[data-v-0f659adc] { padding: 56px 28px; color: var(--pos-mobile-muted); text-align: center;
}
.empty svg[data-v-0f659adc] { display: block; width: 88px; height: 88px; margin: 0 auto 14px; opacity: .14; color: var(--pos-mobile-fg);
}
.empty p[data-v-0f659adc] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 15px; letter-spacing: .06em;
}
.q-quip[data-v-0f659adc] { display: block; max-width: 21em; margin: 8px auto 0; color: var(--pos-mobile-muted-2); font-size: 13px; line-height: 1.9;
}

.order-view[data-v-9f810c6a] { display: flex; height: 100%; min-height: 0; flex-direction: column; color: var(--pos-mobile-fg);
}
.view-scroll[data-v-9f810c6a] { flex: 1; min-height: 0; overflow: auto; padding-bottom: 8px;
}
.view-head[data-v-9f810c6a] { padding: 14px 18px 4px;
}
.view-title[data-v-9f810c6a] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em;
}
.view-sub[data-v-9f810c6a] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.group-card[data-v-9f810c6a] { margin: 10px 16px 0; overflow: hidden; border: 1px solid var(--pos-mobile-border); border-radius: 14px; background: var(--pos-mobile-surface);
}
.biz-sec[data-v-9f810c6a] { margin: 16px 18px 0; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .12em;
}
.q-row[data-v-9f810c6a], .ord-top[data-v-9f810c6a] { display: flex; align-items: center; gap: 10px; padding: 11px 14px;
}
@supports not (gap: 1px) {
.q-row[data-v-9f810c6a] > * + *,
.ord-top[data-v-9f810c6a] > * + * {
    margin-left: 10px;
}
}
.ord-row + .ord-row[data-v-9f810c6a], .ord-child[data-v-9f810c6a] { border-top: 1px solid var(--pos-mobile-border);
}
.qt[data-v-9f810c6a] { flex: 1; min-width: 0;
}
.q-name[data-v-9f810c6a] { display: -webkit-box; overflow: hidden; min-width: 0; font-size: 14.5px; font-weight: 600; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.q-sub[data-v-9f810c6a] { overflow: hidden; min-width: 0; margin-top: 2px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.5; white-space: nowrap; text-overflow: ellipsis;
}
.q-sub .sep[data-v-9f810c6a] { display: inline-block; width: 0.45em; margin: 0; color: var(--pos-mobile-muted-2); font-size: 10px; font-weight: 400; text-align: center; letter-spacing: 0;
}
.q-tag[data-v-9f810c6a] { display: inline-block; margin-left: 4px; padding: 0 5px; border: 1px solid var(--pos-mobile-border); border-radius: 4px; color: var(--pos-mobile-muted); font-family: var(--pos-mobile-font-display); font-size: 10px; font-weight: 400; letter-spacing: .06em; vertical-align: 1px;
}
.q-amt[data-v-9f810c6a] { flex: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 600;
}
.ord-child[data-v-9f810c6a] { display: flex; align-items: center; gap: 10px; padding: 10px 14px 10px 30px; background: #F4EFE4; background: color-mix(in oklab, var(--pos-mobile-surface) 60%, var(--pos-mobile-soft));
}
@supports not (gap: 1px) {
.ord-child[data-v-9f810c6a] > * + * {
    margin-left: 10px;
}
}
.ord-child .q-name[data-v-9f810c6a] { font-size: 13.5px;
}
.stepper[data-v-9f810c6a] { display: flex; flex: none; align-items: center; gap: 2px;
}
@supports not (gap: 1px) {
.stepper[data-v-9f810c6a] > * + * {
    margin-left: 2px;
}
}
.stepper button[data-v-9f810c6a] { width: 44px; height: 44px; padding: 0; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font-size: 18px; line-height: 1;
}
.stepper button[data-v-9f810c6a]:disabled { color: var(--pos-mobile-muted-2); background: var(--pos-mobile-soft);
}
.stepper .qty[data-v-9f810c6a] { min-width: 26px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; font-weight: 600; text-align: center;
}
.st-btn[data-v-9f810c6a] { flex: none; min-width: 76px; min-height: 44px; padding: 0 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; font-weight: 600;
}
.st-btn.s-entered[data-v-9f810c6a] { border-color: #C4A28A; border-color: color-mix(in oklab, var(--pos-mobile-accent) 45%, var(--pos-mobile-border)); color: var(--pos-mobile-accent);
}
.st-btn.s-preparing[data-v-9f810c6a] { border-color: transparent; background: var(--pos-mobile-soft-clay); color: var(--pos-mobile-accent);
}
.st-btn.s-ready[data-v-9f810c6a] { border-color: transparent; background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent);
}
.st-static[data-v-9f810c6a] { display: inline-flex; flex: none; min-width: 76px; min-height: 44px; align-items: center; justify-content: center; padding: 0 12px; border-radius: 12px; background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2); font-size: 13px; font-weight: 600;
}
.lock-note[data-v-9f810c6a] { margin: 0; padding: 2px 14px 10px; color: var(--pos-mobile-muted); font-size: 11.5px; line-height: 1.6;
}
.miss-line[data-v-9f810c6a] { display: flex; align-items: center; gap: 8px; padding: 9px 14px 9px 30px; color: var(--pos-mobile-accent); font-size: 12px; background: #F4EFE4; background: color-mix(in oklab, var(--pos-mobile-surface) 60%, var(--pos-mobile-soft));
}
@supports not (gap: 1px) {
.miss-line[data-v-9f810c6a] > * + * {
    margin-left: 8px;
}
}
.miss-line span[data-v-9f810c6a] { flex: 1; min-width: 0;
}
.mini-btn[data-v-9f810c6a] { flex: none; display: inline-flex; min-height: 36px; align-items: center; padding: 0 12px; border: 1px solid var(--pos-mobile-accent); border-radius: 10px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600;
}
.adj-chips[data-v-9f810c6a] { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 16px 4px;
}
@supports not (gap: 1px) {
.adj-chips[data-v-9f810c6a] > * + * {
    margin-left: 8px;
}
}
.rchip[data-v-9f810c6a] { min-height: 36px; padding: 0 14px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px;
}
.rchip.on[data-v-9f810c6a], .rchip.active[data-v-9f810c6a] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent); font-weight: 600;
}
/* B-300：四个调整模式按钮等宽铺满一行（对齐原型 .adj-chips.adj-modes，455–457 行）；折扣行仍走可换行 chip 流 */
.adj-chips.adj-modes[data-v-9f810c6a] { flex-wrap: nowrap;
}
.adj-chips.adj-modes .rchip[data-v-9f810c6a] { flex: 1; padding: 0 4px; text-align: center;
}
/* B-416 会员折扣只读标识：与手动折扣钮区分，非交互 */
.adj-chips.adj-modes .member-chip[data-v-9f810c6a] {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-color: var(--pos-mobile-accent);
  background: var(--pos-mobile-soft-green);
  color: var(--pos-mobile-accent);
  font-weight: 600;
  pointer-events: none;
}
/* B-300：自定义折数输入与 9/8/7/6 折同一行（原型 .adj-custom 提到档位行） */
.disc-input[data-v-9f810c6a] { display: inline-flex; align-items: center; gap: 4px; padding: 0 10px; cursor: text;
}
@supports not (gap: 1px) {
.disc-input[data-v-9f810c6a] > * + * {
    margin-left: 4px;
}
}
.disc-input input[data-v-9f810c6a] {
  width: 3.2em; min-height: 34px; padding: 0; border: 0; background: transparent;
  color: inherit; font: inherit; font-size: 13px; font-variant-numeric: tabular-nums; text-align: center;
}
.disc-input input[data-v-9f810c6a]:focus { outline: none;
}
.disc-input .zhe-unit[data-v-9f810c6a] { flex: none; font-size: 13px;
}
.disc-input.bad[data-v-9f810c6a] { border-color: var(--pos-mobile-cinnabar); color: var(--pos-mobile-cinnabar);
}
.note[data-v-9f810c6a] { margin: 0; padding: 6px 18px 0; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.note.danger[data-v-9f810c6a] { color: var(--pos-mobile-cinnabar);
}
.kv[data-v-9f810c6a] { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 8px 16px; font-size: 13.5px;
}
@supports not (gap: 1px) {
.kv[data-v-9f810c6a] > * + * {
    margin-left: 14px;
}
}
.kv .k[data-v-9f810c6a] { flex: none; color: var(--pos-mobile-muted);
}
.kv .paid-chans[data-v-9f810c6a] { flex: 1; min-width: 0; text-align: right; color: var(--pos-mobile-muted); font-size: 12px;
}
.kv .v[data-v-9f810c6a], .money[data-v-9f810c6a] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums;
}
.kv.big[data-v-9f810c6a] { font-size: 16px; font-weight: 600;
}
.kv .neg[data-v-9f810c6a] { color: var(--pos-mobile-cinnabar);
}
.row-like[data-v-9f810c6a] { display: flex; align-items: center; gap: 10px; padding: 12px 14px;
}
@supports not (gap: 1px) {
.row-like[data-v-9f810c6a] > * + * {
    margin-left: 10px;
}
}
.ico[data-v-9f810c6a] { display: grid; width: 26px; height: 26px; flex: none; place-items: center; border-radius: 8px; background: var(--pos-mobile-soft); color: var(--pos-mobile-accent);
}
.ico svg[data-v-9f810c6a] { width: 14px; height: 14px;
}
.mt[data-v-9f810c6a] { flex: 1; min-width: 0;
}
.mn[data-v-9f810c6a] { font-size: 14.5px; font-weight: 600;
}
.ms[data-v-9f810c6a] { margin-top: 1px; color: var(--pos-mobile-muted); font-size: 12px;
}
.text-btn[data-v-9f810c6a] { min-height: 36px; padding: 0; border: 0; background: none; color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px;
}
.text-btn.danger[data-v-9f810c6a] { color: var(--pos-mobile-cinnabar);
}
.empty[data-v-9f810c6a] { padding: 56px 28px; color: var(--pos-mobile-muted); text-align: center;
}
.empty svg[data-v-9f810c6a] { display: block; width: 88px; height: 88px; margin: 0 auto 14px; opacity: .14;
}
.empty p[data-v-9f810c6a] { font-family: var(--pos-mobile-font-display); font-size: 15px; letter-spacing: .06em;
}
.empty small[data-v-9f810c6a] { display: block; margin-top: 4px; color: var(--pos-mobile-muted-2); font-size: 12px;
}
.cta-bar[data-v-9f810c6a] { flex: none; position: sticky; bottom: 0; z-index: 2; padding: 10px 16px 12px; border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface);
}
.cta-meta[data-v-9f810c6a] { margin: 0 0 8px; color: var(--pos-mobile-muted); font-size: 12px; text-align: center;
}
.cta-meta.warn[data-v-9f810c6a] { color: var(--pos-mobile-cinnabar);
}
.pay-textlink[data-v-9f810c6a] { min-height: 32px; padding: 0; border: 0; background: none; color: var(--pos-mobile-muted); font: inherit; font-size: 12px;
}
.pay-textlink.accent[data-v-9f810c6a] { color: var(--pos-mobile-accent);
}
.cta-actions[data-v-9f810c6a] { display: flex; align-items: center; gap: 10px;
}
@supports not (gap: 1px) {
.cta-actions[data-v-9f810c6a] > * + * {
    margin-left: 10px;
}
}
.cta-due[data-v-9f810c6a] { flex: none; padding-left: 4px;
}
.cta-due small[data-v-9f810c6a] { display: block; color: var(--pos-mobile-muted); font-size: 11px;
}
.cta-due .money[data-v-9f810c6a] { font-size: 19px; font-weight: 600;
}
.save-btn[data-v-9f810c6a] { flex: 1; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px; letter-spacing: .06em;
}
.save-btn[data-v-9f810c6a]:disabled { background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2);
}
.cta-clear[data-v-9f810c6a] { flex: none; min-height: 40px; padding: 0 12px; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: transparent; color: var(--pos-mobile-muted); font: inherit; font-size: 13px; cursor: pointer;
}
.cta-clear[data-v-9f810c6a]:active { opacity: .7;
}
.save-btn.danger[data-v-9f810c6a], .btn-line.danger[data-v-9f810c6a] { background: var(--pos-mobile-cinnabar); color: var(--pos-mobile-surface); border: 0;
}
.btn-line[data-v-9f810c6a] { flex: 1; min-height: 48px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14.5px;
}
.confirm-mask[data-v-9f810c6a] { position: fixed; z-index: 88; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.confirm-mask[data-v-9f810c6a] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.confirm-sheet[data-v-9f810c6a] { width: 100%; padding: 8px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-radius: 18px 18px 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); transform: none;
}
.confirm-sheet header[data-v-9f810c6a] { display: flex; align-items: flex-start; gap: 10px; padding: 12px 0 10px;
}
@supports not (gap: 1px) {
.confirm-sheet header[data-v-9f810c6a] > * + * {
    margin-left: 10px;
}
}
.confirm-sheet .sheet-title[data-v-9f810c6a] { flex: 1; margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.confirm-sheet .sheet-x[data-v-9f810c6a] { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.confirm-body[data-v-9f810c6a] { margin: 0 0 16px; font-size: 14px; line-height: 1.8;
}

.payment-mask[data-v-cee0a54f] { position: fixed; z-index: 78; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.payment-mask[data-v-cee0a54f] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.payment-sheet[data-v-cee0a54f] { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; max-height: 86%; overflow: hidden; border-radius: 20px 20px 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); box-shadow: var(--pos-mobile-shadow-sheet); transform: none;
}
.sheet-head[data-v-cee0a54f] { display: flex; flex: none; align-items: flex-start; gap: 10px; padding: 16px 18px 10px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-cee0a54f] > * + * {
    margin-left: 10px;
}
}
.st-t[data-v-cee0a54f] { flex: 1; min-width: 0;
}
.sheet-title[data-v-cee0a54f] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.sheet-sub[data-v-cee0a54f] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.sheet-x[data-v-cee0a54f] { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.sheet-body[data-v-cee0a54f] { flex: 1; min-height: 0; overflow: auto; padding: 0 18px 12px;
}
.pay-paid-line[data-v-cee0a54f] { display: flex; align-items: baseline; gap: 10px; margin-top: 8px; padding: 8px 12px; border-radius: 10px; background: var(--pos-mobile-soft); font-size: 13px;
}
@supports not (gap: 1px) {
.pay-paid-line[data-v-cee0a54f] > * + * {
    margin-left: 10px;
}
}
.pay-paid-line .pp-label[data-v-cee0a54f] { flex: none; color: var(--pos-mobile-muted);
}
.pay-paid-line .pp-text[data-v-cee0a54f] { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums;
}
.due-hero[data-v-cee0a54f] { padding: 8px 2px 4px;
}
.due-hero small[data-v-cee0a54f] { display: block; color: var(--pos-mobile-muted); font-size: 12px;
}
.due-hero .money[data-v-cee0a54f] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 30px; font-weight: 600; line-height: 1.35;
}
.pay-textrow[data-v-cee0a54f] { display: flex; justify-content: space-between; align-items: center; margin: 10px 2px 0;
}
.pay-textrow.end[data-v-cee0a54f] { justify-content: flex-end; gap: 18px; margin-top: 6px;
}
.note.danger[data-v-cee0a54f] { color: var(--pos-mobile-fg);
}
.note.danger b[data-v-cee0a54f] { color: var(--pos-mobile-cinnabar);
}
.pay-textlink[data-v-cee0a54f] { min-height: 44px; padding: 4px 0; border: 0; background: none; color: var(--pos-mobile-muted); font: inherit; font-size: 12.5px;
}
.pay-textlink.accent[data-v-cee0a54f] { color: var(--pos-mobile-accent);
}
.pay-sec[data-v-cee0a54f] { margin: 14px 2px 0; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .14em;
}
.pay-chan[data-v-cee0a54f] { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; margin-top: 8px; padding: 8px 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14px; text-align: left; cursor: pointer;
}
@supports not (gap: 1px) {
.pay-chan[data-v-cee0a54f] > * + * {
    margin-left: 10px;
}
}
.pay-chan.on[data-v-cee0a54f] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green);
}
.ico[data-v-cee0a54f] { display: grid; width: 26px; height: 26px; flex: none; place-items: center; border-radius: 8px; background: var(--pos-mobile-soft); color: var(--pos-mobile-accent);
}
.ico svg[data-v-cee0a54f] { width: 14px; height: 14px; display: block;
}
.pt[data-v-cee0a54f] { flex: 1; min-width: 0;
}
.pt small[data-v-cee0a54f] { display: block; color: var(--pos-mobile-muted); font-size: 11.5px;
}
.pay-chan.on .pt small[data-v-cee0a54f] { color: var(--pos-mobile-accent);
}
.pay-check[data-v-cee0a54f], .cg-arr[data-v-cee0a54f] { flex: none; color: var(--pos-mobile-accent);
}
.pay-links[data-v-cee0a54f] { display: flex; justify-content: center; margin-top: 14px;
}
.pay-links.start[data-v-cee0a54f] { justify-content: flex-start; margin: 2px 0 4px;
}
.text-btn[data-v-cee0a54f] { min-height: 44px; padding: 4px 0; border: 0; background: none; color: var(--pos-mobile-accent); font: inherit; font-size: 13px;
}
.split-row[data-v-cee0a54f] { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; padding: 10px 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface);
}
@supports not (gap: 1px) {
.split-row[data-v-cee0a54f] > * + * {
    margin-left: 8px;
}
}
/* B-488：分笔行渠道改行内展开（退役原生 select），视觉对齐单笔渠道行 .pay-chan */
.split-chan-wrap[data-v-cee0a54f] { position: relative; flex: 1; min-width: 0;
}
.split-chan[data-v-cee0a54f] { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; height: 44px; padding: 0 10px; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; cursor: pointer;
}
@supports not (gap: 1px) {
.split-chan[data-v-cee0a54f] > * + * {
    margin-left: 8px;
}
}
.split-chan.open[data-v-cee0a54f] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green);
}
.split-chan-value[data-v-cee0a54f] { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.split-caret[data-v-cee0a54f] { flex: none; color: var(--pos-mobile-muted); font-size: 11px;
}
.split-chan-list[data-v-cee0a54f] { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 5; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: var(--pos-mobile-surface); overflow: hidden;
}
.split-chan-opt[data-v-cee0a54f] { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 44px; padding: 6px 12px; border: 0; border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
}
@supports not (gap: 1px) {
.split-chan-opt[data-v-cee0a54f] > * + * {
    margin-left: 8px;
}
}
.split-chan-opt[data-v-cee0a54f]:first-child { border-top: 0;
}
.split-chan-opt.on[data-v-cee0a54f] { background: var(--pos-mobile-soft-green);
}
.split-row input[data-v-cee0a54f] { width: 96px; height: 44px; padding: 0 10px; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; font-variant-numeric: tabular-nums;
}
/* B-484 部分收：单笔金额输入沿用分笔行 input 语言（等宽数字、44px 触达高度） */
.pay-amount-row[data-v-cee0a54f] { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 10px 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface);
}
@supports not (gap: 1px) {
.pay-amount-row[data-v-cee0a54f] > * + * {
    margin-left: 10px;
}
}
.pay-amount-row .pa-label[data-v-cee0a54f] { flex: 1; min-width: 0; color: var(--pos-mobile-muted); font-size: 13px;
}
.pay-amount-row input[data-v-cee0a54f] { width: 110px; height: 44px; padding: 0 10px; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; font-variant-numeric: tabular-nums; text-align: right;
}
.pay-amount-row input[data-v-cee0a54f]:focus { border-color: var(--pos-mobile-accent); outline: none;
}
.pay-charge-line[data-v-cee0a54f] { margin: 8px 2px 0; color: var(--pos-mobile-accent); font-size: 13px; font-variant-numeric: tabular-nums;
}
.split-del[data-v-cee0a54f] { flex: none; width: 44px; height: 44px; border: 0; border-radius: 10px; background: none; color: var(--pos-mobile-muted); font: inherit; font-size: 13px;
}
.btn-line[data-v-cee0a54f] { width: 100%; min-height: 48px; margin-top: 10px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14.5px;
}
.split-sum[data-v-cee0a54f] { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-top: 12px; padding: 10px 14px; border-radius: 10px; background: var(--pos-mobile-soft); font-size: 13px;
}
@supports not (gap: 1px) {
.split-sum[data-v-cee0a54f] > * + * {
    margin-left: 10px;
}
}
.split-sum b[data-v-cee0a54f] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums;
}
.split-sum.ok[data-v-cee0a54f] { background: var(--pos-mobile-soft-green);
}
.split-sum.over[data-v-cee0a54f] { background: var(--pos-mobile-soft-clay);
}
.note[data-v-cee0a54f] { margin: 8px 0 0; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.sheet-foot[data-v-cee0a54f] { flex: none; padding: 10px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface);
}
.save-btn[data-v-cee0a54f] { width: 100%; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px; letter-spacing: .06em;
}
.save-btn[data-v-cee0a54f]:disabled { background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2);
}

.clear-confirm-mask[data-v-ecd00b07] { position: fixed; z-index: 92; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.clear-confirm-mask[data-v-ecd00b07] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.clear-confirm-sheet[data-v-ecd00b07] { width: 100%; padding: 8px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-radius: 18px 18px 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); transform: none;
}
.clear-confirm-sheet[data-v-ecd00b07]:focus { outline: none;
}
.sheet-grip[data-v-ecd00b07] { width: 36px; height: 4px; margin: 10px auto 0; border-radius: 999px; background: var(--pos-mobile-border);
}
.clear-confirm-sheet header[data-v-ecd00b07] { display: flex; align-items: flex-start; gap: 10px; padding: 12px 0 10px;
}
@supports not (gap: 1px) {
.clear-confirm-sheet header[data-v-ecd00b07] > * + * {
    margin-left: 10px;
}
}
.sheet-title[data-v-ecd00b07] { flex: 1; margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.sheet-x[data-v-ecd00b07] { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.clear-confirm-body[data-v-ecd00b07] { margin: 0 0 16px; font-size: 14px; line-height: 1.8;
}
.cta-actions[data-v-ecd00b07] { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.cta-actions[data-v-ecd00b07] > * + * {
    margin-left: 10px;
}
}
.btn-line[data-v-ecd00b07] { flex: 1; min-height: 48px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14.5px;
}
.save-btn[data-v-ecd00b07] { flex: 1; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px; letter-spacing: .06em;
}
.save-btn.danger[data-v-ecd00b07] { background: var(--pos-mobile-cinnabar);
}

/* B-449：未收款清台备注（两端同规则） */
.clear-note-field[data-v-ecd00b07] { margin: 10px 0 4px;
}
.clear-note-input[data-v-ecd00b07] {
  width: 100%; min-height: 64px; padding: 10px 12px;
  border: 1px solid var(--pos-mobile-line, #E3D8C4); border-radius: 8px;
  background: var(--pos-mobile-surface, #FBF7EE);
  font-size: 14px; box-sizing: border-box; resize: none;
}
.clear-note-input.bad[data-v-ecd00b07] { border-color: #A64F38;
}
.clear-note-err[data-v-ecd00b07] { margin: 4px 2px 0; font-size: 12px; color: #A64F38;
}

.debt-mask[data-v-08a57f8d] { position: fixed; z-index: 79; inset: 0; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg);
}
@supports not (inset: 0) {
.debt-mask[data-v-08a57f8d] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.debt-view[data-v-08a57f8d] { box-sizing: border-box; height: 100%; overflow: auto; padding: 0 0 calc(16px + env(safe-area-inset-bottom, 0px)); transform: none;
}
.view-head[data-v-08a57f8d] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 14px 16px 2px;
}
@supports not (gap: 1px) {
.view-head[data-v-08a57f8d] > * + * {
    margin-left: 10px;
}
}
.view-title[data-v-08a57f8d] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em;
}
.view-sub[data-v-08a57f8d] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.takeout-link[data-v-08a57f8d] { flex: none; min-height: 36px; padding: 0 13px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600;
}
.biz-sec[data-v-08a57f8d] { margin: 0; padding: 16px 18px 8px; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .12em;
}
.note[data-v-08a57f8d] { margin: 0; padding: 2px 18px 12px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.group-card[data-v-08a57f8d] { display: block; width: calc(100% - 32px); margin: 0 16px 10px; padding: 0; overflow: hidden; border: 1px solid var(--pos-mobile-border); border-radius: 14px; background: var(--pos-mobile-surface); color: inherit; font: inherit; text-align: left;
}
.bill-main[data-v-08a57f8d] { display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.q-row[data-v-08a57f8d] { display: flex; align-items: center; gap: 10px; padding: 11px 14px;
}
@supports not (gap: 1px) {
.q-row[data-v-08a57f8d] > * + * {
    margin-left: 10px;
}
}
.qt[data-v-08a57f8d] { flex: 1; min-width: 0;
}
.q-name[data-v-08a57f8d] { font-size: 14.5px; font-weight: 600;
}
.q-tag[data-v-08a57f8d] { display: inline-block; margin-left: 4px; padding: 0 5px; border: 1px solid #CA9983; border: 1px solid color-mix(in oklab, var(--pos-mobile-cinnabar) 45%, var(--pos-mobile-border)); border-radius: 4px; background: var(--pos-mobile-soft-clay); color: var(--pos-mobile-cinnabar); font-family: var(--pos-mobile-font-display); font-size: 10px; font-weight: 400; letter-spacing: .06em; vertical-align: 1px;
}
.q-tag.member[data-v-08a57f8d] { border-color: #C4A28A; border-color: color-mix(in oklab, var(--pos-mobile-accent) 45%, var(--pos-mobile-border)); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent);
}
.q-sub[data-v-08a57f8d] { overflow: hidden; margin-top: 2px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.5; white-space: nowrap; text-overflow: ellipsis;
}
.q-amt[data-v-08a57f8d] { flex: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; font-weight: 600;
}
.go[data-v-08a57f8d] { padding: 0 14px 10px; color: var(--pos-mobile-accent); font-size: 12px;
}
.bill-foot[data-v-08a57f8d] { display: flex; align-items: center; gap: 10px; padding: 0 14px 10px;
}
@supports not (gap: 1px) {
.bill-foot[data-v-08a57f8d] > * + * {
    margin-left: 10px;
}
}
.bill-note[data-v-08a57f8d] { flex: 1; min-width: 0; overflow: hidden; margin: 0; color: var(--pos-mobile-muted); font-size: 12px; white-space: nowrap; text-overflow: ellipsis;
}
.bill-note--empty[data-v-08a57f8d] { color: var(--pos-mobile-muted-2);
}
.bill-note-btn[data-v-08a57f8d] { flex: none; min-height: 32px; padding: 0 12px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12px; font-weight: 600;
}
/* B-320 备注编辑弹层 */
.note-mask[data-v-08a57f8d] { position: fixed; z-index: 85; inset: 0; display: flex; align-items: flex-end; justify-content: center; background: rgb(0 0 0 / .45);
}
@supports not (inset: 0) {
.note-mask[data-v-08a57f8d] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.note-sheet[data-v-08a57f8d] { box-sizing: border-box; width: 100%; max-width: 520px; padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)); border-radius: 16px 16px 0 0; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg);
}
.note-head[data-v-08a57f8d] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px;
}
@supports not (gap: 1px) {
.note-head[data-v-08a57f8d] > * + * {
    margin-left: 10px;
}
}
.note-title[data-v-08a57f8d] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600;
}
.note-sub[data-v-08a57f8d] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.note-x[data-v-08a57f8d] { min-width: 36px; min-height: 36px; border: 0; border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-muted); font-size: 18px;
}
.note-sheet textarea[data-v-08a57f8d] { box-sizing: border-box; width: 100%; min-height: 84px; padding: 10px 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14px; line-height: 1.6; resize: vertical;
}
.note-foot[data-v-08a57f8d] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px;
}
@supports not (gap: 1px) {
.note-foot[data-v-08a57f8d] > * + * {
    margin-left: 10px;
}
}
.note-btn[data-v-08a57f8d] { min-height: 42px; padding: 0 18px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13.5px; font-weight: 600;
}
.note-btn--primary[data-v-08a57f8d] { border-color: transparent; background: var(--pos-mobile-accent); color: var(--pos-mobile-on-accent, #fff);
}
.note-btn[data-v-08a57f8d]:disabled { opacity: .6;
}

.clean-mask[data-v-10d63ec3] { position: fixed; z-index: 79; inset: 0; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg);
}
@supports not (inset: 0) {
.clean-mask[data-v-10d63ec3] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.clean-view[data-v-10d63ec3] { box-sizing: border-box; height: 100%; overflow: auto; padding: 0 0 calc(16px + env(safe-area-inset-bottom, 0px)); transform: none;
}
.view-head[data-v-10d63ec3] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 14px 16px 2px;
}
@supports not (gap: 1px) {
.view-head[data-v-10d63ec3] > * + * {
    margin-left: 10px;
}
}
.view-title[data-v-10d63ec3] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em;
}
.view-sub[data-v-10d63ec3] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.back-link[data-v-10d63ec3] { flex: none; min-height: 36px; padding: 0 13px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600;
}
.biz-sec[data-v-10d63ec3] { margin: 0; padding: 16px 18px 8px; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .12em;
}
.note[data-v-10d63ec3] { margin: 0; padding: 2px 18px 12px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.group-card[data-v-10d63ec3] { display: block; width: calc(100% - 32px); margin: 0 16px 10px; padding: 0; overflow: hidden; border: 1px solid var(--pos-mobile-border); border-radius: 14px; background: var(--pos-mobile-surface); color: inherit; font: inherit; text-align: left;
}
.bill-main[data-v-10d63ec3] { display: block; width: 100%; padding: 0;
}
.q-row[data-v-10d63ec3] { display: flex; align-items: center; gap: 10px; padding: 11px 14px 4px;
}
@supports not (gap: 1px) {
.q-row[data-v-10d63ec3] > * + * {
    margin-left: 10px;
}
}
.qt[data-v-10d63ec3] { flex: 1; min-width: 0;
}
.q-name[data-v-10d63ec3] { font-size: 14.5px; font-weight: 600;
}
.q-tag[data-v-10d63ec3] { display: inline-block; margin-left: 4px; padding: 0 5px; border: 1px solid #CA9983; border: 1px solid color-mix(in oklab, var(--pos-mobile-cinnabar) 45%, var(--pos-mobile-border)); border-radius: 4px; background: var(--pos-mobile-soft-clay); color: var(--pos-mobile-cinnabar); font-family: var(--pos-mobile-font-display); font-size: 10px; font-weight: 400; letter-spacing: .06em; vertical-align: 1px;
}
.q-tag.member[data-v-10d63ec3] { border-color: #C4A28A; border-color: color-mix(in oklab, var(--pos-mobile-accent) 45%, var(--pos-mobile-border)); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent);
}
.q-sub[data-v-10d63ec3] { overflow: hidden; margin-top: 2px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.5; white-space: nowrap; text-overflow: ellipsis;
}
.q-amt[data-v-10d63ec3] { flex: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; font-weight: 600;
}
.bill-note[data-v-10d63ec3] { overflow: hidden; margin: 0; padding: 0 14px; color: var(--pos-mobile-muted); font-size: 12px; white-space: nowrap; text-overflow: ellipsis;
}
.bill-foot[data-v-10d63ec3] { display: flex; align-items: center; gap: 10px; padding: 10px 14px 12px;
}
@supports not (gap: 1px) {
.bill-foot[data-v-10d63ec3] > * + * {
    margin-left: 10px;
}
}
.bill-ops[data-v-10d63ec3] { gap: 8px;
}
.op-btn[data-v-10d63ec3] { flex: 1; min-height: 38px; padding: 0 10px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 12.5px; font-weight: 600;
}
.op-btn--primary[data-v-10d63ec3] { border-color: transparent; background: var(--pos-mobile-accent); color: var(--pos-mobile-on-accent, #fff);
}
.op-btn[data-v-10d63ec3]:disabled { opacity: .6;
}
/* 转欠备注 / 免单确认 底部弹层 */
.sheet-mask[data-v-10d63ec3] { position: fixed; z-index: 85; inset: 0; display: flex; align-items: flex-end; justify-content: center; background: rgb(0 0 0 / .45);
}
@supports not (inset: 0) {
.sheet-mask[data-v-10d63ec3] { top: 0; right: 0; bottom: 0; left: 0;
}
}
.bottom-sheet[data-v-10d63ec3] { box-sizing: border-box; width: 100%; max-width: 520px; padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)); border-radius: 16px 16px 0 0; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg);
}
.sheet-head[data-v-10d63ec3] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-10d63ec3] > * + * {
    margin-left: 10px;
}
}
.sheet-title[data-v-10d63ec3] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600;
}
.sheet-sub[data-v-10d63ec3] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.sheet-tip[data-v-10d63ec3] { margin: 0 0 10px; color: var(--pos-mobile-muted); font-size: 12.5px; line-height: 1.6;
}
.sheet-x[data-v-10d63ec3] { min-width: 36px; min-height: 36px; border: 0; border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-muted); font-size: 18px;
}
.bottom-sheet textarea[data-v-10d63ec3] { box-sizing: border-box; width: 100%; min-height: 84px; padding: 10px 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14px; line-height: 1.6; resize: vertical;
}
.sheet-foot[data-v-10d63ec3] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px;
}
@supports not (gap: 1px) {
.sheet-foot[data-v-10d63ec3] > * + * {
    margin-left: 10px;
}
}
.sheet-btn[data-v-10d63ec3] { min-height: 42px; padding: 0 18px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13.5px; font-weight: 600;
}
.sheet-btn--primary[data-v-10d63ec3] { border-color: transparent; background: var(--pos-mobile-accent); color: var(--pos-mobile-on-accent, #fff);
}
.sheet-btn--danger[data-v-10d63ec3] { border-color: transparent; background: var(--pos-mobile-cinnabar); color: var(--pos-mobile-on-accent, #fff);
}
.sheet-btn[data-v-10d63ec3]:disabled { opacity: .6;
}

.reservation-sheet-mask[data-v-f4fe158a] { position: fixed; z-index: 70; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.reservation-sheet-mask[data-v-f4fe158a] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.reservation-sheet[data-v-f4fe158a] { display: flex; flex-direction: column; width: 100%; max-height: 86vh; overflow: hidden; border-radius: var(--pos-mobile-radius-sheet) var(--pos-mobile-radius-sheet) 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); box-shadow: var(--pos-mobile-shadow-sheet); transform: none;
}
.sheet-grip[data-v-f4fe158a] { width: 36px; height: 4px; margin: 10px auto 0; border-radius: 999px; background: var(--pos-mobile-border); flex: none;
}
.sheet-head[data-v-f4fe158a] { display: flex; flex: none; align-items: flex-start; gap: 10px; padding: 12px 18px 10px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-f4fe158a] > * + * {
    margin-left: 10px;
}
}
.sheet-title[data-v-f4fe158a] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em; line-height: 1.4;
}
.sheet-sub[data-v-f4fe158a] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.sheet-x[data-v-f4fe158a] { flex: none; width: 44px; height: 44px; border: 0; border-radius: 12px; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.sheet-body[data-v-f4fe158a] { flex: 1; min-height: 0; overflow: auto; padding: 0 18px 12px;
}
.rsv-row[data-v-f4fe158a] { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: inherit; font: inherit; text-align: left; cursor: pointer;
}
@supports not (gap: 1px) {
.rsv-row[data-v-f4fe158a] > * + * {
    margin-left: 10px;
}
}
.rsv-row + .rsv-row[data-v-f4fe158a] { margin-top: 8px;
}
.rsv-row.cur[data-v-f4fe158a] { border-color: var(--pos-mobile-accent); box-shadow: inset 0 0 0 1px var(--pos-mobile-accent);
}
.rsv-main[data-v-f4fe158a] { flex: 1; min-width: 0;
}
.rsv-line[data-v-f4fe158a] { display: flex; align-items: baseline; gap: 8px; font-size: 14px;
}
@supports not (gap: 1px) {
.rsv-line[data-v-f4fe158a] > * + * {
    margin-left: 8px;
}
}
.rsv-line b[data-v-f4fe158a] { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px;
}
.rsv-name[data-v-f4fe158a] { font-weight: 600;
}
.rsv-sub[data-v-f4fe158a] { margin-top: 2px; color: var(--pos-mobile-muted); font-size: 12px;
}
.rsv-move[data-v-f4fe158a] { flex: none; padding: 4px 2px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 12px;
}
.rsv-arrow[data-v-f4fe158a] { flex: none; color: var(--pos-mobile-muted); font-size: 15px; line-height: 1;
}
.empty[data-v-f4fe158a] { color: var(--pos-mobile-muted); font-size: 13px;
}
.sheet-foot[data-v-f4fe158a] { flex: none; padding: 10px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface);
}
.rsv-openmod[data-v-f4fe158a] { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 42px; padding: 0 14px; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: none; color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600;
}
@supports not (gap: 1px) {
.rsv-openmod[data-v-f4fe158a] > * + * {
    margin-left: 10px;
}
}
.rsv-openmod .ro-sub[data-v-f4fe158a] { color: var(--pos-mobile-muted); font-size: 11px; font-weight: 400;
}

.move-mask[data-v-1b49d537] { position: fixed; z-index: 75; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.move-mask[data-v-1b49d537] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.move-sheet[data-v-1b49d537] { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; max-height: 86vh; overflow: hidden; border-radius: var(--pos-mobile-radius-sheet) var(--pos-mobile-radius-sheet) 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); box-shadow: var(--pos-mobile-shadow-sheet); transform: none;
}
.grip[data-v-1b49d537] { width: 36px; height: 4px; margin: 10px auto 0; border-radius: 99px; background: var(--pos-mobile-border); flex: none;
}
.sheet-head[data-v-1b49d537] { display: flex; flex: none; align-items: flex-start; gap: 10px; padding: 12px 18px 10px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-1b49d537] > * + * {
    margin-left: 10px;
}
}
.sheet-title[data-v-1b49d537] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.sheet-sub[data-v-1b49d537] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.sheet-x[data-v-1b49d537] { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.sheet-body[data-v-1b49d537] { flex: 1; min-height: 0; overflow: auto; padding: 0 18px 12px;
}
.confirm-body[data-v-1b49d537] { margin: 8px 0 0; font-size: 14px; line-height: 1.8;
}
.m-row[data-v-1b49d537] { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 10px 4px; border: 0; border-bottom: 1px solid var(--pos-mobile-border); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
@supports not (gap: 1px) {
.m-row[data-v-1b49d537] > * + * {
    margin-left: 12px;
}
}
.m-row .mt[data-v-1b49d537] { flex: 1; min-width: 0;
}
.m-row .mn[data-v-1b49d537] { font-size: 14.5px; font-weight: 600;
}
.m-row .ms[data-v-1b49d537] { margin-top: 1px; color: var(--pos-mobile-muted); font-size: 12px; font-variant-numeric: tabular-nums;
}
.m-row.disabled[data-v-1b49d537] { opacity: .45; cursor: default; pointer-events: none;
}
.m-row.disabled .mn[data-v-1b49d537] { color: var(--pos-mobile-muted);
}
.m-row.selected .mn[data-v-1b49d537] { color: var(--pos-mobile-accent);
}
.pay-check[data-v-1b49d537] { flex: none; color: var(--pos-mobile-muted); font-size: 18px;
}
.pay-check.on[data-v-1b49d537] { color: var(--pos-mobile-accent);
}
.q-amt[data-v-1b49d537] { margin-right: 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px;
}
.note[data-v-1b49d537] { margin: 10px 0 0; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.biz-sec[data-v-1b49d537] { margin: 16px 0 4px; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .12em;
}
.sheet-foot[data-v-1b49d537] { flex: none; padding: 10px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface);
}
.cta-actions[data-v-1b49d537] { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.cta-actions[data-v-1b49d537] > * + * {
    margin-left: 10px;
}
}
.btn-line[data-v-1b49d537] { flex: 1; min-height: 48px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 14.5px;
}
.save-btn[data-v-1b49d537] { flex: 1; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px; letter-spacing: .06em;
}
.save-btn[data-v-1b49d537]:disabled { background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2);
}
.mv-chips[data-v-1b49d537] { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; scrollbar-width: none;
}
@supports not (gap: 1px) {
.mv-chips[data-v-1b49d537] > * + * {
    margin-left: 8px;
}
}
.mv-chips[data-v-1b49d537]::-webkit-scrollbar { display: none;
}
button.rchip[data-v-1b49d537] { box-sizing: border-box; display: inline-flex; flex: none; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px; line-height: 1.2; white-space: nowrap; cursor: pointer;
}
.rchip.on[data-v-1b49d537] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent); font-weight: 600;
}
.mv-sec[data-v-1b49d537] { margin: 0; padding: 8px 2px 6px; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .12em;
}
.seat-grid.mv-grid[data-v-1b49d537] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; box-sizing: border-box; padding: 0 0 4px;
}
.seat-card.mini[data-v-1b49d537] { position: relative; display: flex; aspect-ratio: 1 / 1; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 2px; overflow: hidden; padding: 8px 9px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; /* B-469（弹层选择卡禁白裁定）：空闲态 soft 米灰，四态锁定色不动 */ background-color: var(--pos-mobile-soft); color: var(--pos-mobile-fg); text-align: left; cursor: pointer;
}
@supports not (gap: 1px) {
.seat-card.mini[data-v-1b49d537] > * + * {
    margin-top: 2px;
}
}
.seat-card.mini.sel[data-v-1b49d537] { border-color: var(--pos-mobile-accent); box-shadow: inset 0 0 0 1px var(--pos-mobile-accent);
}
.seat-card.mini.off[data-v-1b49d537] { opacity: .55; cursor: default; pointer-events: none;
}
.seat-card.mini.tone-busy[data-v-1b49d537] { background-color: var(--pos-mobile-busy); border-color: transparent; color: var(--pos-mobile-paper-white);
}
.seat-card.mini.tone-served[data-v-1b49d537] { background-color: var(--pos-mobile-served); border-color: transparent; color: var(--pos-mobile-paper-white);
}
.seat-card.mini.tone-settled[data-v-1b49d537] { background-color: var(--pos-mobile-settled); border-color: transparent; color: var(--pos-mobile-paper-white);
}
.seat-card.mini .seat-cat[data-v-1b49d537] { position: absolute; top: 6px; right: 6px; width: 32px; height: 32px; object-fit: contain; pointer-events: none;
}
.seat-card.mini .reservation-tags[data-v-1b49d537] { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; align-self: stretch; gap: 3px; margin: 0 -2px 4px;
}
@supports not (gap: 1px) {
.seat-card.mini .reservation-tags[data-v-1b49d537] > * + * {
    margin-top: 3px;
}
}
.seat-card.mini .reservation-tag[data-v-1b49d537] { box-sizing: border-box; display: inline-flex; align-items: center; gap: 0; max-width: 100%; overflow: hidden; padding: 4px 5px; border: 1px solid #BE977D; border: 1px solid color-mix(in oklab, var(--pos-mobile-accent) 55%, var(--pos-mobile-border)); border-radius: 6px; background: rgba(248, 246, 238, 0.9); background: color-mix(in oklab, var(--pos-mobile-surface) 90%, transparent); color: var(--pos-mobile-accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; line-height: 1; letter-spacing: 0; white-space: nowrap;
}
@supports not (gap: 1px) {
.seat-card.mini .reservation-tag[data-v-1b49d537] > * + * {
    margin-left: 0;
}
}
.seat-card.mini .reservation-tag.static[data-v-1b49d537] { cursor: default; pointer-events: none;
}
.seat-card.mini .reservation-tag .t-name[data-v-1b49d537] { max-width: 3.6em; overflow: hidden; font-family: var(--pos-mobile-font-body); color: var(--pos-mobile-fg); font-size: 10px; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap;
}
.seat-card.mini .seat-copy[data-v-1b49d537] { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; justify-content: center; /* B-469：占满剩余高度垂直居中 */ width: 100%; gap: 2px; min-width: 0;
}
@supports not (gap: 1px) {
.seat-card.mini .seat-copy[data-v-1b49d537] > * + * {
    margin-top: 2px;
}
}
.seat-card.mini .seat-copy strong[data-v-1b49d537] { overflow: hidden; font-family: var(--pos-mobile-font-display); font-size: 12px; font-weight: 600; letter-spacing: .08em; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap;
}
.seat-card.mini .status[data-v-1b49d537] { color: var(--pos-mobile-muted); font-size: 11px; letter-spacing: .04em; line-height: 1.45;
}
.seat-card.mini.tone-busy .seat-copy strong[data-v-1b49d537], .seat-card.mini.tone-served .seat-copy strong[data-v-1b49d537], .seat-card.mini.tone-settled .seat-copy strong[data-v-1b49d537] { color: var(--pos-mobile-paper-white);
}
.seat-card.mini.tone-busy .status[data-v-1b49d537], .seat-card.mini.tone-served .status[data-v-1b49d537], .seat-card.mini.tone-settled .status[data-v-1b49d537] { color: rgba(251, 247, 236, .92);
}
.mv-check[data-v-1b49d537] { position: absolute; top: 6px; left: 6px; z-index: 2; display: flex; width: 20px; height: 20px; align-items: center; justify-content: center; border-radius: 50%; background: var(--pos-mobile-accent); color: var(--pos-mobile-paper-white);
}
.mv-check svg[data-v-1b49d537] { width: 11px; height: 11px; display: block;
}

/* 遮罩：fixed 全屏，暖棕半透明（brief 实证 .45） */
.overlay[data-v-b97ca594] {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(56, 42, 31, 0.45);
  animation: fade-in-b97ca594 200ms ease;
}
@supports not (inset: 0) {
.overlay[data-v-b97ca594] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

/* 弹窗：卡纸 + 浮起阴影 + --pos-radius（6px）；开合动效只动 transform/opacity */
.modal[data-v-b97ca594] {
  width: 480px;
  max-width: 92vw;
  max-height: 86vh;
  padding: 22px;
  border: 1px solid var(--pos-line);
  border-radius: var(--pos-radius);
  background: var(--pos-card);
  box-shadow: var(--pos-shadow-float);
  overflow-y: auto;
  animation: modal-in-b97ca594 200ms ease;
}
@keyframes modal-in-b97ca594 {
from {
    opacity: 0;
    transform: translateY(8px);
}
to {
    opacity: 1;
    transform: none;
}
}
@keyframes fade-in-b97ca594 {
from {
    opacity: 0;
}
to {
    opacity: 1;
}
}
@media (prefers-reduced-motion: reduce) {
.overlay[data-v-b97ca594],
  .modal[data-v-b97ca594] {
    animation: none;
}
}

/* 标题：--pos-ink 衬线 16px 字距 .1em（brief 实证值） */
.modal h3[data-v-b97ca594] {
  margin: 0 0 2px;
  font-family: var(--pos-font-serif);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--pos-ink);
}
.conv[data-v-b97ca594] {
  margin-bottom: 14px;
  font-size: 12px;
  letter-spacing: 0.05em;
  color: var(--pos-clay);
}

/* 选项组：组标题弱字，chips 细线描边选中陶土 */
.opt-group[data-v-b97ca594] {
  margin-bottom: 14px;
}
.opt-group .g-t[data-v-b97ca594] {
  margin-bottom: 8px;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--pos-muted);
}
.opt-row[data-v-b97ca594] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@supports not (gap: 1px) {
.opt-row[data-v-b97ca594] > * + * {
    margin-left: 8px;
}
}
.opt-chip[data-v-b97ca594] {
  padding: 8px 14px;
  border: none;
  border-radius: var(--pos-radius-sm);
  background: var(--pos-fill-soft);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--pos-brown);
  cursor: pointer;
  transition: background 0.15s;
}
.opt-chip[data-v-b97ca594]:hover {
  background: rgba(56, 42, 31, 0.09);
}
.opt-chip.on[data-v-b97ca594] {
  background: var(--pos-fill-clay);
  color: var(--pos-clay);
}

/* 底部：取消次按钮 / 加入订单主按钮（ink 底纸色，设计稿 flex 1:2） */
.foot[data-v-b97ca594] {
  display: flex;
  gap: 8px;
  margin-top: 18px;
}
@supports not (gap: 1px) {
.foot[data-v-b97ca594] > * + * {
    margin-left: 8px;
}
}
.foot .cancel[data-v-b97ca594] {
  flex: 1;
  padding: 11px;
  border: none;
  border-radius: var(--pos-radius-sm);
  background: var(--pos-fill-soft);
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--pos-brown);
  cursor: pointer;
}
.foot .cancel[data-v-b97ca594]:hover {
  background: rgba(56, 42, 31, 0.09);
}
.foot .ok[data-v-b97ca594] {
  flex: 2;
  padding: 11px;
  border: none;
  border-radius: var(--pos-radius-sm);
  background: var(--pos-ink);
  font-size: 13px;
  letter-spacing: 0.2em;
  color: var(--pos-paper);
  cursor: pointer;
}
.foot .ok[data-v-b97ca594]:hover {
  background: var(--pos-ink-deep);
}

.sheet[data-v-4baaf5ad] { position: fixed; inset: 0; z-index: 50; display: none; flex-direction: column; justify-content: flex-end; background: rgba(62, 47, 36, .38);
}
@supports not (inset: 0) {
.sheet[data-v-4baaf5ad] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.sheet.show[data-v-4baaf5ad] { display: flex; transform: none;
}
.sheet-card[data-v-4baaf5ad] { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; max-height: 86%; overflow: hidden; border-radius: 20px 20px 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); box-shadow: var(--pos-mobile-shadow-sheet);
}
.sheet-head[data-v-4baaf5ad] { display: flex; flex: none; align-items: flex-start; gap: 10px; padding: 16px 18px 10px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-4baaf5ad] > * + * {
    margin-left: 10px;
}
}
.st-t[data-v-4baaf5ad] { flex: 1; min-width: 0;
}
.sheet-title[data-v-4baaf5ad] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.sheet-sub[data-v-4baaf5ad] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.sheet-x[data-v-4baaf5ad] { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.combo-scroll[data-v-4baaf5ad] { flex: 1; min-height: 0; overflow: auto; padding: 0 18px 12px; scrollbar-width: none;
}
.combo-scroll[data-v-4baaf5ad]::-webkit-scrollbar { display: none;
}
.cgs-label[data-v-4baaf5ad] { position: sticky; z-index: 3; display: flex; align-items: center; gap: 8px; height: 32px; background: var(--pos-mobile-bg); font-size: 13px; font-weight: 600; letter-spacing: .04em;
}
@supports not (gap: 1px) {
.cgs-label[data-v-4baaf5ad] > * + * {
    margin-left: 8px;
}
}
.cgs-st[data-v-4baaf5ad] { font-size: 11px; color: var(--pos-mobile-muted); font-weight: 400; font-variant-numeric: tabular-nums;
}
/* B-297：原 .cgs-label.mini 完成态弱化（16px / 11px / 弱色）已移除，全组统一上方基础形态。 */
.cgs-grid[data-v-4baaf5ad] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; box-sizing: border-box; padding: 6px 0 16px;
}
.cp-card[data-v-4baaf5ad] { position: relative; display: flex; flex-direction: column; gap: 4px; box-sizing: border-box; min-width: 0; width: 100%; padding: 6px; border: 1px solid var(--pos-mobile-border); border-radius: 10px; background: var(--pos-mobile-surface); color: inherit; font: inherit; line-height: inherit; text-align: left; cursor: pointer; -webkit-appearance: none; appearance: none;
}
@supports not (gap: 1px) {
.cp-card[data-v-4baaf5ad] > * + * {
    margin-top: 4px;
}
}
.cp-card.sel[data-v-4baaf5ad] { border-color: var(--pos-mobile-accent); box-shadow: inset 0 0 0 1px var(--pos-mobile-accent);
}
.cp-card.locked[data-v-4baaf5ad] { opacity: .6; cursor: default;
}
.thumb[data-v-4baaf5ad] { display: grid; width: 100%; aspect-ratio: 1; place-items: center; overflow: hidden; border-radius: 7px; background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2);
}
.thumb img[data-v-4baaf5ad] { width: 100%; height: 100%; object-fit: cover;
}
.thumb svg[data-v-4baaf5ad] { width: 22px; height: 22px;
}
.cp-name[data-v-4baaf5ad] { overflow: hidden; font-size: 12px; font-weight: 600; line-height: 1.4; white-space: nowrap; text-overflow: ellipsis;
}
.cp-hint[data-v-4baaf5ad] { overflow: hidden; color: var(--pos-mobile-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis;
}
.cp-opt[data-v-4baaf5ad] { overflow: hidden; color: var(--pos-mobile-muted); font-size: 10px; line-height: 1.3; white-space: nowrap; text-overflow: ellipsis;
}
.cp-check[data-v-4baaf5ad] { position: absolute; top: 9px; right: 9px; z-index: 1; display: flex; width: 20px; height: 20px; align-items: center; justify-content: center; border: 1.5px solid var(--pos-mobile-muted-2); border-radius: 50%; background: var(--pos-mobile-surface); color: transparent;
}
.cp-check.on[data-v-4baaf5ad] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-accent); color: var(--pos-mobile-surface);
}
.cp-check svg[data-v-4baaf5ad] { width: 11px; height: 11px; display: block;
}
.cp-lock[data-v-4baaf5ad] { position: absolute; top: 9px; left: 9px; z-index: 1; padding: 1px 4px; border: 1px solid var(--pos-mobile-border); border-radius: 4px; background: var(--pos-mobile-soft); color: var(--pos-mobile-muted); font-size: 9.5px; letter-spacing: .04em;
}
.cp-step[data-v-4baaf5ad] { display: flex; align-items: center; justify-content: space-between; gap: 2px; margin: 2px -6px 0; padding: 4px 6px 0; border-top: 1px dashed var(--pos-mobile-border);
}
@supports not (gap: 1px) {
.cp-step[data-v-4baaf5ad] > * + * {
    margin-left: 2px;
}
}
.cp-step-ph[data-v-4baaf5ad] { flex: 0 0 24px; width: 24px; height: 24px;
}
.row-minus[data-v-4baaf5ad] { box-sizing: border-box; display: flex; flex: 0 0 24px; width: 24px; height: 24px; min-width: 24px; min-height: 24px; max-width: 24px; max-height: 24px; align-items: center; justify-content: center; aspect-ratio: 1; padding: 0; border: 1.5px solid var(--pos-mobile-border); border-radius: 50%; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); cursor: pointer;
}
.row-minus svg[data-v-4baaf5ad] { width: 11px; height: 11px; display: block;
}
.row-minus.dim[data-v-4baaf5ad] { opacity: .35;
}
.pick-qty[data-v-4baaf5ad] { display: flex; flex: 1 1 auto; min-width: 0; height: 24px; max-height: 24px; align-items: center; justify-content: center; padding: 0 4px; border-radius: 999px; background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent); font-size: 12.5px; font-weight: 600; font-variant-numeric: tabular-nums;
}
.cp-more[data-v-4baaf5ad] { grid-column: 1 / -1; min-height: 44px; border: 1px dashed var(--pos-mobile-border); border-radius: 12px; background: none; color: var(--pos-mobile-accent); font-size: 12.5px; cursor: pointer;
}
.fixed-row[data-v-4baaf5ad] { padding: 10px 0; border-bottom: 1px dashed var(--pos-mobile-border);
}
.fixed-row[data-v-4baaf5ad]:last-child { border-bottom: 0;
}
.fixed-row-head[data-v-4baaf5ad] { display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
@supports not (gap: 1px) {
.fixed-row-head[data-v-4baaf5ad] > * + * {
    margin-left: 8px;
}
}
.fixed-name[data-v-4baaf5ad] { font-size: 13.5px; font-weight: 600;
}
.fixed-none[data-v-4baaf5ad] { margin-left: auto; color: var(--pos-mobile-muted-2); font-size: 11px;
}
.fixed-group[data-v-4baaf5ad] { display: flex; flex-direction: column; gap: 6px; margin: 6px 0 8px;
}
@supports not (gap: 1px) {
.fixed-group[data-v-4baaf5ad] > * + * {
    margin-top: 6px;
}
}
.fixed-gname[data-v-4baaf5ad] { font-size: 11px; font-weight: 600; color: var(--pos-mobile-muted);
}
.fixed-chips[data-v-4baaf5ad] { display: flex; flex-wrap: wrap; gap: 6px;
}
@supports not (gap: 1px) {
.fixed-chips[data-v-4baaf5ad] > * + * {
    margin-left: 6px;
}
}
.fixed-chip[data-v-4baaf5ad] { min-height: 36px; padding: 0 12px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: inherit; font: inherit; font-size: 12.5px; cursor: pointer;
}
.fixed-chip.on[data-v-4baaf5ad] { border-color: var(--pos-mobile-accent); color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green);
}
.sheet-foot[data-v-4baaf5ad] { flex: none; padding: 10px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface);
}
.cta-meta[data-v-4baaf5ad] { margin: 0 0 8px; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.cta-actions[data-v-4baaf5ad] { display: flex; gap: 10px;
}
@supports not (gap: 1px) {
.cta-actions[data-v-4baaf5ad] > * + * {
    margin-left: 10px;
}
}
.save-btn[data-v-4baaf5ad] { flex: 1; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px; letter-spacing: .06em;
}

/* 覆盖层：固定全屏，暖棕半透明（与弹层系一致） */
.seal[data-v-bc821413] {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(56, 42, 31, 0.45);
  animation: fade-in 200ms ease;
}
@supports not (inset: 0) {
.seal[data-v-bc821413] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

/* 居中卡：卡纸 + 浮起阴影，竖向留白撑出印章仪式感（设计稿 padding 实证） */
.seal-card[data-v-bc821413] {
  padding: 44px 56px;
  border-radius: 8px;
  background: var(--pos-card);
  box-shadow: var(--pos-shadow-float);
  text-align: center;
}

/* 「收」方印：56px 方、陶土描边圆角 8px、衬线 22px。
   动画：设计稿 350ms → 规范 400ms（评审裁定）；backwards 使入场前处于 from 帧 */
.seal-mark[data-v-bc821413] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border: 2px solid var(--pos-clay);
  border-radius: 8px;
  font-family: var(--pos-font-serif);
  font-size: 22px;
  color: var(--pos-clay);
  animation: stamp-bc821413 400ms cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}
@keyframes stamp-bc821413 {
from {
    opacity: 0;
    transform: scale(1.6) rotate(-8deg);
}
to {
    opacity: 1;
    transform: none;
}
}

/* 「收讫 · 入账」：衬线 16px 字距 .2em（brief 值） */
.seal-card .t1[data-v-bc821413] {
  font-family: var(--pos-font-serif);
  font-size: 16px;
  letter-spacing: 0.2em;
  margin-bottom: 6px;
  color: var(--pos-ink);
}

/* 收讫明细：弱字 11px */
.seal-card .t2[data-v-bc821413] {
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--pos-muted);
}

/* 「好」：软填充次按钮（v4.2） */
.seal-card button[data-v-bc821413] {
  margin-top: 20px;
  padding: 9px 28px;
  border: none;
  border-radius: var(--pos-radius-sm);
  background: var(--pos-fill-soft);
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--pos-brown);
  cursor: pointer;
  transition: all 0.15s;
}
.seal-card button[data-v-bc821413]:hover {
  background: var(--pos-fill-clay);
  color: var(--pos-clay);
}
.seal-actions[data-v-bc821413] { display: grid; gap: 8px; margin-top: 18px;
}.seal-actions button[data-v-bc821413] { width: 100%; margin-top: 0;
}.seal-actions .clear[data-v-bc821413] { background: transparent; color: var(--pos-cinnabar);
}

/* 尊重 reduces-motion：印章与覆盖层动画全关 */
@media (prefers-reduced-motion: reduce) {
.seal[data-v-bc821413],
  .seal-mark[data-v-bc821413] {
    animation: none;
}
}

.member-mask[data-v-6f2e3c1b] { position: fixed; z-index: 82; inset: 0; display: flex; align-items: flex-end; background: rgba(62,47,36,.38);
}
@supports not (inset: 0) {
.member-mask[data-v-6f2e3c1b] { top: 0; right: 0; bottom: 0; left: 0;
}
}
/* B-294 防御：打开态显式复位 transform，防止全站 `.sheet` 类全局规则再次泄漏把弹层推出屏外。 */
.member-sheet[data-v-6f2e3c1b] { display: flex; flex-direction: column; box-sizing: border-box; width: 100%; max-height: 86%; overflow: hidden; border-radius: 20px 20px 0 0; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); box-shadow: var(--pos-mobile-shadow-sheet); transform: none;
}
.sheet-head[data-v-6f2e3c1b] { display: flex; flex: none; align-items: flex-start; gap: 10px; padding: 16px 18px 10px;
}
@supports not (gap: 1px) {
.sheet-head[data-v-6f2e3c1b] > * + * {
    margin-left: 10px;
}
}
.st-t[data-v-6f2e3c1b] { flex: 1; min-width: 0;
}
.sheet-title[data-v-6f2e3c1b] { margin: 0; font-family: var(--pos-mobile-font-display); font-size: 17px; font-weight: 600; letter-spacing: .05em;
}
.sheet-sub[data-v-6f2e3c1b] { margin: 2px 0 0; color: var(--pos-mobile-muted); font-size: 12px;
}
.sheet-x[data-v-6f2e3c1b] { flex: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pos-mobile-muted); font-size: 20px;
}
.sheet-body[data-v-6f2e3c1b] { flex: 1; min-height: 0; overflow: auto; padding: 0 18px 16px;
}
.attached[data-v-6f2e3c1b] { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 12px; font-size: 13px;
}
@supports not (gap: 1px) {
.attached[data-v-6f2e3c1b] > * + * {
    margin-left: 8px;
}
}
.field[data-v-6f2e3c1b] { margin: 10px 0 4px;
}
.field label[data-v-6f2e3c1b] { display: block; margin-bottom: 6px; color: var(--pos-mobile-muted); font-size: 13px; letter-spacing: .04em;
}
.field input[data-v-6f2e3c1b] { box-sizing: border-box; width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 15px;
}
.note[data-v-6f2e3c1b] { margin: 10px 2px 0; color: var(--pos-mobile-muted); font-size: 12px; line-height: 1.6;
}
.note.danger[data-v-6f2e3c1b] { color: var(--pos-mobile-cinnabar);
}
.empty[data-v-6f2e3c1b] { padding: 32px 20px; color: var(--pos-mobile-muted); text-align: center;
}
.empty small[data-v-6f2e3c1b] { display: block; margin-top: 4px; color: var(--pos-mobile-muted-2);
}
.m-row[data-v-6f2e3c1b] { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 56px; padding: 10px 4px; border: 0; border-bottom: 1px solid var(--pos-mobile-border); background: none; color: inherit; text-align: left;
}
@supports not (gap: 1px) {
.m-row[data-v-6f2e3c1b] > * + * {
    margin-left: 8px;
}
}
.mt[data-v-6f2e3c1b] { flex: 1; min-width: 0;
}
.mn[data-v-6f2e3c1b] { font-size: 14.5px; font-weight: 600;
}
.ms[data-v-6f2e3c1b] { margin-top: 1px; color: var(--pos-mobile-muted); font-size: 12px;
}
.mini-btn[data-v-6f2e3c1b] { flex: none; display: inline-flex; min-height: 36px; align-items: center; padding: 0 12px; border: 1px solid var(--pos-mobile-accent); border-radius: 10px; background: var(--pos-mobile-surface); color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px; font-weight: 600;
}
.text-btn[data-v-6f2e3c1b] { min-height: 36px; padding: 0; border: 0; background: none; color: var(--pos-mobile-accent); font: inherit; font-size: 12.5px;
}
.text-btn.danger[data-v-6f2e3c1b] { color: var(--pos-mobile-cinnabar);
}
.adj-chips[data-v-6f2e3c1b] { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 0 6px;
}
@supports not (gap: 1px) {
.adj-chips[data-v-6f2e3c1b] > * + * {
    margin-left: 8px;
}
}
.rchip[data-v-6f2e3c1b] { min-height: 36px; padding: 0 14px; border: 1px solid var(--pos-mobile-border); border-radius: 999px; background: var(--pos-mobile-surface); color: var(--pos-mobile-fg); font: inherit; font-size: 13px;
}
.rchip.on[data-v-6f2e3c1b] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green); color: var(--pos-mobile-accent); font-weight: 600;
}
.pay-sec[data-v-6f2e3c1b] { margin: 14px 2px 0; color: var(--pos-mobile-muted); font-size: 12px; letter-spacing: .14em;
}
.pay-chan[data-v-6f2e3c1b] { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; margin-top: 8px; padding: 8px 12px; border: 1px solid var(--pos-mobile-border); border-radius: 12px; background: var(--pos-mobile-surface); color: inherit; font: inherit; text-align: left;
}
@supports not (gap: 1px) {
.pay-chan[data-v-6f2e3c1b] > * + * {
    margin-left: 10px;
}
}
.pay-chan.on[data-v-6f2e3c1b] { border-color: var(--pos-mobile-accent); background: var(--pos-mobile-soft-green);
}
.pt[data-v-6f2e3c1b] { flex: 1; min-width: 0;
}
.pay-check[data-v-6f2e3c1b] { color: var(--pos-mobile-accent);
}
.sheet-foot[data-v-6f2e3c1b] { flex: none; padding: 10px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pos-mobile-border);
}
.save-btn[data-v-6f2e3c1b] { width: 100%; min-height: 48px; border: 0; border-radius: 12px; background: var(--pos-mobile-accent); color: var(--pos-mobile-surface); font: inherit; font-size: 15px;
}
.save-btn[data-v-6f2e3c1b]:disabled { background: var(--pos-mobile-soft); color: var(--pos-mobile-muted-2);
}

.mpos[data-v-f464e5fc] { position: relative; isolation: isolate; display: flex; width: 100%; max-width: 100%; min-width: 0; height: 100%; min-height: 0; flex-direction: column; overflow: hidden; background: var(--pos-mobile-bg); color: var(--pos-mobile-fg); font-family: var(--pos-mobile-font-body); font-size: 15px; line-height: 1.75; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent;
}
.mpos[data-v-f464e5fc] * { -webkit-user-select: none !important; user-select: none !important; -webkit-touch-callout: none !important;
}
.paper-grain[data-v-f464e5fc]::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .55; mix-blend-mode: multiply; background-image: var(--pos-mobile-paper-noise);
}
@supports not (inset: 0) {
.paper-grain[data-v-f464e5fc]::before { top: 0; right: 0; bottom: 0; left: 0;
}
}
.ctxbar[data-v-f464e5fc], .today-return[data-v-f464e5fc], .runtime-error[data-v-f464e5fc], .mpos-main[data-v-f464e5fc], .tabbar[data-v-f464e5fc] { position: relative; z-index: 1;
}
.today-return[data-v-f464e5fc] { position: relative; display: flex; flex: none; align-items: center; z-index: 5; box-sizing: border-box; height: 48px; min-height: 48px; max-height: 48px; padding: 0; overflow: hidden; border-bottom: 1px solid var(--pos-mobile-border); background: transparent;
}
.mpos-safe-top[data-v-f464e5fc] { flex: none; height: env(safe-area-inset-top, 0px);
}
.ctxbar[data-v-f464e5fc] { position: relative; display: flex; flex: none; align-items: stretch; z-index: 5; box-sizing: border-box; height: 48px; min-height: 48px; max-height: 48px; padding: 0; overflow: hidden; border-bottom: 1px solid var(--pos-mobile-border); background: transparent;
}
.ctxbar.st-busy[data-v-f464e5fc] { background: var(--pos-mobile-busy);
}
.ctxbar.st-served[data-v-f464e5fc] { background: var(--pos-mobile-served);
}
.ctxbar.st-paid[data-v-f464e5fc] { background: var(--pos-mobile-settled);
}
.ctxbar.st-busy[data-v-f464e5fc], .ctxbar.st-served[data-v-f464e5fc], .ctxbar.st-paid[data-v-f464e5fc] { border-bottom-color: transparent;
}
.ctxbar.st-busy[data-v-f464e5fc]::after, .ctxbar.st-served[data-v-f464e5fc]::after, .ctxbar.st-paid[data-v-f464e5fc]::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5; mix-blend-mode: multiply; background-image: var(--pos-mobile-paper-noise);
}
@supports not (inset: 0) {
.ctxbar.st-busy[data-v-f464e5fc]::after, .ctxbar.st-served[data-v-f464e5fc]::after, .ctxbar.st-paid[data-v-f464e5fc]::after { top: 0; right: 0; bottom: 0; left: 0;
}
}
.ctx-main[data-v-f464e5fc] { display: flex; flex: 1; flex-wrap: nowrap; box-sizing: border-box; width: 100%; min-width: 0; height: 48px; min-height: 48px; max-height: 48px; align-items: center; gap: 10px; padding: 9px 16px 8px; overflow: hidden; border: 0; background: transparent; color: var(--pos-mobile-fg); font: inherit; font-size: 15px; text-align: left; cursor: pointer; touch-action: manipulation; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none;
}
@supports not (gap: 1px) {
.ctx-main[data-v-f464e5fc] > * + * {
    margin-left: 10px;
}
}
.ctx-main[data-v-f464e5fc]:active { background: var(--pos-mobile-soft);
}
.ctxbar.st-busy .ctx-main[data-v-f464e5fc], .ctxbar.st-served .ctx-main[data-v-f464e5fc], .ctxbar.st-paid .ctx-main[data-v-f464e5fc] { color: var(--pos-mobile-paper-white);
}
.ctxbar.st-busy .ctx-main[data-v-f464e5fc]:active, .ctxbar.st-served .ctx-main[data-v-f464e5fc]:active, .ctxbar.st-paid .ctx-main[data-v-f464e5fc]:active { background: rgba(255,255,255,.14);
}
.ctx-name[data-v-f464e5fc] { flex: 0 1 auto; min-width: 0; max-width: 8em; overflow: hidden; font-family: var(--pos-mobile-font-display); font-size: 18px; font-weight: 600; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap;
}
.ctxbar.st-busy .ctx-name[data-v-f464e5fc], .ctxbar.st-served .ctx-name[data-v-f464e5fc], .ctxbar.st-paid .ctx-name[data-v-f464e5fc] { color: var(--pos-mobile-paper-white);
}
.ctx-tag[data-v-f464e5fc] { flex: none; padding: 1px 6px; border: 1px solid #C7A891; border: 1px solid color-mix(in oklab, var(--pos-mobile-accent) 40%, var(--pos-mobile-border)); border-radius: 4px; color: var(--pos-mobile-accent); font-family: var(--pos-mobile-font-display); font-size: 10px; letter-spacing: .08em; white-space: nowrap;
}
.ctx-meta[data-v-f464e5fc] { flex: 1; min-width: 0; overflow: hidden; color: var(--pos-mobile-muted); font-size: 12px; text-align: right; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.ctx-meta .money[data-v-f464e5fc] { color: var(--pos-mobile-fg); font-family: var(--pos-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: 14px; font-weight: 600;
}
.ctxbar.st-busy .ctx-meta[data-v-f464e5fc], .ctxbar.st-served .ctx-meta[data-v-f464e5fc], .ctxbar.st-paid .ctx-meta[data-v-f464e5fc] { color: rgba(251, 247, 236, 0.76); color: color-mix(in oklab, var(--pos-mobile-paper-white) 76%, transparent);
}
.ctxbar.st-busy .ctx-meta .money[data-v-f464e5fc], .ctxbar.st-served .ctx-meta .money[data-v-f464e5fc], .ctxbar.st-paid .ctx-meta .money[data-v-f464e5fc] { color: var(--pos-mobile-paper-white);
}
.ctx-switch[data-v-f464e5fc] { flex: none; color: var(--pos-mobile-accent); font-size: 12px; white-space: nowrap;
}
.ctxbar.st-busy .ctx-switch[data-v-f464e5fc], .ctxbar.st-served .ctx-switch[data-v-f464e5fc], .ctxbar.st-paid .ctx-switch[data-v-f464e5fc] { color: rgba(251, 247, 236, 0.88); color: color-mix(in oklab, var(--pos-mobile-paper-white) 88%, transparent);
}
.runtime-error[data-v-f464e5fc] { display: flex; align-items: center; gap: 8px; margin: 0; padding: 8px 16px; background: var(--pos-mobile-soft-clay); color: var(--pos-mobile-fg); font-size: 12px; line-height: 1.5;
}
@supports not (gap: 1px) {
.runtime-error[data-v-f464e5fc] > * + * {
    margin-left: 8px;
}
}
.runtime-error button[data-v-f464e5fc] { margin-left: auto; border: 0; background: transparent; color: var(--pos-mobile-accent); font-size: 12px;
}
.mpos-main[data-v-f464e5fc] { flex: 1; min-width: 0; min-height: 0; overflow: hidden;
}
.view-panel[data-v-f464e5fc] { height: 100%; min-width: 0; overflow: auto;
}
.menu-panel[data-v-f464e5fc] { display: flex; width: 100%; min-width: 0; overflow: hidden;
}
.tabbar[data-v-f464e5fc] { flex: none; border-top: 1px solid var(--pos-mobile-border); background: var(--pos-mobile-surface); padding-bottom: env(safe-area-inset-bottom);
}
.tabs[data-v-f464e5fc] { display: flex; height: 56px; padding: 0 4px;
}
.tab[data-v-f464e5fc] { position: relative; display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border: 0; background: none; color: var(--pos-mobile-muted); font: inherit; font-size: 11px; cursor: pointer; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
}
@supports not (gap: 1px) {
.tab[data-v-f464e5fc] > * + * {
    margin-top: 2px;
}
}
.tab svg[data-v-f464e5fc] { display: block; width: 20px; height: 20px; transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
}
.tab.on[data-v-f464e5fc], .tab.active[data-v-f464e5fc] { color: var(--pos-mobile-accent); font-weight: 600;
}
/* 顶部短横标已撤（老爷 2026-09-29：图标文字已变色，横条多余且可能与页面按钮重叠）。 */
.tab-badge[data-v-f464e5fc] { position: absolute; top: 5px; left: calc(50% + 10px); min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--pos-mobile-cinnabar); color: var(--pos-mobile-surface); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; line-height: 16px; text-align: center;
}

/* 二级导航（2026-09-29 与小程序同口径滑动）：四格从「我的」背后右侧滑入展开；
 * 点「我的」先收回右侧再整页跳转（sessionStorage 脉冲让 MobileShell 一级从左滑入补位）。
 * 层级口径：框上8下6px 光学平衡、二级格 icon 17px；「我的」跨壳锚点不动。 */
.tab-slots[data-v-f464e5fc] { position: relative; flex: 1; overflow: hidden; margin: 8px 0 6px 6px; height: calc(100% - 14px);
}
.tab-group[data-v-f464e5fc] { display: flex; height: 100%; background: rgba(62, 47, 36, 0.08); border-radius: 12px;
}
.tab-group .tab[data-v-f464e5fc] { flex: 1;
}
.tab-group .tab svg[data-v-f464e5fc] { width: 17px; height: 17px;
}
.tab-my[data-v-f464e5fc] { flex: 0 0 60px; margin-left: 4px;
}
@keyframes pos-group-in-f464e5fc {
from { transform: translateX(100%);
}
to { transform: translateX(0);
}
}
@keyframes pos-group-out-f464e5fc {
from { transform: translateX(0);
}
to { transform: translateX(100%);
}
}
.tab-slots .tab-group[data-v-f464e5fc] { animation: pos-group-in-f464e5fc 320ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.tabs-collapsing .tab-group[data-v-f464e5fc] { animation: pos-group-out-f464e5fc 180ms ease-in both;
}

/* 动画效果（选中图标上移已撤——二级框内容回正中，老爷 2026-09-29 B 案） */
.tab[data-v-f464e5fc]:active { transform: scale(0.95);
}
.ctx-today-return[data-v-f464e5fc] { display: flex; flex: none; align-items: center; height: 48px; min-height: 0; max-height: 48px; padding: 0 0 0 12px; overflow: hidden; border: 0; background: transparent; color: var(--pos-mobile-muted); font: inherit; font-size: 12px; white-space: nowrap; cursor: pointer; touch-action: manipulation;
}
.ctx-today-return[data-v-f464e5fc]:active { opacity: .6;
}
.ctxbar.st-busy .ctx-today-return[data-v-f464e5fc], .ctxbar.st-served .ctx-today-return[data-v-f464e5fc], .ctxbar.st-paid .ctx-today-return[data-v-f464e5fc] { color: rgba(251, 247, 236, 0.88); color: color-mix(in oklab, var(--pos-mobile-paper-white) 88%, transparent);
}

.pc-chip[data-v-487ae308] {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.pc-chip[data-v-487ae308]:hover:not(:disabled) {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.pc-chip[data-v-487ae308]:active:not(:disabled) {
  background: var(--soft);
}
.pc-chip[data-v-487ae308]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.pc-chip--on[data-v-487ae308],
.pc-chip--on[data-v-487ae308]:hover {
  border-color: var(--accent);
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
}
.pc-chip[data-v-487ae308]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.dseat[data-v-da9842ad] {
  position: relative;
  aspect-ratio: 1 / 1;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background-color: var(--st-free);
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 2px;
  font-family: inherit;
  color: var(--fg);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}@supports not (gap: 1px) {
.dseat[data-v-da9842ad] > * + * {
    margin-top: 2px;
}
}
.dseat[data-v-da9842ad]:hover {
  border-color: #C4A28A;
  border-color: color-mix(in oklab, var(--accent) 45%, var(--border));
}
.dseat[data-v-da9842ad]:active {
  transform: scale(0.985);
}
.dseat[data-v-da9842ad]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.dseat[data-v-da9842ad]::after {
  /* 宣纸噪点 */
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  mix-blend-mode: multiply;
  opacity: 0.5;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23n)' opacity='0.5'/></svg>");
}
@supports not (inset: 0) {
.dseat[data-v-da9842ad]::after {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dseat--busy[data-v-da9842ad],
.dseat--served[data-v-da9842ad],
.dseat--paid[data-v-da9842ad] {
  background-color: var(--st-busy);
  border-color: transparent;
}
.dseat--served[data-v-da9842ad] {
  background-color: var(--st-served);
}
.dseat--paid[data-v-da9842ad] {
  background-color: var(--st-paid);
}
.dseat--busy .dseat-name[data-v-da9842ad],
.dseat--served .dseat-name[data-v-da9842ad],
.dseat--paid .dseat-name[data-v-da9842ad] {
  color: var(--paper-ink);
}
.dseat--busy .dseat-status[data-v-da9842ad],
.dseat--served .dseat-status[data-v-da9842ad],
.dseat--paid .dseat-status[data-v-da9842ad] {
  color: rgba(251, 247, 236, 0.92);
  color: color-mix(in oklab, var(--paper-ink) 92%, transparent);
}
.dseat--cur[data-v-da9842ad] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dseat--busy.dseat--cur[data-v-da9842ad],
.dseat--served.dseat--cur[data-v-da9842ad],
.dseat--paid.dseat--cur[data-v-da9842ad] {
  border-color: rgba(251, 247, 236, 0.85);
  border-color: color-mix(in oklab, var(--paper-ink) 85%, transparent);
  box-shadow: inset 0 0 0 1px rgba(251, 247, 236, 0.85);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--paper-ink) 85%, transparent);
}
.dseat--rsv-target[data-v-da9842ad] {
  border-color: #C4A28A;
  border-color: color-mix(in oklab, var(--accent) 45%, var(--border));
}
.dseat--rsv-target[data-v-da9842ad]:hover {
  box-shadow: inset 0 0 0 1px #A26440, 0 4px 14px rgba(162, 100, 64, 0.18);
  box-shadow: inset 0 0 0 1px var(--accent), 0 4px 14px color-mix(in oklab, var(--accent) 18%, transparent);
}
.dseat--drop[data-v-da9842ad] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 2px #A26440, 0 6px 18px rgba(162, 100, 64, 0.24);
  box-shadow: inset 0 0 0 2px var(--accent), 0 6px 18px color-mix(in oklab, var(--accent) 24%, transparent);
}
.dseat--gesture[data-v-da9842ad] {
  /* 总览手势模式：拖拽期间防文本选中（原型 .pano .seat 口径） */
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}
.dseat-cat[data-v-da9842ad] {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 44px;
  height: 44px;
  object-fit: contain;
  pointer-events: none;
}
.dseat-name[data-v-da9842ad] {
  position: relative;
  z-index: 1;
  font-family: var(--font-display);
  font-size: var(--fs-aux);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.45;
  color: var(--fg);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dseat-status[data-v-da9842ad] {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: var(--fs-micro);
  line-height: 1.45;
  color: var(--muted);
  letter-spacing: 0.04em;
}
@supports not (gap: 1px) {
.dseat-status[data-v-da9842ad] > * + * {
    margin-left: 5px;
}
}
.dseat-status[data-v-da9842ad]::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex: none;
}
.dseat-tags[data-v-da9842ad] {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  gap: 3px;
  margin: 0 -4px 4px;
  min-width: 0;
}
@supports not (gap: 1px) {
.dseat-tags[data-v-da9842ad] > * + * {
    margin-top: 3px;
}
}
.dseat-tag[data-v-da9842ad] {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.02em;
  /* B-318：覆盖全局 --touch-min(44px) 触控令牌（:where 零特异性，此处显式覆盖）；
     签为 10px 字号小胶囊，22px = 内层 16 + padding 2×2 + 边框 2 */
  min-height: 22px;
  padding: 2px;
  border-radius: 6px;
  background: rgba(248, 246, 238, 0.92);
  background: color-mix(in oklab, var(--surface) 92%, transparent);
  border: 1px solid #BE977D;
  border: 1px solid color-mix(in oklab, var(--accent) 55%, var(--border));
  color: var(--accent);
  cursor: pointer;
  touch-action: none;
}
/* B-318：纵向压缩（老板 2026-09-12 实测）——字号 10px 保持，可点区不再撑 20px */
.dseat-tag-open[data-v-da9842ad] {
  display: inline-flex;
  align-items: center;
  padding: 2px 1px;
  min-height: 16px;
  min-width: 0;
  overflow: hidden;
}
.dseat-tag-name[data-v-da9842ad] {
  font-family: var(--font-body);
  color: var(--fg);
  font-size: 10px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dseat-tag--more[data-v-da9842ad] {
  border-style: dashed;
  color: var(--muted);
  padding: 2px 8px;
  min-height: 22px; /* 与压缩后的签（16+2×2+2 边框）同高 */
  cursor: pointer;
  background: rgba(248, 246, 238, 0.92);
  background: color-mix(in oklab, var(--surface) 92%, transparent);
  font-family: var(--font-mono);
  font-size: 10px;
}
.dseat-tag--more[data-v-da9842ad]:hover {
  color: var(--accent);
}

/* 席位栏密度补偿（双列窄卡） */
.dseat--compact[data-v-da9842ad] {
  padding: 7px 8px;
}
.dseat--compact .dseat-cat[data-v-da9842ad] {
  width: 30px;
  height: 30px;
  top: 5px;
  right: 5px;
}
.dseat--compact .dseat-name[data-v-da9842ad] {
  font-size: 11.5px;
  letter-spacing: 0.04em;
}
.dseat--compact .dseat-status[data-v-da9842ad] {
  font-size: 10px;
}
.dseat--compact .dseat-tags[data-v-da9842ad] {
  gap: 2px;
  margin: 0 -1px 3px;
}
.dseat--compact .dseat-tag[data-v-da9842ad] {
  padding: 2px;
}

.drail[data-v-c349f714] {
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  overflow: hidden;
  position: relative;
}
.drail-head[data-v-c349f714] {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--border);
  min-height: 60px;
}
@supports not (gap: 1px) {
.drail-head[data-v-c349f714] > * + * {
    margin-left: var(--sp-2);
}
}
.drail-title[data-v-c349f714] {
  font-family: var(--font-display);
  font-size: var(--fs-title);
  font-weight: 600;
  letter-spacing: 0.05em;
  white-space: nowrap;
  flex: none;
}
.drail-pano-btn[data-v-c349f714] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 36px;
  padding: 0 12px;
  flex: none;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
@supports not (gap: 1px) {
.drail-pano-btn[data-v-c349f714] > * + * {
    margin-left: 5px;
}
}
.drail-pano-btn[data-v-c349f714] svg {
  width: 14px;
  height: 14px;
}
.drail-pano-btn[data-v-c349f714]:hover {
  color: var(--accent);
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.drail-pano-btn--on[data-v-c349f714] {
  color: var(--accent);
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
  background: #F2EADF;
  background: color-mix(in oklab, var(--accent) 8%, var(--surface));
}
.drail-side[data-v-c349f714] {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  flex: none;
}
@supports not (gap: 1px) {
.drail-side[data-v-c349f714] > * + * {
    margin-top: 1px;
}
}
.drail-unpaid[data-v-c349f714] {
  border: 0;
  background: none;
  cursor: pointer;
  padding: 2px 0;
  white-space: nowrap;
  font-family: inherit;
  font-size: var(--fs-micro);
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
@supports not (gap: 1px) {
.drail-unpaid[data-v-c349f714] > * + * {
    margin-left: 4px;
}
}
.drail-unpaid b[data-v-c349f714] {
  color: var(--cinnabar);
  font-weight: 600;
}
.drail-unpaid[data-v-c349f714]:hover {
  color: var(--fg);
}
.drail-unclosed[data-v-c349f714] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  margin: var(--sp-2) var(--sp-4) 0;
  padding: var(--sp-2) var(--sp-3);
  border: 1px solid #CCA08B;
  border: 1px solid color-mix(in oklab, var(--cinnabar) 40%, var(--border));
  border-radius: var(--r-ctl);
  background: var(--soft-cinnabar);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
  text-align: left;
}
@supports not (gap: 1px) {
.drail-unclosed[data-v-c349f714] > * + * {
    margin-left: var(--sp-2);
}
}
.drail-unclosed b[data-v-c349f714] {
  color: var(--cinnabar);
  font-weight: 600;
}
.drail-unclosed[data-v-c349f714]:hover {
  border-color: #BF7E65;
  border-color: color-mix(in oklab, var(--cinnabar) 65%, var(--border));
}
.drail-sync[data-v-c349f714] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--fs-micro);
  color: var(--muted);
}
@supports not (gap: 1px) {
.drail-sync[data-v-c349f714] > * + * {
    margin-left: 5px;
}
}
.drail-sync[data-v-c349f714]::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--st-served);
  flex: none;
}
.drail-areas[data-v-c349f714] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: var(--sp-3) var(--sp-4) 0;
}
@supports not (gap: 1px) {
.drail-areas[data-v-c349f714] > * + * {
    margin-left: 6px;
}
}
.drail-refresh[data-v-c349f714] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin: var(--sp-3) var(--sp-4) 0;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-ctl);
  background: var(--soft-clay);
  font-size: var(--fs-aux);
  line-height: 1.5;
}
@supports not (gap: 1px) {
.drail-refresh[data-v-c349f714] > * + * {
    margin-left: var(--sp-2);
}
}
.drail-refresh-t[data-v-c349f714] {
  flex: 1;
  min-width: 0;
}
.drail-refresh button[data-v-c349f714] {
  flex: none;
  min-height: 36px;
  padding: 0 12px;
  border: 0;
  border-radius: var(--r-ctl);
  background: none;
  color: var(--accent);
  font-family: inherit;
  font-size: var(--fs-aux);
  font-weight: 600;
  cursor: pointer;
}
.drail-refresh button[data-v-c349f714]:hover {
  background: rgba(162, 100, 64, 0.08);
  background: color-mix(in oklab, var(--accent) 8%, transparent);
}
.drail-rsv-bar[data-v-c349f714] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin: var(--sp-3) var(--sp-4) 0;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-ctl);
  background: var(--surface);
  border: 1px solid var(--accent);
  font-size: var(--fs-aux);
  line-height: 1.5;
}
@supports not (gap: 1px) {
.drail-rsv-bar[data-v-c349f714] > * + * {
    margin-left: var(--sp-2);
}
}
.drail-rsv-t[data-v-c349f714] {
  flex: 1;
  min-width: 0;
}
.drail-rsv-bar button[data-v-c349f714] {
  flex: none;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--bg);
  color: var(--muted);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
}
.drail-rsv-bar button[data-v-c349f714]:hover {
  color: var(--fg);
  border-color: var(--muted-2);
}
.drail-scroll[data-v-c349f714] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
  padding-bottom: var(--sp-2);
}
.drail-area-label[data-v-c349f714] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: var(--sp-3) var(--sp-4) 6px;
  font-size: var(--fs-micro);
  font-weight: 500;
  color: var(--muted);
  letter-spacing: 0.22em;
}
@supports not (gap: 1px) {
.drail-area-label[data-v-c349f714] > * + * {
    margin-left: 8px;
}
}
.drail-area-name[data-v-c349f714] {
  font-family: var(--font-display);
  font-size: var(--fs-body);
  letter-spacing: 0;
  color: var(--muted-2);
}
.drail-grid[data-v-c349f714] {
  display: grid;
  grid-template-columns: repeat(auto-fill, 108px);
  gap: var(--sp-2);
  justify-content: center;
  padding: 0 var(--sp-4) var(--sp-2);
}
.drail-sk[data-v-c349f714] {
  aspect-ratio: 1 / 1;
  border-radius: var(--r-card);
  background: var(--border);
  animation: drail-breathe-c349f714 1.6s ease-in-out infinite;
}
.drail-sk[data-v-c349f714]:nth-child(2n) {
  animation-delay: 0.2s;
}
.drail-sk[data-v-c349f714]:nth-child(3n) {
  animation-delay: 0.4s;
}
.drail-sk[data-v-c349f714]:nth-child(4n) {
  animation-delay: 0.55s;
}
@keyframes drail-breathe-c349f714 {
0%,
  100% {
    opacity: 1;
}
50% {
    opacity: 0.38;
}
}
.drail-takeout[data-v-c349f714] {
  flex: none;
  margin: var(--sp-2) var(--sp-4) var(--sp-4);
}
.drail-takeout-list[data-v-c349f714] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 168px;
  overflow-y: auto;
  margin-bottom: 6px;
}
@supports not (gap: 1px) {
.drail-takeout-list[data-v-c349f714] > * + * {
    margin-top: 6px;
}
}
.drail-takeout-card[data-v-c349f714] {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 6px var(--sp-3);
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--st-free);
  color: var(--fg);
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
@supports not (gap: 1px) {
.drail-takeout-card[data-v-c349f714] > * + * {
    margin-left: var(--sp-2);
}
}
.drail-takeout-card[data-v-c349f714]:hover {
  border-color: #BB9176;
  border-color: color-mix(in oklab, var(--accent) 60%, var(--border));
}
.drail-takeout-card--cur[data-v-c349f714] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
  background: #F2EADB;
  background: color-mix(in oklab, var(--st-free) 70%, var(--soft-green));
}
.drail-takeout-no[data-v-c349f714] {
  font-weight: 700;
  font-size: var(--fs-body);
  white-space: nowrap;
}
.drail-takeout-st[data-v-c349f714] {
  margin-left: auto;
  font-size: var(--fs-micro);
  color: var(--muted);
  text-align: right;
  line-height: 1.35;
}
.drail-takeout-st[data-v-c349f714] b {
  color: var(--fg);
}
.drail-takeout-card--paid-pending .drail-takeout-st[data-v-c349f714] {
  color: #9D4B30;
  color: color-mix(in oklab, var(--cinnabar) 88%, var(--fg));
}
.drail-takeout-new[data-v-c349f714] {
  width: 100%;
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: 0 var(--sp-4);
  border: 1.5px dashed #B5AB9E;
  border: 1.5px dashed color-mix(in oklab, var(--muted-2) 70%, var(--border));
  border-radius: var(--r-card);
  background: var(--st-free);
  color: var(--fg);
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
@supports not (gap: 1px) {
.drail-takeout-new[data-v-c349f714] > * + * {
    margin-left: var(--sp-3);
}
}
.drail-takeout-new[data-v-c349f714]:hover {
  border-color: var(--accent);
  background: #F2EADB;
  background: color-mix(in oklab, var(--st-free) 70%, var(--soft-green));
}
.drail-takeout-ico[data-v-c349f714] {
  width: 34px;
  height: 34px;
  flex: none;
  border-radius: 10px;
  background: var(--soft);
  color: #553E30;
  color: color-mix(in oklab, var(--fg) 80%, var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
}
.drail-takeout-ico[data-v-c349f714] svg {
  width: 19px;
  height: 19px;
}
.drail-takeout-t[data-v-c349f714] {
  font-weight: 600;
  font-size: var(--fs-body);
}
.drail-takeout-s[data-v-c349f714] {
  font-size: var(--fs-micro);
  color: var(--muted);
}

.pc-empty[data-v-5ef9dba9] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
  padding: var(--sp-6);
  text-align: center;
  color: var(--muted);
}@supports not (gap: 1px) {
.pc-empty[data-v-5ef9dba9] > * + * {
    margin-top: var(--sp-3);
}
}
.pc-empty-icon[data-v-5ef9dba9] {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8C7160;
  color: color-mix(in oklab, var(--muted) 70%, var(--accent));
}
.pc-empty-icon[data-v-5ef9dba9] svg {
  width: 64px;
  height: 64px;
}
.pc-empty-title[data-v-5ef9dba9] {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--fs-section);
  font-weight: 600;
  color: var(--fg);
  letter-spacing: 0.05em;
}
.pc-empty-desc[data-v-5ef9dba9] {
  margin: 0;
  font-size: var(--fs-aux);
  line-height: 1.7;
  max-width: 26ch;
}
.pc-empty-action[data-v-5ef9dba9] {
  margin-top: var(--sp-1);
}

.dmenu[data-v-ff498bde] {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.dmenu-cats[data-v-ff498bde] {
  display: flex;
  gap: var(--sp-4);
  padding: var(--sp-3) var(--sp-4) 0;
  flex-wrap: wrap;
  align-items: baseline;
}
@supports not (gap: 1px) {
.dmenu-cats[data-v-ff498bde] > * + * {
    margin-left: var(--sp-4);
}
}
.dmenu-cat[data-v-ff498bde] {
  border: 0;
  background: none;
  cursor: pointer;
  padding: 4px 2px;
  min-height: 36px;
  font-family: var(--font-display);
  font-size: var(--fs-section);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.dmenu-cat[data-v-ff498bde]:hover {
  color: var(--fg);
}
.dmenu-cat--on[data-v-ff498bde] {
  color: var(--fg);
  border-bottom-color: var(--accent);
}
.dmenu-search[data-v-ff498bde] {
  margin-left: auto;
  align-self: center;
  display: flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  width: 128px;
  flex: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@supports not (gap: 1px) {
.dmenu-search[data-v-ff498bde] > * + * {
    margin-left: 6px;
}
}
.dmenu-search[data-v-ff498bde]:focus-within {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dmenu-search[data-v-ff498bde] svg {
  width: 14px;
  height: 14px;
  color: var(--muted);
  flex: none;
}
.dmenu-search input[data-v-ff498bde] {
  border: 0;
  background: none;
  outline: none;
  flex: 1;
  min-width: 0;
  font-family: inherit;
  font-size: 13px;
  height: 34px;
  color: var(--fg);
}
.dmenu-search input[data-v-ff498bde]::placeholder {
  color: var(--muted-2);
}
.dmenu-subs[data-v-ff498bde] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: var(--sp-2) var(--sp-4) 0;
  align-items: center;
}
@supports not (gap: 1px) {
.dmenu-subs[data-v-ff498bde] > * + * {
    margin-left: 6px;
}
}
.dmenu-scroll[data-v-ff498bde] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.dmenu-group-label[data-v-ff498bde] {
  padding: var(--sp-3) var(--sp-4) 4px;
  font-size: var(--fs-micro);
  color: var(--muted);
  letter-spacing: 0.22em;
}
.dmenu-grid[data-v-ff498bde] {
  display: grid;
  grid-template-columns: repeat(auto-fill, 108px);
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  justify-content: start;
}
.dmenu-prod[data-v-ff498bde] {
  position: relative;
  width: 108px;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  font-family: inherit;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.dmenu-prod[data-v-ff498bde]:hover {
  border-color: #C19C83;
  border-color: color-mix(in oklab, var(--accent) 50%, var(--border));
  box-shadow: 0 3px 10px rgba(67, 53, 43, 0.08);
  box-shadow: 0 3px 10px color-mix(in oklab, var(--fg) 8%, transparent);
}
.dmenu-prod[data-v-ff498bde]:active {
  transform: scale(0.98);
}
.dmenu-prod[data-v-ff498bde]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.dmenu-prod-img[data-v-ff498bde] {
  width: 108px;
  height: 108px;
  background: var(--soft);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: none;
}
.dmenu-prod-img img[data-v-ff498bde] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dmenu-prod-ico[data-v-ff498bde] {
  color: #8B7262;
  color: color-mix(in oklab, var(--muted) 75%, var(--accent));
  display: flex;
}
.dmenu-prod-ico[data-v-ff498bde] svg {
  width: 24px;
  height: 24px;
}
.dmenu-prod-qty[data-v-ff498bde] {
  position: absolute;
  top: 6px;
  right: 6px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: var(--r-pill);
  background: var(--accent);
  color: var(--paper-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  box-shadow: 0 1px 4px rgba(67, 53, 43, 0.2);
  box-shadow: 0 1px 4px color-mix(in oklab, var(--fg) 20%, transparent);
}
.dmenu-prod-body[data-v-ff498bde] {
  padding: 6px 8px 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
}
@supports not (gap: 1px) {
.dmenu-prod-body[data-v-ff498bde] > * + * {
    margin-top: 3px;
}
}
.dmenu-prod-name[data-v-ff498bde] {
  font-size: var(--fs-aux);
  font-weight: 600;
  line-height: 1.4;
  color: var(--fg);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dmenu-prod-price[data-v-ff498bde] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--fg);
}

.dqueue[data-v-f07bc2a4] {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.dqueue-sort[data-v-f07bc2a4] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: var(--sp-3) var(--sp-4) 0;
}
@supports not (gap: 1px) {
.dqueue-sort[data-v-f07bc2a4] > * + * {
    margin-left: 6px;
}
}
.dqueue-sort-label[data-v-f07bc2a4] {
  flex: none;
  font-size: var(--fs-micro);
  color: var(--muted);
  letter-spacing: 0.18em;
}
.dqueue-scroll[data-v-f07bc2a4] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
  padding-bottom: var(--sp-4);
}
.dqueue-sec[data-v-f07bc2a4] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: var(--sp-4) var(--sp-4) var(--sp-2);
  font-size: var(--fs-micro);
  color: var(--muted);
  letter-spacing: 0.18em;
}
@supports not (gap: 1px) {
.dqueue-sec[data-v-f07bc2a4] > * + * {
    margin-left: 8px;
}
}
.dqueue-sec-name[data-v-f07bc2a4] {
  font-family: var(--font-display);
  font-size: var(--fs-body);
  letter-spacing: 0;
  color: var(--muted-2);
}
.dqueue-sec--recent[data-v-f07bc2a4] {
  border-top: 1px dashed var(--border);
  margin-top: var(--sp-3);
}
.dqueue-row[data-v-f07bc2a4] {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin: 0 var(--sp-4) var(--sp-2);
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
}
@supports not (gap: 1px) {
.dqueue-row[data-v-f07bc2a4] > * + * {
    margin-left: var(--sp-3);
}
}
.dqueue-row--child[data-v-f07bc2a4] {
  margin-left: calc(var(--sp-4) + 18px);
  border-style: dashed;
  padding: var(--sp-2) var(--sp-3);
}
.dqueue-row--done[data-v-f07bc2a4] {
  opacity: 0.62;
}
.dqueue-row--done .dqueue-name[data-v-f07bc2a4] {
  text-decoration: line-through;
  color: var(--muted);
}
.dqueue-seat[data-v-f07bc2a4] {
  flex: none;
  min-width: 74px;
  font-family: var(--font-display);
  font-size: var(--fs-aux);
  font-weight: 600;
  letter-spacing: 0.04em;
  border-right: 1px solid var(--border);
  padding-right: var(--sp-3);
  align-self: stretch;
  display: flex;
  align-items: center;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.dqueue-main[data-v-f07bc2a4] {
  flex: 1;
  min-width: 0;
}
.dqueue-name[data-v-f07bc2a4] {
  font-size: var(--fs-body);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dqueue-sub[data-v-f07bc2a4] {
  font-size: var(--fs-aux);
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
  display: block;
}
.dqueue-qty[data-v-f07bc2a4] {
  flex: none;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: var(--fs-body);
}
.dqueue-wait[data-v-f07bc2a4] {
  flex: none;
  min-width: 64px;
  text-align: right;
  font-size: var(--fs-aux);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.dqueue-wait--hot[data-v-f07bc2a4] {
  color: var(--cinnabar);
  font-weight: 600;
}
.dqueue-act[data-v-f07bc2a4] {
  flex: none;
  min-height: 36px;
  padding: 0 14px;
  border-radius: var(--r-ctl);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
  transition: all 0.15s ease;
}
.dqueue-act[data-v-f07bc2a4]:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.dqueue-act--preparing[data-v-f07bc2a4] {
  background: var(--soft-clay);
  border-color: transparent;
  color: #9D5833;
  color: color-mix(in oklab, var(--st-busy) 90%, var(--fg));
}
.dqueue-out[data-v-f07bc2a4] {
  flex: none;
  min-height: 36px;
  padding: 0 14px;
  border-radius: var(--r-ctl);
  border: 0;
  background: var(--accent);
  color: var(--paper-ink);
  font-family: inherit;
  font-size: var(--fs-aux);
  font-weight: 600;
  cursor: pointer;
}
.dqueue-out[data-v-f07bc2a4]:hover {
  background: #965E3E;
  background: color-mix(in oklab, var(--accent) 88%, var(--fg));
}

.dord[data-v-696a0afe] {
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  overflow: hidden;
}
/* 订单头深染（与席卡同源四态；外带不染） */
.dord-head[data-v-696a0afe] {
  flex: none;
  padding: var(--sp-3) var(--sp-4) var(--sp-2);
  border-bottom: 1px solid var(--border);
}
.dord-head--busy[data-v-696a0afe] {
  background-color: var(--st-busy);
  border-bottom-color: transparent;
}
.dord-head--served[data-v-696a0afe] {
  background-color: var(--st-served);
  border-bottom-color: transparent;
}
.dord-head--paid[data-v-696a0afe] {
  background-color: var(--st-paid);
  border-bottom-color: transparent;
}
.dord-head-top[data-v-696a0afe] {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
}
@supports not (gap: 1px) {
.dord-head-top[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-seat[data-v-696a0afe] {
  font-family: var(--font-display);
  font-size: var(--fs-title);
  font-weight: 600;
  letter-spacing: 0.05em;
  max-width: 9em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dord-head--busy .dord-seat[data-v-696a0afe],
.dord-head--served .dord-seat[data-v-696a0afe],
.dord-head--paid .dord-seat[data-v-696a0afe] {
  color: var(--paper-ink);
}
.dord-no[data-v-696a0afe] {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.dord-head--busy .dord-no[data-v-696a0afe],
.dord-head--served .dord-no[data-v-696a0afe],
.dord-head--paid .dord-no[data-v-696a0afe] {
  color: rgba(251, 247, 236, 0.92);
  color: color-mix(in oklab, var(--paper-ink) 92%, transparent);
}
.dord-progress[data-v-696a0afe] {
  margin-left: auto;
  font-size: var(--fs-aux);
  color: var(--muted);
}
.dord-progress b[data-v-696a0afe] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.dord-head--busy .dord-progress[data-v-696a0afe],
.dord-head--served .dord-progress[data-v-696a0afe],
.dord-head--paid .dord-progress[data-v-696a0afe] {
  color: rgba(251, 247, 236, 0.92);
  color: color-mix(in oklab, var(--paper-ink) 92%, transparent);
}
.dord-head--busy .dord-progress b[data-v-696a0afe],
.dord-head--served .dord-progress b[data-v-696a0afe],
.dord-head--paid .dord-progress b[data-v-696a0afe] {
  color: var(--paper-ink);
}
.dord-clear[data-v-696a0afe] {
  flex: none;
  margin-left: var(--sp-2);
  min-height: 32px;
  padding: 0 4px;
  background: none;
  border: none;
  font-family: inherit;
  font-size: var(--fs-aux);
  color: var(--muted);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.dord-clear[data-v-696a0afe]:hover:not(:disabled) {
  color: var(--fg);
}
.dord-clear[data-v-696a0afe]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  text-decoration: none;
}
.dord-scroll[data-v-696a0afe] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.dord-rows[data-v-696a0afe] {
  padding: var(--sp-2) var(--sp-4);
}
.dord-row[data-v-696a0afe] {
  padding: var(--sp-2) 0;
  border-bottom: 1px solid rgba(221, 214, 200, 0.6);
  border-bottom: 1px solid color-mix(in oklab, var(--border) 60%, transparent);
}
.dord-top[data-v-696a0afe] {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}
@supports not (gap: 1px) {
.dord-top[data-v-696a0afe] > * + * {
    margin-left: var(--sp-3);
}
}
.dord-main[data-v-696a0afe] {
  flex: 1;
  min-width: 0;
}
.dord-name[data-v-696a0afe] {
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dord-line2[data-v-696a0afe] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-top: 4px;
}
@supports not (gap: 1px) {
.dord-line2[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-sub[data-v-696a0afe] {
  flex: 1;
  min-width: 0;
  margin-top: 0;
  font-size: var(--fs-aux);
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dord-amt[data-v-696a0afe] {
  flex: none;
  font-weight: 600;
}
.dord-step[data-v-696a0afe] {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
@supports not (gap: 1px) {
.dord-step[data-v-696a0afe] > * + * {
    margin-left: 2px;
}
}
.dord-step button[data-v-696a0afe] {
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}
.dord-step button[data-v-696a0afe]:hover:not(:disabled) {
  border-color: var(--accent);
  color: var(--accent);
}
.dord-step button[data-v-696a0afe]:active:not(:disabled) {
  background: var(--soft);
}
.dord-step button[data-v-696a0afe]:disabled {
  color: var(--muted-2);
  border-color: var(--border);
  cursor: not-allowed;
  background: var(--bg);
}
.dord-qn[data-v-696a0afe] {
  min-width: 26px;
  text-align: center;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: var(--fs-body);
}
.dord-st-btn[data-v-696a0afe] {
  min-height: 34px;
  padding: 0 12px;
  border-radius: var(--r-pill);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--muted);
  transition: all 0.15s ease;
  flex: none;
}
.dord-st-btn[data-v-696a0afe]:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.dord-st-btn--s0[data-v-696a0afe] {
  background: var(--soft);
  color: var(--fg);
  border-color: transparent;
}
.dord-st-btn--s1[data-v-696a0afe] {
  background: var(--soft-clay);
  color: #9D5833;
  color: color-mix(in oklab, var(--st-busy) 90%, var(--fg));
  border-color: transparent;
}
.dord-st-btn--s2[data-v-696a0afe] {
  background: #DEDFCF;
  background: color-mix(in oklab, var(--st-served) 18%, var(--surface));
  color: var(--st-served);
  border-color: transparent;
}
.dord-st-static[data-v-696a0afe] {
  font-size: var(--fs-micro);
  color: var(--st-served);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  flex: none;
}
@supports not (gap: 1px) {
.dord-st-static[data-v-696a0afe] > * + * {
    margin-left: 4px;
}
}
.dord-locknote[data-v-696a0afe] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
}
.dord-paid-tag[data-v-696a0afe] {
  font-size: 10px;
  color: #9D4B30;
  color: color-mix(in oklab, var(--cinnabar) 88%, var(--fg));
  border: 1px solid #CA9983;
  border: 1px solid color-mix(in oklab, var(--cinnabar) 45%, var(--border));
  border-radius: 4px;
  padding: 0 5px;
  line-height: 16px;
}
.dord-child[data-v-696a0afe] {
  padding: 6px 0 6px 18px;
  position: relative;
}
.dord-child[data-v-696a0afe]::before {
  content: "└";
  position: absolute;
  left: 2px;
  top: 8px;
  color: var(--muted-2);
  font-size: var(--fs-aux);
}
.dord-child .dord-name[data-v-696a0afe] {
  font-size: var(--fs-aux);
  font-weight: 500;
}
.dord-combo-tag[data-v-696a0afe] {
  font-size: 10px;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0 5px;
  line-height: 16px;
}
.dord-subopt[data-v-696a0afe] {
  font-size: 10px;
  color: var(--muted);
  line-height: 16px;
}
.dord-foot-row[data-v-696a0afe] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-top: 6px;
}
@supports not (gap: 1px) {
.dord-foot-row[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-combo-fill[data-v-696a0afe],
.dord-combo-static[data-v-696a0afe] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: var(--fs-aux);
  padding: 5px 0;
  min-height: 32px;
}
@supports not (gap: 1px) {
.dord-combo-fill[data-v-696a0afe] > * + *,
.dord-combo-static[data-v-696a0afe] > * + * {
    margin-left: 5px;
}
}
.dord-combo-fill[data-v-696a0afe] {
  color: var(--accent);
  cursor: pointer;
  font-weight: 600;
}
.dord-combo-fill[data-v-696a0afe]:hover {
  text-decoration: underline;
}
.dord-combo-static[data-v-696a0afe] {
  color: var(--muted);
  cursor: default;
}
.dord-paid-chans[data-v-696a0afe] { font-size: 12px; font-weight: 400; color: var(--muted); white-space: normal; line-height: 1.5;
}
.dord-paid-round[data-v-696a0afe] {
  margin: var(--sp-3) 0 0;
  border: 1px dashed var(--border);
  border-radius: var(--r-ctl);
  padding: var(--sp-2) var(--sp-3);
  background: #F4EFE4;
  background: color-mix(in oklab, var(--soft) 40%, var(--surface));
}
.dord-pr-head[data-v-696a0afe] {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  font-size: var(--fs-micro);
  color: var(--muted);
}
@supports not (gap: 1px) {
.dord-pr-head[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-pr-line[data-v-696a0afe] {
  font-size: var(--fs-aux);
  color: var(--muted);
  margin-top: 2px;
}
.dord-round-label[data-v-696a0afe] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: var(--sp-3) 0 6px;
  font-size: var(--fs-micro);
  color: var(--muted);
  letter-spacing: 0.22em;
}
@supports not (gap: 1px) {
.dord-round-label[data-v-696a0afe] > * + * {
    margin-left: 8px;
}
}
.dord-round-name[data-v-696a0afe] {
  font-family: var(--font-display);
  font-size: var(--fs-body);
  letter-spacing: 0;
  color: var(--muted-2);
}
.dord-money[data-v-696a0afe] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

/* 应收区 */
.dord-due[data-v-696a0afe] {
  flex: none;
  border-top: 1px solid var(--border);
  padding: var(--sp-3) var(--sp-4) var(--sp-2);
  background: var(--surface);
}
.dord-adj-grid[data-v-696a0afe] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: var(--sp-2);
}
.dord-adj[data-v-696a0afe] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  min-height: 52px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
@supports not (gap: 1px) {
.dord-adj[data-v-696a0afe] > * + * {
    margin-top: 1px;
}
}
.dord-adj[data-v-696a0afe]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dord-adj[data-v-696a0afe]:active {
  background: var(--soft);
}
.dord-adj[data-v-696a0afe]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.dord-adj[data-v-696a0afe]:disabled:hover {
  border-color: var(--border);
}
.dord-adj-t[data-v-696a0afe] {
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 1.3;
}
.dord-adj-s[data-v-696a0afe] {
  font-size: var(--fs-micro);
  color: var(--muted);
  line-height: 1.3;
}
.dord-adj--on[data-v-696a0afe] {
  border-color: var(--accent);
  background: var(--accent);
}
.dord-adj--on .dord-adj-t[data-v-696a0afe] {
  color: var(--paper-ink);
}
.dord-adj--on .dord-adj-s[data-v-696a0afe] {
  color: rgba(251, 247, 236, 0.82);
  color: color-mix(in oklab, var(--paper-ink) 82%, transparent);
}
.dord-adj--free.dord-adj--on-free[data-v-696a0afe] {
  border-color: var(--cinnabar);
  background: var(--cinnabar);
}
.dord-rates[data-v-696a0afe] {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: var(--sp-2);
}
.dord-rate[data-v-696a0afe] {
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-body);
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.dord-rate[data-v-696a0afe]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dord-rate[data-v-696a0afe]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.dord-rate[data-v-696a0afe]:disabled:hover {
  border-color: var(--border);
}
.dord-rate--on[data-v-696a0afe] {
  border-color: var(--accent);
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
}
.dord-custom[data-v-696a0afe] {
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  padding: 0 6px;
  text-align: center;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-body);
  outline: none;
  background: var(--surface);
  color: var(--fg);
}
.dord-custom[data-v-696a0afe]:focus {
  border-color: var(--accent);
}
.dord-custom[data-v-696a0afe]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.dord-custom--bad[data-v-696a0afe] {
  border-color: var(--cinnabar);
}
.dord-due-lines[data-v-696a0afe] {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
@supports not (gap: 1px) {
.dord-due-lines[data-v-696a0afe] > * + * {
    margin-top: 1px;
}
}
.dord-due-line[data-v-696a0afe] {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-2);
  font-size: var(--fs-micro);
  color: var(--muted);
}
@supports not (gap: 1px) {
.dord-due-line[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-off-tag[data-v-696a0afe] {
  font-size: var(--fs-micro);
  color: var(--accent);
  background: var(--soft-green);
  border-radius: 4px;
  padding: 1px 6px;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.dord-due-total[data-v-696a0afe] {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-2);
  margin-top: 2px;
}
@supports not (gap: 1px) {
.dord-due-total[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-dt-l[data-v-696a0afe] {
  font-size: var(--fs-section);
  color: var(--fg);
  font-weight: 600;
}
.dord-dt-r[data-v-696a0afe] {
  font-size: 28px;
  font-weight: 700;
  color: var(--fg);
  font-family: var(--font-display);
  letter-spacing: 0.02em;
}
.dord-member-line[data-v-696a0afe] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-top: var(--sp-2);
  font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.dord-member-line[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-member-chip[data-v-696a0afe] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #C7A891;
  border: 1px solid color-mix(in oklab, var(--accent) 40%, var(--border));
  border-radius: var(--r-pill);
  padding: 3px 10px;
  background: var(--soft-green);
  color: var(--fg);
  font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.dord-member-chip[data-v-696a0afe] > * + * {
    margin-left: 6px;
}
}
.dord-member-chip button[data-v-696a0afe] {
  border: 0;
  background: none;
  color: var(--muted);
  font-family: inherit;
  cursor: pointer;
  font-size: var(--fs-aux);
  padding: 4px 8px;
  min-height: 32px;
  text-decoration: underline;
}
.dord-member-chip button[data-v-696a0afe]:hover {
  color: var(--cinnabar);
}
.dord-mutex[data-v-696a0afe] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  line-height: 1.5;
  margin-top: 4px;
}
.dord-cta[data-v-696a0afe] {
  flex: none;
  padding: var(--sp-2) var(--sp-4) var(--sp-3);
  border-top: 1px solid var(--border);
  background: var(--surface);
}
.dord-cta-row[data-v-696a0afe] {
  display: flex;
  gap: var(--sp-2);
  align-items: stretch;
}
@supports not (gap: 1px) {
.dord-cta-row[data-v-696a0afe] > * + * {
    margin-left: var(--sp-2);
}
}
.dord-cta-row .pc-btn[data-v-696a0afe] {
  flex: 1;
}
.dord-ghost[data-v-696a0afe] {
  flex: none;
  min-width: 56px;
  padding: 0 var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--muted);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
}
.dord-ghost[data-v-696a0afe]:hover:not(:disabled) {
  color: var(--fg);
  border-color: var(--muted);
}
.dord-ghost[data-v-696a0afe]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.dord-why[data-v-696a0afe] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  margin-top: 6px;
  text-align: center;
}

.dspec-group[data-v-95f7aaa5] {
  margin-bottom: var(--sp-5);
}
.dspec-gname[data-v-95f7aaa5] {
  font-size: var(--fs-section);
  font-weight: 600;
  margin-bottom: var(--sp-2);
  display: flex;
  align-items: baseline;
  gap: 8px;
}
@supports not (gap: 1px) {
.dspec-gname[data-v-95f7aaa5] > * + * {
    margin-left: 8px;
}
}
.dspec-req[data-v-95f7aaa5] {
  font-size: var(--fs-micro);
  color: var(--cinnabar);
  font-weight: 400;
}
.dspec-chips[data-v-95f7aaa5] {
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.dspec-chips[data-v-95f7aaa5] > * + * {
    margin-left: var(--sp-2);
}
}
.dspec-chip[data-v-95f7aaa5] {
  min-height: 56px;
  padding: 0 20px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-section);
  cursor: pointer;
  transition: all 0.15s ease;
}
.dspec-chip[data-v-95f7aaa5]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dspec-chip--on[data-v-95f7aaa5] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
  color: var(--accent);
  font-weight: 600;
  background: var(--soft-green);
}
.dspec-foot[data-v-95f7aaa5] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  width: 100%;
}
@supports not (gap: 1px) {
.dspec-foot[data-v-95f7aaa5] > * + * {
    margin-top: var(--sp-2);
}
}
.dspec-hint[data-v-95f7aaa5] {
  font-size: var(--fs-aux);
  color: var(--muted);
}
.dspec-hint b[data-v-95f7aaa5] {
  color: var(--cinnabar);
}
.dspec-actions[data-v-95f7aaa5] {
  display: flex;
  gap: var(--sp-2);
  width: 100%;
}
@supports not (gap: 1px) {
.dspec-actions[data-v-95f7aaa5] > * + * {
    margin-left: var(--sp-2);
}
}
.dspec-actions .pc-btn[data-v-95f7aaa5] {
  flex: 1;
}
.dspec-foot .pc-btn[data-v-95f7aaa5] {
  width: 100%;
}

.dcombo-head[data-v-ccfeb64e] {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  width: 100%;
  height: 36px;
  margin-bottom: var(--sp-2);
  padding: 0;
  border: 0;
  background: var(--bg);
  font-family: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}@supports not (gap: 1px) {
.dcombo-head[data-v-ccfeb64e] > * + * {
    margin-left: var(--sp-2);
}
}
.dcombo-head[data-v-ccfeb64e]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.dcombo-head--folded .dcombo-title[data-v-ccfeb64e],
.dcombo-head--folded .dcombo-st[data-v-ccfeb64e] {
  color: var(--muted);
}
.dcombo-title[data-v-ccfeb64e] {
  font-size: var(--fs-section);
  font-weight: 600;
  font-family: var(--font-display);
  letter-spacing: 0.04em;
}
.dcombo-st[data-v-ccfeb64e] {
  font-size: var(--fs-aux);
  color: var(--muted);
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.dcombo-st--full[data-v-ccfeb64e] {
  color: var(--st-served);
}
.dcombo-grid[data-v-ccfeb64e] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp-2);
  margin-bottom: var(--sp-5);
}
.dcombo-card[data-v-ccfeb64e] {
  position: relative;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: inherit;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  min-width: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@supports not (gap: 1px) {
.dcombo-card[data-v-ccfeb64e] > * + * {
    margin-top: 4px;
}
}
.dcombo-card[data-v-ccfeb64e]:hover {
  border-color: #C19C83;
  border-color: color-mix(in oklab, var(--accent) 50%, var(--border));
}
.dcombo-card--sel[data-v-ccfeb64e] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dcombo-card--locked[data-v-ccfeb64e] {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}
.dcombo-thumb[data-v-ccfeb64e],
.dcombo-thumb-btn[data-v-ccfeb64e] {
  aspect-ratio: 1;
  width: 100%;
  border-radius: 7px;
  background: var(--soft);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: none;
}
.dcombo-thumb img[data-v-ccfeb64e],
.dcombo-thumb-btn img[data-v-ccfeb64e] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dcombo-thumb-ico[data-v-ccfeb64e] {
  color: #8B7262;
  color: color-mix(in oklab, var(--muted) 75%, var(--accent));
  display: flex;
}
.dcombo-thumb-ico[data-v-ccfeb64e] svg {
  width: 20px;
  height: 20px;
}
.dcombo-thumb-btn[data-v-ccfeb64e] {
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: transform 0.12s ease;
}
.dcombo-thumb-btn[data-v-ccfeb64e]:active {
  transform: scale(0.96);
}
.dcombo-thumb-btn--dim[data-v-ccfeb64e] {
  opacity: 0.4;
  pointer-events: none;
}
.dcombo-name[data-v-ccfeb64e] {
  font-size: var(--fs-aux);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.4;
}
.dcombo-check[data-v-ccfeb64e] {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--muted-2);
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--paper-ink);
}
.dcombo-check[data-v-ccfeb64e] svg {
  width: 10px;
  height: 10px;
  opacity: 0;
}
.dcombo-card--sel .dcombo-check[data-v-ccfeb64e] {
  background: var(--accent);
  border-color: var(--accent);
}
.dcombo-card--sel .dcombo-check[data-v-ccfeb64e] svg {
  opacity: 1;
}
.dcombo-step[data-v-ccfeb64e] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 -6px -6px;
  padding: 4px 6px;
  border-top: 1px dashed var(--border);
}
.dcombo-step button[data-v-ccfeb64e] {
  width: 36px;
  height: 36px;
  border-radius: var(--r-ctl);
  border: 1px solid var(--muted-2);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}
.dcombo-step button[data-v-ccfeb64e]:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.dcombo-step button.dcombo-step-plus--dim[data-v-ccfeb64e] {
  opacity: 0.35;
  pointer-events: none;
}
.dcombo-qty[data-v-ccfeb64e] {
  min-width: 36px;
  height: 36px;
  border-radius: var(--r-ctl);
  background: var(--soft-green);
  color: var(--accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: var(--fs-body);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.dcombo-price[data-v-ccfeb64e] {
  flex: 1;
  text-align: center;
  font-family: var(--font-mono);
  font-size: var(--fs-aux);
  color: var(--muted);
}
.dcombo-lock[data-v-ccfeb64e] {
  position: absolute;
  top: 7px;
  left: 7px;
  font-size: 9.5px;
  line-height: 1;
  padding: 3px 5px;
  border-radius: 4px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: #9D5833;
  color: color-mix(in oklab, var(--st-busy) 90%, var(--fg));
  z-index: 2;
}
.dcombo-hint[data-v-ccfeb64e] {
  font-size: 10px;
  color: var(--muted-2);
}
.dcombo-opt[data-v-ccfeb64e] {
  font-size: 10px;
  line-height: 1.3;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dcombo-collect-mask[data-v-ccfeb64e] {
  position: fixed;
  inset: 0;
  z-index: 960;
  background: transparent;
}
@supports not (inset: 0) {
.dcombo-collect-mask[data-v-ccfeb64e] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dcombo-foot[data-v-ccfeb64e] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  width: 100%;
}
@supports not (gap: 1px) {
.dcombo-foot[data-v-ccfeb64e] > * + * {
    margin-top: var(--sp-2);
}
}
.dcombo-foot .pc-btn[data-v-ccfeb64e] {
  width: 100%;
}
.dcombo-foot .dcombo-hint[data-v-ccfeb64e] {
  font-size: var(--fs-aux);
  color: var(--muted);
}

.dfixed-row[data-v-0c67016a] {
  padding: var(--sp-3) 0;
  border-bottom: 1px dashed var(--border);
}
.dfixed-row[data-v-0c67016a]:last-of-type {
  border-bottom: 0;
}
.dfixed-row-head[data-v-0c67016a] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  margin-bottom: var(--sp-2);
}
@supports not (gap: 1px) {
.dfixed-row-head[data-v-0c67016a] > * + * {
    margin-left: var(--sp-2);
}
}
.dfixed-thumb[data-v-0c67016a] {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8B7262;
  color: color-mix(in oklab, var(--muted) 75%, var(--accent));
  flex: none;
}
.dfixed-thumb[data-v-0c67016a] svg {
  width: 16px;
  height: 16px;
}
.dfixed-name[data-v-0c67016a] {
  font-size: var(--fs-body);
  font-weight: 600;
}
.dfixed-none[data-v-0c67016a] {
  margin-left: auto;
  font-size: var(--fs-aux);
  color: var(--muted-2);
}
.dfixed-group[data-v-0c67016a] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  margin: var(--sp-2) 0 var(--sp-3) 36px;
}
@supports not (gap: 1px) {
.dfixed-group[data-v-0c67016a] > * + * {
    margin-top: var(--sp-2);
}
}
.dfixed-gname[data-v-0c67016a] {
  font-size: var(--fs-section);
  font-weight: 600;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
@supports not (gap: 1px) {
.dfixed-gname[data-v-0c67016a] > * + * {
    margin-left: 8px;
}
}
.dfixed-req[data-v-0c67016a] {
  font-size: var(--fs-micro);
  color: var(--cinnabar);
  font-weight: 400;
}
.dfixed-chips[data-v-0c67016a] {
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.dfixed-chips[data-v-0c67016a] > * + * {
    margin-left: var(--sp-2);
}
}
.dfixed-chip[data-v-0c67016a] {
  min-height: 56px;
  padding: 0 20px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-section);
  cursor: pointer;
  transition: all 0.15s ease;
}
.dfixed-chip[data-v-0c67016a]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dfixed-chip--on[data-v-0c67016a] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
  color: var(--accent);
  font-weight: 600;
  background: var(--soft-green);
}
.dfixed-foot[data-v-0c67016a] {
  width: 100%;
}
.dfixed-foot .pc-btn[data-v-0c67016a] {
  width: 100%;
}

.dpay-fail[data-v-8b53c6f0] {
  display: flex;
  gap: var(--sp-2);
  align-items: flex-start;
  padding: var(--sp-3);
  margin-bottom: var(--sp-3);
  border-radius: var(--r-ctl);
  background: var(--soft-cinnabar);
  font-size: var(--fs-aux);
  line-height: 1.6;
}@supports not (gap: 1px) {
.dpay-fail[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-fail svg[data-v-8b53c6f0] {
  width: 18px;
  height: 18px;
  flex: none;
  color: var(--cinnabar);
}
.dpay-fail b[data-v-8b53c6f0] {
  color: var(--cinnabar);
}
.dpay-ledger[data-v-8b53c6f0] {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: 2px 2px var(--sp-3);
  margin-bottom: var(--sp-3);
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.dpay-ledger[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-4);
}
}
.dpay-ledger-left[data-v-8b53c6f0] {
  display: flex;
  align-items: baseline;
  gap: var(--sp-5);
  padding-bottom: 4px;
  min-width: 0;
}
@supports not (gap: 1px) {
.dpay-ledger-left[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-5);
}
}
.dpay-ledger-item[data-v-8b53c6f0] {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: var(--fs-aux);
  color: var(--muted);
  white-space: nowrap;
}
@supports not (gap: 1px) {
.dpay-ledger-item[data-v-8b53c6f0] > * + * {
    margin-left: 6px;
}
}
.dpay-ledger-item .dpay-money[data-v-8b53c6f0] {
  font-size: var(--fs-title);
  font-weight: 600;
  color: var(--fg);
}
/* B-406：历史已收的渠道构成允许折行，字号回落，避免长构成顶破台账条 */
.dpay-ledger-paid[data-v-8b53c6f0] {
  white-space: normal;
  line-height: 1.5;
}
.dpay-ledger-paid .dpay-money[data-v-8b53c6f0] {
  font-size: var(--fs-aux);
  font-weight: 500;
}
/* B-406 口径修订：在途分笔构成同样允许折行 */
.dpay-ledger-collected[data-v-8b53c6f0] {
  white-space: normal;
  line-height: 1.5;
}
.dpay-ledger-due[data-v-8b53c6f0] {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  font-size: var(--fs-body);
  color: var(--muted);
  white-space: nowrap;
}
@supports not (gap: 1px) {
.dpay-ledger-due[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-ledger-big[data-v-8b53c6f0] {
  font-size: 32px;
  font-weight: 700;
  color: var(--fg);
  line-height: 1.1;
}
.dpay-money[data-v-8b53c6f0] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.dpay-sec[data-v-8b53c6f0] {
  font-size: var(--fs-micro);
  color: var(--muted);
  letter-spacing: 0.14em;
  margin: var(--sp-3) 0 var(--sp-2);
}
.dpay-sec[data-v-8b53c6f0]:first-child {
  margin-top: 0;
}
.dpay-methods[data-v-8b53c6f0] {
  display: flex;
  gap: var(--sp-2);
  margin-bottom: var(--sp-2);
}
@supports not (gap: 1px) {
.dpay-methods[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-method[data-v-8b53c6f0] {
  flex: 1;
  min-height: 48px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.dpay-method[data-v-8b53c6f0]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dpay-method--on[data-v-8b53c6f0] {
  border-color: var(--accent);
  background: var(--soft-green);
  color: var(--accent);
  font-weight: 600;
}
.dpay-member[data-v-8b53c6f0] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.dpay-member[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-member-main[data-v-8b53c6f0] {
  flex: 1;
  min-width: 0;
}
.dpay-member-main b[data-v-8b53c6f0] {
  font-size: var(--fs-body);
}
.dpay-member-sub[data-v-8b53c6f0] {
  color: var(--muted);
}
.dpay-member-bal[data-v-8b53c6f0] {
  font-weight: 600;
}
.dpay-chan-grid[data-v-8b53c6f0] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-2);
}
.dpay-chan[data-v-8b53c6f0] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: 60px;
  padding: 8px var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  font-family: inherit;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@supports not (gap: 1px) {
.dpay-chan[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-chan[data-v-8b53c6f0]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dpay-chan--on[data-v-8b53c6f0] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dpay-chan--failed[data-v-8b53c6f0] {
  border-color: var(--cinnabar);
  background: var(--soft-cinnabar);
}
.dpay-chan-ico[data-v-8b53c6f0] {
  width: 36px;
  height: 36px;
  flex: none;
  border-radius: 8px;
  background: var(--soft);
  color: #553E30;
  color: color-mix(in oklab, var(--fg) 80%, var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
}
.dpay-chan-ico svg[data-v-8b53c6f0] {
  width: 16px;
  height: 16px;
}
.dpay-chan-t[data-v-8b53c6f0] {
  font-size: var(--fs-body);
  font-weight: 600;
}
.dpay-chan-s[data-v-8b53c6f0] {
  font-size: var(--fs-micro);
  color: var(--muted);
}
.dpay-chan-fail[data-v-8b53c6f0] {
  font-size: var(--fs-micro);
  color: var(--cinnabar);
  font-weight: 600;
}
.dpay-cashbox[data-v-8b53c6f0] {
  font-size: var(--fs-aux);
  color: var(--muted);
  margin-top: 6px;
}
.dpay-cashbox .dpay-money[data-v-8b53c6f0] {
  color: var(--fg);
  font-weight: 600;
}
.dpay-notice[data-v-8b53c6f0] {
  margin-top: 6px;
  font-size: var(--fs-micro);
  color: var(--muted-2);
  line-height: 1.6;
}
.dpay-split[data-v-8b53c6f0] {
  display: flex;
  gap: var(--sp-2);
  align-items: flex-start;
  margin-bottom: var(--sp-2);
}
@supports not (gap: 1px) {
.dpay-split[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
/* B-488：分笔行渠道改行内展开（退役原生 select），对齐 .dpay-chan 宫格语言 */
.dpay-chan-sel[data-v-8b53c6f0] {
  position: relative;
  flex: 1;
  min-width: 0;
}
.dpay-chan-box[data-v-8b53c6f0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  width: 100%;
  min-height: 44px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-body);
  cursor: pointer;
}
@supports not (gap: 1px) {
.dpay-chan-box[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-chan-box.open[data-v-8b53c6f0] { border-color: var(--accent);
}
.dpay-chan-box-name[data-v-8b53c6f0] { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.dpay-caret[data-v-8b53c6f0] { flex: none; color: var(--muted-2);
}
.dpay-chan-list[data-v-8b53c6f0] {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 5;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  overflow: hidden;
}
.dpay-chan-opt[data-v-8b53c6f0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  border-top: 1px solid var(--border);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-body);
  text-align: left;
  cursor: pointer;
}
@supports not (gap: 1px) {
.dpay-chan-opt[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-chan-opt[data-v-8b53c6f0]:first-child { border-top: 0;
}
.dpay-chan-opt[data-v-8b53c6f0]:hover { background: var(--soft);
}
.dpay-chan-opt.on[data-v-8b53c6f0] { background: var(--soft); color: var(--accent); font-weight: 600;
}
.dpay-check[data-v-8b53c6f0] { color: var(--accent);
}
.dpay-split input[data-v-8b53c6f0] {
  width: 130px;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  padding: 0 10px;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-body);
  outline: none;
  text-align: right;
}
.dpay-split input[data-v-8b53c6f0]:focus {
  border-color: var(--accent);
}
/* B-484 部分收：单笔/销账额输入沿用分笔行 input 语言（等宽数字、右对齐、44px） */
.dpay-amount-row[data-v-8b53c6f0] {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  margin-bottom: var(--sp-2);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
}
@supports not (gap: 1px) {
.dpay-amount-row[data-v-8b53c6f0] > * + * {
    margin-left: var(--sp-2);
}
}
.dpay-amount-label[data-v-8b53c6f0] {
  flex: 1;
  min-width: 0;
  font-size: var(--fs-aux);
  color: var(--fg);
}
.dpay-amount-label small[data-v-8b53c6f0] {
  display: block;
  font-size: var(--fs-micro);
  color: var(--muted);
}
.dpay-amount-row input[data-v-8b53c6f0] {
  width: 140px;
  min-height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  padding: 0 10px;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-body);
  outline: none;
  text-align: right;
}
.dpay-amount-row input[data-v-8b53c6f0]:focus {
  border-color: var(--accent);
}
.dpay-charge-line[data-v-8b53c6f0] {
  margin: 0 2px var(--sp-2);
  font-size: var(--fs-aux);
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.dpay-split-del[data-v-8b53c6f0] {
  flex: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--muted);
  font-family: inherit;
  cursor: pointer;
  font-size: 16px;
}
.dpay-split-del[data-v-8b53c6f0]:hover {
  color: var(--cinnabar);
  border-color: var(--cinnabar);
}
.dpay-foot[data-v-8b53c6f0] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}
@supports not (gap: 1px) {
.dpay-foot[data-v-8b53c6f0] > * + * {
    margin-top: 6px;
}
}
.dpay-foot .pc-btn[data-v-8b53c6f0] {
  width: 100%;
}
.dpay-why[data-v-8b53c6f0] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  text-align: center;
}

.dseal[data-v-48289ae6] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-4) 0 var(--sp-2);
}@supports not (gap: 1px) {
.dseal[data-v-48289ae6] > * + * {
    margin-top: var(--sp-3);
}
}
.dseal-ring[data-v-48289ae6] {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.dseal-ring svg[data-v-48289ae6] {
  width: 34px;
  height: 34px;
}
.dseal-label[data-v-48289ae6] {
  font-size: var(--fs-section);
  color: var(--muted);
  letter-spacing: 0.14em;
}
.dseal-amt[data-v-48289ae6] {
  font-family: var(--font-display);
  font-size: var(--fs-display);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--fg);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.dseal-via[data-v-48289ae6] {
  font-size: var(--fs-body);
  color: var(--muted);
}
.dseal-via b[data-v-48289ae6] {
  color: var(--fg);
}
.dseal-acts[data-v-48289ae6] {
  display: flex;
  gap: var(--sp-3);
  margin-top: var(--sp-3);
  align-self: stretch;
}
@supports not (gap: 1px) {
.dseal-acts[data-v-48289ae6] > * + * {
    margin-left: var(--sp-3);
}
}
.dseal-acts .pc-btn[data-v-48289ae6] {
  flex: 1;
}
.dseal-print-ico[data-v-48289ae6] {
  width: 17px;
  height: 17px;
}

.dmem-search[data-v-9a4684a7] {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  margin-bottom: var(--sp-3);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}@supports not (gap: 1px) {
.dmem-search[data-v-9a4684a7] > * + * {
    margin-left: 8px;
}
}
.dmem-search[data-v-9a4684a7]:focus-within {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dmem-search svg[data-v-9a4684a7] {
  width: 15px;
  height: 15px;
  color: var(--muted);
  flex: none;
}
.dmem-search input[data-v-9a4684a7] {
  flex: 1;
  min-width: 0;
  border: 0;
  background: none;
  outline: none;
  height: 38px;
  font-family: inherit;
  font-size: var(--fs-body);
  color: var(--fg);
}
.dmem-search input[data-v-9a4684a7]::placeholder {
  color: var(--muted-2);
}
.dmem-row[data-v-9a4684a7] {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  width: 100%;
  padding: var(--sp-3);
  margin-bottom: var(--sp-2);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  font-family: inherit;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@supports not (gap: 1px) {
.dmem-row[data-v-9a4684a7] > * + * {
    margin-left: var(--sp-3);
}
}
.dmem-row[data-v-9a4684a7]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dmem-row--cur[data-v-9a4684a7] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dmem-main[data-v-9a4684a7] {
  flex: 1;
  min-width: 0;
}
.dmem-name[data-v-9a4684a7] {
  font-weight: 600;
  font-size: var(--fs-body);
}
.dmem-phone[data-v-9a4684a7] {
  font-family: var(--font-mono);
  font-size: var(--fs-aux);
  color: var(--muted);
  font-weight: 400;
  margin-left: 6px;
}
.dmem-sub[data-v-9a4684a7] {
  font-size: var(--fs-aux);
  color: var(--muted);
  margin-top: 2px;
  display: block;
}
.dmem-ok[data-v-9a4684a7] {
  color: var(--st-served);
}
.dmem-no[data-v-9a4684a7] {
  color: var(--cinnabar);
}
.dmem-bal[data-v-9a4684a7] {
  text-align: right;
  font-size: var(--fs-micro);
  color: var(--muted);
}
.dmem-bal .dmem-money[data-v-9a4684a7] {
  display: block;
  font-size: var(--fs-body);
  color: var(--fg);
  font-weight: 600;
}
.dmem-money[data-v-9a4684a7] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.dmem-sec[data-v-9a4684a7] {
  margin-top: var(--sp-4);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}
@supports not (gap: 1px) {
.dmem-sec[data-v-9a4684a7] > * + * {
    margin-top: var(--sp-2);
}
}
.dmem-sec-t[data-v-9a4684a7] {
  font-size: var(--fs-section);
  font-weight: 600;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
@supports not (gap: 1px) {
.dmem-sec-t[data-v-9a4684a7] > * + * {
    margin-left: 8px;
}
}
.dmem-sec-t small[data-v-9a4684a7] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  font-weight: 400;
}
.dmem-amounts[data-v-9a4684a7] {
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.dmem-amounts[data-v-9a4684a7] > * + * {
    margin-left: var(--sp-2);
}
}
.dmem-preview[data-v-9a4684a7] {
  font-size: var(--fs-aux);
  color: var(--muted);
  line-height: 1.6;
}
.dmem-preview .dmem-money[data-v-9a4684a7] {
  color: var(--fg);
  font-weight: 600;
}
.dmem-note[data-v-9a4684a7] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  line-height: 1.5;
  margin-top: var(--sp-2);
}
.dmem-why[data-v-9a4684a7] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
}
.dmem-gap[data-v-9a4684a7] {
  height: 8px;
}
.dmem-sec .pc-btn[data-v-9a4684a7] {
  width: 100%;
}

.ddebt-error[data-v-f13722da] {
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-ctl);
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
  font-size: var(--fs-aux);
  margin-bottom: var(--sp-3);
}
.ddebt-row[data-v-f13722da] {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  margin-bottom: var(--sp-2);
  font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.ddebt-row[data-v-f13722da] > * + * {
    margin-left: var(--sp-3);
}
}
.ddebt-main[data-v-f13722da] {
  flex: 1;
  min-width: 0;
  color: var(--muted);
}
.ddebt-main b[data-v-f13722da] {
  color: var(--fg);
  font-size: var(--fs-body);
}
.ddebt-member[data-v-f13722da] {
  display: inline-block;
  margin: 0 2px;
  padding: 0 6px;
  border: 1px solid #C4A28A;
  border: 1px solid color-mix(in oklab, var(--accent) 45%, var(--border));
  border-radius: 999px;
  background: var(--soft-green);
  color: var(--accent);
  font-size: var(--fs-micro);
  vertical-align: 1px;
}
.ddebt-amt[data-v-f13722da] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--cinnabar);
}
.ddebt-lines[data-v-f13722da] {
  margin-top: 4px;
  line-height: 1.6;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.ddebt-ops[data-v-f13722da] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: none;
}
@supports not (gap: 1px) {
.ddebt-ops[data-v-f13722da] > * + * {
    margin-top: var(--sp-2);
}
}
.ddebt-note[data-v-f13722da] {
  margin-top: 4px;
  font-size: var(--fs-micro);
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ddebt-edit[data-v-f13722da] {
  margin-top: var(--sp-2);
}
.ddebt-edit textarea[data-v-f13722da] {
  width: 100%;
  resize: vertical;
  min-height: 56px;
  padding: var(--sp-2);
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-size: var(--fs-aux);
  line-height: 1.6;
}
.ddebt-edit-ops[data-v-f13722da] {
  display: flex;
  justify-content: flex-end;
  gap: var(--sp-2);
  margin-top: var(--sp-2);
}
@supports not (gap: 1px) {
.ddebt-edit-ops[data-v-f13722da] > * + * {
    margin-left: var(--sp-2);
}
}

.dclean-error[data-v-1c403b2a] {
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-ctl);
  background: var(--soft-cinnabar);
  color: var(--cinnabar);
  font-size: var(--fs-aux);
  margin-bottom: var(--sp-3);
}
.dclean-row[data-v-1c403b2a] {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  margin-bottom: var(--sp-2);
  font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.dclean-row[data-v-1c403b2a] > * + * {
    margin-left: var(--sp-3);
}
}
.dclean-main[data-v-1c403b2a] {
  flex: 1;
  min-width: 0;
  color: var(--muted);
}
.dclean-main b[data-v-1c403b2a] {
  color: var(--fg);
  font-size: var(--fs-body);
}
.dclean-member[data-v-1c403b2a] {
  display: inline-block;
  margin: 0 2px;
  padding: 0 6px;
  border: 1px solid #C4A28A;
  border: 1px solid color-mix(in oklab, var(--accent) 45%, var(--border));
  border-radius: 999px;
  background: var(--soft-green);
  color: var(--accent);
  font-size: var(--fs-micro);
  vertical-align: 1px;
}
.dclean-amt[data-v-1c403b2a] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--cinnabar);
}
.dclean-lines[data-v-1c403b2a] {
  margin-top: 4px;
  line-height: 1.6;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.dclean-note[data-v-1c403b2a] {
  margin-top: 4px;
  font-size: var(--fs-micro);
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dclean-panel[data-v-1c403b2a] {
  margin-top: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--soft);
}
.dclean-panel-t[data-v-1c403b2a] {
  margin: 0 0 var(--sp-2);
  color: var(--fg);
  font-size: var(--fs-aux);
  line-height: 1.6;
}
.dclean-panel textarea[data-v-1c403b2a] {
  width: 100%;
  resize: vertical;
  min-height: 56px;
  padding: var(--sp-2);
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-size: var(--fs-aux);
  line-height: 1.6;
}
.dclean-panel-ops[data-v-1c403b2a] {
  display: flex;
  justify-content: flex-end;
  gap: var(--sp-2);
  margin-top: var(--sp-2);
}
@supports not (gap: 1px) {
.dclean-panel-ops[data-v-1c403b2a] > * + * {
    margin-left: var(--sp-2);
}
}
.dclean-ops[data-v-1c403b2a] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: none;
}
@supports not (gap: 1px) {
.dclean-ops[data-v-1c403b2a] > * + * {
    margin-top: var(--sp-2);
}
}
.dclean-op--on[data-v-1c403b2a] {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
  color: var(--accent);
}

.dmv-mode[data-v-28a9e35f] {
  display: flex;
  gap: var(--sp-3);
}@supports not (gap: 1px) {
.dmv-mode[data-v-28a9e35f] > * + * {
    margin-left: var(--sp-3);
}
}
.dmv-card[data-v-28a9e35f] {
  flex: 1;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  padding: var(--sp-4);
  font-family: inherit;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@supports not (gap: 1px) {
.dmv-card[data-v-28a9e35f] > * + * {
    margin-top: 6px;
}
}
.dmv-card[data-v-28a9e35f]:hover:not(:disabled) {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
.dmv-card--on[data-v-28a9e35f] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dmv-card[data-v-28a9e35f]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.dmv-t[data-v-28a9e35f] {
  font-family: var(--font-display);
  font-size: var(--fs-section);
  font-weight: 600;
}
.dmv-s[data-v-28a9e35f] {
  font-size: var(--fs-aux);
  color: var(--muted);
  line-height: 1.6;
}
.dmv-sec[data-v-28a9e35f] {
  font-size: var(--fs-micro);
  color: var(--muted);
  letter-spacing: 0.12em;
  padding: var(--sp-2) 0 6px;
}
.dmv-areas[data-v-28a9e35f] {
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
  margin-bottom: var(--sp-2);
}
@supports not (gap: 1px) {
.dmv-areas[data-v-28a9e35f] > * + * {
    margin-left: var(--sp-2);
}
}
.dmv-pick[data-v-28a9e35f] {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  width: 100%;
  padding: 10px var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  font-family: inherit;
  color: var(--fg);
  margin-bottom: var(--sp-2);
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease;
}
@supports not (gap: 1px) {
.dmv-pick[data-v-28a9e35f] > * + * {
    margin-left: var(--sp-3);
}
}
.dmv-pick[data-v-28a9e35f]:hover {
  border-color: #C19C83;
  border-color: color-mix(in oklab, var(--accent) 50%, var(--border));
}
.dmv-pick--on[data-v-28a9e35f] {
  border-color: var(--accent);
  background: var(--soft-green);
}
.dmv-ck[data-v-28a9e35f] {
  width: 18px;
  height: 18px;
  flex: none;
  border: 1.5px solid var(--muted-2);
  border-radius: 5px;
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--paper-ink);
}
.dmv-ck svg[data-v-28a9e35f] {
  width: 11px;
  height: 11px;
  opacity: 0;
}
.dmv-ck--on[data-v-28a9e35f] {
  background: var(--accent);
  border-color: var(--accent);
}
.dmv-ck--on svg[data-v-28a9e35f] {
  opacity: 1;
}
.dmv-nm[data-v-28a9e35f] {
  flex: 1;
  min-width: 0;
  font-size: var(--fs-body);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dmv-tag[data-v-28a9e35f] {
  font-size: 10px;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0 5px;
  line-height: 16px;
}
.dmv-amt[data-v-28a9e35f] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-aux);
  color: var(--muted);
}
.dmv-grid[data-v-28a9e35f] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp-2);
  margin-bottom: var(--sp-3);
}
.dmv-seat[data-v-28a9e35f] {
  position: relative;
  aspect-ratio: auto;
  min-height: 64px;
  padding: 8px 9px;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background-color: var(--st-free);
  font-family: inherit;
  color: var(--fg);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 2px;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
@supports not (gap: 1px) {
.dmv-seat[data-v-28a9e35f] > * + * {
    margin-top: 2px;
}
}
.dmv-seat--busy[data-v-28a9e35f],
.dmv-seat--served[data-v-28a9e35f],
.dmv-seat--paid[data-v-28a9e35f] {
  background-color: var(--st-busy);
  border-color: transparent;
}
.dmv-seat--served[data-v-28a9e35f] {
  background-color: var(--st-served);
}
.dmv-seat--paid[data-v-28a9e35f] {
  background-color: var(--st-paid);
}
.dmv-seat--busy .dmv-seat-name[data-v-28a9e35f],
.dmv-seat--served .dmv-seat-name[data-v-28a9e35f],
.dmv-seat--paid .dmv-seat-name[data-v-28a9e35f] {
  color: var(--paper-ink);
}
.dmv-seat--busy .dmv-seat-st[data-v-28a9e35f],
.dmv-seat--served .dmv-seat-st[data-v-28a9e35f],
.dmv-seat--paid .dmv-seat-st[data-v-28a9e35f] {
  color: rgba(251, 247, 236, 0.92);
  color: color-mix(in oklab, var(--paper-ink) 92%, transparent);
}
.dmv-seat--off[data-v-28a9e35f] {
  opacity: 0.55;
  cursor: not-allowed;
}
.dmv-seat--sel[data-v-28a9e35f] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.dmv-seat-name[data-v-28a9e35f] {
  font-family: var(--font-display);
  font-size: var(--fs-aux);
  font-weight: 600;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dmv-seat-st[data-v-28a9e35f] {
  font-size: 10px;
  color: var(--muted);
}
.dmv-check[data-v-28a9e35f] {
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 3;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--paper-ink);
  display: flex;
  align-items: center;
  justify-content: center;
}
.dmv-check svg[data-v-28a9e35f] {
  width: 11px;
  height: 11px;
}
.dmv-note[data-v-28a9e35f] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  margin-top: var(--sp-3);
  text-align: center;
}
.dmv-foot[data-v-28a9e35f] {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  width: 100%;
}
@supports not (gap: 1px) {
.dmv-foot[data-v-28a9e35f] > * + * {
    margin-top: var(--sp-2);
}
}
.dmv-hint[data-v-28a9e35f] {
  font-size: var(--fs-aux);
  color: var(--muted);
}
.dmv-foot .pc-btn[data-v-28a9e35f] {
  width: 100%;
}

.drsv-row[data-v-8d993039] {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  margin-bottom: var(--sp-2);
  cursor: pointer;
}@supports not (gap: 1px) {
.drsv-row[data-v-8d993039] > * + * {
    margin-left: var(--sp-3);
}
}
.drsv-row--focus[data-v-8d993039] {
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.drsv-main[data-v-8d993039] {
  flex: 1;
  min-width: 0;
}
.drsv-line[data-v-8d993039] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: var(--fs-body);
}
@supports not (gap: 1px) {
.drsv-line[data-v-8d993039] > * + * {
    margin-left: 8px;
}
}
.drsv-money[data-v-8d993039] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: var(--fs-section);
}
.drsv-name[data-v-8d993039] {
  font-weight: 600;
}
.drsv-sub[data-v-8d993039] {
  font-size: var(--fs-aux);
  color: var(--muted);
  margin-top: 2px;
}
.drsv-acts[data-v-8d993039] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: none;
}
@supports not (gap: 1px) {
.drsv-acts[data-v-8d993039] > * + * {
    margin-top: 4px;
}
}
.drsv-acts button[data-v-8d993039] {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--muted);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
}
.drsv-acts button[data-v-8d993039]:hover {
  color: var(--accent);
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
}
/* B-318：行内「开台点单」为主动作，用主题色标示 */
.drsv-acts .drsv-openrow[data-v-8d993039] {
  color: var(--accent);
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
  font-weight: 600;
}
.drsv-gap[data-v-8d993039] {
  height: 10px;
}
.drsv-openmod[data-v-8d993039] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  background: var(--surface);
  color: var(--accent);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 600;
  cursor: pointer;
}
@supports not (gap: 1px) {
.drsv-openmod[data-v-8d993039] > * + * {
    margin-left: 10px;
}
}
.drsv-openmod[data-v-8d993039]:hover {
  background: var(--soft-green);
}
.drsv-openmod-sub[data-v-8d993039] {
  font-size: var(--fs-micro);
  color: var(--muted);
  font-weight: 400;
}

.dpano[data-v-2a3e89bb] {
  position: fixed;
  left: calc(var(--rail-w, 62px) + var(--sp-4) + var(--col-seat, 280px));
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 930;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  animation: dpano-fadein-2a3e89bb 0.2s ease;
}
@keyframes dpano-fadein-2a3e89bb {
from {
    opacity: 0;
}
}
.dpano-head[data-v-2a3e89bb] {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  flex-wrap: wrap;
  padding: var(--sp-4) var(--sp-5) var(--sp-3);
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.dpano-head[data-v-2a3e89bb] > * + * {
    margin-left: var(--sp-4);
}
}
.dpano-tt[data-v-2a3e89bb] {
  font-family: var(--font-display);
  font-size: var(--fs-title);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.dpano-stats[data-v-2a3e89bb] {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  flex-wrap: wrap;
}
@supports not (gap: 1px) {
.dpano-stats[data-v-2a3e89bb] > * + * {
    margin-left: var(--sp-4);
}
}
.dpano-stat[data-v-2a3e89bb] {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: var(--fs-aux);
  color: var(--muted);
  white-space: nowrap;
}
@supports not (gap: 1px) {
.dpano-stat[data-v-2a3e89bb] > * + * {
    margin-left: 7px;
}
}
.dpano-stat b[data-v-2a3e89bb] {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--fg);
  font-weight: 600;
}
.dpano-dot[data-v-2a3e89bb] {
  width: 9px;
  height: 9px;
  border-radius: 3px;
  flex: none;
}
.dpano-dot--free[data-v-2a3e89bb] {
  background: var(--st-free);
  border: 1px solid var(--border);
}
.dpano-dot--busy[data-v-2a3e89bb] {
  background: var(--st-busy);
}
.dpano-dot--served[data-v-2a3e89bb] {
  background: var(--st-served);
}
.dpano-dot--paid[data-v-2a3e89bb] {
  background: var(--st-paid);
}
.dpano-dot--rsv[data-v-2a3e89bb] {
  background: none;
  border: 1.5px dashed var(--accent);
}
.dpano-hint[data-v-2a3e89bb] {
  flex: none;
  font-size: var(--fs-aux);
  color: var(--muted-2);
  white-space: nowrap;
}
.dpano-close[data-v-2a3e89bb] {
  flex: none;
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--muted);
  font-size: 16px;
  cursor: pointer;
}
.dpano-close[data-v-2a3e89bb]:hover {
  color: var(--fg);
  border-color: var(--muted-2);
}
.dpano-areas[data-v-2a3e89bb] {
  flex: none;
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
  padding: var(--sp-3) var(--sp-5) 0;
}
@supports not (gap: 1px) {
.dpano-areas[data-v-2a3e89bb] > * + * {
    margin-left: var(--sp-2);
}
}
.dpano-body[data-v-2a3e89bb] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--sp-2) var(--sp-5) var(--sp-5);
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.dpano-ghost[data-v-2a3e89bb] {
  /* 长按拿起后跟随指针的浮签（原型 .ghost.tag 同款，与手机端同款）：纯位置驱动、无动画 */
  position: fixed;
  left: 0;
  top: 0;
  z-index: 960;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  padding: 2px;
  min-height: 22px; /* B-318：与压缩后的席上签同高 */
  border-radius: 6px;
  background: rgba(248, 246, 238, 0.92);
  background: color-mix(in oklab, var(--surface) 92%, transparent);
  border: 1px solid #BE977D;
  border: 1px solid color-mix(in oklab, var(--accent) 55%, var(--border));
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
  transform: translate(-50%, -60%) scale(1.1);
  box-shadow: 0 6px 18px rgba(251, 247, 236, 0.24);
  box-shadow: 0 6px 18px color-mix(in oklab, var(--paper-ink) 24%, transparent);
  user-select: none;
  -webkit-user-select: none;
}
.dpano-ghost-name[data-v-2a3e89bb] {
  font-family: var(--font-body);
  color: var(--fg);
  font-size: 10px;
}
.dpano-area-label[data-v-2a3e89bb] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: var(--sp-3) 0 6px;
  font-size: var(--fs-micro);
  font-weight: 500;
  color: var(--muted);
  letter-spacing: 0.22em;
}
@supports not (gap: 1px) {
.dpano-area-label[data-v-2a3e89bb] > * + * {
    margin-left: 8px;
}
}
.dpano-area-name[data-v-2a3e89bb] {
  font-family: var(--font-display);
  font-size: var(--fs-body);
  letter-spacing: 0;
  color: var(--muted-2);
}
.dpano-grid[data-v-2a3e89bb] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: var(--sp-2);
  padding-bottom: var(--sp-4);
}
.dpano-cell[data-v-2a3e89bb] {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
@supports not (gap: 1px) {
.dpano-cell[data-v-2a3e89bb] > * + * {
    margin-top: 3px;
}
}
.dpano-cell[data-v-2a3e89bb] .dseat {
  width: 100%;
}
.dpano-acts[data-v-2a3e89bb] {
  display: flex;
  gap: 6px;
}
@supports not (gap: 1px) {
.dpano-acts[data-v-2a3e89bb] > * + * {
    margin-left: 6px;
}
}
.dpano-acts button[data-v-2a3e89bb] {
  flex: 1;
  min-height: 30px;
  border-radius: var(--r-ctl);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--fs-micro);
  font-weight: 600;
  border: 1px solid rgba(251, 247, 236, 0.6);
  border: 1px solid color-mix(in oklab, var(--paper-ink) 60%, transparent);
  background: transparent;
  color: var(--paper-ink);
  background-color: #9B5733;
  background-color: color-mix(in oklab, var(--st-busy) 88%, var(--fg));
  transition: background-color 0.15s ease;
}
.dpano-acts button[data-v-2a3e89bb]:hover {
  background-color: #8D5232;
  background-color: color-mix(in oklab, var(--st-busy) 74%, var(--fg));
}
@media (prefers-reduced-motion: reduce) {
.dpano[data-v-2a3e89bb] {
    animation: none;
}
}

.dreceipt-view[data-v-4a95e4d8] {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}
.dreceipt-bar[data-v-4a95e4d8] {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.dreceipt-bar[data-v-4a95e4d8] > * + * {
    margin-left: var(--sp-3);
}
}
.dreceipt-back[data-v-4a95e4d8] {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: var(--r-ctl);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: var(--fs-aux);
  cursor: pointer;
}
.dreceipt-back[data-v-4a95e4d8]:hover {
  border-color: #BE977D;
  border-color: color-mix(in oklab, var(--accent) 55%, var(--border));
  color: var(--accent);
}
.dreceipt-title[data-v-4a95e4d8] {
  font-family: var(--font-display);
  font-size: var(--fs-section);
  font-weight: 600;
  letter-spacing: 0.05em;
}
.dreceipt-wrap[data-v-4a95e4d8] {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-4);
  padding: var(--sp-6) var(--sp-4);
}
@supports not (gap: 1px) {
.dreceipt-wrap[data-v-4a95e4d8] > * + * {
    margin-top: var(--sp-4);
}
}

/* 打印域：热敏纯黑白硬性要求（字面色，不参与屏幕令牌体系） */
.dreceipt[data-v-4a95e4d8] {
  width: 288px;
  flex: none;
  background: #fff;
  color: #000;
  border: 1px solid var(--border);
  padding: 20px 16px;
  font-size: 12pt;
  line-height: 1.35;
  font-family: var(--font-body);
  box-shadow: 0 6px 20px rgba(67, 53, 43, 0.1);
  box-shadow: 0 6px 20px color-mix(in oklab, var(--fg) 10%, transparent);
}
.dreceipt-shop[data-v-4a95e4d8] {
  font-family: var(--font-display);
  font-size: 16pt;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.2em;
}
.dreceipt-sub[data-v-4a95e4d8] {
  text-align: center;
  font-size: 9pt;
  margin-top: 4px;
}
.dreceipt-rule[data-v-4a95e4d8] {
  border: 0;
  border-top: 1px dashed #000;
  margin: 10px 0;
}
.dreceipt-meta[data-v-4a95e4d8] {
  font-size: 9pt;
  display: flex;
  justify-content: space-between;
}
.dreceipt-row[data-v-4a95e4d8] {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 10pt;
  padding: 2px 0;
}
@supports not (gap: 1px) {
.dreceipt-row[data-v-4a95e4d8] > * + * {
    margin-left: 8px;
}
}
.dreceipt-n[data-v-4a95e4d8] {
  flex: 1;
  min-width: 0;
}
.dreceipt-q[data-v-4a95e4d8] {
  flex: none;
  width: 44px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.dreceipt-a[data-v-4a95e4d8] {
  flex: none;
  width: 64px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.dreceipt-row--child .dreceipt-n[data-v-4a95e4d8] {
  padding-left: 12px;
  font-size: 9pt;
}
.dreceipt-total[data-v-4a95e4d8] {
  display: flex;
  justify-content: space-between;
  font-size: 12pt;
  font-weight: 700;
  padding-top: 6px;
  font-variant-numeric: tabular-nums;
}
.dreceipt-off[data-v-4a95e4d8] {
  display: flex;
  justify-content: space-between;
  font-size: 9pt;
  font-variant-numeric: tabular-nums;
}
.dreceipt-qr[data-v-4a95e4d8] {
  width: 96px;
  height: 96px;
  margin: 12px auto 4px;
  border: 1.5px solid #000;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8pt;
  text-align: center;
  line-height: 1.5;
}
.dreceipt-thanks[data-v-4a95e4d8] {
  text-align: center;
  font-family: var(--font-display);
  font-size: 11pt;
  letter-spacing: 0.3em;
  margin-top: 8px;
}
.dreceipt-note[data-v-4a95e4d8] {
  max-width: 420px;
  text-align: center;
  font-size: var(--fs-aux);
  color: var(--muted);
  line-height: 1.8;
}
.dreceipt-print-ico[data-v-4a95e4d8] {
  width: 17px;
  height: 17px;
}
@media print {
.dreceipt-bar[data-v-4a95e4d8],
  .dreceipt-note[data-v-4a95e4d8] {
    display: none;
}
.dreceipt-wrap[data-v-4a95e4d8] {
    overflow: visible;
    padding: 0;
}
.dreceipt[data-v-4a95e4d8] {
    border: none;
    box-shadow: none;
}
}

.dpos[data-v-696ba24b] {
  position: relative;
  min-width: 1080px;
  height: 100vh;
  overflow: hidden;
  /* B-293：左 rail 宽度唯一来源（rail 64px）——PcModal/PcDrawer 遮罩、PosPano 与
     本页 .dpos-mask 的 left 起点都从这里取值，保证遮罩不盖住 rail。 */
  --rail-w: 64px;
  background: var(--bg);
  color: var(--fg);
  font: var(--fs-body)/1.5 var(--font-body);
}
/* 纸纹（brand-spec .paper-grain 平移：multiply · 不遮挡 · 不随滚动） */
.dpos[data-v-696ba24b]::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 2000;
  opacity: 0.55;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.26 0 0 0 0.045 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
}
@supports not (inset: 0) {
.dpos[data-v-696ba24b]::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.dpos[data-v-696ba24b] :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: var(--r-ctl);
}

/* 三栏网格 */
.dpos-stage[data-v-696ba24b] {
  margin-left: 64px;
  padding: var(--sp-4);
  display: grid;
  grid-template-columns: clamp(256px, 22vw, 304px) minmax(0, 1fr) clamp(336px, 27vw, 396px);
  gap: var(--sp-3);
  height: 100vh;
  position: relative;
  z-index: 1;
}
.dpos-center[data-v-696ba24b] {
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  overflow: hidden;
  position: relative;
}
.dpos-center-head[data-v-696ba24b] {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--border);
  min-height: 52px;
}
@supports not (gap: 1px) {
.dpos-center-head[data-v-696ba24b] > * + * {
    margin-left: var(--sp-3);
}
}
.dpos-seg[data-v-696ba24b] {
  display: inline-flex;
  padding: 4px;
  border-radius: var(--r-pill);
  background: var(--soft);
  gap: 4px;
}
@supports not (gap: 1px) {
.dpos-seg[data-v-696ba24b] > * + * {
    margin-left: 4px;
}
}
.dpos-seg button[data-v-696ba24b] {
  position: relative;
  min-height: 44px;
  min-width: 96px;
  justify-content: center;
  padding: 0 20px;
  border: 0;
  border-radius: var(--r-pill);
  background: none;
  color: var(--muted);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background-color 0.15s ease, color 0.15s ease;
}
@supports not (gap: 1px) {
.dpos-seg button[data-v-696ba24b] > * + * {
    margin-left: 6px;
}
}
.dpos-seg button[data-v-696ba24b]:hover {
  color: var(--fg);
}
.dpos-seg button.on[data-v-696ba24b] {
  background: var(--surface);
  color: var(--fg);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--border);
}
.dpos-badge[data-v-696ba24b] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 18px;
  padding: 0 6px;
  border-radius: var(--r-pill);
  background: var(--accent);
  color: var(--paper-ink);
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.dpos-badge--warn[data-v-696ba24b] {
  background: var(--cinnabar);
}
.dpos-center-hint[data-v-696ba24b] {
  margin-left: auto;
  font-size: var(--fs-aux);
  color: var(--muted);
}
.dpos-error[data-v-696ba24b] {
  font-size: var(--fs-micro);
  color: var(--cinnabar);
  max-width: 30ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dpos-mask[data-v-696ba24b] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: var(--rail-w, 64px);
  z-index: 950;
  background: rgba(67, 53, 43, 0.32);
  background: color-mix(in oklab, var(--fg) 32%, transparent);
  animation: dpos-fadein-696ba24b 0.18s ease;
}
@keyframes dpos-fadein-696ba24b {
from {
    opacity: 0;
}
}

/* 多分辨率：≤1280 收结构余量（字号不缩）；≤820 高压栏头 */
@media (max-width: 1280px) {
.dpos-stage[data-v-696ba24b] {
    padding: var(--sp-3);
    gap: var(--sp-2);
}
}
@media (max-height: 820px) {
.dpos-stage[data-v-696ba24b] {
    padding-top: var(--sp-3);
    padding-bottom: var(--sp-3);
}
}
@media (prefers-reduced-motion: reduce) {
.dpos[data-v-696ba24b] *,
  .dpos[data-v-696ba24b] *::before,
  .dpos[data-v-696ba24b] *::after {
    transition: none !important;
    animation: none !important;
}
}

.pos-runtime-state[data-v-92c15154] {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 24px;
  color: var(--pos-ink, #34261d);
  background: var(--pos-paper, #f5efe5);
  font-size: 14px;
}
.pos-runtime-error[data-v-92c15154] {
  gap: 12px;
  color: var(--pos-cinnabar, #a33b2b);
}
.retry[data-v-92c15154] {
  padding: 8px 14px;
  border: 1px solid currentColor;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.pos-runtime-partial[data-v-92c15154] {
  padding: 8px 16px;
  color: var(--pos-muted, #806b5a);
  background: var(--pos-fill-soft, #eee5d8);
  font-size: 13px;
}
/*
 * PC 点单产品工作台样式（自原型 menqian-pc-pos-menu-prototype.html \3c style> 逐字迁移）。
 * - 截图/类名契约见 04-工程交接说明 §2；所有选择器加 .pcpm 作用域（全局零污染）。
 * - 色板走全局 tokens-v3（:root 已挂载）；原型 :root 中的页面级圆角/阴影在此就近定义。
 * - 三处工程适配（与原型注释对应）：
 *   1) .side / .chead 的 sticky top 按壳滚动容器（.content 即滚动口）改用 16 / 0；
 *   2) 原型 main 的 padding 由壳 .content 提供，工作台只保留纵向节奏；
 *   3) prefers-reduced-motion 与演示态入口按工程作用域收敛。
 */
/* ══ 门前 OA 设计体系 v3 · 令牌（逐字取自 DESIGN.md） ══ */
.pcpm *,.pcpm *::before,.pcpm *::after{box-sizing:border-box}
.pcpm{
  /* 页面级量（自原型 :root 平移；色板令牌由 tokens-v3 提供） */
  --r-card:16px;--r-ctl:12px;--r-chip:999px;--r-tag:5px;
  --shadow-card:0 1px 2px color-mix(in oklab,var(--fg) 6%,transparent),0 6px 18px color-mix(in oklab,var(--fg) 6%,transparent);
  --shadow-pop:0 18px 50px color-mix(in oklab,var(--fg) 22%,transparent);
  box-sizing:border-box;display:flex;flex-direction:column;gap:16px;color:var(--fg);font:var(--fs-body)/1.55 var(--font-body)
}
@supports (not (color: oklch(0% 0 0))){
.pcpm{
  --shadow-card:0 1px 2px rgba(67, 53, 43, 0.06),0 6px 18px rgba(67, 53, 43, 0.06);
  --shadow-pop:0 18px 50px rgba(67, 53, 43, 0.22)
}}
@supports not (gap: 1px) {
.pcpm > * + * {
    margin-top: 16px;
}
}
.pcpm svg{display:block;width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.pcpm button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
.pcpm a{color:inherit;text-decoration:none}
.pcpm h1,.pcpm h2,.pcpm h3,.pcpm h4,.pcpm p{margin:0}
.pcpm .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.pcpm .dsp{font-family:var(--font-display)}
.pcpm .muted{color:var(--muted)}
.pcpm .sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pcpm :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.pcpm .pagehead{display:flex;align-items:flex-end;gap:16px;max-width:1240px;width:100%;margin:0 auto}
@supports not (gap: 1px) {
.pcpm .pagehead > * + * {
    margin-left: 16px;
}
}
.pcpm .pagehead h1{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:.01em}
.pcpm .pagehead .sub{font-size:13px;color:var(--muted);margin-top:4px;max-width:72ch}
.pcpm .pagehead .acts{margin-left:auto;display:flex;gap:10px;align-items:center}
@supports not (gap: 1px) {
.pcpm .pagehead .acts > * + * {
    margin-left: 10px;
}
}
.pcpm .pagewrap{max-width:1240px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px}
@supports not (gap: 1px) {
.pcpm .pagewrap > * + * {
    margin-top: 16px;
}
}

/* ══ 按钮 ══ */
.pcpm .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 16px;
  border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);color:var(--fg);
  font-size:14px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
@supports not (gap: 1px) {
.pcpm .btn > * + * {
    margin-left: 7px;
}
}
.pcpm .btn:hover{background:var(--soft)}
.pcpm .btn.lg{min-height:44px;padding:0 20px;font-size:var(--fs-section)}
.pcpm .btn.sm{min-height:32px;padding:0 12px;font-size:13px;border-radius:10px}
.pcpm .btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pcpm .btn.bp{background:var(--accent);color:var(--paper-ink);border-color:var(--accent);
  box-shadow:inset 0 -1px 0 #77482D;
  box-shadow:inset 0 -1px 0 color-mix(in oklab,var(--accent) 80%,black)}
.pcpm .btn.bp:hover{background:#945733;background:oklch(0.52 0.095 50)}
.pcpm .btn.bp:active{transform:translateY(1px);box-shadow:none}
.pcpm .btn.bd{background:var(--cinnabar);color:var(--paper-ink);border-color:var(--cinnabar);
  box-shadow:inset 0 -1px 0 #7D3721;
  box-shadow:inset 0 -1px 0 color-mix(in oklab,var(--cinnabar) 80%,black)}
.pcpm .btn.bd:hover{background:#9C4022;background:oklch(0.49 0.13 38)}
.pcpm .btn.bg{border-color:transparent;background:transparent;color:var(--muted)}
.pcpm .btn.bg:hover{background:var(--soft);color:var(--fg)}
.pcpm .btn[disabled],.pcpm .btn[aria-disabled="true"]{color:var(--muted-2);background:var(--soft);border-color:var(--border);cursor:not-allowed;box-shadow:none}
.pcpm .btn.danger-text{color:var(--cinnabar);border-color:transparent;background:transparent}
.pcpm .btn.danger-text:hover{background:var(--soft-cinnabar);color:var(--cinnabar)}
.pcpm .icobtn{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--muted);
  border:1px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}
.pcpm .icobtn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pcpm .icobtn:hover{background:var(--soft);color:var(--fg);border-color:var(--border)}
.pcpm .icobtn[disabled]{color:var(--muted-2);cursor:not-allowed}
.pcpm .icobtn.danger:hover{background:var(--soft-cinnabar);color:var(--cinnabar);border-color:rgba(170, 77, 48, 0.3);border-color:color-mix(in oklab,var(--cinnabar) 30%,transparent)}

/* ══ 卡 ══ */
.pcpm .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.pcpm .card.pad{padding:var(--sp-5)}
.pcpm .sec-title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:600}

/* ══ 状态标签（文字+点+色 三通道）══ */
.pcpm .lbl{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--r-chip);
  font-family:var(--font-display);font-size:10.5px;letter-spacing:.08em;white-space:nowrap;line-height:1.7}
@supports not (gap: 1px) {
.pcpm .lbl > * + * {
    margin-left: 5px;
}
}
.pcpm .lbl i{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.pcpm .lbl.on{background:rgba(110, 123, 76, 0.16);background:color-mix(in oklab,var(--st-served) 16%,transparent);color:var(--st-served)}
.pcpm .lbl.off{background:var(--soft);color:var(--muted)}
.pcpm .lbl.stop{background:var(--soft-cinnabar);color:var(--cinnabar)}
.pcpm .lbl.warn{background:var(--soft-clay);color:var(--st-busy)}
.pcpm .lbl.info{background:rgba(70, 89, 110, 0.14);background:color-mix(in oklab,var(--st-paid) 14%,transparent);color:var(--st-paid)}
.pcpm .tag{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid var(--border);border-radius:var(--r-tag);
  font-size:11px;color:var(--muted);white-space:nowrap;background:rgba(248, 246, 238, 0.6);background:color-mix(in oklab,var(--surface) 60%,transparent)}
.pcpm .tag.solid{background:var(--soft);border-color:transparent;color:var(--fg)}
.pcpm .tag.warn{border-color:rgba(168, 92, 51, 0.4);border-color:color-mix(in oklab,var(--st-busy) 40%,transparent);color:var(--st-busy);background:var(--soft-clay)}
.pcpm .kind{display:inline-flex;align-items:center;padding:1px 7px;border-radius:var(--r-tag);font-size:11px;
  background:var(--soft);color:var(--muted);border:1px solid transparent}
.pcpm .kind.timed{background:rgba(70, 89, 110, 0.12);background:color-mix(in oklab,var(--st-paid) 12%,transparent);color:var(--st-paid)}
.pcpm .kind.bundle{background:rgba(168, 92, 51, 0.14);background:color-mix(in oklab,var(--st-busy) 14%,transparent);color:var(--st-busy)}

/* ══ 开关 ══ */
.pcpm .sw{position:relative;width:40px;height:22px;border-radius:var(--r-chip);background:var(--soft);
  border:1px solid var(--border);transition:background .15s ease,border-color .15s ease;flex:none}
.pcpm .sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
  background:var(--surface);box-shadow:0 1px 2px rgba(67, 53, 43, 0.25);box-shadow:0 1px 2px color-mix(in oklab,var(--fg) 25%,transparent);transition:transform .15s ease}
.pcpm .sw[aria-checked="true"]{background:var(--accent);border-color:var(--accent)}
.pcpm .sw[aria-checked="true"]::after{transform:translateX(18px);background:var(--paper-ink)}
.pcpm .sw:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pcpm .swrow{display:inline-flex;align-items:center;gap:9px;padding:6px 8px;border-radius:10px;min-height:44px}
@supports not (gap: 1px) {
.pcpm .swrow > * + * {
    margin-left: 9px;
}
}
.pcpm .swrow:hover{background:var(--soft)}
.pcpm .swrow .t{font-size:13px}

/* ══ 表单 ══ */
.pcpm .fld{display:flex;flex-direction:column;gap:6px}
@supports not (gap: 1px) {
.pcpm .fld > * + * {
    margin-top: 6px;
}
}
.pcpm .fld>label{font-size:13px;color:var(--muted)}
.pcpm .fld>label .req{color:var(--cinnabar)}
.pcpm .inp,.pcpm .sel,.pcpm .ta{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);color:var(--fg);font:inherit;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}
.pcpm .inp:focus,.pcpm .sel:focus,.pcpm .ta:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.22);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}
.pcpm .ta{min-height:120px;resize:vertical;line-height:1.6}
.pcpm .ta.mono{font-family:var(--font-mono);font-size:13px}
.pcpm .inp.err,.pcpm .sel.err,.pcpm .ta.err{border-color:var(--cinnabar);box-shadow:0 0 0 3px rgba(170, 77, 48, 0.18);box-shadow:0 0 0 3px color-mix(in oklab,var(--cinnabar) 18%,transparent)}
.pcpm .hint{font-size:12px;color:var(--muted)}
.pcpm .errmsg{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--cinnabar)}
@supports not (gap: 1px) {
.pcpm .errmsg > * + * {
    margin-left: 6px;
}
}
.pcpm .errmsg svg{width:14px;height:14px;flex:none;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.6}
.pcpm .counter{font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.pcpm .frm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pcpm .frm-grid .full{grid-column:1/-1}
.pcpm .radios{display:flex;gap:8px;flex-wrap:wrap}
@supports not (gap: 1px) {
.pcpm .radios > * + * {
    margin-left: 8px;
}
}
.pcpm .radios label{display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--border);
  border-radius:var(--r-ctl);background:var(--surface);cursor:pointer;font-size:13px;transition:border-color .15s ease,background .15s ease}
@supports not (gap: 1px) {
.pcpm .radios label > * + * {
    margin-left: 8px;
}
}
.pcpm .radios label:hover{background:var(--soft)}
.pcpm .radios input{accent-color:var(--accent)}
.pcpm .radios label.sel{border-color:var(--accent);background:var(--soft-green)}

/* ══ 列表工作面 ══ */
.pcpm .work{display:grid;grid-template-columns:248px minmax(0,1fr);gap:16px;align-items:start}
.pcpm .side{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px}
@supports not (gap: 1px) {
.pcpm .side > * + * {
    margin-top: 12px;
}
} /* 工程适配：壳滚动口即 .content 顶部 */
.pcpm .ovw{padding:14px}
.pcpm .ovw .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pcpm .ovw .cell{background:var(--bg);border-radius:10px;padding:8px 10px}
.pcpm .ovw .cell .n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.1}
.pcpm .ovw .cell .l{font-size:11px;color:var(--muted);margin-top:2px}
.pcpm .ovw .foot{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}
.pcpm .tree{padding:10px}
.pcpm .tree .t-top{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px}
.pcpm .tree .t-cap{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.pcpm .tnode{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:7px 8px;border-radius:9px;
  font-size:13px;color:var(--fg);transition:background .15s ease;border-left:2px solid transparent}
@supports not (gap: 1px) {
.pcpm .tnode > * + * {
    margin-left: 6px;
}
}
.pcpm .tnode:hover{background:var(--soft)}
.pcpm .tnode.on{background:var(--soft-green);border-left-color:var(--accent);font-weight:600}
.pcpm .tnode.sub{padding-left:22px;font-size:12.5px}
.pcpm .tnode .cnt{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.pcpm .tnode .off-dot{width:5px;height:5px;border-radius:50%;background:var(--cinnabar);flex:none}
.pcpm .tnode.is-off{color:var(--muted)}
.pcpm .tree .t-foot{padding:8px;border-top:1px solid var(--border);margin-top:6px}
.pcpm .toolbar{padding:12px 14px;display:flex;flex-direction:column;gap:10px}
@supports not (gap: 1px) {
.pcpm .toolbar > * + * {
    margin-top: 10px;
}
}
.pcpm .tb-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@supports not (gap: 1px) {
.pcpm .tb-row > * + * {
    margin-left: 10px;
}
}
.pcpm .search{position:relative;flex:1;min-width:220px;max-width:340px}
.pcpm .search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;
  fill:none;stroke:var(--muted);stroke-width:1.6;pointer-events:none}
.pcpm .search .inp{padding-left:34px;min-height:38px}
.pcpm .seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.pcpm .seg button{padding:0 14px;height:38px;font-size:13px;color:var(--muted);transition:background .15s ease,color .15s ease}
.pcpm .seg button:hover{background:var(--soft);color:var(--fg)}
.pcpm .seg button[aria-pressed="true"]{background:var(--soft-green);color:var(--fg);font-weight:600}
.pcpm .seg button+button{border-left:1px solid var(--border)}
.pcpm .tb-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);
  padding-top:10px;border-top:1px dashed var(--border)}
@supports not (gap: 1px) {
.pcpm .tb-meta > * + * {
    margin-left: 10px;
}
}
.pcpm .tb-meta .fchip{display:inline-flex;align-items:center;gap:6px;background:var(--soft-green);color:var(--fg);
  border-radius:var(--r-chip);padding:3px 10px;font-size:12px}
@supports not (gap: 1px) {
.pcpm .tb-meta .fchip > * + * {
    margin-left: 6px;
}
}
.pcpm .tb-meta .fchip button{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.pcpm .tb-meta .fchip button:hover{background:rgba(67, 53, 43, 0.12);background:color-mix(in oklab,var(--fg) 12%,transparent);color:var(--fg)}
.pcpm .glist{display:flex;flex-direction:column;gap:12px}
@supports not (gap: 1px) {
.pcpm .glist > * + * {
    margin-top: 12px;
}
}
.pcpm .grp{overflow:hidden}
.pcpm .ghead{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#F2EDE1;background:color-mix(in oklab,var(--soft) 55%,var(--surface));
  border-bottom:1px solid var(--border)}
@supports not (gap: 1px) {
.pcpm .ghead > * + * {
    margin-left: 10px;
}
}
.pcpm .ghead .gname{font-family:var(--font-display);font-size:15px;font-weight:600}
.pcpm .ghead .gnum{font-size:12px;color:var(--muted)}
.pcpm .ghead .spacer{flex:1}
.pcpm .grows{display:flex;flex-direction:column}
.pcpm .gfoot{padding:8px 14px;font-size:12px;color:var(--muted);border-top:1px dashed var(--border);display:flex;align-items:center;gap:8px}
@supports not (gap: 1px) {
.pcpm .gfoot > * + * {
    margin-left: 8px;
}
}
.pcpm .prow{display:grid;grid-template-columns:44px minmax(0,1fr) 132px 96px 104px 116px;gap:12px;align-items:center;
  padding:9px 14px;border-bottom:1px solid var(--border);transition:background .15s ease}
.pcpm .prow:last-child{border-bottom:0}
.pcpm .prow:hover{background:rgba(237, 229, 214, 0.45);background:color-mix(in oklab,var(--soft) 45%,transparent)}
.pcpm .prow.isoff{background:rgba(237, 229, 214, 0.7);background:color-mix(in oklab,var(--soft) 70%,transparent)}
.pcpm .prow .nm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
@supports not (gap: 1px) {
.pcpm .prow .nm > * + * {
    margin-left: 8px;
}
}
.pcpm .prow .nm .t{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pcpm .prow .nm .sub{font-size:11px;color:var(--muted)}
.pcpm .prow .price{display:flex;align-items:center;justify-content:flex-end;gap:6px}
@supports not (gap: 1px) {
.pcpm .prow .price > * + * {
    margin-left: 6px;
}
}
.pcpm .pricebtn{display:inline-flex;align-items:baseline;gap:3px;padding:5px 8px;border-radius:9px;font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;transition:background .15s ease;border:1px dashed transparent}
@supports not (gap: 1px) {
.pcpm .pricebtn > * + * {
    margin-left: 3px;
}
}
.pcpm .pricebtn:hover{background:var(--soft-green);border-color:rgba(162, 100, 64, 0.35);border-color:color-mix(in oklab,var(--accent) 35%,transparent)}
.pcpm .pricebtn .u{font-size:10px;color:var(--muted);font-weight:400}
.pcpm .pricebtn input{width:92px;font:inherit;text-align:right;border:1px solid var(--accent);border-radius:8px;padding:3px 6px;background:var(--surface);color:var(--fg)}
.pcpm .prow .rules{display:flex;align-items:center;gap:6px;justify-content:center}
@supports not (gap: 1px) {
.pcpm .prow .rules > * + * {
    margin-left: 6px;
}
}
.pcpm .swcell{display:flex;align-items:center;justify-content:center;width:40px;flex:none}
.pcpm .prow .rules .swrow{min-height:24px;padding:0;border-radius:8px}
.pcpm .chead{display:grid;grid-template-columns:44px minmax(0,1fr) 132px 96px 104px 116px;gap:12px;align-items:center;
  padding:7px 14px;position:sticky;top:0;z-index:6;background:var(--surface);border-bottom:1px solid var(--border); /* 工程适配：滚动容器=壳 .content，顶栏在其外 */
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.pcpm .chead .right{justify-self:end}
.pcpm .chead .center{justify-self:center}
.pcpm .chead .rules-h{display:flex;gap:6px;justify-content:center}
@supports not (gap: 1px) {
.pcpm .chead .rules-h > * + * {
    margin-left: 6px;
}
}
.pcpm .chead .rules-h span{width:40px;text-align:center}
.pcpm .prow .rowact{display:flex;align-items:center;gap:2px;justify-content:flex-end}
@supports not (gap: 1px) {
.pcpm .prow .rowact > * + * {
    margin-left: 2px;
}
}
.pcpm .prow .sortcell{display:flex;align-items:center;gap:2px;justify-content:center;color:var(--muted)}
@supports not (gap: 1px) {
.pcpm .prow .sortcell > * + * {
    margin-left: 2px;
}
}
.pcpm .sortval{font-family:var(--font-mono);font-size:11px;color:var(--muted-2);width:20px;text-align:right}
.pcpm .cover{width:44px;height:44px;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--bg)}
.pcpm .cover img{width:100%;height:100%;object-fit:cover}
.pcpm .cover.no{display:grid;place-items:center;background:var(--bg);color:var(--muted-2);font-family:var(--font-display);
  font-size:9px;letter-spacing:.04em;text-align:center;line-height:1.15;padding:3px}
.pcpm .cover.lg{width:120px;height:120px;border-radius:12px}
.pcpm .cover.lg.no{font-size:13px;color:var(--muted)}
.pcpm .legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:10px 14px}
@supports not (gap: 1px) {
.pcpm .legend > * + * {
    margin-left: 14px;
}
}
.pcpm .legend .it{display:inline-flex;align-items:center;gap:6px}
@supports not (gap: 1px) {
.pcpm .legend .it > * + * {
    margin-left: 6px;
}
}
.pcpm .legend .it .k{color:var(--fg);font-weight:600}
.pcpm .legend .swatch{width:12px;height:12px;border-radius:4px;border:1px solid var(--border)}

/* ══ 编辑器 ══ */
.pcpm .edbar{display:flex;align-items:center;gap:12px}
@supports not (gap: 1px) {
.pcpm .edbar > * + * {
    margin-left: 12px;
}
}
.pcpm .edbar .path{font-size:12px;color:var(--muted)}
.pcpm .edtabs{display:flex;gap:2px;overflow-x:auto;padding:0 6px;border-bottom:1px solid var(--border)}
@supports not (gap: 1px) {
.pcpm .edtabs > * + * {
    margin-left: 2px;
}
}
.pcpm .etab{display:inline-flex;align-items:center;gap:7px;padding:12px 14px;font-size:13.5px;color:var(--muted);
  border-bottom:2px solid transparent;white-space:nowrap;transition:color .15s ease,border-color .15s ease}
@supports not (gap: 1px) {
.pcpm .etab > * + * {
    margin-left: 7px;
}
}
.pcpm .etab:hover{color:var(--fg)}
.pcpm .etab[aria-selected="true"]{color:var(--fg);font-weight:600;border-bottom-color:var(--accent)}
.pcpm .etab .badge{width:16px;height:16px;border-radius:50%;background:var(--cinnabar);color:var(--paper-ink);
  font-size:10px;display:grid;place-items:center;font-family:var(--font-mono)}
.pcpm .epane{padding:var(--sp-6)}
.pcpm .eblock+.eblock{margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--border)}
.pcpm .eblock .bt{font-family:var(--font-display);font-size:15px;font-weight:600;margin-bottom:4px}
.pcpm .eblock .bd{font-size:12.5px;color:var(--muted);margin-bottom:14px;max-width:80ch}
.pcpm .notes{display:flex;gap:9px;padding:11px 13px;border-radius:var(--r-ctl);background:var(--soft-clay);
  font-size:12.5px;color:var(--fg);align-items:flex-start}
@supports not (gap: 1px) {
.pcpm .notes > * + * {
    margin-left: 9px;
}
}
.pcpm .notes svg{width:16px;height:16px;flex:none;margin-top:1px;fill:none;stroke:var(--st-busy);stroke-width:1.6}
.pcpm .notes.info{background:var(--soft)}
.pcpm .notes.info svg{stroke:var(--muted)}
.pcpm .notes.log{background:var(--soft-cinnabar)}
.pcpm .notes.log svg{stroke:var(--cinnabar)}
.pcpm .errsummary svg,.pcpm .failbanner svg{width:15px;height:15px;flex:none;margin-top:1px}
.pcpm .errsummary{display:flex;gap:9px;padding:11px 13px;border-radius:var(--r-ctl);background:var(--soft-cinnabar);
  font-size:12.5px;color:var(--cinnabar);align-items:flex-start}
@supports not (gap: 1px) {
.pcpm .errsummary > * + * {
    margin-left: 9px;
}
}
.pcpm .failbanner{display:flex;gap:10px;align-items:center;padding:11px 13px;border-radius:var(--r-ctl);
  background:var(--soft-cinnabar);color:var(--cinnabar);font-size:12.5px}
@supports not (gap: 1px) {
.pcpm .failbanner > * + * {
    margin-left: 10px;
}
}
.pcpm .failbanner .btn{margin-left:auto}
.pcpm .optgrid{display:flex;flex-direction:column;gap:10px}
@supports not (gap: 1px) {
.pcpm .optgrid > * + * {
    margin-top: 10px;
}
}
.pcpm .optcard{border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--bg);padding:12px}
/* 组头：统一以 40px 输入带为对齐基线（底对齐），字段与非字段子项都落在同一条带上，避免有/无 label 造成的错位 */
.pcpm .optcard .oh{display:flex;align-items:flex-end;gap:8px;margin-bottom:10px}
@supports not (gap: 1px) {
.pcpm .optcard .oh > * + * {
    margin-left: 8px;
}
}
.pcpm .optcard .oh .fld{min-width:0}
.pcpm .optcard .oh .grab{flex:none;height:40px;display:inline-flex;align-items:center;justify-content:center;min-width:14px;
  color:var(--muted-2);font-family:var(--font-mono);font-size:12px}
.pcpm .optcard .oh .ohctrls{display:flex;align-items:center;gap:8px;height:40px;margin-left:auto;flex:none}
@supports not (gap: 1px) {
.pcpm .optcard .oh .ohctrls > * + * {
    margin-left: 8px;
}
}
.pcpm .optcard .oh .ohband{display:inline-flex;align-items:center;height:40px;flex:none}
.pcpm .vals{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@supports not (gap: 1px) {
.pcpm .vals > * + * {
    margin-left: 6px;
}
}
.pcpm .valchip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-chip);padding:4px 6px 4px 11px;font-size:12.5px}
@supports not (gap: 1px) {
.pcpm .valchip > * + * {
    margin-left: 6px;
}
}
.pcpm .valchip button{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;color:var(--muted);flex:none}
.pcpm .valchip button:hover{background:var(--soft-cinnabar);color:var(--cinnabar)}
/* 可编辑选项值：值本身就是输入框（有内描边，看得出能改）；另配「修改」键做整词重打 */
.pcpm .valslabel{font-size:12px;color:var(--muted);margin:10px 0 6px}
.pcpm .valchip.vedit{gap:2px;padding:2px 4px 2px 2px}
.pcpm .valchip.vedit:focus-within{border-color:var(--accent)}
.pcpm .valchip.vedit button{width:22px;height:22px}
.pcpm .valchip.vedit button.bedit{color:var(--muted)}
.pcpm .valchip.vedit button.bedit:hover{background:var(--soft-green);color:var(--fg)}
/* 默认值星标：组内单选；点亮 = 点单时预选该值（再点取消回「无默认 = 首项」） */
.pcpm .valchip.vedit button.bstar{color:var(--muted)}
.pcpm .valchip.vedit button.bstar:hover{background:var(--soft-green);color:var(--fg)}
.pcpm .valchip.vedit button.bstar.on{color:var(--accent)}
.pcpm .valchip.vedit button.bstar.on:hover{background:var(--soft-cinnabar);color:var(--accent)}
.pcpm .vinp{color:var(--fg);font:inherit;padding:3px 9px;outline:none;border:1px solid transparent;
  border-radius:calc(var(--r-chip) - 2px);min-width:44px;
  background:#F4EFE4;
  background:color-mix(in oklab,var(--bg) 70%,var(--surface));
  box-shadow:inset 0 0 0 1px rgba(221, 214, 200, 0.85);
  box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--border) 85%,transparent)}
.pcpm .vinp::placeholder{color:var(--muted-2)}
.pcpm .vinp:hover{box-shadow:inset 0 0 0 1px #B8AEA2;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--muted) 40%,var(--border))}
.pcpm .vinp:focus,.pcpm .vinp:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}
.pcpm .valchip.add{border-style:dashed;padding:4px 10px;color:var(--muted);cursor:pointer;gap:5px}
.pcpm .valchip.add:hover{color:var(--fg);background:var(--soft-green)}
/* 新增反馈：一次性的强调环，让「点了有反应」不靠猜 */
@keyframes flashadd{from{box-shadow:0 0 0 6px rgba(162, 100, 64, 0.4);box-shadow:0 0 0 6px color-mix(in oklab,var(--accent) 40%,transparent)}
to{box-shadow:0 0 0 6px transparent;box-shadow:0 0 0 6px color-mix(in oklab,var(--accent) 0%,transparent)}}
.pcpm .flashadd{animation:flashadd .7s ease-out}
.pcpm .picker{border:1px solid var(--border);border-radius:var(--r-ctl);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden}
.pcpm .picker .pc{border-right:1px solid var(--border);display:flex;flex-direction:column;max-height:340px}
.pcpm .picker .pc:last-child{border-right:0}
.pcpm .picker .pch{padding:9px 12px;background:var(--soft);font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:8px}
@supports not (gap: 1px) {
.pcpm .picker .pch > * + * {
    margin-left: 8px;
}
}
.pcpm .picker .pcb{overflow-y:auto;padding:6px}
.pcpm .prow-pick{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;font-size:13px;width:100%;text-align:left}
@supports not (gap: 1px) {
.pcpm .prow-pick > * + * {
    margin-left: 9px;
}
}
.pcpm .prow-pick:hover{background:var(--soft)}
.pcpm .prow-pick input{accent-color:var(--accent)}
.pcpm .prow-pick .pr{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--muted)}
.pcpm .pgroup-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted-2);padding:8px 9px 4px}
.pcpm .prow-pick[aria-disabled="true"]{color:var(--muted-2);cursor:not-allowed}
.pcpm .prow-pick[aria-disabled="true"]:hover{background:transparent}
.pcpm .ingtable{width:100%;border-collapse:collapse;font-size:13px}
.pcpm .ingtable th{text-align:left;font-weight:500;font-size:11px;font-family:var(--font-mono);letter-spacing:.06em;
  color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--border)}
.pcpm .ingtable td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
.pcpm .ingtable .sel,.pcpm .ingtable .inp{min-height:34px}
.pcpm .ingtable .rt{text-align:right}
.pcpm .mdprev{padding:20px 22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-ctl);line-height:1.7}
.pcpm .mdprev h3{font-family:var(--font-display);font-size:17px;margin:0 0 8px}
.pcpm .mdprev h4{font-family:var(--font-display);font-size:14px;margin:16px 0 6px;color:var(--fg)}
.pcpm .mdprev p{margin:0 0 10px;font-size:14px;color:var(--fg)}
.pcpm .mdprev ul,.pcpm .mdprev ol{margin:0 0 10px;padding-left:22px;font-size:14px}
.pcpm .mdprev li{margin-bottom:4px}
.pcpm .mdprev strong{font-weight:600}
.pcpm .mdprev .pre-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);
  font-family:var(--font-mono);margin-bottom:14px}
@supports not (gap: 1px) {
.pcpm .mdprev .pre-tag > * + * {
    margin-left: 6px;
}
}
.pcpm .mdprev .pre-tag svg{width:13px;height:13px;stroke-width:1.5}
.pcpm .mdprev hr{border:0;border-top:1px solid var(--border);margin:16px 0}
.pcpm .mdprev table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}
.pcpm .mdprev td,.pcpm .mdprev th{padding:6px 9px;border-bottom:1px solid var(--border);text-align:left}

/* ══ 分类管理 ══ */
.pcpm .catrow{display:grid;grid-template-columns:minmax(0,1fr) 108px 92px 150px 96px;gap:12px;align-items:center;
  padding:10px 14px;border-bottom:1px solid var(--border)}
.pcpm .catrow:hover{background:rgba(237, 229, 214, 0.45);background:color-mix(in oklab,var(--soft) 45%,transparent)}
.pcpm .catrow.sub{padding-left:36px;background:rgba(242, 236, 224, 0.4);background:color-mix(in oklab,var(--bg) 40%,transparent)}
.pcpm .catrow .cn{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
@supports not (gap: 1px) {
.pcpm .catrow .cn > * + * {
    margin-left: 9px;
}
}
.pcpm .catrow .cn .t{font-size:14px;font-weight:500}
.pcpm .catrow .cn.sub .t{font-size:13px;font-weight:400}
.pcpm .rename{display:flex;align-items:center;gap:6px}
@supports not (gap: 1px) {
.pcpm .rename > * + * {
    margin-left: 6px;
}
}
/* 分类管理：点击改名的名称键（原型 .editable cursor:text 的按钮化） */
.pcpm .cn-name{display:inline-flex;align-items:center;background:none;border:0;padding:0;cursor:text}
.pcpm .cn-name:hover .t{color:var(--accent)}
.pcpm .rename .inp{min-height:34px;max-width:240px}

/* ══ 弹层 ══ */
.pcpm .mask{position:fixed;inset:0;z-index:300;background:rgba(67, 53, 43, 0.42);background:color-mix(in oklab,var(--fg) 42%,transparent);
  display:grid;place-items:center;padding:24px;animation:fadein .18s ease}
@supports not (inset: 0){
.pcpm .mask{top:0;right:0;bottom:0;left:0}}
.pcpm .mask[hidden]{display:none}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.pcpm .dlg{width:min(560px,100%);max-height:86vh;overflow:auto;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-card);box-shadow:var(--shadow-pop);animation:pop .2s cubic-bezier(.3,.9,.4,1)}
.pcpm .dlg.wide{width:min(760px,100%)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.pcpm .dlg .dh{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 0}
@supports not (gap: 1px) {
.pcpm .dlg .dh > * + * {
    margin-left: 12px;
}
}
.pcpm .dlg .dh .dt{font-family:var(--font-display);font-size:18px;font-weight:600}
.pcpm .dlg .dh .ds{font-size:12.5px;color:var(--muted);margin-top:4px}
.pcpm .dlg .close{margin-left:auto;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.pcpm .dlg .close:hover{background:var(--soft);color:var(--fg)}
.pcpm .dlg .close svg{width:16px;height:16px}
.pcpm .dlg .db{padding:16px 20px;display:flex;flex-direction:column;gap:14px}
@supports not (gap: 1px) {
.pcpm .dlg .db > * + * {
    margin-top: 14px;
}
}
.pcpm .dlg .df{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 20px;border-top:1px solid var(--border)}
@supports not (gap: 1px) {
.pcpm .dlg .df > * + * {
    margin-left: 10px;
}
}
.pcpm .dlg .df .l{margin-right:auto;font-size:12px;color:var(--muted);align-self:center}
.pcpm .conseq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
@supports not (gap: 1px) {
.pcpm .conseq > * + * {
    margin-top: 8px;
}
}
.pcpm .conseq li{display:flex;gap:9px;font-size:13px;align-items:flex-start;padding:9px 11px;border-radius:10px;background:var(--bg)}
@supports not (gap: 1px) {
.pcpm .conseq li > * + * {
    margin-left: 9px;
}
}
.pcpm .conseq li svg{width:15px;height:15px;flex:none;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.6}
.pcpm .conseq li.bad{background:var(--soft-cinnabar);color:var(--cinnabar)}
.pcpm .conseq li.ok{color:var(--muted)}
.pcpm .toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%) translateY(12px);z-index:400;
  display:inline-flex;align-items:center;gap:10px;background:var(--ink-card);color:var(--paper-ink);
  padding:11px 18px;border-radius:var(--r-chip);box-shadow:var(--shadow-pop);font-size:13.5px;
  opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;max-width:min(680px,90vw)}
@supports not (gap: 1px) {
.pcpm .toast > * + * {
    margin-left: 10px;
}
}
.pcpm .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.pcpm .toast .dot{width:7px;height:7px;border-radius:50%;background:var(--st-served);flex:none}
.pcpm .toast.err .dot{background:var(--cinnabar)}

/* 骨架 / 空 / 失败 */
.pcpm .skel{display:flex;flex-direction:column;gap:10px;padding:16px}
@supports not (gap: 1px) {
.pcpm .skel > * + * {
    margin-top: 10px;
}
}
.pcpm .sk{background:#EFE8DB;background:color-mix(in oklab,var(--soft) 80%,var(--surface));border-radius:10px;animation:breathe 1.6s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.55}50%{opacity:1}}
.pcpm .statepanel{padding:56px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
@supports not (gap: 1px) {
.pcpm .statepanel > * + * {
    margin-top: 12px;
}
}
.pcpm .statepanel .art{width:64px;height:64px;opacity:.5}
.pcpm .statepanel .art svg{width:64px;height:64px;fill:none;stroke:var(--muted);stroke-width:1.4}
.pcpm .statepanel h3{font-family:var(--font-display);font-size:19px;font-weight:600}
.pcpm .statepanel p{font-size:13px;color:var(--muted);max-width:52ch}
.pcpm .statepanel .row{display:flex;gap:10px;margin-top:6px}
@supports not (gap: 1px) {
.pcpm .statepanel .row > * + * {
    margin-left: 10px;
}
}
.pcpm .steps{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap;justify-content:center}
@supports not (gap: 1px) {
.pcpm .steps > * + * {
    margin-left: 10px;
}
}
.pcpm .step{display:flex;align-items:center;gap:9px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);font-size:13px;text-align:left;transition:border-color .15s ease,background .15s ease}
@supports not (gap: 1px) {
.pcpm .step > * + * {
    margin-left: 9px;
}
}
.pcpm .step:hover{border-color:var(--accent);background:var(--soft-green)}
.pcpm .step .no{width:22px;height:22px;border-radius:50%;background:var(--soft);display:grid;place-items:center;
  font-family:var(--font-mono);font-size:11px;color:var(--muted);flex:none}
.pcpm .step .d{font-size:11px;color:var(--muted)}
@media (prefers-reduced-motion: reduce){.pcpm,.pcpm *{transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media (max-width:1280px){
.pcpm .work{grid-template-columns:224px minmax(0,1fr)}
.pcpm .prow{grid-template-columns:44px minmax(0,1fr) 118px 88px 96px 108px;gap:8px}
.pcpm .chead{grid-template-columns:44px minmax(0,1fr) 118px 88px 96px 108px;gap:8px}
}
/* 工程适配（窄容器韧性；宽容器下观感与原型一致）：
 * 按钮/分段控件文字不竖排换行，页头在极窄时让操作区整行折行。 */
.pcpm .btn{white-space:nowrap}
.pcpm .pagehead{flex-wrap:wrap;row-gap:12px}
.pcpm .seg button{white-space:nowrap}

.oa-modal__overlay[data-v-8b93db63] {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: var(--pos-mask);
}
@supports not (inset: 0) {
.oa-modal__overlay[data-v-8b93db63] {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.oa-modal__panel[data-v-8b93db63] {
  display: flex;
  flex-direction: column;
  width: min(100%, 480px);
  max-height: min(80vh, 640px);
  outline: none;
  border: 1px solid var(--pos-line);
  border-radius: var(--pos-radius, 10px);
  background: var(--pos-card);
  box-shadow: var(--pos-shadow-float);
  color: var(--pos-ink);
  font-family: var(--font-sans, system-ui, sans-serif);
}
.oa-modal__header[data-v-8b93db63] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px 10px;
}
@supports not (gap: 1px) {
.oa-modal__header[data-v-8b93db63] > * + * {
    margin-left: 12px;
}
}
.oa-modal__title[data-v-8b93db63] {
  margin: 0;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.oa-modal__close[data-v-8b93db63] {
  min-height: var(--touch-min, 44px);
  min-width: var(--touch-min, 44px);
  border: 1px solid var(--pos-line);
  border-radius: var(--pos-radius-sm, 6px);
  background: transparent;
  color: var(--pos-brown);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition:
    color 150ms ease,
    border-color 150ms ease;
}
.oa-modal__close[data-v-8b93db63]:hover {
  color: var(--pos-ink);
  border-color: var(--pos-brown);
}
.oa-modal__body[data-v-8b93db63] {
  padding: 6px 18px 18px;
  overflow: auto;
}
.oa-modal__footer[data-v-8b93db63] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 0 18px 18px;
}
@supports not (gap: 1px) {
.oa-modal__footer[data-v-8b93db63] > * + * {
    margin-left: 10px;
}
}

/* 过渡：150ms 只动 transform/opacity */
.oa-modal-enter-active[data-v-8b93db63],
.oa-modal-leave-active[data-v-8b93db63] {
  transition: opacity 150ms ease;
}
.oa-modal-enter-active .oa-modal__panel[data-v-8b93db63],
.oa-modal-leave-active .oa-modal__panel[data-v-8b93db63] {
  transition: transform 150ms ease;
}
.oa-modal-enter-from[data-v-8b93db63],
.oa-modal-leave-to[data-v-8b93db63] {
  opacity: 0;
}
.oa-modal-enter-from .oa-modal__panel[data-v-8b93db63],
.oa-modal-leave-to .oa-modal__panel[data-v-8b93db63] {
  transform: translateY(-10px) scale(0.98);
}
@media (prefers-reduced-motion: reduce) {
.oa-modal-enter-active[data-v-8b93db63],
  .oa-modal-leave-active[data-v-8b93db63],
  .oa-modal-enter-active .oa-modal__panel[data-v-8b93db63],
  .oa-modal-leave-active .oa-modal__panel[data-v-8b93db63] {
    transition: none;
}
}

.cr-records[data-v-80bbd194] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}@supports not (gap: 1px) {
.cr-records[data-v-80bbd194] > * + * {
    margin-top: 12px;
}
}
.cr-empty[data-v-80bbd194] {
  color: var(--ink-3, #8a8f8a);
  text-align: center;
  padding: 12px 0;
}
.cr-record[data-v-80bbd194] {
  border: 1px solid var(--line-2, #e3e6e0);
  border-radius: 10px;
  padding: 10px 12px;
  background: var(--bg-1, #fff);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@supports not (gap: 1px) {
.cr-record[data-v-80bbd194] > * + * {
    margin-top: 8px;
}
}
.cr-head[data-v-80bbd194] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
}
@supports not (gap: 1px) {
.cr-head[data-v-80bbd194] > * + * {
    margin-left: 8px;
}
}
.cr-no[data-v-80bbd194] {
  font-weight: 600;
}
.cr-type[data-v-80bbd194],
.cr-status[data-v-80bbd194] {
  font-size: 12px;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--bg-2, #f2f4ef);
}
.cr-amount[data-v-80bbd194] {
  margin-left: auto;
}
.cr-record section[data-v-80bbd194] {
  border-top: 1px dashed var(--line-2, #e3e6e0);
  padding-top: 8px;
}
.cr-record h3[data-v-80bbd194] {
  margin: 0 0 4px;
  font-size: 12px;
  color: var(--ink-3, #8a8f8a);
  font-weight: 500;
}
.cr-record p[data-v-80bbd194] {
  margin: 2px 0;
  font-size: 13px;
}
.cr-none[data-v-80bbd194] {
  color: var(--ink-3, #8a8f8a);
}
.cr-reason[data-v-80bbd194] {
  white-space: pre-wrap;
}

.cs-sheet[data-v-b698e6ec] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}@supports not (gap: 1px) {
.cs-sheet[data-v-b698e6ec] > * + * {
    margin-top: 12px;
}
}
.cs-head[data-v-b698e6ec] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cs-head h2[data-v-b698e6ec] {
  margin: 0;
  font-size: 16px;
}
.cs-close[data-v-b698e6ec] {
  border: none;
  background: none;
  font-size: 18px;
  cursor: pointer;
  color: var(--ink-3, #8a8f8a);
}
.cs-loading[data-v-b698e6ec],
.cs-blocked[data-v-b698e6ec] {
  text-align: center;
  color: var(--ink-2, #4d534d);
  padding: 16px 0;
}
.cs-blocked ul[data-v-b698e6ec] {
  margin: 8px 0;
  padding-left: 18px;
  text-align: left;
  color: var(--danger, #b3402e);
}
.cs-form[data-v-b698e6ec],
.cs-preview[data-v-b698e6ec],
.cs-confirm[data-v-b698e6ec] {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@supports not (gap: 1px) {
.cs-form[data-v-b698e6ec] > * + *,
.cs-preview[data-v-b698e6ec] > * + *,
.cs-confirm[data-v-b698e6ec] > * + * {
    margin-top: 10px;
}
}
.cs-order-line[data-v-b698e6ec] {
  margin: 0;
  font-size: 13px;
  color: var(--ink-2, #4d534d);
}
.cs-field[data-v-b698e6ec] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
@supports not (gap: 1px) {
.cs-field[data-v-b698e6ec] > * + * {
    margin-top: 4px;
}
}
.cs-label[data-v-b698e6ec] {
  font-size: 13px;
  color: var(--ink-2, #4d534d);
}
.cs-radio[data-v-b698e6ec] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-right: 14px;
  font-size: 14px;
}
@supports not (gap: 1px) {
.cs-radio[data-v-b698e6ec] > * + * {
    margin-left: 6px;
}
}
.cs-reason[data-v-b698e6ec] {
  width: 100%;
  box-sizing: border-box;
  resize: vertical;
}
.cs-reason-count[data-v-b698e6ec] {
  align-self: flex-end;
  font-size: 12px;
  color: var(--ink-3, #8a8f8a);
}
.cs-reason-err[data-v-b698e6ec],
.cs-form-error[data-v-b698e6ec] {
  color: var(--danger, #b3402e);
  font-size: 13px;
  margin: 0;
}
.cs-hint[data-v-b698e6ec] {
  margin: 0;
  font-size: 12px;
  color: var(--ink-3, #8a8f8a);
}
.cs-preview-note[data-v-b698e6ec],
.cs-confirm-title[data-v-b698e6ec] {
  margin: 0;
  font-size: 13px;
  color: var(--ink-2, #4d534d);
}
.cs-kv[data-v-b698e6ec] {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border: 1px solid var(--line-2, #e3e6e0);
  border-radius: 10px;
  padding: 10px 12px;
  background: var(--bg-2, #f7f8f4);
}
@supports not (gap: 1px) {
.cs-kv[data-v-b698e6ec] > * + * {
    margin-top: 6px;
}
}
.cs-kv > div[data-v-b698e6ec] {
  display: flex;
  gap: 10px;
}
@supports not (gap: 1px) {
.cs-kv > div[data-v-b698e6ec] > * + * {
    margin-left: 10px;
}
}
.cs-kv dt[data-v-b698e6ec] {
  flex: 0 0 72px;
  color: var(--ink-3, #8a8f8a);
  font-size: 13px;
}
.cs-kv dd[data-v-b698e6ec] {
  margin: 0;
  font-size: 13px;
}
.cs-actions[data-v-b698e6ec] {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
@supports not (gap: 1px) {
.cs-actions[data-v-b698e6ec] > * + * {
    margin-left: 10px;
}
}
.cs-submitting[data-v-b698e6ec] {
  color: var(--ink-2, #4d534d);
  font-size: 13px;
}
.cs-success-note[data-v-b698e6ec] {
  margin: 0;
  font-weight: 600;
}
.cs-error-text[data-v-b698e6ec] {
  margin: 0;
  color: var(--danger, #b3402e);
}
/*
 * PC 每日营业 v3 视觉契约。
 * 从 menqian-daily-sales-prototype.html 内容区样式平移；色值只引 tokens-v3.css。
 */
.mqd {
  --mqd-r-card: 16px;
  --mqd-r-ctl: 12px;
  --mqd-r-tag: 5px;
  min-width: 1080px;
  color: var(--fg);
  font-family: var(--font-body);
}
.mqd .wrap { max-width: 1240px; margin: 0 auto; }
.mqd .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.mqd .muted { color: var(--muted); }
.mqd button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.mqd input, .mqd select, .mqd textarea { font: inherit; color: inherit; }
.mqd h1, .mqd h2, .mqd h3, .mqd p { margin: 0; }
.mqd :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }

.mqd .pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}

@supports not (gap: 1px) {
  .mqd .pagehead > * + * {
    margin-left: 16px;
  }
}
.mqd .eyebrow{font:500 10px/1 var(--font-mono);letter-spacing:.22em;color:var(--muted-2);margin-bottom:7px}
.mqd .pagehead h1{font:600 var(--fs-title)/1.35 var(--font-display);letter-spacing:1px;display:flex;align-items:center}
.mqd .pagehead .sub{color:var(--muted);font-size:var(--fs-aux);margin-top:5px;max-width:64ch;line-height:1.7}
.mqd .demo-note{
  display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-micro);color:var(--muted);
  border:1px dashed var(--border);border-radius:var(--r-tag);padding:2px 8px;margin-left:12px;vertical-align:2px;
}
@supports not (gap: 1px) {
  .mqd .demo-note > * + * {
    margin-left: 6px;
  }
}
.mqd .ph-tools{display:flex;align-items:center;gap:10px;flex:none;padding-bottom:2px}
@supports not (gap: 1px) {
  .mqd .ph-tools > * + * {
    margin-left: 10px;
  }
}

/* ═══ 按钮：1px 浅底厚；本页内容区无实心，全页实心只在欠账弹窗「确认补收」 ═══ */
.mqd .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:36px;padding:0 14px;border-radius:var(--r-ctl);
  border:1px solid transparent;font-size:var(--fs-body);font-weight:600;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
@supports not (gap: 1px) {
  .mqd .btn > * + * {
    margin-left: 6px;
  }
}
.mqd .btn:active{transform:translateY(1px)}
.mqd .btn.lg{min-height:44px;padding:0 20px}
.mqd .btn.sm{min-height:32px;padding:0 12px;font-size:var(--fs-aux)}
.mqd .btn.bp{background:var(--accent);color:var(--paper-ink);border-bottom:1px solid #77482D;border-bottom:1px solid color-mix(in oklab,var(--accent) 80%,black)}
.mqd .btn.bp:hover{background:#8C5636;background:color-mix(in oklab,var(--accent) 90%, black)}
.mqd .btn.bp:disabled{background:#D5B7A3;background:color-mix(in oklab,var(--accent) 42%,var(--surface));border-bottom-color:transparent;color:rgba(251, 247, 236, 0.72);color:color-mix(in oklab,var(--paper-ink) 72%,transparent);cursor:not-allowed;transform:none}
.mqd .btn.bs{background:var(--surface);border-color:var(--border);color:var(--fg)}
.mqd .btn.bs:hover{background:var(--soft-green);border-color:#B4AA9D;border-color:color-mix(in oklab,var(--fg) 25%,var(--border))}
.mqd .btn.gh{background:transparent;color:var(--muted)}
.mqd .btn.gh:hover{background:var(--soft-green);color:var(--fg)}
.mqd .btn:disabled{cursor:not-allowed;transform:none}
.mqd .btn.bs:disabled,.mqd .btn.gh:disabled{color:var(--muted-2);opacity:.75}
.mqd .linkbtn{border-radius:8px;padding:5px 10px;font-size:13px;color:var(--muted);transition:background .15s ease,color .15s ease}
.mqd .linkbtn:hover{background:var(--soft-green);color:var(--fg)}
.mqd .linkbtn.accent{color:var(--accent);font-weight:600}
.mqd .linkbtn.accent:hover{background:var(--soft-green)}

/* ═══ 状态胶囊三通道（浅底 16% color-mix + 色点 + 文字；宋体胶囊） ═══ */
.mqd .tag{
  display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);
  font-family:var(--font-display);font-size:var(--fs-micro);letter-spacing:.08em;
}
@supports not (gap: 1px) {
  .mqd .tag > * + * {
    margin-left: 6px;
  }
}
.mqd .tag .dot{width:6px;height:6px;border-radius:50%;flex:none}
/* 订单四态：进行中=柿渋 / 已上齐=苔 / 已结账=藍染 / 清台未结清=赭红 */
.mqd .tag-open{background:#EDDDCF;background:color-mix(in oklab,var(--st-busy) 16%,var(--surface));color:#844726;color:color-mix(in oklab,var(--st-busy) 84%,black)}
.mqd .tag-open .dot{background:var(--st-busy)}
.mqd .tag-served{background:#E1E1D3;background:color-mix(in oklab,var(--st-served) 16%,var(--surface));color:#4A5332;color:color-mix(in oklab,var(--st-served) 76%,black)}
.mqd .tag-served .dot{background:var(--st-served)}
.mqd .tag-paid{background:#D9DBD9;background:color-mix(in oklab,var(--st-paid) 16%,var(--surface));color:#384759;color:color-mix(in oklab,var(--st-paid) 86%,black)}
.mqd .tag-paid .dot{background:var(--st-paid)}
.mqd .tag-debt{background:#EFDED2;background:color-mix(in oklab,var(--cinnabar) 14%,var(--surface));color:#823922;color:color-mix(in oklab,var(--cinnabar) 82%,black)}
.mqd .tag-debt .dot{background:var(--cinnabar)}
.mqd .tag-wait{background:var(--soft);color:var(--muted)}
.mqd .tag-wait .dot{background:var(--muted-2)}
/* 出品三态：待制作=暖灰 / 制作中=柿渋 / 已出品=苔 */
.mqd .tag.busy{padding:1px 8px;font-size:10.5px;gap:5px}
/* 数据关联签：5px 方角 */
.mqd .dtag{
  display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:var(--r-tag);
  border:1px dashed var(--border);background:var(--surface);
  font-size:var(--fs-micro);color:var(--muted);
}
@supports not (gap: 1px) {
  .mqd .dtag > * + * {
    margin-left: 4px;
  }
}

/* ═══ 骨架（纸色呼吸） ═══ */
.mqd .sk{position:relative;overflow:hidden;background:var(--soft);border-radius:6px;height:12px}
.mqd .sk::after{
  content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(248, 246, 238, 0.85),transparent);
  background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--surface) 85%,transparent),transparent);
  animation:shim 1.2s ease infinite;
}
@supports not (inset: 0) {
.mqd .sk::after{
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
@keyframes shim{to{transform:translateX(100%)}}

/* ═══ 列表状态（空/失败）：宋体主文案 + 温度副文案 ═══ */
.mqd .liststate{padding:56px 24px;text-align:center}
.mqd .liststate .ls-mark{
  width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:var(--soft);color:var(--muted);
  display:flex;align-items:center;justify-content:center;font:600 18px/1 var(--font-display);
}
.mqd .liststate.err .ls-mark{background:var(--soft-cinnabar);color:var(--cinnabar)}
.mqd .liststate .ls-title{font:600 17px/1.5 var(--font-display);letter-spacing:1px}
.mqd .liststate .ls-sub{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.7}
.mqd .liststate .ls-ops{display:flex;justify-content:center;gap:10px;margin-top:18px}
@supports not (gap: 1px) {
  .mqd .liststate .ls-ops > * + * {
    margin-left: 10px;
  }
}
.mqd .liststate .ls-kw{font-family:var(--font-mono);color:var(--fg)}

/* ═══ 弹窗 ═══ */
.mqd .mask{
  position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;
  background:rgba(67, 53, 43, 0.32);
  background:color-mix(in oklab,var(--fg) 32%,transparent);
}
@supports not (inset: 0) {
.mqd .mask{
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mqd .mask.show{display:flex;animation:fadein .18s ease}
@keyframes fadein{from{opacity:0}}
.mqd .modal{
  width:460px;max-width:calc(100vw - 64px);max-height:calc(100vh - 96px);overflow-y:auto;
  background:var(--surface);border-radius:var(--r-layer);border:1px solid var(--border);
  box-shadow:var(--shadow-pop);animation:pop .2s cubic-bezier(.3,.9,.4,1);
}
.mqd .modal.wide{width:560px}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.985)}}
.mqd .mo-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 0}
.mqd .mo-head h2{font:600 var(--fs-title)/1.4 var(--font-display);letter-spacing:1px}
.mqd .mo-close{color:var(--muted);width:34px;height:34px;border-radius:9px;flex:none;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}
.mqd .mo-close:hover{background:var(--soft-green);color:var(--fg)}
.mqd .mo-body{padding:16px 22px 6px}
.mqd .mo-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 18px}
@supports not (gap: 1px) {
  .mqd .mo-foot > * + * {
    margin-left: 10px;
  }
}
.mqd .mo-foot .spacer{flex:1}
.mqd .mo-note{font-size:var(--fs-aux);color:var(--muted);line-height:1.7;background:var(--soft);border-radius:var(--r-ctl);padding:10px 12px;margin-bottom:14px}
.mqd .field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
@supports not (gap: 1px) {
  .mqd .field > * + * {
    margin-top: 5px;
  }
}
.mqd .field label{font-size:var(--fs-aux);color:var(--muted)}
.mqd .field label .req{color:var(--cinnabar)}
.mqd .input{
  width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);font-size:var(--fs-body);transition:border-color .15s ease,box-shadow .15s ease;
}
.mqd .input::placeholder{color:var(--muted-2)}
.mqd .input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.16);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}
.mqd .seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-pill);padding:2px;background:var(--soft);flex-wrap:wrap}
.mqd .seg button{border-radius:var(--r-pill);padding:5px 14px;font-size:var(--fs-aux);color:var(--muted);transition:background .15s ease,color .15s ease}
.mqd .seg button:hover{color:var(--fg)}
.mqd .seg button.on{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:0 1px 3px rgba(67, 53, 43, 0.1);box-shadow:0 1px 3px color-mix(in oklab,var(--fg) 10%,transparent)}

/* ═══ 系统态（401/403） ═══ */
.mqd .sysmask{position:fixed;inset:0;z-index:120;background:var(--bg);display:none;align-items:center;justify-content:center}
@supports not (inset: 0) {
.mqd .sysmask{
    top: 0;
    right: 0;
    bottom: 0;
    left: 0}
}
.mqd .sysmask.show{display:flex}
.mqd .sys-card{text-align:center;max-width:400px}
.mqd .sys-card .sys-code{font-family:var(--font-mono);font-size:var(--fs-aux);letter-spacing:.12em;color:var(--muted-2);margin-bottom:14px}
.mqd .sys-card h2{font:600 22px/1.4 var(--font-display);letter-spacing:1px}
.mqd .sys-card p{color:var(--muted);font-size:13px;margin:10px 0 22px;line-height:1.8}

/* ═══ Toast：胶囊深底，只承载结果反馈 ═══ */
.mqd .toasts{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:130;display:flex;flex-direction:column;gap:8px;align-items:center}
@supports not (gap: 1px) {
  .mqd .toasts > * + * {
    margin-top: 8px;
  }
}
.mqd .toast{
  display:flex;align-items:center;gap:9px;background:var(--ink-card);color:var(--paper-ink);
  font-size:13px;padding:9px 18px;border-radius:var(--r-pill);
  box-shadow:var(--shadow-pop);animation:toast-in .2s ease;max-width:70vw;
}
@supports not (gap: 1px) {
  .mqd .toast > * + * {
    margin-left: 9px;
  }
}
.mqd .toast.out{opacity:0;transition:opacity .25s ease}
.mqd .toast .t-dot{width:7px;height:7px;border-radius:50%;flex:none}
.mqd .toast.ok .t-dot{background:var(--st-served)}
.mqd .toast.err .t-dot{background:#CE907D;background:color-mix(in oklab,var(--cinnabar) 62%,white)}
@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}}

/* ═══ 演示入口（评审工具，非产品 UI） ═══ */
.mqd .demo-entry{
  position:fixed;right:18px;bottom:16px;z-index:140;
  border:1px dashed var(--border);background:rgba(248, 246, 238, 0.94);background:color-mix(in oklab,var(--surface) 94%,transparent);
  border-radius:var(--r-pill);padding:7px 14px;font-size:var(--fs-aux);color:var(--muted);
  box-shadow:var(--shadow-card);transition:color .15s ease,border-color .15s ease;
}
.mqd .demo-entry:hover{color:var(--fg);border-color:var(--muted-2)}
.mqd .demopanel{
  position:fixed;right:18px;bottom:56px;z-index:141;width:312px;max-height:min(560px,72vh);overflow-y:auto;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
  box-shadow:var(--shadow-pop);padding:14px 16px;
}
.mqd .demopanel[hidden]{display:none}
.mqd .demopanel h3{font:600 var(--fs-section)/1.5 var(--font-display);letter-spacing:1px}
.mqd .demopanel .dp-cap{font-size:var(--fs-micro);color:var(--muted-2);margin:2px 0 10px;line-height:1.6}
.mqd .dp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mqd .dp-btn{
  border:1px solid var(--border);border-radius:9px;background:var(--surface);
  min-height:36px;padding:4px 8px;font-size:var(--fs-aux);color:var(--fg);text-align:left;line-height:1.4;
  transition:background .15s ease,border-color .15s ease;
}
.mqd .dp-btn:hover{background:var(--soft-green)}
.mqd .dp-btn.on{border-color:var(--accent);background:var(--soft-green);font-weight:600}
.mqd .dp-foot{font-size:var(--fs-micro);color:var(--muted-2);margin-top:10px;line-height:1.6}
.mqd .protofoot{margin-top:16px;font-size:var(--fs-aux);color:var(--muted-2)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}

/* ═══ 查询工具栏（卡片内三段：快捷日期 + 下拉筛选 + 更多筛选展开） ═══ */
.mqd .fbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:14px 18px;margin-bottom:14px;position:relative;transition:padding-top .15s ease}
.mqd .fbar.hint-on{padding-top:26px}
.mqd .frow1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .frow1 > * + * {
    margin-left: 10px;
  }
}
.mqd .dquick{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-pill);padding:2px;background:var(--soft)}
.mqd .dquick button{border-radius:var(--r-pill);padding:6px 14px;font-size:var(--fs-aux);color:var(--muted);transition:background .15s ease,color .15s ease;min-height:32px}
.mqd .dquick button:hover{color:var(--fg)}
.mqd .dquick button.on{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:0 1px 3px rgba(67, 53, 43, 0.1);box-shadow:0 1px 3px color-mix(in oklab,var(--fg) 10%,transparent)}
.mqd .dquick button:disabled{color:var(--muted-2);cursor:not-allowed}
.mqd .dlabel{
  display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:var(--r-ctl);
  background:var(--bg);border:1px dashed var(--border);font-family:var(--font-mono);font-size:13px;color:var(--fg);
  font-variant-numeric:tabular-nums;
}
@supports not (gap: 1px) {
  .mqd .dlabel > * + * {
    margin-left: 8px;
  }
}
.mqd .dlabel .dl-sub{font-family:var(--font-body);font-size:var(--fs-micro);color:var(--muted-2)}
.mqd .frow1 .f-sp{flex:1;min-width:12px}
.mqd .frow1 .sel{width:136px}
.mqd .sel{width:150px;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);font-size:13px;color:var(--fg);transition:border-color .15s ease,box-shadow .15s ease;appearance:auto;cursor:pointer}
.mqd .sel:hover{border-color:#B9B0A2;border-color:color-mix(in oklab,var(--fg) 22%,var(--border))}
.mqd .sel:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.16);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}
.mqd .morebtn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 12px;border-radius:var(--r-ctl);border:1px solid var(--border);background:var(--surface);font-size:var(--fs-aux);color:var(--muted);transition:background .15s ease,color .15s ease,border-color .15s ease;position:relative}
@supports not (gap: 1px) {
  .mqd .morebtn > * + * {
    margin-left: 5px;
  }
}
.mqd .morebtn:hover{background:var(--soft-green);color:var(--fg)}
.mqd .morebtn.on{color:var(--fg);font-weight:600;border-color:#B4AA9D;border-color:color-mix(in oklab,var(--fg) 25%,var(--border));background:var(--soft-green)}
.mqd .morebtn .m-dot{position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface)}
.mqd .morebtn .m-arr{font-size:10px;transition:transform .15s ease}
.mqd .morebtn.open .m-arr{transform:rotate(180deg)}
.mqd .dirty{display:none;align-items:center;gap:7px;font-size:var(--fs-micro);color:#774022;color:color-mix(in oklab,var(--st-busy) 78%,black);position:absolute;top:7px;right:18px}
.mqd .dirty.show{display:inline-flex}
.mqd .dirty .dt-dot{width:7px;height:7px;border-radius:50%;background:var(--st-busy);flex:none}
/* 更多筛选展开区 */
.mqd .morezone{display:none;margin-top:12px;border-top:1px dashed var(--border);padding-top:12px}
.mqd .morezone.open{display:block}
.mqd .mz-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:10px 12px;align-items:end}
.mqd .mz-f{display:flex;flex-direction:column;gap:5px}
@supports not (gap: 1px) {
  .mqd .mz-f > * + * {
    margin-top: 5px;
  }
}
.mqd .mz-f label{font-size:var(--fs-micro);color:var(--muted)}
.mqd .mz-f .input,.mqd .mz-f .sel{width:100%;height:36px}
.mqd .mz-range{display:flex;align-items:center;gap:6px}
@supports not (gap: 1px) {
  .mqd .mz-range > * + * {
    margin-left: 6px;
  }
}
.mqd .rp{position:relative}
.mqd .rp-box{flex:1;min-width:0;height:36px;padding:0 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-size:12px;font-family:var(--font-mono);color:var(--fg);text-align:left;transition:border-color .15s ease}
.mqd .rp-box.ph{color:var(--muted-2)}
.mqd .rp-box:hover{border-color:#C4A28A;border-color:color-mix(in oklab,var(--accent) 45%,var(--border))}
.mqd .rp-box:focus-visible{border-color:var(--accent)}
.mqd .rp-box.on{border-color:var(--accent)}
.mqd .mz-range .to{color:var(--muted-2);font-size:12px;flex:none}
/* B-312 自绘日期选择器（组件稿 b-datepicker 口径：308px 月卡、周一开头、今天描边；不叠节气/农历） */
.mqd .rp-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:90;width:308px;padding:16px 14px 12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-pop);animation:pop .2s cubic-bezier(.3,.9,.4,1)}
.mqd .rp-head{display:flex;align-items:center;padding:0 4px 10px}
.mqd .rp-head b{font:600 15px/1 var(--font-display);letter-spacing:1px}
.mqd .rp-nav{margin-left:auto;display:flex;gap:4px}
@supports not (gap: 1px) {
  .mqd .rp-nav > * + * {
    margin-left: 4px;
  }
}
.mqd .rp-nav button{width:32px;height:32px;min-height:32px;border-radius:8px;color:var(--muted);font-size:15px;transition:background .16s ease}
.mqd .rp-nav button:hover{background:var(--soft-green);color:var(--fg)}
.mqd .rp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.mqd .rp-wk{font-size:10.5px;color:var(--muted-2);text-align:center;padding:4px 0 2px}
.mqd .rp-d{min-height:38px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--fg);transition:background .16s ease;line-height:1.2}
.mqd .rp-d:hover{background:var(--soft-green)}
.mqd .rp-d.dim{opacity:.42}
.mqd .rp-d.today{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent);font-weight:600}
.mqd .rp-d.range{background:var(--soft-green)}
.mqd .rp-d.sel,.mqd .rp-d.sel:hover{background:var(--accent);color:var(--paper-ink);font-weight:600}
.mqd .rp-foot{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
@supports not (gap: 1px) {
  .mqd .rp-foot > * + * {
    margin-left: 8px;
  }
}
.mqd .rp-cap{flex:1;min-width:0;font-size:var(--fs-micro);color:var(--muted)}
.mqd .rp-clear{font-size:var(--fs-micro);color:var(--muted);border-radius:6px;padding:3px 8px;min-height:26px}
.mqd .rp-clear:hover{color:var(--cinnabar);background:rgba(170, 77, 48, 0.1);background:color-mix(in oklab,var(--cinnabar) 10%,transparent)}
.mqd .mz-hint{font-size:var(--fs-micro);color:var(--muted-2);margin-top:8px}

/* ═══ 营业状态区：六指标 + 全天营业对账子区 ═══ */
.mqd .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.mqd .card + .card{margin-top:14px}
.mqd .sumcard{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr 1fr 1.15fr}
.mqd .sc-cell{padding:14px 18px;min-width:0;border-left:1px solid var(--border)}
.mqd .sc-cell:first-child{border-left:0}
.mqd .sc-k{font:500 var(--fs-micro)/1 var(--font-mono);letter-spacing:.06em;color:var(--muted)}
.mqd .sc-v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;margin-top:7px;line-height:1.25;white-space:nowrap}
.mqd .sc-cell.hero .sc-v{font-size:26px;letter-spacing:-.01em}
.mqd .sc-v small{font-size:12px;font-weight:400;color:var(--muted)}
.mqd .sc-v.warn{color:var(--cinnabar)}
.mqd .sc-sub{font-size:var(--fs-micro);color:var(--muted-2);margin-top:4px;white-space:nowrap}
.mqd .sc-cell .warnlink{display:inline-flex;align-items:center;gap:5px;padding:1px 2px;border-radius:6px;font-size:var(--fs-micro);color:var(--cinnabar);text-decoration:none;border-bottom:1px dashed rgba(170, 77, 48, 0.45);border-bottom:1px dashed color-mix(in oklab,var(--cinnabar) 45%,transparent)}
@supports not (gap: 1px) {
  .mqd .sc-cell .warnlink > * + * {
    margin-left: 5px;
  }
}
.mqd .sc-cell .warnlink:hover{background:var(--soft-cinnabar);border-bottom-color:transparent}
/* 全天营业对账子区 */
.mqd .paysec{border-top:1px solid var(--border);padding:16px 20px 18px}
.mqd .ps-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .ps-head > * + * {
    margin-left: 12px;
  }
}
.mqd .ps-head h3{font:600 var(--fs-section)/1.5 var(--font-display);letter-spacing:1px}
.mqd .ps-head .ps-sub{font-size:var(--fs-micro);color:var(--muted)}
.mqd .ps-hint{
  margin-top:8px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;
  font-size:var(--fs-micro);color:var(--muted);background:var(--soft);border-radius:var(--r-ctl);
  padding:7px 12px;line-height:1.7;
}
@supports not (gap: 1px) {
  .mqd .ps-hint > * + * {
    margin-left: 6px;
  }
}
.mqd .ps-hint a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.mqd .ps-hint a:hover{color:#8C5636;color:color-mix(in oklab,var(--accent) 90%, black)}
.mqd .chgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.mqd .ch-cell{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-ctl);padding:11px 14px;min-width:0}
.mqd .ch-cell .k{font:500 var(--fs-micro)/1.4 var(--font-mono);letter-spacing:.04em;color:var(--muted)}
.mqd .ch-cell .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;margin-top:5px;white-space:nowrap}
.mqd .ch-cell .s{font-size:var(--fs-micro);color:var(--muted-2);margin-top:3px}
.mqd .chips-row{display:none;margin-top:10px;flex-wrap:wrap;gap:6px}
.mqd .chips-row.open{display:flex}
.mqd .chips-row .dtag{background:var(--bg)}
.mqd .ch-empty{margin-top:12px;padding:26px 0 22px;text-align:center}
.mqd .ch-empty .ce-t{font:600 14px/1.6 var(--font-display);letter-spacing:1px;color:var(--muted)}
.mqd .ch-empty .ce-s{font-size:var(--fs-micro);color:var(--muted-2);margin-top:3px}

/* ═══ 订单明细区：眉题 + 排序 ═══ */
.mqd .oflow-head{display:flex;align-items:flex-end;gap:12px;margin:20px 0 12px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .oflow-head > * + * {
    margin-left: 12px;
  }
}
.mqd .oflow-head .of-tt{min-width:0}
.mqd .oflow-head .eyebrow{margin-bottom:5px}
.mqd .oflow-head h2{font:600 var(--fs-section)/1.5 var(--font-display);letter-spacing:1px}
.mqd .oflow-head .of-sub{font-size:var(--fs-micro);color:var(--muted);margin-top:2px}
.mqd .oflow-head .of-act{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none}
@supports not (gap: 1px) {
  .mqd .oflow-head .of-act > * + * {
    margin-left: 10px;
  }
}
.mqd .sortseg label{font-size:var(--fs-micro);color:var(--muted-2);margin-right:2px}
.mqd .sortseg .seg button{padding:5px 12px}

/* ═══ 订单卡片（本页特色结构：整卡可点开详情抽屉） ═══ */
.mqd .olist{display:flex;flex-direction:column;gap:12px}
@supports not (gap: 1px) {
  .mqd .olist > * + * {
    margin-top: 12px;
  }
}
.mqd .ocard{cursor:pointer;transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}
.mqd .ocard:hover{border-color:#B4AA9D;border-color:color-mix(in oklab,var(--fg) 25%,var(--border));box-shadow:0 6px 20px rgba(67, 53, 43, 0.09);box-shadow:0 6px 20px color-mix(in oklab,var(--fg) 9%,transparent)}
.mqd .ocard:active{transform:translateY(1px)}
.mqd .ocard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mqd .oc-head{display:flex;align-items:center;gap:12px;padding:13px 18px 11px;flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .oc-head > * + * {
    margin-left: 12px;
  }
}
.mqd .oc-idx{font:600 13px/1 var(--font-mono);color:var(--muted-2);letter-spacing:.06em;flex:none}
.mqd .oc-seat{font:600 var(--fs-section)/1.3 var(--font-display);letter-spacing:.5px;flex:none;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mqd .oc-guests{font-size:var(--fs-micro);color:var(--muted-2);flex:none}
.mqd .oc-meta{display:flex;align-items:center;gap:12px;margin-left:4px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;min-width:0}
@supports not (gap: 1px) {
  .mqd .oc-meta > * + * {
    margin-left: 12px;
  }
}
.mqd .oc-meta .m-it{white-space:nowrap}
.mqd .oc-amt{margin-left:auto;text-align:right;flex:none}
.mqd .oc-amt .a-v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:19px;font-weight:600;white-space:nowrap}
.mqd .oc-amt .a-v.hero{font-size:21px}
.mqd .oc-amt .a-s{font-size:var(--fs-micro);color:var(--muted-2);margin-top:1px;white-space:nowrap}
.mqd .oc-amt .a-s.warn{color:var(--cinnabar)}
/* 卡体商品明细（窄列允许卡内横向滚动） */
.mqd .oc-items{border-top:1px solid var(--border);padding:6px 18px 8px;overflow-x:auto}
.mqd .itgrid{min-width:640px;width:100%}
.mqd .it-hd,.mqd .it-row{display:grid;grid-template-columns:minmax(200px,1.7fr) 52px 86px 96px 96px 100px;gap:8px;align-items:center}
.mqd .it-hd{padding:7px 0 5px;font:500 10px/1 var(--font-mono);letter-spacing:.08em;color:var(--muted-2);border-bottom:1px dashed var(--border)}
.mqd .it-hd.r{text-align:right}
.mqd .it-row{padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}
.mqd .it-row:last-child{border-bottom:0}
.mqd .it-name{min-width:0;line-height:1.45}
.mqd .it-name .nm{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mqd .it-name .sp{font-size:var(--fs-micro);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mqd .it-row.c-sub .it-name{padding-left:14px}
.mqd .it-row.c-sub .it-name .nm{font-weight:400;color:var(--muted)}
/* B-308：.it-row 是 6 列 grid 容器，行内禁止再挂伪元素——伪元素会成为真实网格项占掉首列，把整行内容挤错位（缩进由上方 padding-left 承担）。 */
.mqd .it-qty{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted);text-align:center}
.mqd .it-orig,.mqd .it-price,.mqd .it-total{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.mqd .it-orig{color:var(--muted)}
.mqd .it-orig.dec{text-decoration:line-through;text-decoration-color:rgba(170, 77, 48, 0.55);text-decoration-color:color-mix(in oklab,var(--cinnabar) 55%,transparent)}
.mqd .it-price{font-weight:600}
.mqd .it-price .it-disc{
  display:inline-block;margin-left:5px;padding:0 4px;border-radius:3px;font-size:9.5px;line-height:1.5;
  background:var(--soft-clay);color:#774022;color:color-mix(in oklab,var(--st-busy) 78%,black);vertical-align:1px;font-family:var(--font-body);
}
.mqd .it-total{font-weight:600}
.mqd .it-cv{font-size:var(--fs-micro);color:var(--muted-2);text-align:right;font-family:var(--font-body)}
.mqd .it-cv.qty-c{text-align:center;font-family:var(--font-mono)}
.mqd .it-prod{text-align:right}
.mqd .it-prod .tag{padding:1px 8px;font-size:10.5px;gap:5px}
/* 卡脚：单号 + 关联预定 + 操作入口 */
.mqd .oc-foot{display:flex;align-items:center;gap:10px;padding:8px 18px 11px;border-top:1px solid var(--border);flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .oc-foot > * + * {
    margin-left: 10px;
  }
}
.mqd .oc-foot .f-no{font:400 var(--fs-micro)/1 var(--font-mono);color:var(--muted-2);letter-spacing:.04em}
.mqd .oc-foot .f-sp{flex:1}
.mqd .oc-foot .linkbtn{padding:3px 8px;font-size:var(--fs-micro)}
/* 卡片骨架 */
.mqd .ocard.sk-card{cursor:default}
.mqd .ocard.sk-card:hover{border-color:var(--border);box-shadow:var(--shadow-card)}
.mqd .sk-meta{display:flex;gap:10px;padding:14px 18px 10px;align-items:center}
@supports not (gap: 1px) {
  .mqd .sk-meta > * + * {
    margin-left: 10px;
  }
}
.mqd .sk-items{padding:4px 18px 14px;display:flex;flex-direction:column;gap:8px}
@supports not (gap: 1px) {
  .mqd .sk-items > * + * {
    margin-top: 8px;
  }
}

/* ═══ 订单详情抽屉（640px，五分区；深链定位 + 短暂高亮） ═══ */
.mqd .scrim{
  position:fixed;inset:0;background:rgba(67, 53, 43, 0.3);background:color-mix(in oklab,var(--fg) 30%,transparent);
  opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:85;
}
@supports not (inset: 0) {
.mqd .scrim{
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.mqd .scrim.show{opacity:1;pointer-events:auto}
.mqd .drawer{
  position:fixed;top:0;right:0;bottom:0;width:640px;max-width:calc(100vw - 160px);
  background:var(--surface);border-left:1px solid var(--border);z-index:86;
  transform:translateX(103%);transition:transform .22s cubic-bezier(.3,.9,.4,1);
  display:flex;flex-direction:column;
}
.mqd .drawer.show{transform:translateX(0)}
.mqd .d-head{padding:20px 24px 14px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:12px}
@supports not (gap: 1px) {
  .mqd .d-head > * + * {
    margin-left: 12px;
  }
}
.mqd .d-head .d-tt{min-width:0}
.mqd .d-head .d-name{font:600 var(--fs-title)/1.35 var(--font-display);letter-spacing:.5px;display:flex;align-items:center;gap:10px}
@supports not (gap: 1px) {
  .mqd .d-head .d-name > * + * {
    margin-left: 10px;
  }
}
.mqd .d-head .d-no{font:400 var(--fs-micro)/1 var(--font-mono);color:var(--muted-2);margin-top:6px;letter-spacing:.04em}
.mqd .d-close{
  margin-left:auto;color:var(--muted);width:34px;height:34px;border-radius:9px;flex:none;font-size:18px;
  display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;
}
.mqd .d-close:hover{background:var(--soft-green);color:var(--fg)}
.mqd .d-stats{display:grid;grid-template-columns:1.2fr 1fr 1fr;border-bottom:1px solid var(--border)}
.mqd .d-stat{padding:13px 22px;min-width:0}
.mqd .d-stat + .d-stat{border-left:1px solid var(--border)}
.mqd .d-stat .k{font-size:var(--fs-micro);color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em}
.mqd .d-stat .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:21px;font-weight:600;margin-top:4px;white-space:nowrap}
.mqd .d-stat .v.warn{color:var(--cinnabar)}
.mqd .d-stat .s{font-size:var(--fs-micro);color:var(--muted-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mqd .d-panels{flex:1;min-height:0;display:flex;flex-direction:column}
.mqd .dpanel{flex:1;overflow-y:auto;min-height:0}
.mqd .dpad{padding:16px 22px 28px;display:flex;flex-direction:column;gap:12px}
@supports not (gap: 1px) {
  .mqd .dpad > * + * {
    margin-top: 12px;
  }
}
.mqd .dcard{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-card)}
.mqd .dcard-head{display:flex;align-items:center;gap:10px;padding:13px 18px 0}
@supports not (gap: 1px) {
  .mqd .dcard-head > * + * {
    margin-left: 10px;
  }
}
.mqd .dcard-head h3{font:600 var(--fs-section)/1.4 var(--font-display);letter-spacing:.5px}
.mqd .dcard-head .h-act{margin-left:auto;font-size:var(--fs-micro);color:var(--muted-2)}
.mqd .dcard-head .reprint-btn{flex:none;margin-left:4px;font-size:var(--fs-aux);min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--surface);color:var(--accent);cursor:pointer;font-family:inherit}
.mqd .dcard-head .reprint-btn:hover:not(:disabled){border-color:var(--accent)}
.mqd .dcard-head .reprint-btn:disabled{opacity:.55;cursor:not-allowed}
.mqd .dcard-body{padding:10px 18px 14px}
.mqd .dcard.flash{animation:secflash 1.6s ease}
@keyframes secflash{0%,55%{background:var(--soft-green);border-color:#CDB39E;border-color:color-mix(in oklab,var(--accent) 30%,var(--border))}100%{background:var(--bg)}}
.mqd .pf-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:var(--fs-aux)}
@supports not (gap: 1px) {
  .mqd .pf-row > * + * {
    margin-left: 12px;
  }
}
.mqd .pf-row:last-of-type{border-bottom:0}
.mqd .pf-row .k{color:var(--muted);flex:none}
.mqd .pf-row .v{color:var(--fg);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* 抽屉内商品明细复用 itgrid；B-311 起列宽收窄，不再依赖横向滚动 */
.mqd .dcard .oc-items{border-top:0;padding:4px 14px 10px;overflow-x:auto}
.mqd .dcard .oc-items .itgrid{min-width:0}
.mqd .dcard .oc-items .it-hd,.mqd .dcard .oc-items .it-row{grid-template-columns:minmax(110px,1fr) 36px 62px 68px 68px 58px;gap:6px}
.mqd .dcard .oc-items .it-row{padding:5px 0;font-size:12px}
.mqd .dcard .oc-items .it-prod .tag{padding:1px 6px;font-size:10px;gap:4px}
.mqd .d-itfoot{display:flex;justify-content:flex-end;gap:18px;padding:10px 18px 14px;border-top:1px dashed var(--border);font-size:var(--fs-aux);flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .d-itfoot > * + * {
    margin-left: 18px;
  }
}
.mqd .d-itfoot .fi-k{color:var(--muted)}
.mqd .d-itfoot .fi-v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;margin-left:6px}
.mqd .d-itfoot .fi-v.warn{color:var(--cinnabar)}
/* 收款与调整 */
.mqd .pay-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--border)}
.mqd .pay-row:last-child{border-bottom:0}
.mqd .adj-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px dashed var(--border)}
.mqd .adj-row:last-child{border-bottom:0}
.mqd .adj-note{font-size:13px;line-height:1.5}
.mqd .adj-sub{font-size:var(--fs-micro);color:var(--muted-2);margin-top:2px;font-family:var(--font-mono)}
.mqd .pay-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;text-align:right;white-space:nowrap}
.mqd .pay-amt.neg{color:var(--cinnabar)}
.mqd .pay-way{font-size:var(--fs-micro)}
.mqd .pay-note{font-size:var(--fs-micro);color:var(--muted);margin-top:2px}
.mqd .pay-empty{padding:14px 0 10px;text-align:center;color:var(--muted);font-size:var(--fs-aux);line-height:1.7}
.mqd .pay-empty .pe-t{font:600 13px/1.6 var(--font-display);letter-spacing:1px;color:var(--fg)}
/* 操作记录时间线（与对账页 vrow 同构） */
.mqd .vrow{display:flex;gap:12px;position:relative;padding:0 0 16px 0}
@supports not (gap: 1px) {
  .mqd .vrow > * + * {
    margin-left: 12px;
  }
}
.mqd .vrow::before{content:"";position:absolute;left:5px;top:16px;bottom:-2px;width:1px;background:var(--border)}
.mqd .vrow:last-child{padding-bottom:2px}
.mqd .vrow:last-child::before{display:none}
.mqd .v-dot{width:11px;height:11px;border-radius:50%;flex:none;margin-top:5px;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border)}
.mqd .v-dot.submit{background:var(--st-busy)}
.mqd .v-dot.confirm{background:var(--st-served)}
.mqd .v-dot.audit{background:var(--st-paid)}
.mqd .v-main{min-width:0;flex:1}
.mqd .v-t1{font-size:13.5px;line-height:1.5}
.mqd .v-t1 b{font-weight:650}
.mqd .v-note{font-size:var(--fs-aux);color:var(--muted);margin-top:3px;line-height:1.65}
.mqd .v-meta{font:400 var(--fs-micro)/1 var(--font-mono);color:var(--muted-2);margin-top:5px}

/* ═══ 历史欠账弹窗 ═══ */
.mqd .dbt-search{position:relative;margin-bottom:12px}
.mqd .dbt-search input{
  width:100%;height:40px;padding:0 12px 0 34px;border:1px solid var(--border);border-radius:var(--r-ctl);
  background:var(--surface);font-size:var(--fs-body);transition:border-color .15s ease,box-shadow .15s ease;
}
.mqd .dbt-search input::placeholder{color:var(--muted-2)}
.mqd .dbt-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(162, 100, 64, 0.16);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}
.mqd .dbt-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted-2);pointer-events:none}
.mqd .dbt-sum{font-size:var(--fs-aux);color:var(--muted);margin-bottom:8px}
.mqd .dbt-sum b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--cinnabar)}
.mqd .dbt-list{display:flex;flex-direction:column;gap:8px;max-height:min(300px,38vh);overflow-y:auto;padding:2px}
@supports not (gap: 1px) {
  .mqd .dbt-list > * + * {
    margin-top: 8px;
  }
}
.mqd .dbt-it{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;text-align:left;
  border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--bg);padding:10px 14px;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.mqd .dbt-it:hover{border-color:#CCA08B;border-color:color-mix(in oklab,var(--cinnabar) 40%,var(--border));background:var(--soft-cinnabar)}
.mqd .dbt-it.sel{border-color:var(--cinnabar);background:var(--soft-cinnabar);box-shadow:0 0 0 2px rgba(170, 77, 48, 0.18);box-shadow:0 0 0 2px color-mix(in oklab,var(--cinnabar) 18%,transparent)}
.mqd .dbt-it .bi-t{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}
@supports not (gap: 1px) {
  .mqd .dbt-it .bi-t > * + * {
    margin-left: 10px;
  }
}
.mqd .dbt-it .bi-seat{font:600 var(--fs-body)/1.4 var(--font-display);letter-spacing:.5px}
.mqd .dbt-it .bi-no{font:400 var(--fs-micro)/1 var(--font-mono);color:var(--muted-2)}
.mqd .dbt-it .bi-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--cinnabar);white-space:nowrap}
.mqd .dbt-it .bi-sub{grid-column:1 / -1;font:400 var(--fs-micro)/1.4 var(--font-mono);color:var(--muted-2)}
.mqd .dbt-empty{padding:34px 12px;text-align:center}
.mqd .dbt-empty .be-t{font:600 14px/1.7 var(--font-display);letter-spacing:1px;color:var(--muted)}
.mqd .dbt-empty .be-s{font-size:var(--fs-micro);color:var(--muted-2);margin-top:4px;line-height:1.7}
.mqd .dbt-collect{margin-top:12px;border-top:1px dashed var(--border);padding-top:12px}
.mqd .dbt-cv{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
@supports not (gap: 1px) {
  .mqd .dbt-cv > * + * {
    margin-left: 10px;
  }
}
.mqd .dbt-cv .k{font-size:var(--fs-aux);color:var(--muted)}
.mqd .dbt-cv .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:19px;font-weight:600;color:var(--cinnabar)}
.mqd .dbt-way{display:flex;align-items:center;gap:10px;margin-bottom:12px}
@supports not (gap: 1px) {
  .mqd .dbt-way > * + * {
    margin-left: 10px;
  }
}
.mqd .dbt-way .w-k{font-size:var(--fs-aux);color:var(--muted);flex:none}
.mqd .dbt-way .seg button{min-height:32px}
.mqd .dbt-hint{font-size:var(--fs-micro);color:var(--muted-2);margin-top:10px;line-height:1.7}

/* 指标区骨架 */
.mqd .sumsk{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr 1fr 1.15fr}
.mqd .sumsk .sc-cell{padding:16px 18px}
.mqd .sumsk .sk{margin-top:8px}
@media (max-width:1240px){
  .mz-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}
  .chgrid{grid-template-columns:repeat(2,1fr)}
}
/* 更正面板内容（共享 Modal body 内的承载层） */
.corr-modal-body[data-v-f2f0e52d] {
  display: flex;
  flex-direction: column;
}

/* 收款行右侧：更正入口 + 金额（保持 pay-row 三列网格的第/auto 列） */
.pay-side[data-v-f2f0e52d] {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
@supports not (gap: 1px) {
.pay-side[data-v-f2f0e52d] > * + * {
    margin-left: 8px;
}
}

/* corrected/voided 历史凭证行的状态签（详情如实展示，不参与金额汇总） */
.pay-status[data-v-f2f0e52d] {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10.5px;
  line-height: 1.5;
  vertical-align: 1px;
}
.pay-status-corrected[data-v-f2f0e52d] {
  background: #F0E1D6;
  background: color-mix(in oklab, var(--cinnabar) 12%, var(--surface));
  color: #823922;
  color: color-mix(in oklab, var(--cinnabar) 82%, black);
}
.pay-status-voided[data-v-f2f0e52d],
.pay-status-unknown[data-v-f2f0e52d] {
  background: var(--soft);
  color: var(--muted-2);
}
.corr-btn[data-v-f2f0e52d] {
  color: var(--accent);
  font-size: 12px;
  padding: 3px 8px;
}
.corr-btn[data-v-f2f0e52d]:hover {
  background: var(--soft-green);
  color: var(--fg);
}

/* 更正证据链区块（收款列表下方） */
.corr-wrap[data-v-f2f0e52d] {
  margin-top: 12px;
  border-top: 1px dashed var(--border);
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
@supports not (gap: 1px) {
.corr-wrap[data-v-f2f0e52d] > * + * {
    margin-top: 8px;
}
}
.corr-title[data-v-f2f0e52d] {
  font-size: var(--fs-micro);
  color: var(--muted-2);
  letter-spacing: 1px;
}
/* 财务补层：在会员 .mqm 组件语言之上增加总览卡/渠道/列宽拖拽等词汇。色值只引 var(--*)。 */
.mqf { color: var(--fg);
}
.mqf .wrap { max-width: 1240px; margin: 0 auto;
}
.mqf .kicker {
  font: 11px / 1 var(--font-mono);
  letter-spacing: 0.12em;
  color: var(--muted-2);
  margin-bottom: 6px;
}
.mqf .pagehead .tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end;
}
@supports not (gap: 1px) {
.mqf .pagehead .tools > * + * {
    margin-left: 10px;
}
}
.mqf .hscroll { overflow-x: auto;
}
.mqf .mtable.fixed { table-layout: fixed;
}
.mqf .statgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 14px;
}
.mqf .statgrid.g3 { grid-template-columns: repeat(3, 1fr);
}
.mqf .stat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06);
  box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
  padding: 16px 18px 14px;
}
.mqf .stat.emph { box-shadow: inset 0 0 0 1px rgba(162, 100, 64, 0.35), 0 3px 14px rgba(67, 53, 43, 0.06); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent), 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
}
.mqf .stat.warn-card { background: #F7E6DC; background: color-mix(in oklab, var(--soft-cinnabar) 55%, var(--surface));
}
.mqf .stat .k { display: flex; align-items: center; gap: 6px; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqf .stat .k > * + * {
    margin-left: 6px;
}
}
.mqf .stat .k .st-go { margin-left: auto; flex: none; padding: 2px 8px; border-radius: 6px; font-size: var(--fs-micro); color: var(--accent);
}
.mqf .stat .k .st-go:hover { background: var(--soft-green);
}
.mqf .stat .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 24px; font-weight: 600; margin-top: 6px;
}
.mqf .stat .v.warn { color: var(--cinnabar);
}
.mqf .stat .s { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 4px;
}
.mqf .ov-cols { display: grid; grid-template-columns: 5fr 7fr; gap: 14px; align-items: start; margin-bottom: 14px;
}
.mqf .ov-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06);
  box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
}
.mqf .ov-card .o-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--border);
}
@supports not (gap: 1px) {
.mqf .ov-card .o-head > * + * {
    margin-left: 10px;
}
}
.mqf .ov-card .o-head h3 { font: 600 var(--fs-section) / 1.4 var(--font-display); letter-spacing: 0.5px;
}
.mqf .ov-card .o-head .h-act { margin-left: auto;
}
.mqf .ov-card .o-body { padding: 12px 18px 16px;
}
.mqf .mini-tx { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--border); font-size: 13px;
}
@supports not (gap: 1px) {
.mqf .mini-tx > * + * {
    margin-left: 10px;
}
}
.mqf .mini-tx:last-child { border-bottom: 0;
}
.mqf .mini-tx .mt-type { flex: none; min-width: 72px; padding: 3px 8px; border-radius: var(--mqm-r-ctl); background: var(--soft); color: var(--muted); font-size: var(--fs-micro); text-align: center;
}
.mqf .mini-tx .mt-type.in { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqf .mini-tx .mt-note { flex: 1; min-width: 0;
}
.mqf .mini-tx .mt-note .n { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqf .mini-tx .mt-sub { display: block; font-size: var(--fs-micro); color: var(--muted-2); font-family: var(--font-mono);
}
.mqf .mini-tx .mt-amt { flex: none; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600;
}
.mqf .mini-tx .mt-amt.plus { color: var(--st-served);
}
.mqf .mini-tx .mt-amt.minus { color: var(--cinnabar);
}
.mqf .mini-tx .tx-type { font-size: var(--fs-aux);
}
.mqf .mini-tx .tx-type.in { color: var(--st-served);
}
.mqf .mini-tx .tx-type.out { color: var(--cinnabar);
}
.mqf .mini-tx .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600;
}
.mqf .tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.mqf .tile {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg);
  padding: 12px 14px;
  text-align: left;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.mqf .tile:hover { border-color: #AFA598; border-color: color-mix(in oklab, var(--fg) 28%, var(--border)); background: var(--soft-green);
}
.mqf .tile .t-k { display: flex; align-items: center; gap: 6px; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqf .tile .t-k > * + * {
    margin-left: 6px;
}
}
.mqf .tile .t-k .tag { flex: none;
}
.mqf .tile .t-v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 17px; font-weight: 600; margin-top: 5px;
}
.mqf .tile .t-v.warn { color: var(--cinnabar);
}
.mqf .tile .t-s { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 3px;
}
.mqf .tile.tile-plat { border-color: #C7A891; border-color: color-mix(in oklab, var(--accent) 40%, var(--border)); background: #F3E7D8; background: color-mix(in oklab, var(--soft-clay) 30%, var(--bg));
}
.mqf .tag-on { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqf .tag-on .dot { background: var(--st-served);
}
.mqf .tag-off { background: var(--soft); color: var(--muted-2);
}
.mqf .tag-off .dot { background: var(--muted-2);
}
.mqf .tag-recon { background: #DDDFDB; background: color-mix(in oklab, var(--st-paid) 14%, var(--surface)); color: #344253; color: color-mix(in oklab, var(--st-paid) 82%, black);
}
.mqf .tag-recon .dot { background: var(--st-paid);
}
.mqf .tag-pend { background: #EDDDCF; background: color-mix(in oklab, var(--st-busy) 16%, var(--surface)); color: #844726; color: color-mix(in oklab, var(--st-busy) 84%, black);
}
.mqf .tag-pend .dot { background: var(--st-busy);
}
.mqf .tag-paid { background: #DDDFDB; background: color-mix(in oklab, var(--st-paid) 14%, var(--surface)); color: #344253; color: color-mix(in oklab, var(--st-paid) 82%, black);
}
.mqf .tag-paid .dot { background: var(--st-paid);
}
.mqf .tag-rv { background: var(--soft-cinnabar); color: #79351F; color: color-mix(in oklab, var(--cinnabar) 78%, black);
}
.mqf .tag-rv .dot { background: var(--cinnabar);
}
.mqf .chan { margin-top: 26px;
}
.mqf .sec-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
}
@supports not (gap: 1px) {
.mqf .sec-head > * + * {
    margin-left: 10px;
}
}
.mqf .sec-head h2 { font: 600 var(--fs-section) / 1.4 var(--font-display); letter-spacing: 0.5px;
}
.mqf .sec-head .sh-sub { font-size: var(--fs-aux); color: var(--muted);
}
.mqf .sec-head .h-act { margin-left: auto; display: flex; gap: 8px;
}
@supports not (gap: 1px) {
.mqf .sec-head .h-act > * + * {
    margin-left: 8px;
}
}
.mqf .chan-form {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 3px 14px rgba(67, 53, 43, 0.06);
  box-shadow: 0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent);
  padding: 16px 18px 14px;
  margin-bottom: 12px;
}
.mqf .chan-form .cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px;
}
.mqf .f-rowline { display: flex; align-items: center; gap: 12px; font-size: var(--fs-aux); color: var(--muted); margin: 2px 0 12px;
}
@supports not (gap: 1px) {
.mqf .f-rowline > * + * {
    margin-left: 12px;
}
}

/* B-369 补修⑦：财务作用域紧凑控件豁免全局 44px 触控基线（B-350 同类根因：
   :where(button){min-height:var(--touch-min)} 零特异性，原型紧凑控件未显式设高被顶到 44px——
   总览指标卡 st-go 链接撑高 label 行导致金额基线错位、linkbtn/漏斗/排序/chips/分页钮同病。
   min-height:0 回落到各规则自带的原型 padding 尺寸；.seg.lg button 的显式 36px 因更高特异性保留。 */
.mqf .linkbtn, .mqf .stat .k .st-go, .mqf .seg button, .mqf .thsort, .mqf .thfilter, .mqf .scn button, .mqf .pager button { min-height: 0;
}

/* B-369 补修⑤后续：财务作用域控件圆角对齐原型令牌（原型 --r-ctl:12px；
   全局 tokens-v3 为 8px，members 侧早已用 --mqm-r-ctl:12px 单独对齐，财务页漏了同样的作用域覆盖，
   导致 verbatim 移植的 .input/.crange 落到 8px、下拉框比原型方）。 */
.mqf { --r-ctl: 12px;
}

/* ═══ B-369 补修④：原型表单基件 verbatim 移植（menqian-finance-prototype.html 495-516/636-639 行） ═══ */
.mqf .field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px;
}
@supports not (gap: 1px) {
.mqf .field > * + * {
    margin-top: 5px;
}
}
.mqf .field label { font-size: var(--fs-aux); color: var(--muted);
}
.mqf .field label .req { color: var(--cinnabar); font-style: normal;
}
.mqf .field .hint { font-size: var(--fs-micro); color: var(--muted-2);
}
.mqf .input, .mqf .textarea {
  width: 100%; box-sizing: border-box; padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--r-ctl);
  background: var(--surface); font-size: var(--fs-body); font-family: inherit; color: var(--fg);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.mqf .input::placeholder, .mqf .textarea::placeholder { color: var(--muted-2);
}
.mqf .input:focus, .mqf .textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(162, 100, 64, 0.16); box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent) 16%, transparent);
}
.mqf .input:disabled { background: var(--soft); color: var(--muted); cursor: not-allowed;
}
.mqf .seg { display: inline-flex; border: 1px solid var(--border); border-radius: var(--r-pill); padding: 2px; background: var(--soft);
}
.mqf .seg button { border-radius: var(--r-pill); padding: 5px 14px; font-size: var(--fs-aux); color: var(--muted); transition: background .15s ease, color .15s ease;
}
.mqf .seg button:hover { color: var(--fg);
}
.mqf .seg button.on { background: var(--surface); color: var(--fg); font-weight: 600; box-shadow: 0 1px 3px rgba(67, 53, 43, 0.1); box-shadow: 0 1px 3px color-mix(in oklab, var(--fg) 10%, transparent);
}
.mqf .seg button:disabled { color: var(--muted-2); cursor: not-allowed;
}
.mqf .chan-form .cf-foot { display: flex; justify-content: flex-end; gap: 10px;
}
@supports not (gap: 1px) {
.mqf .chan-form .cf-foot > * + * {
    margin-left: 10px;
}
}
.mqf .chan-note { margin: 0 0 12px; color: var(--muted); font-size: var(--fs-aux); line-height: 1.7;
}
.mqf .scn { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px;
}
@supports not (gap: 1px) {
.mqf .scn > * + * {
    margin-left: 8px;
}
}
.mqf .scn button {
  font: inherit; font-size: var(--fs-aux); line-height: 1; padding: 10px 14px;
  border-radius: 12px; border: 1px solid var(--border); background: var(--surface); color: var(--muted);
}
.mqf .scn button.on { background: var(--soft-green); border-color: #C4A28A; border-color: color-mix(in oklab, var(--accent) 45%, var(--border)); color: var(--fg); font-weight: 600;
}
.mqf .ckb { display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
}
@supports not (gap: 1px) {
.mqf .ckb > * + * {
    margin-left: 8px;
}
}
.mqf .ckb input { width: 15px; height: 15px; accent-color: var(--accent);
}
.mqf .ops-row { display: flex; gap: 8px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.mqf .ops-row > * + * {
    margin-left: 8px;
}
}
.mqf .colgrip {
  position: absolute; top: 5px; bottom: 5px; right: -5px; width: 10px; z-index: 6;
  cursor: col-resize; touch-action: none; display: flex; justify-content: center;
}
.mqf .colgrip::after { content: ""; width: 2px; height: 100%; border-radius: 2px; background: transparent;
}
.mqf .colgrip:hover::after { background: var(--muted-2);
}
.mqf .colgrip.drag::after { background: var(--fg);
}
.mqf .debt-terms {
  border: 1px dashed var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  color: var(--muted);
  font-size: var(--fs-aux);
  line-height: 1.7;
  margin-top: 4px;
}



/* ═══ B-369 补修⑤：流水页原型基件 verbatim 移植（menqian-finance-prototype.html 291-292/301-304/358-367/277-278） ═══ */
.mqf .seg.lg { padding: 3px;
}
.mqf .seg.lg button { min-height: 36px; padding: 6px 16px; font: 600 13px / 1.4 var(--font-display); letter-spacing: 0.5px;
}
.mqf .crange { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; padding: 10px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-ctl);
}
@supports not (gap: 1px) {
.mqf .crange > * + * {
    margin-left: 8px;
}
}
.mqf .crange input { border: 1px solid var(--border); border-radius: 9px; padding: 6px 9px; font-size: var(--fs-aux); font-family: var(--font-mono); background: var(--bg);
}
.mqf .crange input:focus { outline: none; border-color: var(--accent);
}
.mqf .pager { display: flex; align-items: center; gap: 6px; padding: 12px 2px 0; font-size: var(--fs-aux); color: var(--muted);
}
@supports not (gap: 1px) {
.mqf .pager > * + * {
    margin-left: 6px;
}
}
.mqf .pager .pages { display: flex; gap: 4px; margin-left: auto;
}
@supports not (gap: 1px) {
.mqf .pager .pages > * + * {
    margin-left: 4px;
}
}
.mqf .pager button {
  min-width: 32px; height: 32px; padding: 0 9px; border: 1px solid var(--border); border-radius: 9px;
  background: var(--surface); font-size: var(--fs-aux); font-family: var(--font-mono); color: var(--fg);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mqf .pager button:hover:not(:disabled) { background: var(--soft-green);
}
.mqf .pager button.on { background: var(--ink-card); color: var(--paper-ink); border-color: var(--ink-card);
}
.mqf .pager button:disabled { opacity: 0.45; cursor: not-allowed;
}
.mqf #flow-table-main { table-layout: fixed;
}
.mqf #flow-table-main thead th { position: relative;
}
/* B-369 补修⑥：结算表同基件（原型 273-274 行：table-layout:fixed + th relative 供 colgrip 定位） */
.mqf #st-table-main { table-layout: fixed;
}
.mqf #st-table-main thead th { position: relative;
}
/* B-369 补修⑥：结算弹窗实时预览基件 verbatim 移植（menqian-finance-prototype.html 539-542 行） */
.mqf .preview { border-top:1px dashed var(--border);margin-top:4px;padding:12px 2px 6px;display:flex;flex-direction:column;gap:5px;font-size:var(--fs-aux);color:var(--muted)
}
@supports not (gap: 1px) {
.mqf .preview > * + * {
    margin-top: 5px;
}
}
.mqf .preview .pv-row { display:flex;justify-content:space-between;gap:12px
}
@supports not (gap: 1px) {
.mqf .preview .pv-row > * + * {
    margin-left: 12px;
}
}
.mqf .preview .pv-row .pv-v { font-family:var(--font-mono);color:var(--fg);font-variant-numeric:tabular-nums
}
.mqf .preview .pv-row .pv-v.neg { color:var(--cinnabar)
}
/* B-365 口径：动作弹层需高于账户详情抽屉（z-50），原型 mask 95 在本工程收敛为 55 */
.mqf .mask { z-index: 55;
}
.mqf .avatar-sm {
  width: 36px; height: 36px; border-radius: 50%; background: var(--ink-card); color: var(--paper-ink);
  display: flex; align-items: center; justify-content: center; font: 600 14px / 1 var(--font-display); flex: none;
}
.mqf .acc-name { font-weight: 600;
}
.mqf .acc-note { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 2px;
}
.mqf .row-off { opacity: 0.62;
}
.mqf .money.warn { color: var(--cinnabar);
}
.mqf .sk-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.mqf .sk-stats .sk { height: 88px; border-radius: 16px;
}
.mqf .ov-empty { padding: 24px 0; text-align: center; color: var(--muted-2); font-size: var(--fs-aux);
}

/* ═══ B-369 补修⑪：账户详情抽屉内部基件 verbatim 移植（menqian-finance-prototype.html
   386-478 行抽屉段 + 652-655 行抽屉流水三色签；类名沿用原型 d-* / tx / chip，在 .mqf
   作用域与 pcCommon 的 .mqm 同名规则同值并存。.d-close 基件已在 pcCommon（.mqm .d-close）
   不重复移植；.ops-row 与补修④移植规则同值不重复。令牌差：原型 --r-card:16px / --r-tag:5px，
   tokens-v3 为 10px / 未定义，按补修⑤后续同法在 .mqf 作用域补齐（非色值）。 ═══ */
.mqf { --r-card: 16px; --r-tag: 5px;
}
.mqf .d-head { padding: 20px 24px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: flex-start; gap: 14px;
}
@supports not (gap: 1px) {
.mqf .d-head > * + * {
    margin-left: 14px;
}
}
.mqf .d-head .d-name { font: 600 var(--fs-title) / 1.35 var(--font-display); letter-spacing: 0.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 400px;
}
.mqf .d-head .d-phone { display: flex; align-items: center; gap: 8px; margin-top: 5px; font-size: 13px; color: var(--muted);
}
@supports not (gap: 1px) {
.mqf .d-head .d-phone > * + * {
    margin-left: 8px;
}
}
.mqf .d-head .d-meta { font-size: var(--fs-aux); color: var(--muted-2); margin-top: 6px;
}
.mqf .d-stats { display: grid; grid-template-columns: 1.2fr 1fr 1.3fr; border-bottom: 1px solid var(--border);
}
.mqf .d-stat { padding: 14px 24px;
}
.mqf .d-stat + .d-stat { border-left: 1px solid var(--border);
}
.mqf .d-stat .k { font-size: var(--fs-micro); color: var(--muted); font-family: var(--font-mono); letter-spacing: 0.04em;
}
.mqf .d-stat .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 22px; font-weight: 600; margin-top: 4px;
}
.mqf .d-stat .v.small { font-size: var(--fs-section); font-weight: 550; font-family: var(--font-body); margin-top: 6px;
}
.mqf .d-stat .s { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqf .d-tabs { display: flex; border-bottom: 1px solid var(--border); padding: 0 12px; flex: none;
}
.mqf .dtab { position: relative; flex: 1; height: 44px; font-size: var(--fs-body); color: var(--muted); transition: color 0.15s ease;
}
.mqf .dtab:hover { color: var(--fg);
}
.mqf .dtab.on { color: var(--fg); font-weight: 650;
}
.mqf .dtab.on::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--accent);
}
.mqf .dtab-count { font-size: var(--fs-micro); color: var(--muted); margin-left: 6px;
}
.mqf .d-panels { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
.mqf .dpanel { flex: 1; overflow-y: auto; min-height: 0;
}
.mqf .dpanel[hidden] { display: none;
}
.mqf .dpad { padding: 16px 24px 28px; display: flex; flex-direction: column; gap: 12px;
}
@supports not (gap: 1px) {
.mqf .dpad > * + * {
    margin-top: 12px;
}
}
.mqf .dcard { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-card);
}
.mqf .dcard-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px 0;
}
@supports not (gap: 1px) {
.mqf .dcard-head > * + * {
    margin-left: 10px;
}
}
.mqf .dcard-head h3 { font: 600 var(--fs-section) / 1.4 var(--font-display); letter-spacing: 0.5px;
}
.mqf .dcard-body { padding: 12px 18px 16px;
}
.mqf .dcard-act { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px;
}
@supports not (gap: 1px) {
.mqf .dcard-act > * + * {
    margin-left: 10px;
}
}
.mqf .dcard-act .spacer { flex: 1;
}
.mqf .pf-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--border); font-size: var(--fs-aux);
}
@supports not (gap: 1px) {
.mqf .pf-row > * + * {
    margin-left: 12px;
}
}
.mqf .pf-row:last-of-type { border-bottom: 0;
}
.mqf .pf-row .k { color: var(--muted); flex: none;
}
.mqf .pf-row .v { color: var(--fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqf .dcard-note { font-size: var(--fs-aux); color: var(--muted-2); margin-top: 10px;
}
.mqf .dc-status { padding: 9px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-ctl); font-size: var(--fs-aux); color: var(--muted); line-height: 1.6;
}
.mqf .dc-status b { color: var(--fg); font-weight: 650;
}
.mqf .dcard-head .h-act { margin-left: auto; flex: none;
}
.mqf .d-ledger-bar { position: sticky; top: 0; z-index: 2; background: var(--surface); padding: 12px 24px 10px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
@supports not (gap: 1px) {
.mqf .d-ledger-bar > * + * {
    margin-left: 10px;
}
}
.mqf .d-ledger-bar .l-count { margin-left: auto; font-size: var(--fs-aux); color: var(--muted);
}
.mqf .chip { border: 1px solid var(--border); background: var(--surface); border-radius: var(--r-pill); padding: 5px 12px; font-size: var(--fs-aux); color: var(--muted); transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.mqf .chip:hover { color: var(--fg); background: var(--soft-green);
}
.mqf .chip.on { border-color: var(--accent); color: var(--accent); background: var(--soft-green); font-weight: 600;
}
.mqf .tx { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto 108px; gap: 12px; align-items: center; padding: 11px 24px; border-bottom: 1px solid var(--border);
}
.mqf .tx:last-child { border-bottom: 0;
}
.mqf .tx-type { font-size: var(--fs-micro); padding: 3px 0; text-align: center; border-radius: var(--r-tag); letter-spacing: 0.05em;
}
.mqf .tx-type.recharge { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqf .tx-type.spend { background: var(--soft); color: var(--muted);
}
.mqf .tx-type.adj { background: var(--soft-clay); color: #6B381D; color: color-mix(in oklab, var(--st-busy) 72%, black);
}
.mqf .tx-type.in { background: #E1E1D3; background: color-mix(in oklab, var(--st-served) 16%, var(--surface)); color: #4A5332; color: color-mix(in oklab, var(--st-served) 76%, black);
}
.mqf .tx-type.out { background: var(--soft); color: var(--muted);
}
.mqf .tx-type.rv { background: var(--soft-cinnabar); color: #79351F; color: color-mix(in oklab, var(--cinnabar) 78%, black);
}
.mqf .tx-note { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mqf .tx-note .rv-mark { display: inline-flex; margin-left: 6px;
}
.mqf .tx-sub { font-size: var(--fs-micro); color: var(--muted-2); margin-top: 1px; font-family: var(--font-mono);
}
.mqf .tx-amt { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13.5px; font-weight: 600; text-align: right;
}
.mqf .tx-amt.plus { color: var(--st-served);
}
.mqf .tx-amt.minus { color: var(--cinnabar);
}
.mqf .tx-bal { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--muted); text-align: right;
}
.mqf .ledger-empty { padding: 48px 24px; text-align: center; color: var(--muted); font-size: 13px;
}
.mqf .ledger-empty .le-title { font: 600 15px / 1.5 var(--font-display); color: var(--fg); letter-spacing: 1px; margin-bottom: 5px;
}

.fo-page[data-v-5e5d7182]{height:100%;padding:28px 32px;background:var(--bg);box-sizing:border-box;overflow-y:auto;font-family:var(--font-body);color:var(--fg)}
.fo-head[data-v-5e5d7182]{margin-bottom:18px}.fo-kicker[data-v-5e5d7182]{margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.14em}.fo-head h1[data-v-5e5d7182]{margin:0;font-size:24px;letter-spacing:-.02em}.fo-shop[data-v-5e5d7182]{margin:7px 0 0;color:var(--muted);font-size:13px}.fo-shop span[data-v-5e5d7182]{margin:0 5px;color:var(--accent)}
.fo-skeleton[data-v-5e5d7182]{margin-bottom:14px}
.fo-error[data-v-5e5d7182]{margin:0;padding:40px 12px;text-align:center;color:var(--muted);font-size:13px}.fo-error p[data-v-5e5d7182]{margin:0 0 14px;color:var(--cinnabar)}.fo-retry[data-v-5e5d7182]{min-height:36px;padding:0 16px;border:1px solid var(--cinnabar);border-radius:12px;background:var(--surface);color:var(--cinnabar);font:inherit;font-size:13px;cursor:pointer}

/* B-369 补修⑩：详情外壳按原型 verbatim 改右侧 640px 滑入抽屉（.scrim/.drawer 381-392 行，z 口径 B-365：抽屉 50/动作弹层 55）
   B-369 补修⑪：抽屉内部结构/样式改原型 d-* 与 tx/chip 基件（financePc.css .mqf 作用域 verbatim 移植），此处仅保留外壳与异步态。 */
.ad-scrim[data-v-4cb4c4c8]{position:fixed;inset:0;background:rgba(67, 53, 43, 0.3);background:color-mix(in oklab,var(--fg) 30%,transparent);z-index:50}
@supports not (inset: 0){
.ad-scrim[data-v-4cb4c4c8]{top:0;right:0;bottom:0;left:0}}
.ad-drawer[data-v-4cb4c4c8]{position:fixed;top:0;right:0;bottom:0;width:640px;max-width:calc(100vw - 160px);background:var(--surface);border-left:1px solid var(--border);color:var(--fg);z-index:50;display:flex;flex-direction:column;animation:ad-slide-4cb4c4c8 .22s cubic-bezier(.3,.9,.4,1);overflow:hidden}
@keyframes ad-slide-4cb4c4c8{from{transform:translateX(103%)}to{transform:translateX(0)}}
/* 异步态：工程自拟（原型无加载/错误态），保持最小占位样式 */
.ad-skeleton[data-v-4cb4c4c8]{flex:1 1 auto;min-height:0;padding:24px}
.ad-skeleton i[data-v-4cb4c4c8]{display:block;height:14px;margin:18px 0;background:var(--bg)}
.ad-error[data-v-4cb4c4c8]{flex:1 1 auto;min-height:0;padding:56px 24px;text-align:center}
.ad-error p[data-v-4cb4c4c8]{margin:0 0 14px;color:var(--muted)}
.ad-retry[data-v-4cb4c4c8]{min-height:44px;padding:0 16px;border:1px solid var(--accent);border-radius:12px;background:transparent;color:var(--accent);font:inherit;cursor:pointer}

/* 弹层外壳：z-55（B-365：高于账户详情抽屉 z-50）；字段控件用 financePc.css 原型基件（.field/.input/.seg/.ckb/.hint/.req/.btn） */
.af-overlay[data-v-0b57c9da]{position:fixed;inset:0;z-index:55;display:flex;align-items:center;justify-content:center;background:rgba(67, 53, 43, 0.32);background:color-mix(in oklab, var(--fg) 32%, transparent);font-family:var(--font-body)}
@supports not (inset: 0){
.af-overlay[data-v-0b57c9da]{top:0;right:0;bottom:0;left:0}}
.af-dialog[data-v-0b57c9da]{width:100%;max-width:440px;max-height:88vh;box-sizing:border-box;overflow-y:auto;padding:18px 22px;background:var(--surface);border-radius:16px}
.af-head[data-v-0b57c9da]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.af-title[data-v-0b57c9da]{margin:0;color:var(--fg);font:600 var(--fs-title)/1.4 var(--font-display);letter-spacing:1px}
.af-close[data-v-0b57c9da]{width:36px;height:36px;border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer}
.af-err[data-v-0b57c9da]{margin:0 0 10px;color:var(--cinnabar);font-size:12px}
.af-edit-note[data-v-0b57c9da]{margin:0;color:var(--muted-2);font-size:var(--fs-micro)}
.mo-foot[data-v-0b57c9da]{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
@supports not (gap: 1px) {
.mo-foot[data-v-0b57c9da] > * + * {
    margin-left: 10px;
}
}

.mt-overlay[data-v-42e72699]{position:fixed;inset:0;z-index:55; /* B-365：动作弹层需高于账户详情抽屉（z-50），否则从抽屉打开时被遮挡 */display:flex;align-items:center;justify-content:center;background:rgba(67, 53, 43, 0.32);background:color-mix(in oklab, var(--fg) 32%, transparent);font-family:var(--font-body)}
@supports not (inset: 0){
.mt-overlay[data-v-42e72699]{top:0;right:0;bottom:0;left:0}}
.mt-dialog[data-v-42e72699]{width:100%;max-width:440px;max-height:88vh;box-sizing:border-box;overflow-y:auto;display:flex;flex-direction:column;gap:13px;padding:22px;background:var(--surface);border-radius:16px}
@supports not (gap: 1px) {
.mt-dialog[data-v-42e72699] > * + * {
    margin-top: 13px;
}
}
.mt-kind[data-v-42e72699]{display:flex;gap:6px;padding:4px;border-radius:12px;background:var(--bg)}
@supports not (gap: 1px) {
.mt-kind[data-v-42e72699] > * + * {
    margin-left: 6px;
}
}
.mt-kind button[data-v-42e72699]{flex:1;padding:8px 0;border:0;border-radius:12px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}
.mt-kind button.on[data-v-42e72699]{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:0 3px 14px rgba(67, 53, 43, 0.06);box-shadow:0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent)}
.mt-head[data-v-42e72699]{display:flex;align-items:center;justify-content:space-between}
.mt-title[data-v-42e72699]{margin:0;color:var(--fg);font-size:18px}
.mt-close[data-v-42e72699]{width:36px;height:36px;border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer}
.mt-field[data-v-42e72699]{display:flex;flex-direction:column;gap:6px}
@supports not (gap: 1px) {
.mt-field[data-v-42e72699] > * + * {
    margin-top: 6px;
}
}
.mt-field label[data-v-42e72699]{color:var(--muted);font-size:13px}
.mt-field input[data-v-42e72699],.mt-field select[data-v-42e72699]{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:14px}
.mt-err[data-v-42e72699]{margin:0;color:var(--cinnabar);font-size:12px}
.mt-actions[data-v-42e72699]{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@supports not (gap: 1px) {
.mt-actions[data-v-42e72699] > * + * {
    margin-left: 10px;
}
}
.mt-cancel[data-v-42e72699],.mt-submit[data-v-42e72699]{min-height:40px;padding:0 16px;border-radius:12px;font:inherit;font-size:14px;cursor:pointer}
.mt-cancel[data-v-42e72699]{border:1px solid var(--border);background:var(--surface);color:var(--muted)}
.mt-submit[data-v-42e72699]{border:0;background:var(--accent);color:var(--surface)}
.mt-cancel[data-v-42e72699]:disabled,.mt-submit[data-v-42e72699]:disabled{opacity:.6;cursor:not-allowed}

.oa-overlay[data-v-e9860206]{position:fixed;inset:0;z-index:55; /* B-365：动作弹层需高于账户详情抽屉（z-50），否则从抽屉打开时被遮挡 */display:flex;align-items:center;justify-content:center;background:rgba(67, 53, 43, 0.32);background:color-mix(in oklab, var(--fg) 32%, transparent);font-family:var(--font-body)}
@supports not (inset: 0){
.oa-overlay[data-v-e9860206]{top:0;right:0;bottom:0;left:0}}
.oa-dialog[data-v-e9860206]{width:100%;max-width:420px;max-height:88vh;box-sizing:border-box;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:22px;background:var(--surface);border-radius:16px}
@supports not (gap: 1px) {
.oa-dialog[data-v-e9860206] > * + * {
    margin-top: 14px;
}
}
.oa-head[data-v-e9860206]{display:flex;align-items:center;justify-content:space-between}
.oa-title[data-v-e9860206]{margin:0;color:var(--fg);font-size:18px}
.oa-close[data-v-e9860206]{width:36px;height:36px;border:0;background:transparent;color:var(--muted);font-size:24px;cursor:pointer}
.oa-member[data-v-e9860206]{margin:0;color:var(--muted);font-size:13px}
.oa-field[data-v-e9860206]{display:flex;flex-direction:column;gap:6px}
@supports not (gap: 1px) {
.oa-field[data-v-e9860206] > * + * {
    margin-top: 6px;
}
}
.oa-field label[data-v-e9860206]{color:var(--muted);font-size:13px}
.oa-field input[data-v-e9860206]{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:14px}
.oa-err[data-v-e9860206]{margin:0;color:var(--cinnabar);font-size:12px}
.oa-actions[data-v-e9860206]{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@supports not (gap: 1px) {
.oa-actions[data-v-e9860206] > * + * {
    margin-left: 10px;
}
}
.oa-cancel[data-v-e9860206],.oa-submit[data-v-e9860206]{min-height:40px;padding:0 16px;border-radius:12px;font:inherit;font-size:14px;cursor:pointer}
.oa-cancel[data-v-e9860206]{border:1px solid var(--border);background:var(--surface);color:var(--muted)}
.oa-submit[data-v-e9860206]{border:0;background:var(--accent);color:var(--surface)}
.oa-cancel[data-v-e9860206]:disabled,.oa-submit[data-v-e9860206]:disabled{opacity:.6;cursor:not-allowed}

.fa-page[data-v-7d19be0f]{height:100%;padding:28px 32px;background:var(--bg);box-sizing:border-box;overflow-y:auto;font-family:var(--font-body);color:var(--fg)}
.fa-head[data-v-7d19be0f]{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:12px}
@supports not (gap: 1px) {
.fa-head[data-v-7d19be0f] > * + * {
    margin-left: 24px;
}
}
.fa-kicker[data-v-7d19be0f]{margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.14em}
.fa-head h1[data-v-7d19be0f]{margin:0;font-size:24px;letter-spacing:-.02em}
.fa-shop[data-v-7d19be0f]{margin:7px 0 0;color:var(--muted);font-size:13px}.fa-shop span[data-v-7d19be0f]{margin:0 5px;color:var(--accent)}
.fa-head-tools[data-v-7d19be0f]{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
@supports not (gap: 1px) {
.fa-head-tools[data-v-7d19be0f] > * + * {
    margin-top: 10px;
}
}
.fa-search[data-v-7d19be0f]{display:flex;gap:8px}
@supports not (gap: 1px) {
.fa-search[data-v-7d19be0f] > * + * {
    margin-left: 8px;
}
}.fa-kw[data-v-7d19be0f]{min-height:36px;min-width:200px;padding:0 11px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:13px}.fa-reset-btn[data-v-7d19be0f]{min-height:36px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:13px;cursor:pointer}
.fa-toolbar[data-v-7d19be0f]{display:flex;gap:8px;flex-wrap:wrap}
@supports not (gap: 1px) {
.fa-toolbar[data-v-7d19be0f] > * + * {
    margin-left: 8px;
}
}
.fa-create[data-v-7d19be0f]{display:flex;align-items:center;gap:3px;min-height:38px;padding:0 13px;border:1px solid var(--accent);border-radius:12px;background:var(--accent);color:var(--surface);font:inherit;font-size:12px;cursor:pointer}
@supports not (gap: 1px) {
.fa-create[data-v-7d19be0f] > * + * {
    margin-left: 3px;
}
}.fa-create span[data-v-7d19be0f]{font-size:16px;line-height:1}
.fa-transfer[data-v-7d19be0f]{min-height:38px;padding:0 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:12px;cursor:pointer}.fa-transfer[data-v-7d19be0f]:hover{border-color:var(--accent);color:var(--accent)}
.fa-skeleton[data-v-7d19be0f]{padding:16px}.fa-sk[data-v-7d19be0f]{height:20px;margin:14px 0;border-radius:12px;background:var(--surface);animation:fa-breathe-7d19be0f 1.4s ease-in-out infinite}
.fa-error[data-v-7d19be0f],.fa-empty[data-v-7d19be0f]{margin:0;padding:40px 12px;text-align:center;color:var(--muted);font-size:13px}.fa-error p[data-v-7d19be0f]{margin:0 0 14px;color:var(--cinnabar)}.fa-empty p[data-v-7d19be0f]{margin:0 0 14px}
.fa-retry[data-v-7d19be0f],.fa-empty-create[data-v-7d19be0f]{min-height:36px;padding:0 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:13px;cursor:pointer}.fa-retry[data-v-7d19be0f]{border-color:var(--cinnabar);color:var(--cinnabar)}.fa-empty-create[data-v-7d19be0f]{border-color:var(--accent);background:var(--accent);color:var(--surface)}
.fa-sum[data-v-7d19be0f]{flex-wrap:wrap}
.fa-tcard[data-v-7d19be0f]{overflow-x:auto}
.fa-table[data-v-7d19be0f]{min-width:780px}
.fa-muted[data-v-7d19be0f]{color:var(--muted)}
.fa-recent-time[data-v-7d19be0f]{font-size:13px;white-space:nowrap}
.fa-channel-panel[data-v-7d19be0f]{margin-top:26px}.fa-channel-panel p[data-v-7d19be0f]{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.6}/* B-369 补修④：表单排布交由原型移植基件（financePc.css 的 .chan-form/.cf-grid/.field/.input/.seg），此处只留面板级规则 */.fa-channel-error[data-v-7d19be0f]{margin:0 0 12px!important;color:var(--cinnabar)!important}.fa-channel-empty[data-v-7d19be0f]{margin:0;padding:22px;text-align:center;color:var(--muted);font-size:13px}.fa-chan-table[data-v-7d19be0f]{margin-top:12px;overflow-x:auto}.fa-chan-table .dtag[data-v-7d19be0f]{margin-left:6px}.fa-chan-pos[data-v-7d19be0f]{font-size:12px;color:var(--muted)}.fa-chan-table tbody tr[data-v-7d19be0f]{cursor:default}
.fa-toast[data-v-7d19be0f]{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);padding:10px 18px;border-radius:12px;background:var(--fg);color:var(--surface);font-size:13px;z-index:60;box-shadow:0 3px 14px rgba(67, 53, 43, 0.06);box-shadow:0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent)}

/* B-400 点单收款排序面板；2026-09-25 收口为渠道单层，入口归位到「收款渠道」区块内 */
.fa-sort-panel[data-v-7d19be0f]{margin:4px 0 14px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#F6F1E9;background:color-mix(in oklab, var(--accent) 3%, var(--surface))}
.fa-sort-panel .sec-head[data-v-7d19be0f]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@supports not (gap: 1px) {
.fa-sort-panel .sec-head[data-v-7d19be0f] > * + * {
    margin-left: 10px;
}
}
.fa-sort-panel .sec-head h3[data-v-7d19be0f]{margin:0;font-size:14px;font-weight:800}
.fa-sort-panel .h-act[data-v-7d19be0f]{margin-left:auto}
.fa-sort-panel .chan-note[data-v-7d19be0f]{margin:10px 0 0!important}
.fa-sort-sub[data-v-7d19be0f]{margin:18px 0 0;font-size:13px;font-weight:700;color:var(--fg)}
.fa-sort-sub .sh-sub[data-v-7d19be0f]{margin-left:8px;font-size:11px;font-weight:400;color:var(--muted-2)}
.fa-sort-list[data-v-7d19be0f],.fa-channel-sort-list[data-v-7d19be0f]{display:grid;gap:8px;margin-top:12px}
.fa-sort-list article[data-v-7d19be0f],.fa-channel-sort-list article[data-v-7d19be0f]{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.fa-sort-list strong[data-v-7d19be0f],.fa-sort-list small[data-v-7d19be0f],.fa-channel-sort-list strong[data-v-7d19be0f],.fa-channel-sort-list small[data-v-7d19be0f]{display:block}
.fa-sort-list small[data-v-7d19be0f],.fa-channel-sort-list small[data-v-7d19be0f]{margin-top:4px;color:var(--muted);font-size:11px}
.fa-sort-default[data-v-7d19be0f]{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:999px;background:rgba(162, 100, 64, 0.12);background:color-mix(in oklab, var(--accent) 12%, transparent);color:var(--accent);font-size:10px;font-weight:700;vertical-align:1px}
.fa-sort-ops[data-v-7d19be0f]{display:flex;gap:8px}
@supports not (gap: 1px) {
.fa-sort-ops[data-v-7d19be0f] > * + * {
    margin-left: 8px;
}
}
.fa-sort-ops button[data-v-7d19be0f]{min-height:32px;padding:0 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);font:inherit;font-size:12px;cursor:pointer}
.fa-sort-ops button[data-v-7d19be0f]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.fa-sort-ops button[data-v-7d19be0f]:disabled{cursor:default;color:var(--muted-2);opacity:.55}
.fa-sort-save[data-v-7d19be0f],.fa-channel-sort-save[data-v-7d19be0f]{display:flex;justify-content:flex-end;margin-top:14px}@keyframes fa-breathe-7d19be0f{0%,100%{opacity:.5}50%{opacity:1}}
@media (max-width:760px){.mqf .chan-form .cf-grid[data-v-7d19be0f]{grid-template-columns:1fr}}

.fl-page[data-v-c0fde90e]{height:100%;padding:28px 32px;background:var(--bg);box-sizing:border-box;overflow-y:auto;font-family:var(--font-body);color:var(--fg)}
.fl-head[data-v-c0fde90e]{margin-bottom:12px}.fl-kicker[data-v-c0fde90e]{margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.14em}.fl-head h1[data-v-c0fde90e]{margin:0;font-size:24px;letter-spacing:-.02em}.fl-shop[data-v-c0fde90e]{margin:7px 0 0;color:var(--muted);font-size:13px}.fl-shop span[data-v-c0fde90e]{margin:0 5px;color:var(--accent)}
.fl-toolbar[data-v-c0fde90e]{gap:10px}
.fl-acc-select[data-v-c0fde90e]{flex:0 0 auto;width:200px;height:40px;padding:0 10px}
.fl-sum[data-v-c0fde90e]{flex-wrap:wrap}
.fl-skeleton[data-v-c0fde90e]{padding:16px}.fl-sk[data-v-c0fde90e]{height:20px;margin:14px 0;border-radius:12px;background:var(--surface);animation:fl-breathe-c0fde90e 1.4s ease-in-out infinite}
@keyframes fl-breathe-c0fde90e{0%,100%{opacity:.5}50%{opacity:1}}

.fs-page[data-v-3dd5dee7]{height:100%;padding:28px 32px;background:var(--bg);box-sizing:border-box;overflow-y:auto;font-family:var(--font-body);color:var(--fg)}
.fs-head[data-v-3dd5dee7]{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:12px}
@supports not (gap: 1px) {
.fs-head[data-v-3dd5dee7] > * + * {
    margin-left: 24px;
}
}.fs-kicker[data-v-3dd5dee7]{margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.14em}.fs-head h1[data-v-3dd5dee7]{margin:0;font-size:24px;letter-spacing:-.02em}.fs-shop[data-v-3dd5dee7]{margin:7px 0 0;color:var(--muted);font-size:13px}.fs-shop span[data-v-3dd5dee7]{margin:0 5px;color:var(--accent)}
.fs-skeleton[data-v-3dd5dee7]{padding:16px}.fs-sk[data-v-3dd5dee7]{height:20px;margin:14px 0;border-radius:12px;background:var(--surface);animation:fs-breathe-3dd5dee7 1.4s ease-in-out infinite}
.fs-sum[data-v-3dd5dee7]{flex-wrap:wrap}
.fs-sum-sub[data-v-3dd5dee7]{margin-left:6px;color:var(--muted-2);font-size:var(--fs-micro)}
.fs-toast[data-v-3dd5dee7]{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);padding:10px 18px;border-radius:12px;background:var(--fg);color:var(--surface);font-size:13px;z-index:60;box-shadow:0 3px 14px rgba(67, 53, 43, 0.06);box-shadow:0 3px 14px color-mix(in oklab, var(--fg) 6%, transparent)}
@keyframes fs-breathe-3dd5dee7{0%,100%{opacity:.5}50%{opacity:1}}

.fm-page[data-v-29f2f150]{height:100%;padding:28px 32px;background:var(--bg);box-sizing:border-box;overflow-y:auto;font-family:var(--font-body);color:var(--fg)}
.fm-head[data-v-29f2f150]{margin-bottom:12px}.fm-kicker[data-v-29f2f150]{margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.14em}.fm-head h1[data-v-29f2f150]{margin:0;font-size:24px;letter-spacing:-.02em}.fm-shop[data-v-29f2f150]{margin:7px 0 0;color:var(--muted);font-size:13px}.fm-shop span[data-v-29f2f150]{margin:0 5px;color:var(--accent)}
.fm-skeleton[data-v-29f2f150]{margin-bottom:14px}
.fm-error[data-v-29f2f150]{margin:0;padding:40px 12px;text-align:center;color:var(--muted);font-size:13px}.fm-error p[data-v-29f2f150]{margin:0 0 14px;color:var(--cinnabar)}.fm-retry[data-v-29f2f150]{min-height:36px;padding:0 16px;border:1px solid var(--cinnabar);border-radius:12px;background:var(--surface);color:var(--cinnabar);font:inherit;font-size:13px;cursor:pointer}
/*
 * 收银机身份门样式（features/terminal）。
 *
 * 逐条取自 门前OA-design/pc-pos-pin/menqian-pc-pos-pin-prototype.html 的 \3c style>，
 * 仅做两处机械改动：
 * 1. 作用域：原型挂在 body/:root，这里全部收进 .tg 命名空间（终端页根节点），
 *    不影响全局 tokens.css / style.css；
 * 2. :focus-visible 焦点环按硬约束用 2px 赭石环（原型为 3px）。
 *
 * Win7 兼容层（不可删）：每条现代色值（oklch()/color-mix()）声明前都保留等价
 * sRGB 回退；Chrome 109 取前一条，现代浏览器取后一条。改动色值必须同时改配对两条。
 * 派生回退色集中在 --*-srgb 令牌，零新增设计语义 hex（--paper-ink 与席位四态除外，原型已有）。
 */

/* ══ 令牌（原 :root，收进 .tg） ═══════════════════════════════ */
.tg {
  /* 令牌：sRGB 回退在前，oklch 原值在后（现代浏览器生效） */
  --bg: #F2ECE0;            --bg: oklch(0.945 0.018 85);
  --surface: #F8F6EE;       --surface: oklch(0.972 0.010 90);
  --fg: #43352B;            --fg: oklch(0.340 0.026 55);
  /* 低 DPI 加固（2026-09-17 实机反馈）：灰字整体加深——成对声明，
   * Win7/Chrome109 不识 color-mix，取 --fg 实色（深、清晰）；现代浏览器按原灰混深 */
  --muted: var(--fg);       --muted: color-mix(in oklab, #82766C 55%, var(--fg));
  --border: #DDD6C8;        --border: oklch(0.878 0.020 82);
  --accent: #A26440;        --accent: oklch(0.565 0.095 50);
  --accent-deep: #945733;   --accent-deep: oklch(0.52 0.095 50);
  --cinnabar: #AA4D30;      --cinnabar: oklch(0.535 0.130 38);
  --soft: #EDE5D6;          --soft: oklch(0.925 0.022 85);
  --soft-green: #EFE2CE;    --soft-green: oklch(0.918 0.030 80);
  --soft-clay: #F4DAC6;     --soft-clay: oklch(0.905 0.040 60);
  --soft-cinnabar: #F5D9CD; --soft-cinnabar: oklch(0.905 0.035 45);
  --ink-soft: #C7B8A6;      --ink-soft: oklch(0.790 0.030 72);
  --muted-2: var(--fg);     --muted-2: color-mix(in oklab, #A4998D 40%, var(--fg));
  --ink-card: #47372D;      --ink-card: oklch(0.350 0.028 52);
  --paper-ink: #FBF7EC;
  --st-free: #F3EDE0; --st-busy: #A85C33; --st-served: #6E7B4C; --st-paid: #46596E;
  /* 收银机全局不用宋体（2026-09-17 实机三轮反馈）：该机渲染衬线全文发虚，
   * 连大号「门前」logo 也虚 → 终端整体 display 字体直接取正文字体（黑体系）。
   * PC 后台不受影响。 */
  --font-display: -apple-system, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  --font-body: -apple-system, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  --font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, 'Courier New', monospace;
  --shadow-card: 0 1px 2px rgba(67, 53, 43, .08), 0 10px 26px rgba(67, 53, 43, .14);
  --shadow-lift: 0 24px 60px rgba(67, 53, 43, .24);
  /* Win7 sRGB 回退：下列为 color-mix() 派生色的等价色，仅旧浏览器取用，不新增设计语义 */
  --pinpad-srgb: #F7F5EC;
  --key-edge-srgb: #BFB6A9;
  --ok-border-srgb: #633B24;
  --ok-edge-srgb: #77482D;
  --soft-line-srgb: #CFA894;
  --op-line-srgb: #AFB195;
  --busy-edge-srgb: #6B381D;
  --accent-edge-srgb: #77482D;
}
@supports (not (color: oklch(0% 0 0))) {
.tg {
  --bg: #F2ECE0;
  --surface: #F8F6EE;
  --fg: #43352B;
  --muted: #65584E;
  --border: #DDD6C8;
  --accent: #A26440;
  --accent-deep: #945733;
  --cinnabar: #AA4D30;
  --soft: #EDE5D6;
  --soft-green: #EFE2CE;
  --soft-clay: #F4DAC6;
  --soft-cinnabar: #F5D9CD;
  --ink-soft: #C7B8A6;
  --muted-2: #685B50;
  --ink-card: #47372D;
}
}

/* ══ 基座（原 html,body,button 等全局规则，收进 .tg） ═════════ */
.tg *,
.tg *::before,
.tg *::after { box-sizing: border-box }

.tg {
  height: 100%;
  min-height: 100vh;
  min-width: 1080px; /* 窄屏不缩字号、不横向滚动 */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.tg button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.tg h1, .tg h2, .tg h3, .tg p { margin: 0 }

.tg .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums }

/* 硬约束：:focus-visible 2px 赭石环 */
.tg :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px }

.tg [hidden] { display: none !important }

.tg .stage { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden }
.tg .screen { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .24s ease, visibility .24s ease }
@supports not (inset: 0) {
.tg .screen {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0 }
}
.tg .screen.on { opacity: 1; visibility: visible }

/* 主屏屏保（2026-09-30）：全屏宣传图轮播，z-index 高于 PIN 门/壳内容 */
.tg .screensaver { z-index: 100; cursor: pointer; background: var(--bg) }

/* ══ A 身份门 ═══════════════════════════════════════════ */
.tg .gate {
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(470px, 43vw, 650px);
  /* 原型 .42s，按硬约束动效 ≤340ms 收紧 */
  transition: grid-template-columns .34s cubic-bezier(.3, .9, .4, 1);
}

.tg .gate.open { grid-template-columns: minmax(0, 1fr) clamp(520px, 48vw, 720px) }

/* 左半扇：实景轮播 */
.tg .photo { position: relative; overflow: hidden; background: var(--ink-card) }
.tg .shots { position: absolute; inset: 0; z-index: 1 }
@supports not (inset: 0) {
.tg .shots {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0 }
}
.tg .shot { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .34s ease, visibility .34s ease }
@supports not (inset: 0) {
.tg .shot {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0 }
} /* 原型 .55s，按硬约束 ≤340ms 收紧 */
.tg .shot.on { opacity: 1; visibility: visible }
.tg .shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(.62) sepia(.18) contrast(.98) brightness(.92);
}

.tg .shot.promo { display: grid; place-items: center; text-align: center; padding: 48px; background: var(--ink-card) }
.tg .shot.promo .wm { position: absolute; width: min(46vh, 360px); height: min(46vh, 360px); color: var(--paper-ink); opacity: .07 }
.tg .shot.promo .pc { position: relative; z-index: 2; color: var(--paper-ink) }
.tg .shot.promo .pt { font-family: var(--font-display); font-size: 52px; font-weight: 600; letter-spacing: .1em; line-height: 1.3 }
.tg .shot.promo .pl { width: 44px; height: 1px; background: var(--paper-ink); opacity: .5; margin: 22px auto }
.tg .shot.promo .ps { font-size: 15px; letter-spacing: .24em; opacity: .82 }
.tg .shot.promo .pb { margin-top: 26px; font-size: 12px; letter-spacing: .22em; opacity: .66 }

.tg .veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(67, 53, 43, .46) 0%, transparent 42%),
              radial-gradient(120% 90% at 20% 90%, rgba(67, 53, 43, .55), transparent 60%);
  background: linear-gradient(90deg, rgba(67, 53, 43, 0.46) 0%, transparent 42%),
              radial-gradient(120% 90% at 20% 90%, rgba(67, 53, 43, 0.55), transparent 60%);
  background: linear-gradient(90deg, color-mix(in oklab, var(--fg) 46%, transparent) 0%, transparent 42%),
              radial-gradient(120% 90% at 20% 90%, color-mix(in oklab, var(--fg) 55%, transparent), transparent 60%);
}

@supports not (inset: 0) {

.tg .veil {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

.tg .grain {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: .5;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/></filter><rect width='160' height='160' filter='url(%23p)'/></svg>");
}

@supports not (inset: 0) {

.tg .grain {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

.tg .greet { position: absolute; left: 46px; top: 38px; z-index: 4; color: var(--paper-ink); opacity: .92 }
.tg .greet .g1 { font-size: 13px; letter-spacing: .14em; opacity: .85; font-family: var(--font-mono) }
.tg .greet .g2 { font-family: var(--font-display); font-size: 22px; margin-top: 6px; letter-spacing: .06em }

.tg .foot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding: 0 24px 22px 46px;
}

@supports not (gap: 1px) {
  .tg .foot > * + * {
    margin-left: 18px;
  }
}

.tg .pv { flex: 1 1 auto; min-width: 0; max-width: 58%; color: var(--paper-ink) }
.tg .pv .brandrow { display: flex; align-items: center; gap: 12px; margin-bottom: 14px }
@supports not (gap: 1px) {
  .tg .pv .brandrow > * + * {
    margin-left: 12px;
  }
}
.tg .pv .mark { width: 32px; height: 32px; color: var(--paper-ink); opacity: .95 }
.tg .pv .bn { font-family: var(--font-display); font-size: 17px; letter-spacing: .2em }
.tg .pv .shop {
  font-family: var(--font-display);
  font-size: 38px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .04em;
  text-shadow: 0 2px 18px rgba(67, 53, 43, .6);
  text-shadow: 0 2px 18px rgba(67, 53, 43, 0.6);
  text-shadow: 0 2px 18px color-mix(in oklab, var(--fg) 60%, transparent);
}

.tg .pv .line { width: 54px; height: 2px; background: var(--paper-ink); opacity: .6; margin: 16px 0 }
.tg .pv .bind { font-size: 13px; line-height: 1.75; opacity: .93; background: none; padding: 0; overflow: visible }
.tg .pv .bind b { font-weight: 600 }
.tg .gate.open .pv .bind { display: none }

.tg .ctrl { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 8px }

@supports not (gap: 1px) {
  .tg .ctrl > * + * {
    margin-top: 8px;
  }
}
.tg .ctrl .cap {
  max-width: 36ch;
  min-height: 3.1em;
  text-align: right;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--paper-ink);
  opacity: .92;
  letter-spacing: .04em;
}

/* 切图控制（用户 2026-09-17：自己人天天用没人手切，做大反而挡视线）：
 * 箭头与点阵整体缩小、去底色、半透明，保留可点但退为弱存在。
 * min-height 显式覆盖全局触控底线 style.css :where(button){44px}
 * （该底线设计为零特异性可覆盖；此处用户裁定优先）。 */
.tg .ctrl .nav { display: flex; align-items: center; gap: 4px; opacity: .55 }
@supports not (gap: 1px) {
  .tg .ctrl .nav > * + * {
    margin-left: 4px;
  }
}
.tg .arw {
  width: 32px;
  height: 32px;
  min-height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--paper-ink);
  background: transparent;
  border: 0;
  transition: opacity .14s ease, transform .08s ease;
}

.tg .arw:active { transform: translateY(1px); opacity: 1 }
.tg .arw svg { width: 15px; height: 15px }
.tg .dots { display: flex; align-items: center; gap: 0 }
@supports not (gap: 1px) {
  .tg .dots > * + * {
    margin-left: 0;
  }
}
.tg .dots .d { width: 24px; height: 24px; min-height: 24px; display: grid; place-items: center; border-radius: 999px }
.tg .dots .d i {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(251, 247, 236, .42);
  display: block;
  transition: width .22s ease, background .22s ease;
}

.tg .dots .d.on i { width: 14px; background: var(--paper-ink) }
.tg .credit {
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1.5;
  color: var(--paper-ink);
  opacity: .6;
  text-align: right;
  max-width: 46ch;
  min-height: 3em;
}

/* 右半扇：纸门 */
.tg .door {
  position: relative;
  background: var(--surface);
  border-left: 1px solid var(--border);
  box-shadow: var(--shadow-lift);
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.tg .grainy {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .06;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='170' height='170'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='170' height='170' filter='url(%23n)'/></svg>");
}

@supports not (inset: 0) {

.tg .grainy {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}

.tg .doorhead { flex: 0 0 auto; padding: 22px 30px 12px; position: relative; z-index: 2 }
.tg .doorhead h1 { font-family: var(--font-display); font-size: 28px; font-weight: 600; letter-spacing: .03em }
.tg .doorhead .sub { font-size: 12.5px; color: var(--muted); margin-top: 8px }
.tg .doorhead .rule { height: 1px; background: var(--border); margin-top: 14px }

.tg .roster { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 2px 20px 10px 24px; position: relative; z-index: 2 }
.tg .roster::-webkit-scrollbar { width: 9px }
.tg .roster::-webkit-scrollbar-thumb {
  background: rgba(67, 53, 43, .15);
  background: rgba(67, 53, 43, 0.15);
  background: color-mix(in oklab, var(--fg) 15%, transparent);
  border-radius: 999px;
  border: 3px solid var(--surface);
}

.tg .emprow {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 62px;
  padding: 8px 14px;
  border-radius: 12px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  transition: background .14s ease, transform .08s ease;
}

@supports not (gap: 1px) {
  .tg .emprow > * + * {
    margin-left: 13px;
  }
}

.tg .emprow:last-child { border-bottom: 0 }
.tg .emprow:hover { background: var(--soft-green) }
.tg .emprow:active { background: var(--soft); transform: translateY(1px) }
.tg .emprow .idx { font-family: var(--font-mono); font-size: 13px; color: var(--muted-2); width: 24px; flex: 0 0 auto }
.tg .emprow .seal {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  border-radius: 9px;
  background: var(--soft);
  color: var(--muted);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  transition: background .16s ease, color .16s ease, transform .2s cubic-bezier(.3, .9, .4, 1);
}

.tg .emprow .col { display: flex; flex-direction: column; min-width: 0 }
.tg .emprow .nm { font-family: var(--font-display); font-size: 20px; font-weight: 600; letter-spacing: .05em; line-height: 1.25 }
.tg .emprow .role { font-size: 12px; color: var(--muted); line-height: 1.3; margin-top: 2px }
.tg .emprow .flag { font-size: 11px; color: var(--cinnabar); background: var(--soft-cinnabar); border-radius: 5px; padding: 2px 7px; margin-left: auto; flex: 0 0 auto }
.tg .emprow .check {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  color: var(--accent);
  opacity: 0;
  transform: scale(.7);
  transition: opacity .16s ease, transform .2s cubic-bezier(.3, .9, .4, 1);
}

.tg .emprow .check svg { width: 22px; height: 22px; display: block }
.tg .emprow.sel { background: var(--soft-clay); border-bottom-color: transparent }
.tg .emprow.sel .nm { color: var(--accent) }
.tg .emprow.sel .seal { background: var(--accent); color: var(--paper-ink); transform: scale(1.04) }
.tg .emprow.sel .role { color: var(--fg) }
.tg .emprow.sel .check { opacity: 1; transform: scale(1) }
.tg .emprow.void { opacity: .64 }
.tg .emprow.void.sel { background: var(--soft-cinnabar) }
.tg .emprow.void.sel .nm { color: var(--cinnabar) }
.tg .emprow.void.sel .seal { background: var(--cinnabar) }

/* 人数自适应：2–3 人放大填满，9 人以上收紧并可滚动 */
.tg .roster.few .row { min-height: 96px; gap: 16px }
.tg .roster.few .row .seal { width: 46px; height: 46px; font-size: 22px; border-radius: 11px }
.tg .roster.few .row .nm { font-size: 26px }
.tg .roster.few .row .role { font-size: 13px }
.tg .roster.tight .row { min-height: 54px; padding: 5px 14px }
.tg .roster.tight .row .seal { width: 32px; height: 32px; font-size: 16px }
.tg .roster.tight .row .nm { font-size: 18px }
.tg .roster.tight .row .role { margin-top: 0 }

/* 骨架 / 空 / 失败 */
.tg .sk { border-radius: 12px; background: var(--soft); border-bottom: 0; animation: tg-breath 1.4s ease-in-out infinite }
@keyframes tg-breath { 0%, 100% { opacity: .55 } 50% { opacity: 1 } }
.tg .emprow.sk { min-height: 62px }

.tg .wallstate { margin: 10px 4px; background: var(--soft-clay); border: 1px solid rgba(162, 100, 64, .35); border-radius: 14px; padding: 16px 18px }
.tg .wallstate h3 { font-family: var(--font-display); font-size: 17px; font-weight: 600 }
.tg .wallstate p { font-size: 12.5px; color: var(--muted); line-height: 1.7; margin: 8px 0 12px }

.tg .btn2 {
  min-height: 44px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--surface);
  padding: 0 18px;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .14s ease, transform .08s ease;
}

@supports not (gap: 1px) {
  .tg .btn2 > * + * {
    margin-left: 8px;
  }
}

.tg .btn2:hover { background: var(--soft-green) }
.tg .btn2:active { transform: translateY(1px); background: var(--soft) }

/* PIN 台 */
.tg .pinpad {
  flex: 0 0 auto;
  position: relative;
  z-index: 2;
  background: var(--pinpad-srgb);
  background: #F7F5EC;
  background: color-mix(in oklab, var(--surface) 88%, var(--bg));
  border-top: 1px solid var(--border);
  padding: 14px 30px 18px;
}

.tg .whorow { display: flex; align-items: center; gap: 12px; margin-bottom: 12px }

@supports not (gap: 1px) {
  .tg .whorow > * + * {
    margin-left: 12px;
  }
}
.tg .whorow .av {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--accent);
  color: var(--paper-ink);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 600;
  flex: 0 0 auto;
}

.tg .whorow .t1 { font-size: 11.5px; color: var(--muted); line-height: 1.1 }
.tg .whorow .t2 { font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.25 }
.tg .whorow .clear {
  margin-left: auto;
  font-size: 12.5px;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 8px 14px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  transition: background .14s ease;
}

.tg .whorow .clear:hover { background: var(--soft) }
.tg .whorow .clear:active { background: var(--soft-clay) }

.tg .prompt { font-size: 19px; font-family: var(--font-display); font-weight: 600; letter-spacing: .03em; margin-bottom: 6px }
.tg .prompt .sm { font-family: var(--font-body); font-size: 12.5px; color: var(--muted); font-weight: 400; margin-left: 8px; letter-spacing: 0 }
.tg .slots { display: flex; gap: 14px; margin: 6px 0 2px }
@supports not (gap: 1px) {
  .tg .slots > * + * {
    margin-left: 14px;
  }
}
.tg .slot {
  flex: 1 1 0;
  height: 54px;
  border-radius: 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: 30px;
  font-weight: 600;
  transition: background .14s ease, border-color .14s ease;
}

.tg .slot.on { background: var(--soft-green); border-color: var(--accent) }
.tg .slot.err { background: var(--soft-cinnabar); border-color: var(--cinnabar) }
.tg .msg { font-size: 12.5px; min-height: 18px; padding: 7px 0 3px; color: var(--muted) }
.tg .msg.err { color: var(--cinnabar); font-weight: 600 }
.tg .keys { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px }

.tg .key {
  position: relative;
  height: 58px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-bottom: 4px solid var(--key-edge-srgb);
  border-bottom: 4px solid #BFB6A9;
  border-bottom: 4px solid color-mix(in oklab, var(--fg) 18%, var(--border));
  font-family: var(--font-mono);
  font-size: 29px;
  font-weight: 600;
  display: grid;
  place-items: center;
  box-shadow: var(--shadow-card);
  transition: transform .08s ease, background .12s ease;
}

.tg .key:active { transform: translateY(3px); border-bottom-width: 1px; background: var(--soft-clay) }
.tg .key.del { font-family: var(--font-body); font-size: 15px }
.tg .key.ok {
  font-family: var(--font-body);
  font-size: 15px;
  background: var(--accent);
  color: var(--paper-ink);
  border-color: var(--ok-border-srgb);
  border-color: #633B24;
  border-color: color-mix(in oklab, var(--accent) 70%, black);
  border-bottom-color: var(--ok-edge-srgb);
  border-bottom-color: #77482D;
  border-bottom-color: color-mix(in oklab, var(--accent) 80%, black);
}

.tg .key.ok:active { background: var(--accent-deep); border-bottom-width: 1px }
.tg .key[disabled] { opacity: .38; cursor: default }

.tg .pinpad.shake .slots, .tg .pinpad.shake .keys { animation: tg-shk .34s ease }
@keyframes tg-shk { 10%, 90% { transform: translateX(-2px) } 30%, 70% { transform: translateX(4px) } 50% { transform: translateX(-6px) } }

.tg .blockcard {
  margin-top: 12px;
  background: var(--soft-cinnabar);
  border: 1px solid var(--soft-line-srgb);
  border: 1px solid #CFA894;
  border: 1px solid color-mix(in oklab, var(--cinnabar) 34%, var(--border));
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 13px;
  color: var(--fg);
  line-height: 1.7;
}

.tg .blockcard b { color: var(--cinnabar) }

/* ══ B 收银机壳（进门后，所有白名单页共用左侧导航） ═════════════ */
/* 2026-09-30：顶栏改左侧竖排——收银机横屏高度宝贵，顶栏 74px 挤压内容区
 * （右栏订单明细+收款按钮被挤出屏幕，T2 真机反馈）。
 * 侧栏 72px 宽，深色墨底（--ink-card），与 PC rail 同风格：
 * 按钮 56px 高（图标 21px + 文字 11px），选中态左侧 accent 竖条。 */
.tg .pos { background: var(--bg); display: flex; flex-direction: row }
.tg .posbar {
  flex: 0 0 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 0 8px;
  gap: 2px;
  background: var(--ink-card);
  border-right: none;
  overflow-y: auto;
}
@supports not (gap: 1px) {
  .tg .posbar > * + * {
    margin-top: 2px;
  }
}

.tg .posbar .brand {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding-bottom: 8px; margin-bottom: 4px;
  width: 100%;
}

@supports not (gap: 1px) {
  .tg .posbar .brand > * + * {
    margin-top: 4px;
  }
}
.tg .posbar .brand::after {
  content: ""; width: 28px; height: 1px;
  background: rgba(251, 247, 236, 0.16);
  background: color-mix(in oklab, var(--paper-ink) 16%, transparent);
  margin-top: 4px;
}
.tg .posbar .mark { width: 28px; height: 28px; color: var(--paper-ink); opacity: .85 }
.tg .posbar .bn { font-family: var(--font-display); font-size: 11px; letter-spacing: .2em; color: var(--ink-soft) }

/* 操作人（紧凑：头像+名字，底部锁定上方） */
.tg .posbar .op {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 8px 4px 6px; width: 100%;
  margin-top: auto;
}
@supports not (gap: 1px) {
  .tg .posbar .op > * + * {
    margin-top: 3px;
  }
}
.tg .posbar .op::before {
  content: ""; width: 28px; height: 1px;
  background: rgba(251, 247, 236, 0.16);
  background: color-mix(in oklab, var(--paper-ink) 16%, transparent);
  margin-bottom: 4px;
}
.tg .posbar .op .av {
  width: 28px; height: 28px; border-radius: 999px;
  background: var(--st-served); color: var(--paper-ink);
  display: grid; place-items: center;
  font-size: 12px; font-weight: 600;
}
.tg .posbar .op .nm {
  font-size: 10px; color: var(--ink-soft);
  max-width: 60px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* 页签竖排（config.allowed_pages ∩ 操作员权限；仅一页时不显示） */
.tg .navtabs {
  flex: 1; display: flex; flex-direction: column; gap: 2px;
  width: 100%; padding: 0 6px; overflow-y: auto;
}
@supports not (gap: 1px) {
  .tg .navtabs > * + * {
    margin-top: 2px;
  }
}
.tg .navtab {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; height: 56px; padding: 0;
  border: none; border-radius: 11px;
  background: none; color: var(--ink-soft);
  font-family: inherit; font-size: 11px; line-height: 1;
  cursor: pointer; transition: background .16s ease, color .16s ease;
}
@supports not (gap: 1px) {
  .tg .navtab > * + * {
    margin-top: 4px;
  }
}
.tg .navtab svg { width: 21px; height: 21px; }
.tg .navtab:hover {
  background: rgba(251, 247, 236, 0.08);
  background: color-mix(in oklab, var(--paper-ink) 8%, transparent);
  color: var(--paper-ink);
}
.tg .navtab:active { transform: translateY(1px) }
.tg .navtab.on {
  background: rgba(251, 247, 236, 0.13);
  background: color-mix(in oklab, var(--paper-ink) 13%, transparent);
  color: var(--paper-ink);
  font-weight: 600;
}
.tg .navtab.on::before {
  content: ""; position: absolute; left: -6px; top: 12px; bottom: 12px;
  width: 3px; border-radius: 2px; background: var(--accent);
}

/* 锁定 · 换班（底部常驻，≥48px 高频主操作） */
.tg .lockbtn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px; width: calc(100% - 12px); min-height: 48px; padding: 4px;
  border: 1px solid rgba(251, 247, 236, 0.16);
  border: 1px solid color-mix(in oklab, var(--paper-ink) 16%, transparent);
  border-radius: 11px;
  background: none; color: var(--ink-soft);
  font-family: inherit; font-size: 10px; line-height: 1.2;
  cursor: pointer; transition: border-color .15s, color .15s;
}
@supports not (gap: 1px) {
  .tg .lockbtn > * + * {
    margin-top: 2px;
  }
}
.tg .lockbtn:hover { border-color: var(--cinnabar); color: var(--cinnabar) }
.tg .lockbtn:active { transform: translateY(1px) }
.tg .lockbtn svg { width: 16px; height: 16px }

/* （原 B 屏点单占位示意样式 .posgrid/.ph/.mini/.m/.m2/.rows/.r 已删除：
 * 方案一换真实点单台后成死代码，且裸类名 .tg .r 击中嵌入页（会员表
 * th.r/td.r 右对齐列）把 table-cell 改成 flex，导致「储值余额/累计充值」
 * 两列被 Chrome 匿名表格修复竖向叠成一列——2026-09-17 实机定位，
 * 防回归见 terminalCssScope.test.ts 源码锁。） */

/* 白名单受限页兜底（未知页签防御；六个真实页见下节） */
.tg .limited {
  flex: 1 1 auto;
  min-height: 0;
  margin: 22px 40px 32px;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-card);
}

.tg .limited .in { text-align: center; padding: 40px }
.tg .limited h3 { font-family: var(--font-display); font-size: 24px; font-weight: 600; letter-spacing: .04em }
.tg .limited p { font-size: 13px; color: var(--muted); margin-top: 10px; line-height: 1.8 }

/* ══ B 屏点单页签：真实点单台（PosRuntimeGate/ManagerPOSView）══
 * .dpos 自带 height:100vh（/manage/pos 全屏语境）；收银机壳顶栏常驻在上方，
 * 这里收到容器内（height:100%），Win7 无关（纯尺寸覆盖，无新色值）。 */
.tg .posreal {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  /* .dpos 自带 min-width:1080px：视口不足时给横向滚动条而不是静默裁切
   * （2026-09-17 实机：1366 物理 @125% 缩放 ≈1093 CSS px 机型存在） */
  overflow: auto;
}
.tg .posreal .dpos { height: 100%; }
/* 收银机壳内禁用点单台纸纹覆盖层（B-488）：
 * .dpos::before 是 position:fixed + z-index:2000 + mix-blend-mode:multiply + SVG 噪点滤镜，
 * 在低端 Chromium GPU（商米 T2 安卓 WebView 等）上触发 GPU 合成失败 → 全屏白屏。
 * 收银机壳自身已有 .grain/.grainy 纸纹效果，此处覆盖不影响视觉。 */
.tg .posreal .dpos::before { display: none; }
/* 点单台自带的 PC 一级导航 rail 在收银机上整体隐藏（用户 2026-09-17 裁定）：
 * 终端壳顶栏已有本店页签，rail 里的 茶事/财务/管理 等入口在收银机上不可达，
 * 且 fixed 定位的 rail 会盖住终端壳左缘。--rail-w 归零让 PcModal/PcDrawer
 * 遮罩与 PosPano 的左起点随之对齐（组件无 teleport，变量自 .dpos 继承）。 */
.tg .posreal .pc-rail,
.tg .posreal .pc-flyout { display: none; }
.tg .posreal .dpos-stage { margin-left: 0; }
.tg .posreal .dpos { --rail-w: 0px; }

/* ── 收银机触屏适配（2026-09-30 T2 真机反馈：按钮扁、高度不够） ──
 * 设计规范：收银主操作 ≥48px，高频主操作 56px+。
 * 只提高度不改宽度/字号，PC 版不受影响。 */
.tg .posreal .pc-btn--lg { min-height: 56px; }
.tg .posreal .pc-btn { min-height: 48px; }
.tg .posreal .dord-step button { width: 48px; height: 48px; font-size: 20px; }
.tg .posreal .dord-adj { min-height: 56px; }
.tg .posreal .dord-rate { min-height: 48px; }
.tg .posreal .dord-custom { min-height: 48px; }
.tg .posreal .dord-ghost { min-height: 48px; }
.tg .posreal .dord-st-btn { min-height: 44px; }
.tg .posreal .dord-combo-fill,
.tg .posreal .dord-combo-static { min-height: 44px; }

/* 弹层按钮（收款/规格/套餐/移桌/清台等 PcModal 内的操作按钮） */
.tg .posreal .dspec-chip,
.tg .posreal .dfixed-chip { min-height: 56px; }
.tg .posreal .dpay-method { min-height: 56px; }
.tg .posreal .dpay-chan { min-height: 56px; }
.tg .posreal .dpay-split { min-height: 48px; }

/* 菜单区：类目 chips / 搜索框 / 商品卡片 */
.tg .posreal .dmenu-cat { min-height: 44px; }
.tg .posreal .dmenu-search { height: 44px; }
.tg .posreal .dmenu-search input { height: 42px; }

/* 席位区：总览/未付/未结/外带卡/外带新建 */
.tg .posreal .drail-pano-btn { min-height: 44px; }
.tg .posreal .drail-unpaid { min-height: 44px; }
.tg .posreal .drail-unclosed { min-height: 48px; }
.tg .posreal .drail-takeout-card { min-height: 52px; }
.tg .posreal .drail-takeout-new { min-height: 56px; }

/* 点单/队列切换 */
.tg .posreal .dpos-seg button { min-height: 48px; }

/* 收款弹层：分笔渠道选择/选项/删除/金额输入 */
.tg .posreal .dpay-chan-box { min-height: 48px; }
.tg .posreal .dpay-chan-opt { min-height: 48px; }
.tg .posreal .dpay-split-del { width: 48px; height: 48px; }
.tg .posreal .dpay-split input { min-height: 48px; }
.tg .posreal .dpay-amount-row input { min-height: 48px; }

/* ══ B 屏真实页面容器（方案一：与 /manage 同款组件）══
 * 管理页组件默认在 ManagerShell 的滚动内容区里渲染；这里提供同等的
 * 滚动容器、页面底色（--color-lime）与左右留白（对齐桌面壳 0 28px 口径，
 * 2026-09-17 实机：无留白时会员页贴边挤压）。
 *
 * 可读性（用户 2026-09-17 实机反馈定因）：管理页小签条（营业中/待领取/逾期
 * 等）用宋体 display 字体配 10.5–11px——衬线笔画在低 DPI 触摸屏上发虚。
 * 收银机页面容器内把 --font-display 重定义为无衬线正文字体（变量级覆盖，
 * 一次性作用于全部嵌入页面；PC 后台不受影响）。 */
.tg .realwrap,
.tg .realwrap * {
  /* 逐元素压制模块级字体重声明（如 tasksPc/todayPc 在各自根上自声明
   * --font-display/--font-mono，祖先层覆盖会被它们击败）：每个元素自身
   * 持有本声明，特异度 (0,2,0) 高于模块根 (0,1,0)。
   * - display 一律黑体（宋体在该机渲染发虚，2026-09-17 实机三轮定因）；
   * - mono 补 Consolas 回退：模块自带的等宽栈在 Win7 落到 Courier New
   *   （细衬线等宽，与宋体同病），今日页大量时间/数字即此症状。 */
  --font-display: var(--font-body);
  --font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, 'Courier New', monospace;
}
.tg .realwrap {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow: auto;
  background: var(--color-lime);
  padding: 24px 28px 72px;
}
/* 不做整体 zoom 放大（2026-09-17 实机回滚）：zoom 会把布局宽度压到
 * 1080px 设计线以下（1366 物理 @125% 缩放 ≈1093 CSS px，再 ÷1.2 只剩
 * ~911px），会员宽表（最小 ~950px）、点单台（min-width 1080px）、对账
 * 页右缘被裁切。发虚的根治是上面的字体替换与令牌加深，与放大无关。 */
.tg .realwrap > * {
  min-width: 0;
}

/* ══ B 屏受限真实页（today/tasks/reservations/inventory/members/settlements） ══
 * Win7 纪律：本节零新增 hex / 零 oklch / 零 color-mix / 零 backdrop-filter /
 * 零 aspect-ratio——全部复用 .tg 令牌（令牌区已含成对 sRGB 回退），动效 ≤340ms。 */
.tg .realpage {
  flex: 1 1 auto;
  min-height: 0;
  margin: 22px 40px 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
}
@supports not (gap: 1px) {
  .tg .realpage > * + * {
    margin-top: 14px;
  }
}

.tg .dayhead { flex: 0 0 auto; display: flex; align-items: baseline; gap: 10px; font-size: 13px; color: var(--muted) }

@supports not (gap: 1px) {
  .tg .dayhead > * + * {
    margin-left: 10px;
  }
}
.tg .dayhead b { font-family: var(--font-display); font-size: 19px; font-weight: 600; color: var(--fg); letter-spacing: .04em }
.tg .dayrule { flex: 1 1 auto; height: 1px; background: var(--border); align-self: center }
.tg .dayhint { flex: 0 0 auto; font-size: 12px; color: var(--muted-2) }
.tg .sk-inline { display: inline-block; width: 92px; height: 17px; border-radius: 6px; background: var(--soft); vertical-align: middle; animation: tg-breath 1.4s ease-in-out infinite }

/* today：三张指标卡 */
.tg .kpis { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px }
.tg .kpi {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-card);
  padding: 26px 30px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}
@supports not (gap: 1px) {
  .tg .kpi > * + * {
    margin-top: 8px;
  }
}

.tg .kpi .kl { font-size: 13px; color: var(--muted); letter-spacing: .1em }
.tg .kpi .kv { font-size: 58px; font-weight: 600; line-height: 1.15 }
.tg .kpi .ku { font-size: 12.5px; color: var(--muted-2) }
.tg .kpi.sk { background: var(--soft); box-shadow: none; animation: tg-breath 1.4s ease-in-out infinite }

/* 通用列表区（可滚动） */
.tg .pgscroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-card);
  padding: 4px 18px;
}

.tg .pgscroll::-webkit-scrollbar { width: 9px }
.tg .pgscroll::-webkit-scrollbar-thumb {
  background: rgba(67, 53, 43, .15);
  background: rgba(67, 53, 43, 0.15);
  background: color-mix(in oklab, var(--fg) 15%, transparent);
  border-radius: 999px;
  border: 3px solid var(--surface);
}

.tg .pgrow {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 52px; /* 触屏：行高 ≥48px */
  padding: 6px 10px;
  border-bottom: 1px solid var(--border);
  font-size: 14.5px;
}

@supports not (gap: 1px) {
  .tg .pgrow > * + * {
    margin-left: 14px;
  }
}

.tg .pgrow:last-child { border-bottom: 0 }
.tg .pgrow .ta-r { text-align: right }
.tg .ta-r { text-align: right }

/* tasks：状态三通道（颜色 + 点形 + 文字） */
.tg .sdot { width: 12px; height: 12px; flex: 0 0 auto; border-radius: 999px; display: inline-block }
.tg .sdot.pending { background: var(--accent) }
.tg .sdot.done { background: transparent; border: 3px solid var(--st-served) }
.tg .sdot.expired { width: 11px; height: 11px; border-radius: 2px; background: var(--muted-2); transform: rotate(45deg) }
.tg .sdot.sm { width: 9px; height: 9px }
.tg .sdot.sm.done { border-width: 2px }
.tg .sdot.sm.expired { width: 8px; height: 8px }

.tg .pgrow.task .tt { flex: 1 1 auto; min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.tg .pgrow.task .ta { flex: 0 0 auto; font-size: 12.5px; color: var(--muted) }
.tg .pgrow.task .tdate { flex: 0 0 auto; font-size: 12px; color: var(--muted-2) }
.tg .tst {
  margin-left: auto;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--soft);
  font-size: 12.5px;
  color: var(--fg);
}
@supports not (gap: 1px) {
  .tg .tst > * + * {
    margin-left: 8px;
  }
}

/* reservations：时间线行 + 状态小签（浅底彩点，不整行深染） */
.tg .pgrow.resv .rtime { flex: 0 0 auto; width: 66px; font-size: 19px; font-weight: 600 }
.tg .pgrow.resv .rguest { flex: 1 1 auto; min-width: 0; font-weight: 600; font-size: 15.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.tg .pgrow.resv .rsize { flex: 0 0 auto; color: var(--muted); font-size: 13.5px }
.tg .rchip {
  margin-left: auto;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12.5px;
  color: var(--fg);
}
@supports not (gap: 1px) {
  .tg .rchip > * + * {
    margin-left: 7px;
  }
}

.tg .rchip i { width: 8px; height: 8px; border-radius: 999px; display: block }
.tg .rs-pending { background: var(--soft) } .tg .rs-pending i { background: var(--muted) }
.tg .rs-confirmed { background: var(--soft-green) } .tg .rs-confirmed i { background: var(--st-served) }
.tg .rs-arrived { background: var(--soft-clay) } .tg .rs-arrived i { background: var(--accent) }
.tg .rs-completed { background: var(--st-free) } .tg .rs-completed i { background: var(--st-paid) }
.tg .rs-cancelled { background: var(--bg); color: var(--muted) } .tg .rs-cancelled i { background: var(--muted-2) }

/* inventory：计数 + 表格行 + 异常提示区 */
.tg .crouchips { flex: 0 0 auto; display: flex; align-items: center; gap: 12px }
@supports not (gap: 1px) {
  .tg .crouchips > * + * {
    margin-left: 12px;
  }
}
.tg .cchip {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  min-height: 44px;
  padding: 8px 18px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 13px;
  color: var(--muted);
}
@supports not (gap: 1px) {
  .tg .cchip > * + * {
    margin-left: 8px;
  }
}

.tg .cchip b { font-size: 22px; font-weight: 600; color: var(--fg) }
.tg .cchip.sk { width: 120px; background: var(--soft); animation: tg-breath 1.4s ease-in-out infinite }

.tg .pghead {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 44px;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  color: var(--muted);
  letter-spacing: .05em;
}

@supports not (gap: 1px) {
  .tg .pghead > * + * {
    margin-left: 14px;
  }
}

.tg .pgrow.inv, .tg .pghead.inv {
  display: grid;
  grid-template-columns: minmax(0, 2.4fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(64px, .8fr) minmax(96px, 1fr);
  align-items: center;
  gap: 12px;
}

.tg .pgrow.inv .inm { font-weight: 600 }
.tg .pgrow.inv .ict, .tg .pgrow.inv .irs { font-size: 13px; color: var(--muted) }
.tg .pgrow.inv .iun { font-size: 13px; color: var(--muted) }
.tg .pgrow.inv .iqt { font-size: 14.5px; font-weight: 600 }

.tg .alertzone { flex: 0 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 8px; max-height: 42% }

@supports not (gap: 1px) {
  .tg .alertzone > * + * {
    margin-top: 8px;
  }
}
.tg .alertyhead { font-size: 12.5px; color: var(--cinnabar); font-weight: 600; letter-spacing: .05em }
.tg .pgscroll.alerts { flex: 1 1 auto; min-height: 96px }
.tg .pgrow.alert .inm { font-weight: 600 }
.tg .aflag {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  color: var(--cinnabar);
  background: var(--soft-cinnabar); /* 赭红浅底行内提示，不整行深染 */
  border-radius: 6px;
  padding: 4px 10px;
  min-height: 26px;
  display: inline-flex;
  align-items: center;
}

.tg .pgrow.alert .ahint { margin-left: auto; font-size: 12.5px; color: var(--muted-2) }

/* members：结果行（左）+ 自绘数字键盘（右，复用 .keys/.key） */
.tg .memgrid { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 24vw, 340px); gap: 18px }
.tg .mempanel { min-height: 0; display: flex; flex-direction: column; gap: 12px }
@supports not (gap: 1px) {
  .tg .mempanel > * + * {
    margin-top: 12px;
  }
}
.tg .mquery {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 64px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 8px 18px;
}
@supports not (gap: 1px) {
  .tg .mquery > * + * {
    margin-left: 14px;
  }
}

.tg .mquery .mql { flex: 0 0 auto; font-size: 12px; color: var(--muted); letter-spacing: .06em }
.tg .mquery .mqd { flex: 1 1 auto; min-width: 0; font-size: 30px; font-weight: 600; letter-spacing: .16em }
.tg .mquery .mqd.dim { color: var(--muted-2); font-size: 20px; font-weight: 400; letter-spacing: .04em }
.tg .mquery .mqh { flex: 0 0 auto; font-size: 12px; color: var(--muted-2) }
.tg .memkeys { display: flex; flex-direction: column; gap: 12px; min-height: 0 }
@supports not (gap: 1px) {
  .tg .memkeys > * + * {
    margin-top: 12px;
  }
}
.tg .memkeys .keys { flex: 0 0 auto }
.tg .memnote { font-size: 11px; line-height: 1.8; color: var(--muted-2) }

.tg .pgrow.member, .tg .pghead.mem {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(110px, 1fr) minmax(76px, .8fr);
  align-items: center;
  gap: 12px;
}

.tg .pgrow.member .mno { font-size: 13px; color: var(--muted) }
.tg .pgrow.member .mnm { font-weight: 600; font-size: 15.5px }
.tg .pgrow.member .mph { font-size: 13.5px; color: var(--muted) }
.tg .pgrow.member .mba { font-weight: 600; font-size: 15px }
.tg .pgrow.member .mdi { color: var(--muted) }

/* settlements：日期胶囊 + 双栏卡片 */
.tg .pillrow { flex: 0 0 auto; display: flex; align-items: center; gap: 10px }
@supports not (gap: 1px) {
  .tg .pillrow > * + * {
    margin-left: 10px;
  }
}
.tg .daypill {
  min-height: 48px; /* 触屏点击区 ≥44px */
  padding: 0 22px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .14s ease, border-color .14s ease;
}
@supports not (gap: 1px) {
  .tg .daypill > * + * {
    margin-left: 8px;
  }
}

.tg .daypill:hover { background: var(--soft-green) }
.tg .daypill:active { transform: translateY(1px) }
.tg .daypill.on { background: var(--soft-clay); border-color: var(--accent); color: var(--accent); font-weight: 600 }
.tg .daypill.sk { width: 120px; background: var(--soft); color: transparent; animation: tg-breath 1.4s ease-in-out infinite }

.tg .setgrid { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 18px }
.tg .setcol { min-height: 0; display: flex; flex-direction: column; gap: 18px }
@supports not (gap: 1px) {
  .tg .setcol > * + * {
    margin-top: 18px;
  }
}
.tg .settle-card { display: flex; flex-direction: column; min-height: 0 }
.tg .settle-card.exc { overflow: hidden }
.tg .sk-card { background: var(--soft); box-shadow: none; animation: tg-breath 1.4s ease-in-out infinite }

.tg .mrow {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 48px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
}

@supports not (gap: 1px) {
  .tg .mrow > * + * {
    margin-left: 14px;
  }
}

.tg .settle-card .mrow:last-child { border-bottom: 0 }
.tg .mrow .ml { color: var(--muted) }
.tg .mrow .mv { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; font-size: 15.5px }
.tg .mrow .mv.nil { color: var(--muted-2); font-weight: 400 }
.tg .mrow .mv.neg { color: var(--cinnabar) }
.tg .mrow .mv.pos { color: var(--st-served) }
.tg .mrow.total { border-top: 2px solid var(--border); border-bottom: 0 }
.tg .mrow.total .ml { color: var(--fg); font-weight: 600 }

.tg .pgrow.exc, .tg .pghead.exc {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}

.tg .pgrow.exc .ech { font-weight: 600 }
.tg .pgrow.exc .esa { font-size: 14px }
.tg .pgrow.exc .esa.neg { color: var(--cinnabar); font-weight: 600 }

/* 受限页统一空态 / 错误 / 403 面板 */
.tg .pgempty {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-card);
}

.tg .pgempty h3 { font-family: var(--font-display); font-size: 20px; font-weight: 600; letter-spacing: .03em }
.tg .pgempty p { font-size: 13px; color: var(--muted); margin-top: 10px; line-height: 1.8 }
.tg .pgempty.inline { flex: 0 0 auto; background: transparent; border: 0; box-shadow: none; padding: 18px 4px }

.tg .pgstate {
  margin: auto;
  flex: 0 0 auto;
  text-align: center;
  padding: 40px 44px;
  max-width: 560px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-card);
}

.tg .pgstate h3 { font-family: var(--font-display); font-size: 21px; font-weight: 600; letter-spacing: .03em }
.tg .pgstate p { font-size: 13px; color: var(--muted); margin: 10px 0 16px; line-height: 1.8 }
.tg .pgstate.lock h3 { color: var(--cinnabar) }
.tg .pgstate .btn2 { min-height: 48px }

.tg .idlepill {
  position: absolute;
  right: 40px;
  bottom: 22px;
  display: none;
  align-items: center;
  gap: 12px;
  background: var(--ink-card);
  color: var(--paper-ink);
  padding: 10px 12px 10px 18px;
  border-radius: 999px;
  font-size: 13px;
  z-index: 9;
}

.tg .idlepill.on { display: inline-flex }
.tg .idlepill button { background: var(--paper-ink); color: var(--ink-card); border-radius: 999px; padding: 9px 16px; font-size: 13px; font-weight: 600; min-height: 44px }

/* ══ C 未绑定 ═══════════════════════════════════════════ */
.tg .bind { background: var(--bg); display: block; overflow-y: auto; padding: 44px 40px }
.tg .bindwrap { min-height: 100%; display: flex; align-items: center; justify-content: center }
.tg .bindcard {
  width: 100%;
  max-width: 560px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: var(--shadow-card);
  padding: 38px 42px;
  position: relative;
  overflow: hidden;
}

.tg .bindcard .grainy { border-radius: 20px }
.tg .bindmark { width: 54px; height: 54px; color: var(--accent); margin-bottom: 20px }
.tg .bindtitle { font-family: var(--font-display); font-size: 30px; font-weight: 600; line-height: 1.3; letter-spacing: .02em }
.tg .bindlead { font-size: 13.5px; line-height: 1.8; color: var(--muted); margin-top: 12px }
.tg .bindform { display: flex; flex-direction: column; gap: 16px; margin-top: 24px }
@supports not (gap: 1px) {
  .tg .bindform > * + * {
    margin-top: 16px;
  }
}
.tg .fld { display: flex; flex-direction: column; gap: 7px }
@supports not (gap: 1px) {
  .tg .fld > * + * {
    margin-top: 7px;
  }
}
.tg .fld > span { font-size: 12.5px; color: var(--muted); letter-spacing: .06em }
.tg .fld input {
  height: 46px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font: inherit;
  font-size: 15px;
  padding: 0 14px;
}

.tg .fld input { font-family: var(--font-mono); letter-spacing: .14em }
/* 登记码框中文提示：不走等宽栈（Win7 掉到衬线回退），且不用浏览器默认的
 * 半透明 placeholder 灰——正文字体 + muted 实色，低 DPI 触摸屏可读（2026-09-17 实机反馈） */
.tg .fld input::placeholder {
  font-family: var(--font-body);
  letter-spacing: .02em;
  color: var(--muted);
  opacity: 1;
}
.tg .errline {
  font-size: 12.5px;
  color: var(--cinnabar);
  background: var(--soft-cinnabar);
  border: 1px solid var(--soft-line-srgb);
  border: 1px solid #CFA894;
  border: 1px solid color-mix(in oklab, var(--cinnabar) 34%, var(--border));
  border-radius: 10px;
  padding: 9px 12px;
}

.tg .btn {
  height: 56px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .04em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  transition: transform .08s ease, background .12s ease;
}

@supports not (gap: 1px) {
  .tg .btn > * + * {
    margin-left: 9px;
  }
}

.tg .btn.primary {
  background: var(--accent);
  color: var(--paper-ink);
  border-bottom: 5px solid var(--accent-edge-srgb);
  border-bottom: 5px solid #77482D;
  border-bottom: 5px solid color-mix(in oklab, var(--accent) 80%, black);
}

.tg .btn.primary:active { transform: translateY(3px); border-bottom-width: 2px }
.tg .btn.primary[disabled] { opacity: .5; cursor: default }
.tg .bindnote { font-size: 11px; line-height: 1.8; color: var(--muted-2); margin-top: 20px; padding-top: 18px; border-top: 1px dashed var(--border) }
.tg .bindok { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 18px 0 }
@supports not (gap: 1px) {
  .tg .bindok > * + * {
    margin-top: 12px;
  }
}
.tg .bindok h2 { font-family: var(--font-display); font-size: 23px; font-weight: 600 }
.tg .bindok p { font-size: 13px; color: var(--muted); line-height: 1.8; max-width: 36ch }
.tg .spin { width: 52px; height: 52px; border-radius: 999px; border: 3px solid var(--border); border-top-color: var(--accent); animation: tg-spin 1s linear infinite; margin: 0 auto 6px }
@keyframes tg-spin { to { transform: rotate(360deg) } }

/* Toast */
.tg .toasts {
  position: fixed;
  left: 50%;
  bottom: 64px;
  transform: translateX(-50%);
  z-index: 2300;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  pointer-events: none;
}
@supports not (gap: 1px) {
  .tg .toasts > * + * {
    margin-top: 8px;
  }
}

.tg .toast {
  background: var(--ink-card);
  color: var(--paper-ink);
  font-size: 13px;
  padding: 11px 20px;
  border-radius: 999px;
  letter-spacing: .04em;
  box-shadow: var(--shadow-lift);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
}

.tg .toast.on { opacity: 1; transform: translateY(0) }

@media (prefers-reduced-motion: reduce) {
  .tg * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important }
}

/* ══════════════════════════════════════════════════════════════════
   客显副屏（.cd · /#/terminal/customer-display · 商米 T2 第二屏）
   设计基准 1280×800（T2 客显 10.1"）；只读无交互；客人 1 米外可读——
   品名 ≥28px、合计 ≥64px。复用 .tg 同源令牌（terminal.css 顶部定义）。
   ══════════════════════════════════════════════════════════════════ */
.cd *,
.cd *::before,
.cd *::after { box-sizing: border-box }

.cd {
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  background: var(--ink-card);
  color: var(--paper-ink);
  font-family: var(--font-body);
  display: flex;
  flex-direction: column;
}

/* ── 待机态：宣传图轮播 ── */
.cd .cd-idle { position: relative; flex: 1; overflow: hidden; display: grid; place-items: center }
.cd .cd-idle-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; animation: cd-fade 1.2s ease both;
}
@supports not (inset: 0) {
.cd .cd-idle-img {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
}
.cd .cd-idle-cap {
  position: absolute; left: 40px; bottom: 32px; z-index: 2;
  font-size: 24px; letter-spacing: .08em; opacity: .92;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
}
.cd .cd-idle-brand { text-align: center }
.cd .cd-idle-mark {
  font-family: var(--font-display); font-size: 120px; font-weight: 600;
  letter-spacing: .18em; line-height: 1.2;
}
.cd .cd-idle-sub { font-size: 32px; letter-spacing: .5em; opacity: .72; margin-top: 18px; padding-left: .5em }

/* ── 点单态：明细 + 合计 ── */
.cd .cd-order { flex: 1; display: flex; flex-direction: column; min-height: 0; background: var(--bg); color: var(--fg) }
.cd .cd-order-head {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 28px 48px 20px; border-bottom: 1px solid var(--soft);
}
.cd .cd-seat { font-family: var(--font-display); font-size: 40px; font-weight: 600; letter-spacing: .06em }
.cd .cd-orderno { font-family: var(--font-mono); font-size: 20px; color: var(--muted-2); letter-spacing: .04em }
.cd .cd-items {
  flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: none;
  list-style: none; margin: 0; padding: 12px 48px;
}
.cd .cd-items::-webkit-scrollbar { display: none }
.cd .cd-item {
  display: flex; align-items: baseline; gap: 24px;
  padding: 18px 0; border-bottom: 1px dashed var(--soft);
  animation: cd-rise .35s ease both;
}
@supports not (gap: 1px) {
  .cd .cd-item > * + * {
    margin-left: 24px;
  }
}
.cd .cd-item-name { flex: 1; min-width: 0; font-size: 32px; letter-spacing: .04em }
.cd .cd-item-qty { font-size: 24px; color: var(--muted-2); font-family: var(--font-mono) }
.cd .cd-item-sub { font-size: 30px; font-family: var(--font-mono); min-width: 140px; text-align: right }
/* 套餐子项：缩进 + 小一号字 + 弱化 + 无价格（0 元不计价，仅展示「含什么」） */
.cd .cd-item--bundle { padding: 10px 0 10px 56px; border-bottom-style: none }
.cd .cd-item--bundle .cd-item-name { font-size: 24px; color: var(--muted-2) }
.cd .cd-item--bundle .cd-item-qty { font-size: 20px }
.cd .cd-item-bundletag {
  display: inline-block; margin-right: 12px; padding: 2px 10px 3px;
  border: 1px solid var(--soft); border-radius: 6px;
  font-size: 18px; letter-spacing: .1em; color: var(--muted-2);
  vertical-align: 4px;
}
.cd .cd-order-foot {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 26px 48px 34px; background: var(--ink-card); color: var(--paper-ink);
}
.cd .cd-total-label { font-size: 30px; letter-spacing: .3em; opacity: .85 }
.cd .cd-total { font-family: var(--font-mono); font-size: 68px; font-weight: 600; letter-spacing: .02em }

/* ── 收讫态 ── */
.cd .cd-paid { flex: 1; display: grid; place-items: center; align-content: center; gap: 28px; background: var(--ink-card) }
.cd .cd-paid-stamp {
  font-family: var(--font-display); font-size: 96px; font-weight: 600; letter-spacing: .22em;
  color: var(--cinnabar); border: 6px solid var(--cinnabar); border-radius: 12px;
  padding: 18px 46px 18px 58px; transform: rotate(-4deg);
  animation: cd-stamp .45s cubic-bezier(.2, 1.4, .4, 1) both;
}
.cd .cd-paid-amount { font-family: var(--font-mono); font-size: 88px; font-weight: 600 }
.cd .cd-paid-seat { font-size: 30px; letter-spacing: .2em; opacity: .75 }

@keyframes cd-fade { from { opacity: 0 } to { opacity: 1 } }
@keyframes cd-rise { from { opacity: 0; transform: translateY(14px) } to { opacity: 1; transform: none } }
@keyframes cd-stamp { from { opacity: 0; transform: rotate(-4deg) scale(1.6) } to { opacity: 1; transform: rotate(-4deg) scale(1) } }

@media (prefers-reduced-motion: reduce) {
  .cd * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important }
}

.denied[data-v-f65cd7ef] { padding: 60px 24px; text-align: center; font-size: 14px; color: var(--color-wood-gray); font-family: var(--font-sans);
}
.switched-banner[data-v-f65cd7ef] {
  position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 9999;
  padding: 8px 18px; border-radius: 999px; font-size: 13px; font-family: var(--font-sans);
  background: var(--color-ink, #2b2620); color: var(--color-paper, #f7f3ec);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18); opacity: 0.95;
}
