/* LNY-PRD prototype kit — Material UI v5 default theme (MD2) visual equivalent.
   Tokens match @mui/material createTheme() light mode. No npm. */
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,400&display=swap");

:root {
  --md-primary: #1976d2;
  --md-primary-light: #42a5f5;
  --md-primary-dark: #1565c0;
  --md-primary-contrast: #fff;
  --md-secondary: #9c27b0;
  --md-secondary-light: #ba68c8;
  --md-secondary-dark: #7b1fa2;
  --md-error: #d32f2f;
  --md-error-light: #ef5350;
  --md-error-dark: #c62828;
  --md-warning: #ed6c02;
  --md-info: #0288d1;
  --md-success: #2e7d32;
  --md-text: rgba(0, 0, 0, 0.87);
  --md-text-secondary: rgba(0, 0, 0, 0.6);
  --md-text-disabled: rgba(0, 0, 0, 0.38);
  --md-divider: rgba(0, 0, 0, 0.12);
  --md-hover: rgba(0, 0, 0, 0.04);
  --md-selected: rgba(0, 0, 0, 0.08);
  --md-focus: rgba(25, 118, 210, 0.12);
  --md-primary-soft: rgba(25, 118, 210, 0.12);
  --md-bg: #fff;
  --md-bg-default: #fafafa;
  --md-bg-paper: #fff;
  --md-grey-50: #fafafa;
  --md-grey-100: #f5f5f5;
  --md-grey-200: #eeeeee;
  --md-grey-300: #e0e0e0;
  --md-grey-400: #bdbdbd;
  --md-radius-xs: 2px;
  --md-radius-sm: 4px;
  --md-radius: 4px;
  --md-radius-md: 8px;
  --md-radius-lg: 12px;
  --md-radius-xl: 16px;
  --md-radius-2xl: 20px;
  --md-radius-pill: 999px;
  --md-radius-circle: 50%;
  --md-radius-sheet-top: var(--md-radius-xl) var(--md-radius-xl) 0 0;
  --md-radius-tag-br: 0 0 var(--md-radius-md) 0;
  --md-radius-tag-bl: 0 0 0 var(--md-radius-md);
  --md-radius-dialog: var(--md-radius-md);
  --md-space: 8px;
  --md-module-gap: 12px;
  --md-scroll-bg: #f7f7f7;
  --md-scroll-pad-top: 12px;
  --md-scroll-pad-bottom: calc(12px + var(--md-safe-b, 0px));
  --md-font: Roboto, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
  --md-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --md-duration: 250ms;
  --md-appbar-h: 64px;
  --md-appbar-h-mobile: 56px;
  --md-tabbar-h: 48px;
  --md-status-h: 28px;
  --md-drawer-w: 240px;
  --md-safe-edge: 12px;
  --md-safe-edge-y: 0px;
  --md-safe-t: max(var(--md-safe-edge-y), env(safe-area-inset-top, 0px));
  --md-safe-r: max(var(--md-safe-edge), env(safe-area-inset-right, 0px));
  --md-safe-b: max(var(--md-safe-edge-y), env(safe-area-inset-bottom, 0px));
  --md-safe-l: max(var(--md-safe-edge), env(safe-area-inset-left, 0px));
  --md-spec-w: 375px;
  --md-state-w: 200px;
  --md-z-appbar: 1100;
  --md-z-drawer: 1200;
  --md-z-modal: 1300;
  --md-z-snackbar: 1400;
  --md-z-tooltip: 1500;
  --md-z-status: 1600;
  --md-z-lightbox: 1700;
  --md-shadow-1: 0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12);
  --md-shadow-2: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12);
  --md-shadow-4: 0px 2px 4px -1px rgba(0,0,0,0.2), 0px 4px 5px 0px rgba(0,0,0,0.14), 0px 1px 10px 0px rgba(0,0,0,0.12);
  --md-shadow-8: 0px 5px 5px -3px rgba(0,0,0,0.2), 0px 8px 10px 1px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12);
  --md-shadow-16: 0px 8px 10px -5px rgba(0,0,0,0.2), 0px 16px 10px 1px rgba(0,0,0,0.14), 0px 6px 16px 5px rgba(0,0,0,0.12);
  --md-shadow-24: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12);
  --md-shadow-dialog: var(--md-shadow-24);
  /* 列表卡 / 功能通栏·一行两个：统一轻阴影（可见但不厚重） */
  --md-shadow-surface: 0 2px 6px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08);
  /* 方向性阴影：抽屉/冻结列等按需选用，禁止页内自写 rgba 阴影 */
  --md-shadow-right: 6px 0 8px -4px rgba(0, 0, 0, 0.18);
  --md-shadow-left: -6px 0 8px -4px rgba(0, 0, 0, 0.18);
  --md-shadow-edge-top: 0 -1px 0 var(--md-divider);
  --md-shadow-edge-bottom: 0 1px 0 var(--md-divider);
  --md-shadow-focus: 0 0 0 4px var(--md-focus);
  --md-shadow-focus-primary: 0 0 0 4px rgba(25, 118, 210, 0.22);
  --md-shadow-focus-primary-sm: 0 0 0 3px rgba(25, 118, 210, 0.22);
  --md-shadow-focus-primary-ring: 0 0 0 2px var(--md-primary);
  --md-shadow-focus-hover: 0 0 0 4px var(--md-hover);
  --md-shadow-focus-active: 0 0 0 3px var(--md-primary);
  --md-shadow-tab-active: 0 1px 3px rgba(25, 118, 210, 0.28);
  --md-field-min: 180px;
  /* 功能组成组内分割线：比表面阴影更淡；四边内缩，不贯穿 */
  --md-divider-soft: rgba(0, 0, 0, 0.06);
  --md-set-divider-inset-x: 16px;
  --md-set-divider-inset-y: 8px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; }
html:has(.md-mobile-page),
body:has(.md-mobile-page) { overflow-x: hidden; }
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  font-family: var(--md-font);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.00938em;
  color: var(--md-text);
  background: var(--md-bg-default);
}
button, input, select, textarea { font-family: inherit; }
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  box-shadow: none;
  border-radius: 0;
  cursor: pointer;
}
button::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner {
  border: 0;
  padding: 0;
}
a { color: var(--md-primary); text-decoration: none; }
a:hover { text-decoration: none; }

.md-h1 { font-size: 2.125rem; font-weight: 400; line-height: 1.235; letter-spacing: 0.00735em; margin: 0; }
.md-h2 { font-size: 1.5rem; font-weight: 400; line-height: 1.334; letter-spacing: 0; margin: 0; }
.md-h3 { font-size: 1.25rem; font-weight: 500; line-height: 1.6; letter-spacing: 0.0075em; margin: 0; }
.md-subtitle { font-size: 1rem; font-weight: 400; line-height: 1.75; letter-spacing: 0.00938em; color: var(--md-text-secondary); }
.md-body2 { font-size: 0.875rem; font-weight: 400; line-height: 1.43; letter-spacing: 0.01071em; }
.md-caption { font-size: 0.75rem; font-weight: 400; line-height: 1.66; letter-spacing: 0.03333em; color: var(--md-text-secondary); }
.md-overline { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.08333em; text-transform: uppercase; color: var(--md-text-secondary); }

.md-elev-1 { box-shadow: var(--md-shadow-1); }
.md-elev-2 { box-shadow: var(--md-shadow-2); }
.md-elev-4 { box-shadow: var(--md-shadow-4); }
.md-elev-8 { box-shadow: var(--md-shadow-8); }

.md-paper {
  background: var(--md-bg-paper);
  border-radius: var(--md-radius);
  color: var(--md-text);
}
.md-paper--elev { box-shadow: var(--md-shadow-1); }

.md-card {
  position: relative;
  background: var(--md-bg-paper);
  border-radius: var(--md-radius);
  box-shadow: var(--md-shadow-surface);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.md-card__media {
  position: relative;
  /* 默认不定宽：封面/双列再 width:100%。横卡必须定宽，避免 width:100%+1:1 撑成大方块挤掉正文 */
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--md-grey-200);
  display: block;
  box-sizing: border-box;
}
.md-card:not(.md-card--row) > .md-card__media,
.md-card--cover .md-card__media,
.md-card--tile .md-card__media {
  width: 100%;
}
/* 列表/宫格状态标签：贴封面左上或右上角 */
.md-card__tag {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 20px;
  min-height: 20px;
  padding: 0 6px;
  border: 0;
  border-radius: var(--md-radius-tag-br);
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.01em;
  pointer-events: none;
  box-shadow: none;
  white-space: nowrap;
}
.md-card__tag--tl {
  top: 0;
  left: 0;
  right: auto;
  border-radius: var(--md-radius-tag-br);
}
.md-card__tag--tr {
  top: 0;
  left: auto;
  right: 0;
  border-radius: var(--md-radius-tag-bl);
}
.md-card__body { padding: 16px; }
.md-card__title { font-size: 1rem; font-weight: 500; line-height: 1.5; margin: 0 0 8px; }
.md-card__subtitle {
  margin: 0 0 4px;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--md-text-secondary);
}
.md-card__text { font-size: 0.875rem; color: var(--md-text-secondary); margin: 0; line-height: 1.45; }
.md-card__main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
}
.md-card__main .md-card__title { margin: 0; }
.md-card__main .md-card__subtitle,
.md-card__main .md-card__text { margin: 0; }
.md-card__foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px 12px;
  flex-wrap: wrap;
  flex-shrink: 0;
  min-width: 0;
}
.md-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  min-width: 0;
  flex: 1 1 auto;
}
.md-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  font-size: 0.75rem;
  line-height: 1.2;
  color: var(--md-text-secondary);
  white-space: nowrap;
}
.md-card__meta-item .md-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: currentColor;
}
.md-card__thumb {
  width: 20px;
  height: 20px;
  border-radius: var(--md-radius-circle);
  flex-shrink: 0;
  object-fit: cover;
  background: var(--md-grey-200);
}
.md-card__thumb--sq { border-radius: var(--md-radius-sm); }
.md-line-clamp-1,
.md-line-clamp-2,
.md-line-clamp-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}
.md-line-clamp-1 { -webkit-line-clamp: 1; }
.md-line-clamp-2 { -webkit-line-clamp: 2; }
.md-line-clamp-3 { -webkit-line-clamp: 3; }
.md-card__actions { padding: 0 8px 8px; display: flex; gap: 8px; }
.md-icon--sm { width: 14px; height: 14px; }

.md-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 64px;
  height: 36px;
  padding: 6px 16px;
  border: 0;
  border-radius: var(--md-radius);
  background: transparent;
  color: var(--md-primary);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none;
  line-height: 1.75;
  cursor: pointer;
  user-select: none;
  text-decoration: none;
  transition: background-color var(--md-duration) var(--md-ease), box-shadow var(--md-duration) var(--md-ease), border-color var(--md-duration) var(--md-ease);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}
.md-btn:hover { text-decoration: none; background: rgba(25, 118, 210, 0.04); }
.md-btn:active { transform: scale(0.97); filter: brightness(0.96); }
.md-btn:focus-visible { outline: 0; box-shadow: var(--md-shadow-focus); }
.md-btn:disabled, .md-btn.is-disabled {
  color: var(--md-text-disabled);
  background: transparent;
  box-shadow: none;
  cursor: default;
  pointer-events: none;
}
.md-btn--contained {
  background: var(--md-primary);
  color: var(--md-primary-contrast);
  box-shadow: var(--md-shadow-2);
}
.md-btn--contained:hover { background: var(--md-primary-dark); box-shadow: var(--md-shadow-4); }
.md-btn--contained:active { box-shadow: var(--md-shadow-8); }
.md-btn--contained:disabled, .md-btn--contained.is-disabled {
  background: rgba(0, 0, 0, 0.12);
  color: var(--md-text-disabled);
  box-shadow: none;
}
.md-btn--outlined {
  border: 1px solid rgba(25, 118, 210, 0.5);
  background: transparent;
  color: var(--md-primary);
}
.md-btn--outlined:hover { background: rgba(25, 118, 210, 0.04); border-color: var(--md-primary); }
.md-btn--outlined:disabled, .md-btn--outlined.is-disabled {
  border-color: rgba(0, 0, 0, 0.12);
  color: var(--md-text-disabled);
  background: transparent;
}
.md-btn--text {
  background: transparent;
  color: var(--md-primary); /* 必须区别于紧邻正文色，禁止跟正文同色 */
}
.md-btn--soft {
  border: 0;
  box-shadow: none;
  background: var(--md-primary-soft);
  color: var(--md-primary);
}
.md-btn--soft:hover { background: rgba(25, 118, 210, 0.18); }
.md-btn--soft:disabled, .md-btn--soft.is-disabled {
  background: rgba(0, 0, 0, 0.06);
  color: var(--md-text-disabled);
}
.md-btn--secondary.md-btn--soft {
  background: rgba(156, 39, 176, 0.12);
  color: var(--md-secondary);
}
.md-btn--secondary.md-btn--soft:hover { background: rgba(156, 39, 176, 0.18); }
.md-btn--error.md-btn--soft {
  background: rgba(211, 47, 47, 0.12);
  color: var(--md-error);
}
.md-btn--error.md-btn--soft:hover { background: rgba(211, 47, 47, 0.18); }
/* 纯文字：无线框无背景，适合「查看更多 / 了解全部」等弱操作；字色须区别于紧邻正文 */
.md-btn--link {
  min-width: 0;
  height: auto;
  padding: 4px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.4;
  color: var(--md-primary);
  overflow: visible;
}
.md-btn--link:hover {
  background: transparent;
  color: var(--md-primary-dark);
  text-decoration: none;
}
.md-btn--link:active {
  transform: none;
  filter: none;
  opacity: 0.72;
  background: transparent;
}
.md-btn--link:focus-visible {
  box-shadow: none;
  outline: 2px solid var(--md-focus);
  outline-offset: 2px;
}
.md-btn--link:disabled,
.md-btn--link.is-disabled {
  color: var(--md-text-disabled);
  background: transparent;
  opacity: 1;
}
.md-btn--secondary { color: var(--md-secondary); }
.md-btn--secondary.md-btn--contained { background: var(--md-secondary); color: #fff; }
.md-btn--secondary.md-btn--contained:hover { background: var(--md-secondary-dark); }
.md-btn--error { color: var(--md-error); }
.md-btn--error.md-btn--contained { background: var(--md-error); color: #fff; }
.md-btn--sm { height: 30px; padding: 4px 10px; font-size: 0.8125rem; min-width: 48px; }
.md-btn--lg { height: 42px; padding: 8px 22px; }
/* 通栏：一行仅一个主按钮时占满整行（触屏半屏底栏、表单区、空态等） */
.md-btn--block {
  display: flex;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.md-btn--block.md-btn--link {
  display: inline-flex;
  width: auto;
  max-width: none;
}
/* 通栏行：多个主操作纵向叠放，每钮占满一行 */
.md-btn-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
}
.md-btn-row > .md-btn {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.md-btn-row > .md-btn.md-btn--link {
  width: auto;
  align-self: flex-start;
}
.md-btn:has(.md-badge) { overflow: visible; }
.md-btn .md-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  pointer-events: none;
}
.md-btn--sm .md-badge {
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  font-size: 0.6875rem;
  top: -5px;
  right: -5px;
}

.md-icon-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: transparent;
  color: inherit;
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color var(--md-duration) var(--md-ease);
}
.md-icon-btn:hover { background: var(--md-hover); }
.md-icon-btn:focus-visible { outline: 0; background: var(--md-selected); }
.md-icon-btn:disabled { color: var(--md-text-disabled); pointer-events: none; }

.md-fab {
  width: 56px;
  height: 56px;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: var(--md-secondary);
  color: #fff;
  box-shadow: var(--md-shadow-8);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.md-fab:hover { background: var(--md-secondary-dark); box-shadow: var(--md-shadow-8); }

/* 悬浮胶囊：单个圆形；多个成组、细线分割。左上横向且与标题栏互斥；左下/右下竖向并避开底栏。不要右上。 */
.md-pod {
  --md-pod-size: 44px;
  --md-pod-gap: 8px;
  /* 相对底部导航 / 功能按钮区的额外留白（比贴边 gap 更大） */
  --md-pod-clearance: 16px;
  --md-pod-dock: var(--md-tabbar-h);
  --md-action-bar-h: 52px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  margin: 0;
  padding: 0;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  box-shadow: var(--md-shadow-4);
  z-index: 9;
  box-sizing: border-box;
}
.md-pod:not(.md-pod--static) {
  position: absolute;
}
.md-pod--static {
  position: relative;
  flex-shrink: 0;
}
.md-pod--tl { flex-direction: row; }
.md-pod--bl,
.md-pod--br { flex-direction: column; }
.md-pod:not(:has(.md-pod__item:nth-child(2))) {
  width: var(--md-pod-size);
  height: var(--md-pod-size);
  border-radius: var(--md-radius-circle);
}
.md-pod--tl:has(.md-pod__item:nth-child(2)) {
  height: var(--md-pod-size);
  border-radius: calc(var(--md-pod-size) / 2);
}
.md-pod--bl:has(.md-pod__item:nth-child(2)),
.md-pod--br:has(.md-pod__item:nth-child(2)) {
  width: var(--md-pod-size);
  border-radius: calc(var(--md-pod-size) / 2);
}
.md-pod:not(.md-pod--static).md-pod--tl {
  top: calc(var(--md-status-h) + 8px);
  left: var(--md-safe-l);
}
.md-mobile-page:has(.md-appbar) .md-pod--tl:not(.md-pod--static) {
  display: none;
}
.md-pod:not(.md-pod--static).md-pod--bl {
  bottom: calc(var(--md-safe-b) + var(--md-pod-gap));
  left: var(--md-safe-l);
}
.md-pod:not(.md-pod--static).md-pod--br {
  bottom: calc(var(--md-safe-b) + var(--md-pod-gap));
  right: var(--md-safe-r);
}
/* 有底部导航：抬到 TabBar 之上并留 clearance */
.md-mobile-page:has(.md-tabbar) .md-pod:not(.md-pod--static).md-pod--bl,
.md-mobile-page:has(.md-tabbar) .md-pod:not(.md-pod--static).md-pod--br {
  bottom: calc(var(--md-tabbar-h) + var(--md-safe-b) + var(--md-pod-clearance));
}
/* 仅有贴底功能按钮区：抬到操作条之上并留 clearance */
.md-mobile-page:has(.md-action-bar):not(:has(.md-tabbar)) .md-pod:not(.md-pod--static).md-pod--bl,
.md-mobile-page:has(.md-action-bar):not(:has(.md-tabbar)) .md-pod:not(.md-pod--static).md-pod--br {
  bottom: calc(var(--md-action-bar-h) + var(--md-safe-b) + var(--md-pod-clearance));
}
/* 底栏 + 操作条同时存在：叠在两者之上 */
.md-mobile-page:has(.md-tabbar):has(.md-action-bar) .md-pod:not(.md-pod--static).md-pod--bl,
.md-mobile-page:has(.md-tabbar):has(.md-action-bar) .md-pod:not(.md-pod--static).md-pod--br {
  bottom: calc(var(--md-tabbar-h) + var(--md-action-bar-h) + var(--md-safe-b) + var(--md-pod-clearance));
}
.md-pod__item {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--md-pod-size);
  height: var(--md-pod-size);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--md-text);
  text-decoration: none;
  cursor: pointer;
  flex-shrink: 0;
  box-sizing: border-box;
}
.md-pod__item:hover { background: var(--md-hover); }
.md-pod__item:focus-visible { outline: 0; background: var(--md-selected); }
.md-pod__item:active { transform: scale(0.96); }
.md-pod__item:disabled { color: var(--md-text-disabled); pointer-events: none; }
.md-pod__item .md-icon { width: 22px; height: 22px; }
.md-pod--tl .md-pod__item + .md-pod__item::before,
.md-pod--bl .md-pod__item + .md-pod__item::before,
.md-pod--br .md-pod__item + .md-pod__item::before {
  content: "";
  position: absolute;
  background: var(--md-divider);
  pointer-events: none;
}
.md-pod--tl .md-pod__item + .md-pod__item::before {
  left: 0;
  top: 10px;
  bottom: 10px;
  width: 1px;
}
.md-pod--bl .md-pod__item + .md-pod__item::before,
.md-pod--br .md-pod__item + .md-pod__item::before {
  top: 0;
  left: 10px;
  right: 10px;
  height: 1px;
}
.md-pod-demo {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px;
  margin-top: 12px;
}

/* 桌面：只右下；多功能是独立圆钮竖排，不要合成一颗胶囊。≥4 个收成可展开的一颗。 */
.md-d1 .md-pod,
.md-pod--desk {
  --md-pod-size: 48px;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  overflow: visible;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  width: var(--md-pod-size);
  height: auto;
  border-radius: 0;
}
.md-d1 .md-pod:not(.md-pod--static),
.md-pod--desk:not(.md-pod--static) {
  position: fixed;
  right: 24px;
  bottom: 24px;
  left: auto;
  top: auto;
}
.md-d1 .md-pod--tl:not(.md-pod--static),
.md-d1 .md-pod--bl:not(.md-pod--static) {
  display: none;
}
.md-d1 .md-pod:not(:has(.md-pod__item:nth-child(2))),
.md-pod--desk:not(:has(.md-pod__item:nth-child(2))),
.md-d1 .md-pod--br:has(.md-pod__item:nth-child(2)),
.md-pod--desk:has(.md-pod__item:nth-child(2)) {
  width: var(--md-pod-size);
  height: auto;
  border-radius: 0;
}
.md-d1 .md-pod .md-pod__item,
.md-pod--desk .md-pod__item {
  border-radius: var(--md-radius-circle);
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-4);
}
.md-d1 .md-pod .md-pod__item + .md-pod__item::before,
.md-pod--desk .md-pod__item + .md-pod__item::before {
  content: none;
}
.md-d1:has(.md-pod--fold),
.md-d1--list:has(.md-pod--fold) {
  overflow: visible;
}
.md-pod-demo--fold {
  min-height: 360px;
  align-items: flex-end;
}
.md-pod--desk.md-pod--fold {
  --md-pod-gap: 12px;
  --pod-n: 5;
  flex-direction: column-reverse;
  height: var(--md-pod-size);
  overflow: visible;
  z-index: 20;
}
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(2) { --pod-i: 1; }
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(3) { --pod-i: 2; }
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(4) { --pod-i: 3; }
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(5) { --pod-i: 4; }
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(6) { --pod-i: 5; }
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(7) { --pod-i: 6; }
.md-pod--desk.md-pod--fold > .md-pod__item:nth-last-child(8) { --pod-i: 7; }
.md-pod--desk.md-pod--fold .md-pod__toggle {
  position: relative;
  z-index: 2;
}
.md-pod--desk.md-pod--fold .md-pod__item:not(.md-pod__toggle) {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(0.28) translateY(18px);
  transform-origin: center bottom;
  animation: none;
  transition:
    transform 320ms cubic-bezier(0.4, 0, 0.2, 1),
    opacity 240ms linear,
    bottom 320ms cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0ms linear 320ms;
  transition-delay:
    calc((var(--pod-n, 5) - var(--pod-i, 1)) * 40ms),
    calc((var(--pod-n, 5) - var(--pod-i, 1)) * 40ms),
    calc((var(--pod-n, 5) - var(--pod-i, 1)) * 40ms),
    calc(320ms + (var(--pod-n, 5) - var(--pod-i, 1)) * 40ms);
}
.md-pod--desk.md-pod--fold.is-open .md-pod__item:not(.md-pod__toggle) {
  bottom: calc(var(--pod-i, 1) * (var(--md-pod-size) + var(--md-pod-gap)));
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: scale(1) translateY(0);
  transition:
    background-color 120ms var(--md-ease),
    box-shadow 120ms var(--md-ease);
  animation: md-pod-pop 400ms cubic-bezier(0.2, 1.45, 0.32, 1) both;
  animation-delay: calc((var(--pod-i, 1) - 1) * 48ms);
}
.md-d1 .md-pod .md-pod__item:not(.md-pod__toggle),
.md-pod--desk .md-pod__item:not(.md-pod__toggle) {
  transition:
    background-color 120ms var(--md-ease),
    box-shadow 120ms var(--md-ease);
}
.md-d1 .md-pod .md-pod__item:not(.md-pod__toggle):active,
.md-pod--desk .md-pod__item:not(.md-pod__toggle):active {
  transform: translateY(1px);
  background: var(--md-selected);
  box-shadow: var(--md-shadow-1);
}
.md-pod--desk .md-pod__toggle .md-icon {
  transition: transform 240ms cubic-bezier(0.2, 1.45, 0.32, 1);
}
.md-pod--desk.md-pod--fold.is-open .md-pod__toggle .md-icon {
  transform: rotate(45deg);
}
@keyframes md-pod-pop {
  0% {
    opacity: 0;
    bottom: 0;
    transform: scale(0.28) translateY(18px);
  }
  62% {
    opacity: 1;
    bottom: calc(var(--pod-i, 1) * (var(--md-pod-size) + var(--md-pod-gap)) + 10px);
    transform: scale(1.22);
  }
  100% {
    opacity: 1;
    bottom: calc(var(--pod-i, 1) * (var(--md-pod-size) + var(--md-pod-gap)));
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .md-pod--desk.md-pod--fold .md-pod__item:not(.md-pod__toggle),
  .md-pod--desk.md-pod--fold.is-open .md-pod__item:not(.md-pod__toggle),
  .md-pod--desk .md-pod__toggle .md-icon {
    transition: none;
    animation: none;
  }
}

.md-i {
  display: inline-block;
  width: 24px;
  height: 24px;
  position: relative;
  flex-shrink: 0;
}
.md-i::before, .md-i::after { content: ""; position: absolute; background: currentColor; }
.md-i-menu::before {
  top: 5px; left: 3px; width: 18px; height: 2px;
  box-shadow: 0 6px 0 currentColor, 0 12px 0 currentColor;
  background: currentColor;
}
.md-i-tune::before {
  top: 6px; left: 4px; width: 16px; height: 2px;
  box-shadow: 0 5px 0 currentColor, 0 10px 0 currentColor;
}
.md-i-tune::after {
  width: 6px; height: 6px; border-radius: var(--md-radius-circle); background: currentColor;
  top: 4px; left: 12px; box-shadow: -6px 5px 0 currentColor, 2px 10px 0 currentColor;
}
.md-i-close::before, .md-i-close::after {
  width: 16px; height: 2px; top: 11px; left: 4px;
}
.md-i-close::before { transform: rotate(45deg); }
.md-i-close::after { transform: rotate(-45deg); }
.md-i-search::before {
  width: 12px; height: 12px; border: 2px solid currentColor; border-radius: var(--md-radius-circle);
  top: 4px; left: 4px; background: transparent;
}
.md-i-search::after {
  width: 7px; height: 2px; top: 15px; left: 13px; transform: rotate(45deg);
}
.md-i-chevron-left::before {
  width: 10px; height: 10px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor;
  top: 7px; left: 9px; transform: rotate(45deg); background: transparent;
}
.md-i-chevron-right::before {
  width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  top: 7px; left: 5px; transform: rotate(-45deg); background: transparent;
}
.md-i-info::before {
  width: 18px; height: 18px; border: 2px solid currentColor; border-radius: var(--md-radius-circle);
  top: 3px; left: 3px; background: transparent;
}
.md-i-info::after {
  width: 2px; height: 8px; top: 9px; left: 11px;
  box-shadow: 0 -4px 0 currentColor;
}

.md-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  fill: currentColor;
  flex-shrink: 0;
  overflow: hidden;
}
.md-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.md-icon--sm { width: 20px; height: 20px; }
.md-icon--lg { width: 40px; height: 40px; }
.md-icon--danger { color: var(--md-error); }
.md-icon-btn .md-icon,
.md-btn .md-icon { width: 20px; height: 20px; }
.md-tabbar .md-icon { width: 24px; height: 24px; }

.md-field {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  min-width: var(--md-field-min);
  vertical-align: top;
}
.md-field__input,
.md-field select,
.md-select {
  height: 56px;
  padding: 16px 14px;
  border: 1px solid rgba(0, 0, 0, 0.23);
  border-radius: var(--md-radius);
  background: transparent;
  color: var(--md-text);
  font-size: 1rem;
  line-height: 1.4375em;
  outline: none;
  width: 100%;
  appearance: none;
  transition: border-color var(--md-duration) var(--md-ease);
}
.md-field__input:hover, .md-field select:hover, .md-select:hover { border-color: rgba(0, 0, 0, 0.87); }
.md-field__input:focus, .md-field select:focus, .md-select:focus {
  border-color: var(--md-primary);
  border-width: 2px;
  padding: 15px 13px;
}
.md-field__label {
  position: absolute;
  left: 12px;
  top: -8px;
  padding: 0 4px;
  background: var(--md-bg-paper);
  font-size: var(--md-field-label-font, 12px);
  line-height: 1.4375em;
  color: var(--md-text-secondary);
  pointer-events: none;
  z-index: 1;
  transform: scale(var(--md-field-label-scale, 0.8333333333));
  transform-origin: left center;
}
.md-field:focus-within .md-field__label { color: var(--md-primary); }
.md-field--combo:has(.md-combo.is-open) .md-field__label { color: var(--md-primary); }
.md-field--sm .md-field__input:not(textarea),
.md-field--sm select,
.md-field--sm .md-select {
  height: 36px;
  padding: 6px 12px;
  font-size: 0.875rem;
}
.md-field--sm:focus-within .md-field__input:not(textarea),
.md-field--sm select:focus,
.md-field--sm .md-select:focus {
  padding: 5px 11px;
}
textarea.md-field__input {
  height: auto;
  min-height: 72px;
  padding: 8px 12px;
  line-height: 1.5;
  resize: vertical;
}
.md-field__input:disabled,
.md-field select:disabled,
.md-select:disabled,
.md-field--readonly .md-field__input,
.md-field--readonly .md-select,
.md-field--readonly select {
  background: var(--md-grey-200);
  background-color: var(--md-grey-200);
  color: var(--md-text-disabled);
  -webkit-text-fill-color: var(--md-text-disabled);
  border-color: rgba(0, 0, 0, 0.12);
  opacity: 1;
  cursor: default;
}
.md-field__input:disabled:hover,
.md-field select:disabled:hover,
.md-select:disabled:hover,
.md-field--readonly .md-field__input:hover,
.md-field--readonly .md-select:hover,
.md-field__input:disabled:focus,
.md-field select:disabled:focus,
.md-select:disabled:focus,
.md-field--readonly .md-field__input:focus,
.md-field--readonly .md-select:focus {
  border-color: rgba(0, 0, 0, 0.12);
  border-width: 1px;
  background: var(--md-grey-200);
  background-color: var(--md-grey-200);
}
.md-field__input:disabled:focus,
.md-field--readonly .md-field__input:focus {
  padding: 16px 14px;
}
.md-field--sm .md-field__input:disabled:focus,
.md-field--sm.md-field--readonly .md-field__input:not(textarea):focus {
  padding: 6px 12px;
}
textarea.md-field__input:disabled:focus,
.md-field--readonly textarea.md-field__input:focus {
  padding: 8px 12px;
}
.md-field:has(:disabled) .md-field__label,
.md-field:has(:disabled):focus-within .md-field__label {
  color: var(--md-text-disabled);
  background: var(--md-grey-200);
}
.md-field--readonly .md-field__label,
.md-field--readonly:focus-within .md-field__label {
  color: var(--md-text-disabled);
  background: var(--md-grey-200);
}

.md-check, .md-radio {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  color: var(--md-text);
  cursor: pointer;
  user-select: none;
  min-height: 36px;
}
.md-check input, .md-radio input {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  margin: 0;
  flex-shrink: 0;
  border: 2px solid rgba(0, 0, 0, 0.54);
  background: transparent;
  display: grid;
  place-content: center;
  accent-color: var(--md-primary);
  cursor: pointer;
}
.md-check input { border-radius: var(--md-radius-xs); }
.md-radio input { border-radius: var(--md-radius-circle); }
.md-check input:checked,
.md-radio input:checked {
  border-color: var(--md-primary);
  background: var(--md-primary);
}
.md-check input:checked::after {
  content: "";
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) translate(-1px, -1px);
}
.md-radio input:checked {
  background: transparent;
}
.md-radio input:checked::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: var(--md-radius-circle);
  background: var(--md-primary);
}

.md-choice-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  min-width: 0;
}
.md-choice-group__label {
  width: 100%;
  font-size: 0.75rem;
  color: var(--md-text-secondary);
  line-height: 1.2;
}

.md-switch-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  font-size: 0.875rem;
  color: var(--md-text);
  cursor: pointer;
  user-select: none;
}

.md-switch {
  position: relative;
  width: 58px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
}
/* 热区铺满整颗开关（旧写法 width/height:0 会导致点不到） */
.md-switch input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.md-switch__track {
  width: 34px; height: 14px; margin-left: 12px;
  border-radius: var(--md-radius-md); background: #000; opacity: 0.38;
  transition: opacity var(--md-duration) var(--md-ease), background var(--md-duration) var(--md-ease);
  pointer-events: none;
}
.md-switch__thumb {
  position: absolute; left: 8px; top: 9px;
  width: 20px; height: 20px; border-radius: var(--md-radius-circle);
  background: #fafafa; box-shadow: var(--md-shadow-1);
  transition: left var(--md-duration) var(--md-ease), background var(--md-duration) var(--md-ease);
  pointer-events: none;
}
.md-switch input:checked + .md-switch__track { background: var(--md-primary); opacity: 0.5; }
.md-switch input:checked ~ .md-switch__thumb { left: 30px; background: var(--md-primary); }
.md-switch--compact {
  width: 40px;
  height: 24px;
}
.md-switch--compact .md-switch__track {
  width: 28px;
  height: 12px;
  margin-left: 6px;
  border-radius: var(--md-radius-md);
}
.md-switch--compact .md-switch__thumb {
  width: 16px;
  height: 16px;
  left: 4px;
  top: 4px;
}
.md-switch--compact input:checked ~ .md-switch__thumb { left: 20px; }

.md-chip {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: var(--md-radius-xl);
  background: var(--md-grey-300);
  color: var(--md-text);
  font-size: 0.8125rem;
  font-weight: 400;
}
.md-chip--primary { background: rgba(25, 118, 210, 0.12); color: var(--md-primary-dark); }
.md-chip--success { background: rgba(46, 125, 50, 0.12); color: var(--md-success); }
.md-chip--error { background: rgba(211, 47, 47, 0.12); color: var(--md-error); }
.md-chip--outlined { background: transparent; border: 1px solid var(--md-divider); }
.md-card__tag.md-chip,
.md-card__media > .md-card__tag {
  height: 20px;
  min-height: 20px;
  padding: 0 6px;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1;
  border-radius: var(--md-radius-tag-br);
  box-shadow: none;
}
.md-card__tag--tr.md-chip,
.md-card__media > .md-card__tag--tr {
  border-radius: var(--md-radius-tag-bl);
}

.md-appbar {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: var(--md-appbar-h);
  padding: 0 16px;
  background: var(--md-primary);
  color: var(--md-primary-contrast);
  box-shadow: var(--md-shadow-4);
  z-index: var(--md-z-appbar);
  flex-shrink: 0;
}
.md-appbar--mobile { min-height: var(--md-appbar-h-mobile); }
.md-appbar__title {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.0075em;
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.md-appbar .md-icon-btn { color: #fff; }
.md-appbar .md-btn { color: #fff; }
.md-appbar .md-btn:hover { background: rgba(255, 255, 255, 0.08); }
.md-appbar a { color: inherit; text-decoration: none; }
.md-appbar a:hover { text-decoration: none; background: rgba(255, 255, 255, 0.08); border-radius: var(--md-radius); }

.md-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 64px;
  padding: 8px 16px;
  flex-wrap: wrap;
}
.md-toolbar--dense { min-height: 48px; padding: 4px 8px; }

.md-list { list-style: none; margin: 0; padding: 8px 0; }
.md-list-item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 8px 16px;
  color: var(--md-text);
  cursor: pointer;
  text-decoration: none;
  font-size: 1rem;
  border: 0;
  background: transparent;
  width: 100%;
  text-align: left;
  border-radius: 0;
}
.md-list-item:hover { background: var(--md-hover); text-decoration: none; }
.md-list-item.is-active {
  background: rgba(25, 118, 210, 0.08);
  color: var(--md-primary);
}
.md-list-subheader {
  padding: 16px 16px 8px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--md-text-secondary);
  line-height: 1.5;
}
.md-divider { height: 1px; margin: 8px 0; background: var(--md-divider); border: 0; }

.md-table-wrap { width: 100%; overflow: auto; }
.md-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.875rem;
  table-layout: fixed;
}
.md-table th, .md-table td {
  padding: 16px;
  text-align: left;
  border-bottom: 1px solid var(--md-divider);
  vertical-align: middle;
  background: var(--md-bg-paper);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.md-table th {
  font-weight: 500;
  color: var(--md-text-secondary);
}
.md-table tbody tr:hover td { background: #f5f5f5; }
.md-table tbody tr.is-selected td { background: #e3f2fd; }
.md-table col.md-col-check {
  width: 56px;
}
.md-table col.md-col-actions {
  width: var(--md-col-actions-w, 64px);
}
.md-table .md-col-check,
.md-table .md-col-actions {
  position: sticky;
  z-index: 3;
}
.md-table thead .md-col-check,
.md-table thead .md-col-actions { z-index: 4; }
.md-table .md-col-check {
  left: 0;
  width: 56px;
  min-width: 56px;
  text-align: center;
  overflow: visible;
  text-overflow: clip;
  box-shadow: var(--md-shadow-right);
}
.md-table .md-col-actions {
  right: 0;
  /* 列宽由 colgroup + --md-col-actions-w 钉死 px，不随视口缩放；ProtoPage 按各行直出按钮计数/文案测算 */
  width: var(--md-col-actions-w, 64px) !important;
  min-width: var(--md-col-actions-w, 64px) !important;
  max-width: var(--md-col-actions-w, 64px) !important;
  padding-left: 4px;
  padding-right: 4px;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  box-shadow: var(--md-shadow-left);
  text-align: right;
  box-sizing: border-box;
}
.md-table thead .md-col-actions {
  text-align: right;
}
/* 回退：按表内最多「直出控件」数（.md-icon-btn / 非图标 .md-btn，不含菜单项）钉整列；JS 加载后会实测覆盖 */
.md-table:has(td.md-col-actions .md-actions .md-icon-btn:nth-of-type(4)),
.md-table:has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn):nth-of-type(3)) {
  --md-col-actions-w: 120px;
}
.md-table:has(td.md-col-actions .md-actions .md-icon-btn:nth-of-type(3)) {
  --md-col-actions-w: 92px;
}
.md-table:has(td.md-col-actions .md-actions .md-icon-btn:nth-of-type(2)) {
  --md-col-actions-w: 64px;
}
.md-table:has(td.md-col-actions .md-actions .md-icon-btn:only-of-type):not(:has(td.md-col-actions .md-actions .md-icon-btn:nth-of-type(2))) {
  --md-col-actions-w: 36px;
}
.md-table:has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn)):has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn):only-of-type):not(:has(td.md-col-actions .md-actions .md-icon-btn)) {
  --md-col-actions-w: 88px;
}
.md-table:has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn)):has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn):nth-of-type(2)):not(:has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn):nth-of-type(3))):not(:has(td.md-col-actions .md-actions .md-icon-btn)) {
  --md-col-actions-w: 132px;
}
.md-table:has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn)):has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn):nth-of-type(3)) {
  --md-col-actions-w: 176px;
}
.md-table:has(td.md-col-actions .md-actions .md-icon-btn):has(td.md-col-actions .md-actions > .md-btn:not(.md-icon-btn)) {
  --md-col-actions-w: 120px;
}
.md-table tbody tr.is-menu-host .md-col-actions,
.md-table tbody tr:has(.md-menu.is-open) .md-col-actions {
  z-index: calc(var(--md-z-modal) + 4);
}
.md-table .md-col-name {
  /* 名称/昵称/短标题：硬锁定宽；须能放下标题如「用户昵称」 */
  width: 152px;
  min-width: 152px;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 同一单元格多字段多行：主/次行，禁止上下叠字 */
.md-cell-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  max-width: 100%;
  line-height: 1.35;
  white-space: normal;
}
.md-cell-stack__primary {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--md-text-primary);
}
.md-cell-stack__secondary {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--md-text-secondary);
}
.md-table td:has(.md-cell-stack),
.md-table th:has(.md-cell-stack) {
  white-space: normal;
  vertical-align: top;
  overflow: hidden;
}
.md-d1--list .md-table td:has(.md-cell-stack) {
  padding-top: 8px;
  padding-bottom: 8px;
}
/* AD 列表：溢出省略的单元格可悬停看全文、点击复制 */
.md-d1 .md-table th.is-overflow,
.md-d1 .md-table td.is-overflow {
  cursor: copy;
}
.md-d1 .md-table .md-row-goods {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.md-d1 .md-table .md-row-goods .md-cell-stack {
  flex: 1;
  min-width: 0;
}
.md-overflow-tip {
  position: fixed;
  z-index: calc(var(--md-z-tooltip, 1500) + 20);
  max-width: min(480px, 80vw);
  padding: 8px 10px;
  background: #424242;
  color: #fff;
  font-size: 0.8125rem;
  line-height: 1.45;
  border-radius: var(--md-radius);
  box-shadow: var(--md-shadow-8);
  white-space: pre-wrap;
  word-break: break-word;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 120ms var(--md-ease);
  box-sizing: border-box;
}
.md-overflow-tip.is-open {
  opacity: 1;
  visibility: visible;
}
.md-table .md-col-desc,
.md-table .md-col-note {
  /* 说明/备注：吃剩余用 % + 坚实 min-width；禁止裸 width:auto（易被压成一字） */
  width: 36%;
  min-width: 200px;
  white-space: normal;
  word-break: break-word;
  overflow: hidden;
}
.md-table .md-col-price {
  width: 88px;
  min-width: 88px;
  max-width: 96px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.md-table .md-col-status {
  /* 须能放下「库存状态」等 4 字标题 */
  width: 96px;
  min-width: 96px;
  max-width: 112px;
}
.md-table .md-col-date {
  /* 吃剩余用 % + min-width；须能放下「创建时间」等标题与 YYYY-MM-DD HH:mm */
  width: 36%;
  min-width: 160px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.md-table:has(.md-col-desc) .md-col-date,
.md-table:has(.md-col-note) .md-col-date {
  width: 160px;
  min-width: 160px;
  max-width: 180px;
}
/* 无说明/备注/日期时：最后一列数据列吃剩余（有操作列则取操作列前一列） */
.md-table:not(:has(.md-col-desc)):not(:has(.md-col-note)):not(:has(.md-col-date)):has(.md-col-actions) :is(th, td):nth-last-child(2),
.md-table:not(:has(.md-col-desc)):not(:has(.md-col-note)):not(:has(.md-col-date)):not(:has(.md-col-actions)) :is(th, td):last-child {
  width: 36%;
  min-width: 160px;
  max-width: none;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 表头：列宽须覆盖字段标题，禁止被压成一字重叠 */
.md-table thead th:not(.md-col-check):not(.md-col-actions) {
  min-width: 5em;
  overflow: hidden;
  text-overflow: ellipsis;
}
.md-table .md-col-id {
  width: 96px;
  min-width: 88px;
  max-width: 112px;
}
.md-table .md-col-num {
  width: 72px;
  min-width: 64px;
  max-width: 80px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.md-table .md-col-switch {
  width: 56px;
  min-width: 56px;
  max-width: 56px;
  text-align: center;
  padding-left: 4px;
  padding-right: 4px;
}
.md-table .md-col-switch .md-switch {
  margin: 0 auto;
}
/* 表内父子嵌套行（分页列表里的树） */
.md-table--nest .md-nest-name {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.md-table--nest .md-row--child td {
  background: var(--md-grey-50, #fafafa);
  border-bottom-color: var(--md-divider-soft);
}
.md-table--nest tbody tr:not(.md-row--child) td {
  border-bottom-color: var(--md-divider);
  font-weight: 500;
}
.md-table--nest tbody .md-row--child:hover td {
  background: #f0f0f0;
}
.md-table--nest .md-row--child .md-nest-name {
  padding-left: 40px;
}
.md-table--nest .md-nest-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  vertical-align: middle;
  position: relative;
  border: 1px solid var(--md-grey-400, #bdbdbd);
  border-radius: var(--md-radius-xs);
  background: var(--md-bg-paper);
  color: var(--md-text-secondary);
  cursor: pointer;
}
.md-table--nest .md-nest-toggle .md-icon { display: none; }
.md-table--nest .md-nest-toggle::before,
.md-table--nest .md-nest-toggle::after {
  content: "";
  position: absolute;
  background: currentColor;
  pointer-events: none;
}
.md-table--nest .md-nest-toggle::before {
  width: 8px;
  height: 1.5px;
  left: 3px;
  top: 6.25px;
}
.md-table--nest .md-nest-toggle::after {
  width: 1.5px;
  height: 8px;
  left: 6.25px;
  top: 3px;
}
.md-table--nest .md-nest-toggle[aria-expanded="true"]::after {
  display: none;
}
.md-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  position: relative;
  flex-wrap: nowrap;
  max-width: 100%;
  vertical-align: middle;
}
.md-actions .md-btn { min-width: 0; padding-left: 8px; padding-right: 8px; }
/* AD 操作列常规动作默认图标钮：查看/编辑/删除/增删/启停/更多 */
.md-actions .md-icon-btn {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  color: var(--md-text-secondary);
}
.md-actions .md-icon-btn:hover {
  color: var(--md-primary);
  background: var(--md-hover);
}
.md-actions .md-icon-btn .md-icon {
  width: 18px;
  height: 18px;
}
.md-actions .md-icon-btn .md-icon--danger,
.md-actions .md-icon-btn:has(.md-icon--danger) {
  color: var(--md-error);
}
.md-actions .md-select-wrap {
  display: inline-flex;
  align-items: center;
}

.md-pagination {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  padding: 2px;
  min-height: 32px;
  background: var(--md-bg-paper);
  border: 1px solid var(--md-divider-soft);
  border-radius: var(--md-radius-pill);
}
.md-page-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid transparent;
  border-radius: var(--md-radius-pill);
  background: transparent;
  color: var(--md-text);
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background var(--md-duration) var(--md-ease), color var(--md-duration) var(--md-ease), border-color var(--md-duration) var(--md-ease), box-shadow var(--md-duration) var(--md-ease);
}
.md-page-btn:hover:not(:disabled):not(.is-active) {
  background: var(--md-hover);
  border-color: var(--md-divider-soft);
}
.md-page-btn.is-active {
  background: var(--md-primary);
  color: #fff;
  border-color: var(--md-primary);
  box-shadow: var(--md-shadow-tab-active);
}
.md-page-btn:disabled {
  color: var(--md-text-disabled);
  pointer-events: none;
  opacity: 0.55;
}
.md-page-btn--nav {
  min-width: 28px;
  padding: 0 6px;
  font-size: 1rem;
  font-weight: 400;
}

.md-tabs {
  display: flex;
  border-bottom: 1px solid var(--md-divider);
  min-height: 48px;
}
.md-tab {
  flex: 1;
  min-width: 90px;
  height: 48px;
  border: 0;
  background: transparent;
  color: var(--md-text-secondary);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.02857em;
  text-transform: uppercase;
  cursor: pointer;
  position: relative;
}
.md-tab.is-active { color: var(--md-primary); }
.md-tab.is-active::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--md-primary);
}

/* 触屏页签：一组按钮（浅底 + 选中色块），不要桌面下划线签 */
.md-mobile-page .md-tabs,
.md-tabs--btns {
  display: flex;
  gap: 8px;
  border-bottom: 0;
  min-height: 0;
  padding: 0 0 8px;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.md-mobile-page .md-tab,
.md-tabs--btns .md-tab {
  appearance: none;
  -webkit-appearance: none;
  flex: 1;
  min-width: 0;
  height: 32px;
  padding: 0 8px;
  border: 0;
  border-radius: var(--md-radius);
  background: var(--md-primary-soft);
  color: var(--md-primary);
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.8125rem;
  font-weight: 500;
}
.md-mobile-page .md-tab.is-active,
.md-tabs--btns .md-tab.is-active {
  background: var(--md-primary);
  color: var(--md-primary-contrast);
}
.md-mobile-page .md-tab:hover {
  background: rgba(25, 118, 210, 0.18);
}
.md-mobile-page .md-tab.is-active:hover,
.md-tabs--btns .md-tab.is-active:hover {
  background: var(--md-primary);
  color: var(--md-primary-contrast);
}
.md-mobile-page .md-tab.is-active::after,
.md-tabs--btns .md-tab.is-active::after { content: none; }
.md-list-toolbar .md-tabs {
  padding: 0 0 8px;
}
.md-mobile-page .md-tab-panels {
  background: transparent;
}
.md-mobile-page .md-tab-panels > .md-tab-panel.is-active {
  display: flex;
  flex-direction: column;
  gap: var(--md-module-gap);
  min-width: 0;
}

.md-tabbar {
  display: flex;
  min-height: var(--md-tabbar-h);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-edge-top);
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 8;
}
.md-tabbar a, .md-tabbar .md-tabbar__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 6px 4px 4px;
  color: var(--md-text-secondary);
  font-size: 0.75rem;
  text-decoration: none;
  background: transparent;
  border: 0;
  cursor: pointer;
  box-sizing: border-box;
}
.md-tabbar a.is-active, .md-tabbar .md-tabbar__item.is-active { color: var(--md-primary); }

.md-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: var(--md-radius-lg);
  background: var(--md-error);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
}

.md-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 6px 16px;
  border-radius: var(--md-radius);
  font-size: 0.875rem;
  min-height: 48px;
  align-items: center;
}
.md-alert--info { background: #e5f6fd; color: #014361; }
.md-alert--success { background: #edf7ed; color: #1e4620; }
.md-alert--warning { background: #fff4e5; color: #663c00; }
.md-alert--error { background: #fdeded; color: #5f2120; }

.md-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--md-z-modal);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 225ms var(--md-ease), visibility 225ms var(--md-ease);
}
.md-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.md-dialog {
  position: fixed;
  left: 50%;
  top: 50%;
  min-width: 280px;
  max-width: 600px;
  width: calc(100% - 64px);
  max-height: calc(100% - 48px);
  background: var(--md-bg-paper);
  border-radius: var(--md-radius-dialog);
  box-shadow: var(--md-shadow-dialog);
  overflow: hidden;
  z-index: calc(var(--md-z-modal) + 1);
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -48%) scale(0.92);
  transition: opacity 225ms var(--md-ease), transform 225ms var(--md-ease), visibility 225ms var(--md-ease);
}
.md-dialog.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, -50%) scale(1);
}
.md-dialog__title { padding: 16px 24px 8px; font-size: 1.25rem; font-weight: 500; margin: 0; flex-shrink: 0; }
.md-dialog__body { padding: 8px 24px 16px; font-size: 1rem; color: var(--md-text-secondary); overflow: auto; min-height: 0; }
.md-dialog__actions { padding: 8px; display: flex; justify-content: flex-end; gap: 8px; flex-shrink: 0; }
body.md-dialog-open { overflow: hidden; }

.md-snackbar {
  position: fixed;
  left: 50%;
  bottom: 24px;
  min-width: 200px;
  max-width: min(568px, calc(100% - 32px));
  padding: 14px 16px;
  border-radius: var(--md-radius);
  background: #323232;
  color: #fff;
  font-size: 0.875rem;
  box-shadow: var(--md-shadow-8);
  z-index: var(--md-z-snackbar);
  display: flex;
  align-items: center;
  gap: 16px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 12px);
  transition: opacity 220ms var(--md-ease), transform 220ms var(--md-ease), visibility 220ms var(--md-ease);
}
.md-snackbar.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.md-previewable { cursor: zoom-in; }
.md-appbar__cover,
.md-card__leading,
.md-empty__art,
.md-chart-ph { cursor: default; }
.md-lightbox {
  position: fixed;
  inset: 0;
  z-index: var(--md-z-lightbox);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 225ms var(--md-ease), visibility 225ms var(--md-ease);
}
.md-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.md-lightbox__mask {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.86);
}
.md-lightbox__stage {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: 100%;
  padding: 56px 64px;
  box-sizing: border-box;
}
.md-lightbox__frame {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: min(92vw, 960px);
  max-height: min(80vh, 720px);
}
.md-lightbox__frame img,
.md-lightbox__frame video {
  max-width: min(92vw, 960px);
  max-height: min(80vh, 720px);
  object-fit: contain;
  border-radius: var(--md-radius-md);
  -webkit-user-drag: none;
  user-select: none;
}
.md-lightbox__frame video {
  background: #000;
}
.md-lightbox__ph {
  width: min(92vw, 960px);
  height: min(70vh, 560px);
  max-width: 100%;
  border-radius: var(--md-radius-md);
}
.md-lightbox__nav,
.md-lightbox__close {
  position: absolute;
  z-index: 2;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.md-lightbox__nav:hover,
.md-lightbox__close:hover { background: rgba(255, 255, 255, 0.28); }
.md-lightbox__nav:disabled {
  opacity: 0.28;
  cursor: default;
  pointer-events: none;
}
.md-lightbox__prev { left: max(12px, var(--md-safe-l)); top: 50%; transform: translateY(-50%); }
.md-lightbox__next { right: max(12px, var(--md-safe-r)); top: 50%; transform: translateY(-50%); }
.md-lightbox__close {
  top: max(12px, var(--md-safe-t));
  right: max(12px, var(--md-safe-r));
}
body:has(.md-mobile-page) .md-lightbox__close {
  right: auto;
  left: max(12px, var(--md-safe-l));
}
.md-lightbox .md-icon {
  width: 24px;
  height: 24px;
  color: #fff;
}
.md-lightbox__count {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: max(16px, var(--md-safe-b));
  transform: translateX(-50%);
  margin: 0;
  color: #fff;
  font-size: 0.875rem;
  letter-spacing: 0.04em;
}
body.md-lightbox-open { overflow: hidden; }

.md-linear {
  height: 4px;
  width: 100%;
  background: rgba(25, 118, 210, 0.2);
  overflow: hidden;
  border-radius: var(--md-radius-xs);
}
.md-linear__bar {
  height: 100%;
  width: 40%;
  background: var(--md-primary);
  animation: md-indeterminate 1.6s var(--md-ease) infinite;
}
@keyframes md-indeterminate {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(350%); }
}

.md-progress,
.md-advance {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.md-progress__head,
.md-advance__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.md-progress__label,
.md-advance__label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--md-text-secondary);
}
.md-progress__value,
.md-advance__value {
  margin: 0;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: var(--md-text-secondary);
  flex-shrink: 0;
}

.md-progress__track {
  height: 4px;
  width: 100%;
  background: rgba(25, 118, 210, 0.2);
  border-radius: var(--md-radius-xs);
  overflow: hidden;
}
.md-progress__bar {
  height: 100%;
  width: 0;
  max-width: 100%;
  background: var(--md-primary);
  border-radius: inherit;
  transition: width 220ms var(--md-ease);
}
.md-progress--lg .md-progress__track { height: 8px; border-radius: var(--md-radius-sm); }
.md-progress--indeterminate .md-progress__bar {
  width: 40%;
  animation: md-indeterminate 1.6s var(--md-ease) infinite;
  transition: none;
}

.md-advance__track {
  display: flex;
  gap: 4px;
  height: 4px;
  width: 100%;
  background: transparent;
  overflow: visible;
}
.md-advance__seg {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  background: rgba(25, 118, 210, 0.2);
  border-radius: var(--md-radius-xs);
  overflow: hidden;
}
.md-advance__bar {
  height: 100%;
  width: 0;
  max-width: 100%;
  background: var(--md-primary);
  border-radius: inherit;
  transition: width 220ms var(--md-ease);
}
.md-advance--lg .md-advance__track { height: 8px; gap: 6px; }
.md-advance--lg .md-advance__seg { border-radius: var(--md-radius-sm); }

.md-mobile-page .md-progress,
.md-mobile-page .md-advance { margin: 4px 0 16px; }
.md-d1 > .md-progress,
.md-d1 > .md-advance { flex-shrink: 0; }

.md-skeleton {
  display: block;
  background: linear-gradient(90deg, var(--md-grey-200) 25%, var(--md-grey-100) 37%, var(--md-grey-200) 63%);
  background-size: 400% 100%;
  animation: md-pulse 1.4s ease infinite;
  border-radius: var(--md-radius);
}
@keyframes md-pulse {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}

.md-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 1rem; color: var(--md-text-secondary); flex-shrink: 0; min-height: 32px; }
.md-d1 > .md-breadcrumb { margin: 0; }
.md-breadcrumb a { color: var(--md-text-secondary); }
.md-breadcrumb .is-current { color: var(--md-text); }

.md-toggle {
  display: inline-flex;
  border: 1px solid var(--md-divider);
  border-radius: var(--md-radius);
  overflow: hidden;
}
.md-toggle button {
  height: 32px;
  padding: 0 12px;
  border: 0;
  border-right: 1px solid var(--md-divider);
  background: transparent;
  color: var(--md-text);
  font-size: 0.8125rem;
  cursor: pointer;
}
.md-toggle button:last-child { border-right: 0; }
.md-toggle button.is-active { background: rgba(25, 118, 210, 0.12); color: var(--md-primary); }
.md-toggle--vert { flex-direction: column; width: 100%; }
.md-toggle--vert button { border-right: 0; border-bottom: 1px solid var(--md-divider); height: auto; min-height: 32px; padding: 6px 8px; text-align: left; }

.md-d1 {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  min-height: 100%;
  background: var(--md-bg-default);
}
.md-d1--list {
  height: 100%;
  overflow: hidden;
  box-sizing: border-box;
  padding: 10px 16px;
  gap: 8px;
}
.md-d1__search, .md-d1__table {
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
}
.md-d1__search { padding: 16px; display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; flex-shrink: 0; }
.md-d1__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.015) 0%, var(--md-bg-paper) 100%);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
  flex-shrink: 0;
}
.md-d1__stats {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: 0 1 auto;
  min-width: 0;
  padding: 5px 12px;
  border-radius: var(--md-radius-pill);
  background: rgba(25, 118, 210, 0.06);
  color: var(--md-text-secondary);
  font-size: 0.8125rem;
  line-height: 1.2;
}
.md-d1__stats-num {
  font-weight: 600;
  color: var(--md-primary);
  font-variant-numeric: tabular-nums;
}
.md-d1__pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
  flex-shrink: 0;
  padding: 4px 6px 4px 10px;
  border-radius: calc(var(--md-radius) + 2px);
  background: var(--md-grey-50);
  border: 1px solid var(--md-divider-soft);
}
.md-d1__pager-meta {
  font-size: 0.8125rem;
  color: var(--md-text-secondary);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.md-d1__pager-meta strong {
  font-weight: 600;
  color: var(--md-text);
}
.md-d1__pager .md-field { min-width: 88px; }
.md-d1__page-size .md-field__label {
  --md-field-label-scale: 0.75;
  color: var(--md-text-secondary);
  line-height: 1;
  top: -7px;
}
/* 分页条「每页」下拉：与 md-page-btn 同高 28px；清零上下 padding，用 line-height 垂直居中 */
.md-d1__pager .md-field--sm.md-field--select .md-select,
.md-d1__pager .md-field--sm.md-field--select select {
  box-sizing: border-box;
  height: 28px;
  min-height: 28px;
  padding: 0 28px 0 8px;
  line-height: 26px;
  font-size: 0.8125rem;
}
.md-d1__pager .md-field--sm.md-field--select:focus-within .md-select,
.md-d1__pager .md-field--sm.md-field--select:focus-within select {
  padding: 0 27px 0 7px;
  line-height: 24px;
}
.md-d1__pager .md-field--sm.md-field--select::after {
  top: 50%;
  right: 10px;
  margin-top: -5px;
}
.md-d1__workspace {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: transparent;
}
.md-d1__workspace > .md-tab-panel {
  flex: 1;
  min-height: 0;
  flex-direction: column;
  gap: var(--md-module-gap);
}
.md-d1__workspace > .md-tab-panel.is-active {
  display: flex;
}
.md-d1__list {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
  overflow: hidden;
}
.md-d1__list .md-table-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.md-d1__list .md-table { min-width: 1080px; }
.md-d1--list .md-d1__list .md-table {
  min-width: 720px;
  width: 100%;
  table-layout: fixed;
}
.md-d1__list .md-d1__footer {
  box-shadow: none;
  border-radius: 0;
  border-top: 1px solid var(--md-divider-soft);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.02) 0%, var(--md-bg-paper) 100%);
}
.md-d1__list > .md-card-grid {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 12px;
  box-shadow: none;
  border-radius: 0;
}

/* D1-1 紧凑密度：矮行、小内外距，一屏多看几行；勿套到 D1-2 */
.md-d1--list > .md-breadcrumb {
  min-height: 22px;
  font-size: 0.8125rem;
  gap: 6px;
}
.md-d1--list > .md-alert {
  padding: 4px 12px;
  min-height: 32px;
}
.md-d1--list .md-tabs--page { min-height: 36px; padding: 0 4px; }
.md-d1--list .md-tabs--page .md-tab {
  height: 36px;
  min-width: 64px;
  padding: 0 12px;
  font-size: 0.8125rem;
}
.md-d1--list .md-d1__workspace > .md-tab-panel.is-active { gap: 8px; }
.md-d1--list .md-d1__search { padding: 8px 10px; gap: 8px 10px; }
.md-d1--list .md-d1__search .md-field__label,
.md-filter .md-field__label,
.md-d1__search .md-field__label {
  --md-field-label-scale: 0.75; /* 筛选区 label 再小一档（约 9px 视觉） */
  line-height: 1.3;
}
.md-d1--list .md-d1__search .md-field--sm .md-field__input:not(textarea),
.md-d1--list .md-d1__search .md-field--sm select,
.md-d1--list .md-d1__search .md-field--sm .md-select,
.md-d1__search .md-field .md-field__input,
.md-d1__search .md-field select,
.md-d1__search .md-select,
.md-filter .md-field .md-field__input,
.md-filter .md-field select,
.md-filter .md-select {
  height: 32px;
  padding: 4px 10px;
  font-size: 0.8125rem; /* 13px：筛选区输入更小 */
}
.md-d1--list .md-d1__search .md-field--sm:focus-within .md-field__input:not(textarea),
.md-d1--list .md-d1__search .md-field--sm select:focus,
.md-d1--list .md-d1__search .md-field--sm .md-select:focus,
.md-d1__search .md-field:focus-within .md-field__input:not(textarea),
.md-d1__search .md-field select:focus,
.md-d1__search .md-select:focus,
.md-filter .md-field:focus-within .md-field__input:not(textarea),
.md-filter .md-field select:focus,
.md-filter .md-select:focus {
  padding: 3px 9px;
}
.md-d1__search .md-field__input::placeholder,
.md-filter .md-field__input::placeholder {
  font-size: 0.8125rem;
}
.md-d1--list .md-d1__toolbar {
  min-height: 36px;
  padding: 4px 10px;
}
.md-d1--list .md-d1__toolbar .md-btn { height: 32px; }
.md-d1--list .md-d1__list .md-table th,
.md-d1--list .md-d1__list .md-table td {
  padding: 6px 10px;
  font-size: 0.8125rem;
}
.md-d1--list .md-d1__list .md-table--nest .md-row--child .md-nest-name {
  padding-left: 40px;
}
.md-d1--list .md-d1__list .md-col-check {
  width: 44px;
  min-width: 44px;
  padding-left: 8px;
  padding-right: 8px;
}
.md-d1--list .md-d1__list .md-col-actions {
  padding-left: 4px;
  padding-right: 4px;
  width: var(--md-col-actions-w, 64px) !important;
  min-width: var(--md-col-actions-w, 64px) !important;
  max-width: var(--md-col-actions-w, 64px) !important;
}
.md-d1--list .md-d1__list .md-thumb {
  width: 28px;
  height: 28px;
  margin-right: 8px;
  border-radius: var(--md-radius-sm);
}
.md-d1--list .md-d1__list .md-row-goods { min-width: 0; }
.md-d1--list .md-d1__list .md-chip {
  height: 22px;
  padding: 0 8px;
  font-size: 0.75rem;
}
.md-d1--list .md-d1__footer { padding: 8px 12px; gap: 10px; }
.md-d1--list .md-d1__stats { padding: 4px 10px; font-size: 0.75rem; }
.md-d1--list .md-d1__pager { padding: 3px 5px 3px 8px; gap: 6px; }
.md-d1--list .md-pagination { min-height: 28px; }
.md-d1--list .md-page-btn { min-width: 26px; height: 26px; padding: 0 6px; font-size: 0.75rem; }
.md-d1--list .md-page-btn--nav { min-width: 24px; font-size: 0.9375rem; }
.md-d1--list .md-d1__pager-meta { font-size: 0.75rem; }
.md-d1--list .md-d1__list .md-col-switch {
  padding-left: 2px;
  padding-right: 2px;
}
.md-d1--list .md-d1__list .md-btn--sm { height: 26px; padding: 2px 6px; }

.md-mobile-page {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100vh;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  background: var(--md-bg-default);
}
.md-mobile-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}
.md-mobile-body::-webkit-scrollbar {
  width: 0;
  height: 0;
}
.md-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.md-stack { display: flex; flex-direction: column; gap: 20px; }
/* 列表横卡单行：条目间距略紧，行高靠内边距撑开 */
.md-stack:has(> .md-set-row) {
  gap: 10px;
}
.md-price { color: var(--md-error); font-weight: 500; font-size: 1rem; }

[data-comp][data-state="loading"] .md-card__media,
[data-comp][data-state="loading"] .md-card__title,
[data-comp][data-state="loading"] .md-card__text {
  color: transparent;
  background: linear-gradient(90deg, var(--md-grey-200) 25%, var(--md-grey-100) 37%, var(--md-grey-200) 63%);
  background-size: 400% 100%;
  animation: md-pulse 1.4s ease infinite;
}
[data-comp][data-state="empty"],
[data-comp][data-state="error"] { display: none; }
.md-empty {
  padding: 48px 16px;
  text-align: center;
  color: var(--md-text-secondary);
  font-size: 0.875rem;
}
.md-empty.is-hidden,
.md-skel-host.is-hidden { display: none; }
.md-empty--illus { padding: 56px 24px; }
.md-empty__art {
  width: 120px;
  height: 80px;
  margin: 0 auto 16px;
  border-radius: var(--md-radius);
  background:
    linear-gradient(180deg, var(--md-grey-100) 0%, var(--md-grey-200) 100%);
  box-shadow: var(--md-shadow-1);
  position: relative;
}
.md-empty__art::before,
.md-empty__art::after {
  content: "";
  position: absolute;
  background: var(--md-grey-300);
  border-radius: var(--md-radius-xs);
}
.md-empty__art::before {
  width: 48px;
  height: 36px;
  left: 20px;
  top: 22px;
}
.md-empty__art::after {
  width: 28px;
  height: 28px;
  right: 22px;
  top: 18px;
  border-radius: var(--md-radius-circle);
  background: var(--md-grey-400);
}
.md-empty__title {
  margin: 0 0 4px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--md-text);
}
.md-empty__text { margin: 0; font-size: 0.875rem; color: var(--md-text-secondary); }

.md-media-ph {
  background:
    var(--md-grey-200)
    linear-gradient(135deg, transparent 40%, rgba(255,255,255,0.35) 50%, transparent 60%);
  position: relative;
}
.md-media-ph::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 36px;
  height: 28px;
  border: 2px solid var(--md-grey-400);
  border-radius: var(--md-radius-xs);
  box-sizing: border-box;
}

.md-filter, .md-d1__search {
  padding: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-end;
}
.md-filter {
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
}
.md-filter__actions {
  display: flex;
  gap: 8px;
  margin-left: auto;
  align-items: center;
}

.md-drawer {
  position: fixed;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-16);
  z-index: calc(var(--md-z-modal) + 1);
  display: flex;
  flex-direction: column;
  visibility: hidden;
  pointer-events: none;
  transition: transform 280ms var(--md-ease), visibility 280ms var(--md-ease);
}
.md-drawer--left,
.md-drawer--right {
  top: 0;
  bottom: 0;
  width: min(360px, 86vw);
}
.md-drawer--left { left: 0; transform: translateX(-100%); }
.md-drawer--right { right: 0; transform: translateX(100%); }
.md-drawer--bottom {
  left: 0;
  right: 0;
  bottom: 0;
  top: auto;
  width: 100%;
  height: auto;
  max-height: 70vh;
  border-radius: var(--md-radius-sheet-top);
  transform: translateY(100%);
}
.md-drawer.is-open {
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.md-drawer__title { padding: 16px 24px 8px; font-size: 1.25rem; font-weight: 500; margin: 0; flex-shrink: 0; }
.md-drawer__body { padding: 8px 24px 16px; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
.md-drawer__actions { padding: 8px; display: flex; justify-content: flex-end; gap: 8px; flex-shrink: 0; }
/* 触屏半屏/抽屉底栏：一行只有一个按钮时占满整行 */
body:has(.md-mobile-page) .md-drawer__actions:has(> .md-btn:only-child),
body:has(.md-mobile-page) .md-drawer__actions:has(> a.md-btn:only-child) {
  justify-content: stretch;
}
body:has(.md-mobile-page) .md-drawer__actions > .md-btn:only-child,
body:has(.md-mobile-page) .md-drawer__actions > a.md-btn:only-child {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
}
.md-drawer__close {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 2;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: transparent;
  color: var(--md-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}
.md-drawer__close:hover,
.md-drawer__close:focus-visible {
  background: var(--md-grey-100);
  color: var(--md-text-primary);
  outline: none;
}
.md-drawer__close .md-icon {
  width: 20px;
  height: 20px;
}
.md-drawer--bottom > .md-drawer__close ~ .md-drawer__title,
.md-drawer--bottom:has(> .md-drawer__close) > .md-drawer__title {
  padding-right: 48px;
}
.md-drawer--bottom .md-drawer__body {
  -webkit-overflow-scrolling: touch;
}
/* 底半屏选项：每项独占一行（不走表单标签换行） */
.md-drawer--bottom .md-drawer__opt {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  border: 0;
  border-top: 1px solid var(--md-divider);
  border-radius: 0;
  background: transparent;
  color: var(--md-text);
  font-size: 1rem;
  text-align: left;
  cursor: pointer;
  text-decoration: none;
}
.md-drawer--bottom .md-drawer__opt:first-child,
.md-drawer--bottom .md-drawer__body > .md-choice-group:first-child,
.md-drawer--bottom .md-drawer__body > .md-set-picks:first-child {
  border-top: 0;
}
.md-drawer--bottom .md-drawer__opt.is-active,
.md-drawer--bottom .md-drawer__opt[aria-selected="true"] {
  color: var(--md-primary);
  font-weight: 500;
}
.md-drawer--bottom .md-choice-group,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
}
.md-drawer--bottom .md-choice-group > .md-choice-group__label {
  flex: 0 0 auto;
  width: 100%;
  padding: 8px 16px 4px;
  margin: 0;
  box-sizing: border-box;
}
.md-drawer--bottom .md-choice-group > .md-check,
.md-drawer--bottom .md-choice-group > .md-radio,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-check,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-radio {
  position: relative;
  display: flex;
  width: 100%;
  box-sizing: border-box;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  border: 0;
  border-top: 1px solid var(--md-divider);
  border-radius: 0;
  background: transparent;
  color: var(--md-text);
  overflow: visible;
}
.md-drawer--bottom .md-choice-group > .md-check input,
.md-drawer--bottom .md-choice-group > .md-radio input,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-check input,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-radio input {
  position: static;
  opacity: 1;
  width: 18px;
  height: 18px;
  margin: 0;
  pointer-events: auto;
  flex-shrink: 0;
}
.md-drawer--bottom .md-choice-group > .md-check:has(input:checked),
.md-drawer--bottom .md-choice-group > .md-radio:has(input:checked),
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-check:has(input:checked),
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-radio:has(input:checked) {
  background: transparent;
  border-color: transparent;
  color: var(--md-primary);
}
.md-drawer--bottom .md-choice-group > .md-check:has(input:checked)::before,
.md-drawer--bottom .md-choice-group > .md-radio:has(input:checked)::before,
.md-drawer--bottom .md-choice-group > .md-check:has(input:checked)::after,
.md-drawer--bottom .md-choice-group > .md-radio:has(input:checked)::after,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-check:has(input:checked)::before,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-radio:has(input:checked)::before,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-check:has(input:checked)::after,
.md-drawer--bottom .md-choice-group:not(.md-choice-group--list) > .md-radio:has(input:checked)::after {
  content: none;
  display: none;
}
.md-drawer--bottom .md-set-picks {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  padding: 0;
  border: 0;
}
.md-drawer--bottom .md-set-pick {
  flex: 0 0 auto;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border-top: 1px solid var(--md-divider);
  box-sizing: border-box;
}
.md-drawer--bottom .md-set-pick__face {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-height: 0;
  max-width: none;
  flex: 1 1 auto;
}
.md-drawer--bottom .md-set-pick__label {
  text-align: left;
}

.md-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 120px;
  padding: 24px;
  border: 1px dashed var(--md-grey-400);
  border-radius: var(--md-radius);
  background: var(--md-grey-50);
  color: var(--md-text-secondary);
  cursor: pointer;
  text-align: center;
  position: relative;
}
.md-upload input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
}
.md-upload__hint { font-size: 0.75rem; color: var(--md-text-disabled); margin: 0; }

.md-skeleton--text { height: 14px; width: 80%; margin: 8px 0; }
.md-skeleton--title { height: 20px; width: 40%; margin: 8px 0; }
.md-skeleton--media { height: 120px; width: 100%; }
.md-skeleton--row { height: 48px; width: 100%; margin: 4px 0; }
.md-skel-host { padding: 8px 0; display: flex; flex-direction: column; gap: 8px; }

.md-stepper { display: flex; gap: 8px; align-items: flex-start; padding: 8px 0 16px; }
.md-step { flex: 1; text-align: center; font-size: 0.75rem; color: var(--md-text-secondary); position: relative; }
.md-step::before {
  content: attr(data-step);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0 auto 8px;
  border-radius: var(--md-radius-circle);
  background: var(--md-grey-300);
  color: var(--md-text);
  font-size: 0.75rem;
  font-weight: 500;
  position: relative;
  z-index: 1;
}
.md-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 11px;
  left: calc(50% + 16px);
  right: calc(-50% + 16px);
  height: 2px;
  background: var(--md-grey-300);
  pointer-events: none;
}
.md-step.is-done { color: var(--md-primary); }
.md-step.is-done::before { background: var(--md-primary); color: #fff; }
.md-step.is-done:not(:last-child)::after { background: var(--md-primary); }
.md-step.is-active { color: var(--md-primary); }
.md-step.is-active::before { background: var(--md-primary); color: #fff; }
/* 桌面：数字步骤可点，快速跳到该步 */
.md-d1 .md-step {
  cursor: pointer;
  user-select: none;
}
.md-d1 .md-step:hover::before {
  box-shadow: var(--md-shadow-focus-hover);
}
.md-d1 .md-step:focus-visible {
  outline: none;
}
.md-d1 .md-step:focus-visible::before {
  box-shadow: var(--md-shadow-focus-active);
}

.md-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.md-timeline__item {
  display: flex;
  align-items: stretch;
  gap: 12px;
  min-width: 0;
  cursor: pointer;
}
.md-timeline--static,
.md-timeline--static .md-timeline__item {
  cursor: default;
}
.md-timeline__rail {
  width: 20px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.md-timeline__node {
  width: 12px;
  height: 12px;
  border-radius: var(--md-radius-circle);
  box-sizing: border-box;
  flex-shrink: 0;
  margin-top: 22px;
  background: var(--md-grey-300);
  border: 2px solid var(--md-grey-300);
  z-index: 1;
}
.md-timeline__line {
  width: 2px;
  flex: 1 1 auto;
  min-height: 16px;
  margin-top: 4px;
  background: var(--md-grey-300);
}
.md-timeline__item.is-done .md-timeline__node,
.md-timeline__item.is-active .md-timeline__node,
.md-timeline__item.is-origin .md-timeline__node {
  background: var(--md-primary);
  border-color: var(--md-primary);
}
.md-timeline__item.is-active .md-timeline__node {
  box-shadow: var(--md-shadow-focus-primary);
}
.md-timeline__item.is-done .md-timeline__line,
.md-timeline__item.is-path .md-timeline__line,
.md-timeline__item.is-active .md-timeline__line {
  background: var(--md-primary);
}
/* 只读物流轴：仅展示已发生节点；竖线全程主色；途经小圆点；当前实心+外圈；起点底部空心 */
.md-timeline--static .md-timeline__item.is-path .md-timeline__node {
  width: 6px;
  height: 6px;
  margin-top: 25px;
  background: var(--md-primary);
  border: 0;
  box-shadow: none;
  opacity: 0.9;
}
.md-timeline--static .md-timeline__item.is-origin .md-timeline__node {
  background: var(--md-bg-paper, #fff);
  border: 2px solid var(--md-primary);
  box-shadow: none;
}
.md-timeline--static .md-timeline__item.is-active .md-timeline__line,
.md-timeline--static .md-timeline__item.is-path .md-timeline__line {
  background: var(--md-primary);
}
.md-timeline--static .md-timeline__item.is-active .md-timeline__node,
.md-timeline--static .md-timeline__item.is-path .md-timeline__node {
  border-color: var(--md-primary);
}
.md-timeline__item:last-child .md-timeline__line {
  visibility: hidden;
  min-height: 0;
  flex: 0 0 0;
  margin: 0;
}
.md-timeline__body {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 0 20px;
}
.md-timeline__item:last-child .md-timeline__body {
  margin-bottom: 0;
}
/* 时间轴右侧：横卡文本，无左图；正文内可嵌 md-card__photos 多小图 */
.md-timeline__body.md-card--row {
  min-height: 0;
}
.md-timeline__body.md-card--row .md-card__body {
  min-height: 0;
  padding: 16px 16px;
  gap: 10px;
}
.md-timeline__body.md-card--row .md-card__main {
  gap: 6px;
}
.md-timeline__body.md-card--row .md-card__title {
  line-height: 1.45;
}
.md-timeline__body.md-card--row .md-card__subtitle,
.md-timeline__body.md-card--row .md-card__text {
  line-height: 1.55;
}
.md-timeline__body.md-card--row .md-card__foot {
  margin-top: 2px;
  padding-top: 2px;
}
.md-timeline__body.md-card--row .md-card__photos {
  gap: 8px;
  margin-top: 2px;
}
.md-timeline__body.md-card--row .md-card__photo {
  width: 40px;
  height: 40px;
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
}
.md-d1 > .md-timeline {
  max-width: 720px;
  width: 100%;
}
.md-d1 > .md-timeline + .md-section-head {
  margin-top: 32px;
}
.md-doc-scroll {
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow: auto;
}
.md-doc-scroll > .md-module {
  min-height: 52vh;
  flex-shrink: 0;
}

.md-tree { list-style: none; margin: 0; padding: 8px 0; user-select: none; }
.md-tree ul { list-style: none; margin: 0; padding-left: 16px; }
.md-tree li:not(.is-open) > ul { display: none; }
.md-tree-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 4px 4px 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--md-divider);
  flex-shrink: 0;
}
.md-tree-bar .md-btn--sm { min-height: 28px; padding: 0 8px; }
.md-tree-bar .md-icon-btn { width: 28px; height: 28px; }
.md-tree-bar [data-tree-act="toggle-all"] { margin-left: auto; }
.md-split__side > .md-tree {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.md-tree__row {
  display: flex;
  align-items: center;
  min-width: 0;
  position: relative;
  cursor: grab;
}
.md-tree__item {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius: var(--md-radius);
}
.md-tree__row > .md-tree__item {
  flex: 1;
  min-width: 0;
  width: auto;
}
button.md-tree__item {
  border: 0;
  background: transparent;
  width: 100%;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.md-tree__toggle {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--md-text-secondary);
  transition: transform 150ms var(--md-ease);
}
.md-tree li.is-open > .md-tree__item > .md-tree__toggle,
.md-tree li.is-open > .md-tree__row > .md-tree__item > .md-tree__toggle {
  transform: rotate(90deg);
}
.md-tree li:not(:has(> ul)) > .md-tree__item > .md-tree__toggle,
.md-tree li:not(:has(> ul)) > .md-tree__row > .md-tree__item > .md-tree__toggle {
  visibility: hidden;
  pointer-events: none;
}
.md-tree__label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.md-tree__rename {
  flex: 1;
  min-width: 0;
  height: 28px;
  padding: 2px 8px;
  font: inherit;
  font-size: 0.8125rem;
  user-select: text;
}
.md-tree__ops {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0;
  opacity: 0;
  pointer-events: none;
  padding-right: 2px;
  cursor: default;
}
.md-tree__row:hover > .md-tree__ops,
.md-tree__row:focus-within > .md-tree__ops,
.md-tree__row.is-menu-host > .md-tree__ops {
  opacity: 1;
  pointer-events: auto;
}
.md-tree__ops .md-icon-btn {
  width: 24px;
  height: 24px;
  color: var(--md-text-secondary);
}
.md-tree__ops .md-icon-btn .md-icon {
  width: 16px;
  height: 16px;
}
.md-tree__ops .md-icon-btn:has(.md-icon--danger) { color: var(--md-error); }
.md-tree[data-leaf-add="off"] li:not(:has(> ul)) .md-tree__ops [data-tree-act="add"],
.md-tree li[data-leaf] .md-tree__ops [data-tree-act="add"] {
  display: none;
}
.md-tree__item:hover { background: var(--md-hover); }
.md-tree__item.is-active {
  background: var(--md-focus);
  color: var(--md-primary);
}
.md-tree__item.is-active .md-tree__toggle { color: var(--md-primary); }
.md-tree li.is-dragging {
  opacity: 0.45;
  pointer-events: none;
}
.md-tree__row.is-drop-before::before,
.md-tree__row.is-drop-after::after {
  content: "";
  position: absolute;
  left: 8px;
  right: 8px;
  height: 2px;
  background: var(--md-primary);
  z-index: 2;
  pointer-events: none;
}
.md-tree__row.is-drop-before::before { top: 0; }
.md-tree__row.is-drop-after::after { bottom: 0; }
.md-tree__row.is-drop-into > .md-tree__item {
  outline: 2px solid var(--md-primary);
  outline-offset: -2px;
  background: var(--md-focus);
}
@media (hover: none) {
  .md-tree__ops {
    opacity: 1;
    pointer-events: auto;
  }
}

.md-chart-ph {
  min-height: 180px;
  border-radius: var(--md-radius);
  background:
    repeating-linear-gradient(90deg, transparent 0 31px, var(--md-grey-200) 32px 32px),
    linear-gradient(180deg, var(--md-grey-50), var(--md-bg-paper));
  box-shadow: var(--md-shadow-1);
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 24px 16px 16px;
}
.md-chart-ph span {
  flex: 1;
  background: rgba(25, 118, 210, 0.35);
  border-radius: var(--md-radius-xs) var(--md-radius-xs) 0 0;
  min-height: 24px;
}

.md-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.md-stat-card {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
}
.md-stat-card .md-h3 { margin: 0; font-size: 1.75rem; line-height: 1.2; }
@media (max-width: 960px) {
  .md-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.md-d1--split,
.md-d1--locator {
  height: 100%;
  overflow: hidden;
  box-sizing: border-box;
  padding: 10px 16px;
  gap: 8px;
}
.md-d1--split > .md-breadcrumb,
.md-d1--locator > .md-breadcrumb,
.md-d1--locator > .md-body2,
.md-d1--locator > .md-tabs--page { flex-shrink: 0; }
.md-split {
  flex: 1;
  min-height: 0;
  display: flex;
  gap: 12px;
}
.md-split__side {
  width: 240px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  overflow: auto;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
  padding: 8px;
}
.md-split__side:has(> .md-tree) {
  overflow: hidden;
}
.md-split__main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.md-split__main > .md-d1__form,
.md-split__main > .md-split__form {
  flex: 1;
  min-height: 0;
  overflow: auto;
  align-content: start;
}
.md-split__main > .md-d1__form .md-form-block,
.md-split__main > .md-split__form .md-form-block {
  align-content: start;
}
.md-split__main > .md-d1__form .md-form-block > .md-field,
.md-split__main > .md-split__form .md-form-block > .md-field {
  align-self: start;
}

/* 页面级分栏（≠ 表单窄双列 md-d1__form） */
.md-layout {
  display: grid;
  gap: 12px;
  min-width: 0;
  min-height: 0;
  flex: 1;
  align-content: start;
}
.md-layout--2col {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.md-layout--3col {
  grid-template-columns: minmax(200px, 0.8fr) minmax(0, 1.4fr) minmax(200px, 0.8fr);
}
.md-layout--full {
  grid-template-columns: minmax(0, 1fr);
}
.md-layout--pin {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.md-layout--fix-left {
  grid-template-columns: var(--md-layout-aside, 240px) minmax(0, 1fr);
}
.md-layout--fix-right {
  grid-template-columns: minmax(0, 1fr) var(--md-layout-aside, 240px);
}
.md-layout__pane {
  min-width: 0;
  min-height: 0;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
  padding: 16px;
  overflow: auto;
}
.md-layout__pane--span {
  grid-column: 1 / -1;
}
.md-layout__pane--flush {
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.md-split__main.md-layout__pane {
  overflow: auto;
  gap: 16px;
  padding: 12px;
}
.md-split__main.md-layout__pane--flush {
  padding: 12px;
  overflow: auto;
  gap: 16px;
}
.md-d1--cards .md-card-grid,
.md-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  align-items: stretch;
  align-content: start;
  gap: 12px;
  padding: 4px 0 12px;
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.md-card-grid > .md-card {
  height: 100%;
  min-height: 0;
  align-self: stretch;
}
.md-card-grid > .md-card--tile .md-card__body {
  flex: 1 1 auto;
}
.md-card-grid > .md-card--tile .md-price {
  margin-top: 0;
}
.md-card--tile .md-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.md-card--tile .md-card__head .md-card__title {
  flex: 1 1 auto;
  min-width: 0;
}
.md-card--tile .md-card__head .md-switch {
  flex-shrink: 0;
  margin-top: 1px;
}
.md-card--tile .md-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  min-width: 0;
}
.md-card--tile .md-card__foot .md-price {
  margin: 0;
  flex-shrink: 0;
}
.md-card--tile .md-card__foot .md-card__actions {
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  margin-left: auto;
  flex-wrap: wrap;
}
.md-d1--cards .md-d1__list {
  overflow: auto;
}

/* 不分页分组字段展示（列表六型之一 / 触屏 MP-012：多条记录按组，sheet safe + md-group-list 白卡浮灰） */
.md-group-list {
  display: flex;
  flex-direction: column;
  gap: var(--md-module-gap);
  /* 上下左右留白，避免 group 卡 box-shadow 被滚动容器裁切 */
  padding: 8px 6px 16px;
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: transparent;
  box-sizing: border-box;
}
.md-group-list__group {
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-surface);
  border-radius: var(--md-radius);
  overflow: visible;
  flex-shrink: 0;
}
.md-group-list__head {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 14px 16px 12px;
  background: var(--md-bg-paper);
  border-radius: var(--md-radius) var(--md-radius) 0 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: var(--md-text);
}
.md-group-list__head::after {
  content: "";
  position: absolute;
  left: var(--md-set-divider-inset-x);
  right: var(--md-set-divider-inset-x);
  bottom: 0;
  height: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}
.md-group-list__item {
  padding: 14px 16px;
  border-top: 0;
}
.md-group-list__item:last-child {
  border-radius: 0 0 var(--md-radius) var(--md-radius);
}
.md-group-list__item + .md-group-list__item {
  position: relative;
}
.md-group-list__item + .md-group-list__item::before {
  content: "";
  position: absolute;
  left: var(--md-set-divider-inset-x);
  right: var(--md-set-divider-inset-x);
  top: 0;
  height: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}
.md-group-list__item .md-desc {
  margin: 0;
}
.md-group-list__item .md-desc__row {
  border-bottom: 0;
  padding: 4px 0;
}
.md-group-list__item .md-desc--cols-2 .md-desc__row,
.md-group-list__item .md-desc--cols-3 .md-desc__row {
  border-bottom: 0;
  padding: 4px 0;
}
/* 触屏：整页在 body 滚，列表本身不嵌套滚动，避免卡阴影被裁 */
.md-mobile-page .md-mobile-sheet > .md-group-list {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
  padding-bottom: 0;
}
/* 触屏父子章节列表：父章可展开/收起子章；不是维护树，不是横卡 */
.md-chapter-list {
  display: flex;
  flex-direction: column;
  gap: var(--md-module-gap);
  margin: 0;
  padding: 0;
  list-style: none;
  background: transparent;
}
.md-chapter-list__group {
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-surface);
  border-radius: var(--md-radius-lg);
  overflow: hidden;
}
.md-chapter-list__head {
  display: flex;
  align-items: center;
  gap: 2px;
  width: 100%;
  min-width: 0;
}
.md-chapter-list__toggle {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  margin-left: 4px;
  color: var(--md-text-secondary);
}
.md-chapter-list__toggle .md-icon {
  transition: transform 150ms var(--md-ease);
}
.md-chapter-list__group.is-open > .md-chapter-list__head > .md-chapter-list__toggle .md-icon {
  transform: rotate(90deg);
}
.md-chapter-list__parent,
.md-chapter-list__child {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  box-sizing: border-box;
  min-height: 0;
  padding: 12px 16px 12px 0;
  border: 0;
  background: transparent;
  color: var(--md-text);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.md-chapter-list__parent {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}
.md-chapter-list__body {
  display: none;
  padding-bottom: 4px;
}
.md-chapter-list__group.is-open > .md-chapter-list__body {
  display: block;
  border-top: 1px solid var(--md-divider-soft);
  margin: 0 12px;
}
.md-chapter-list__child {
  position: relative;
  padding: 12px 16px 12px 28px;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.45;
  color: var(--md-text-secondary);
  width: 100%;
}
.md-chapter-list__child::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-top: -2px;
  border-radius: var(--md-radius-circle);
  background: var(--md-grey-400);
}
.md-chapter-list__parent.is-active,
.md-chapter-list__child.is-active {
  color: var(--md-primary);
  background: rgba(25, 118, 210, 0.08);
}
.md-chapter-list__child.is-active::before {
  background: var(--md-primary);
}
.md-chapter-list__child + .md-chapter-list__child::after {
  content: "";
  position: absolute;
  left: var(--md-set-divider-inset-x);
  right: var(--md-set-divider-inset-x);
  top: 0;
  height: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}
.md-mobile-page .md-mobile-sheet > .md-chapter-list {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
  padding-bottom: 0;
}
.md-tree-browse {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
  padding: 8px;
}

/* 定位导航族：分类钮 / 章节大纲（与树分离；点选定位右侧锚点；滚正文时高亮联动） */
.md-locator {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.md-locator--outline {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.md-locator__item {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 36px;
  padding: 6px 10px;
  border: 0;
  border-radius: var(--md-radius);
  background: transparent;
  color: var(--md-text-primary);
  font: inherit;
  font-size: 0.875rem;
  text-align: left;
  cursor: pointer;
}
.md-locator__item:hover { background: var(--md-hover); }
.md-locator__item.is-active {
  background: rgba(25, 118, 210, 0.12);
  color: var(--md-primary);
  font-weight: 500;
}
.md-locator--cats {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
}
.md-locator--cats .md-locator__item {
  width: auto;
  min-height: 32px;
  padding: 4px 12px;
  background: var(--md-grey-100, #f5f5f5);
}
.md-locator--cats .md-locator__item.is-active {
  background: var(--md-primary);
  color: #fff;
}
.md-locator--outline .md-locator__item--l2 {
  padding-left: 22px;
  font-size: 0.8125rem;
  color: var(--md-text-secondary);
}
.md-locator--outline .md-locator__item--l2.is-active {
  color: var(--md-primary);
}
.md-split__side:has(.md-locator--outline),
.md-split__side:has(.md-locator:not(.md-locator--cats)) {
  width: 220px;
}

.md-d1--locator > .md-d1__workspace,
.md-d1--locator .md-tab-panels {
  background: transparent;
  box-shadow: none;
}
.md-d1--locator .md-tab-panels > .md-tab-panel.is-active {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.md-locator-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 4px 4px;
}
.md-locator-head__title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--md-text-primary);
}
.md-locator-head .md-icon-btn {
  width: 32px;
  height: 32px;
}
.md-split--outline .md-split__side {
  overflow: hidden;
  transition: width 0.2s ease, padding 0.2s ease, opacity 0.2s ease, margin 0.2s ease;
}
.md-split--outline.is-side-collapsed .md-split__side {
  width: 40px;
  min-width: 40px;
  padding: 8px 0 12px;
  margin: 0;
  opacity: 1;
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
  box-shadow: var(--md-shadow-1);
}
.md-locator-rail,
.md-locator-float__peek {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 36px;
  flex-shrink: 0;
  padding: 12px 0;
  border: 0;
  border-radius: var(--md-radius);
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  color: var(--md-text-primary);
  cursor: pointer;
  font: inherit;
  font-size: 0.8125rem;
  line-height: 1.3;
}
.md-locator-rail span:last-child,
.md-locator-float__peek span:last-child {
  writing-mode: vertical-rl;
  letter-spacing: 0.18em;
}
.md-split--outline.is-side-collapsed .md-locator-rail {
  display: none;
}
.md-split--outline.is-side-collapsed .md-locator-head {
  width: 100%;
  padding: 0 0 6px;
  justify-content: center;
}
.md-split--outline.is-side-collapsed .md-locator-head__title {
  display: none;
}
/* 收缩态：节点变点、点间连线；滚正文时 is-active 对应点高亮 */
.md-split--outline.is-side-collapsed .md-locator--outline,
.md-locator-float.is-collapsed .md-locator--outline {
  align-items: center;
  gap: 0;
  width: 100%;
  overflow: visible;
  flex: 1;
  min-height: 0;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item {
  position: relative;
  z-index: 1;
  width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  margin: 0;
  border-radius: 0;
  background: transparent;
  color: transparent;
  font-size: 0;
  line-height: 0;
  overflow: visible;
  justify-content: center;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item--l2,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item--l2 {
  padding-left: 0;
  font-size: 0;
  color: transparent;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item:not(:last-child)::after,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 20px;
  bottom: -12px;
  width: 2px;
  transform: translateX(-50%);
  background: var(--md-divider-soft);
  z-index: 0;
  pointer-events: none;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item::before,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item::before {
  content: "";
  position: relative;
  z-index: 1;
  display: block;
  width: 8px;
  height: 8px;
  border-radius: var(--md-radius-circle);
  background: var(--md-grey-400, #bdbdbd);
  box-sizing: border-box;
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item:hover::before,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item:hover::before {
  background: var(--md-primary);
  opacity: 0.75;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item.is-active,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item.is-active {
  background: transparent;
  color: transparent;
  font-weight: inherit;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item.is-active::before,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item.is-active::before {
  width: 10px;
  height: 10px;
  background: var(--md-primary);
  box-shadow: var(--md-shadow-focus-primary-sm);
  opacity: 1;
}
.md-split--outline.is-side-collapsed .md-locator--outline .md-locator__item.is-active:not(:last-child)::after,
.md-locator-float.is-collapsed .md-locator--outline .md-locator__item.is-active:not(:last-child)::after {
  background: linear-gradient(180deg, var(--md-divider-soft) 0%, rgba(25, 118, 210, 0.35) 45%, var(--md-divider-soft) 100%);
}

/* 桌面详情：左内容滚动 + 右定宽目录（非悬浮） */
.md-d1.md-detail-page.md-d1--detail-split {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  padding-bottom: 0;
}
.md-d1--detail-split > .md-breadcrumb,
.md-d1--detail-split > .md-body2,
.md-d1--detail-split > .md-tabs {
  flex-shrink: 0;
}
.md-d1--detail-split > .md-split,
.md-d1--detail-split > .md-tab-panels {
  flex: 1;
  min-height: 0;
}
.md-d1--detail-split > .md-tab-panels {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.md-d1--detail-split .md-tab-panel.is-active {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.md-split--outline-right {
  flex: 1;
  min-height: 0;
  align-items: stretch;
}
.md-split--outline-right > .md-split__main {
  overflow: auto;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
}
.md-split--outline-right > .md-split__side {
  width: 220px;
  overflow: hidden;
}
.md-article-host {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.md-article-host > .md-article,
.md-article-host > .md-doc-scroll {
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow: auto;
}
/* 桌面分栏 + 右浮大纲：内边距仅落在 article-host 内，勿污染触屏详情 md-module > .md-article */
.md-article-host > .md-article {
  padding: 12px 248px 16px 16px;
  box-sizing: border-box;
}
.md-article-host:has(.md-locator-float.is-collapsed) > .md-article {
  padding-right: 56px;
}
.md-locator-float {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 220px;
  max-height: calc(100% - 24px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-8);
  border-radius: var(--md-radius);
  padding: 8px;
  z-index: 5;
  transition: width 0.2s ease;
}
.md-locator-float .md-locator {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.md-locator-float.is-collapsed {
  width: 40px;
  padding: 8px 0 12px;
  align-items: center;
}
.md-locator-float.is-collapsed .md-locator-head {
  display: flex;
  width: 100%;
  padding: 0 0 6px;
  justify-content: center;
}
.md-locator-float.is-collapsed .md-locator-head__title {
  display: none;
}
.md-locator-float.is-collapsed .md-locator {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: visible;
}
.md-locator-float.is-collapsed .md-locator-float__peek {
  display: none;
}

/* 触屏树页：左树右内容铺满剩余高度，点树只换右区 */
.md-mobile-page.md-tree-page .md-mobile-body {
  padding: 0;
  gap: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.md-mobile-page.md-tree-page > .md-mobile-body > .md-mobile-sheet {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}
.md-mobile-page.md-tree-page > .md-mobile-body > .md-mobile-sheet > .md-split {
  flex: 1;
  min-height: 0;
  width: 100%;
  gap: 0;
}
.md-mobile-page.md-tree-page .md-split__side {
  width: 148px;
  border-radius: 0;
  box-shadow: none;
  padding: 4px 0 8px;
  background: var(--md-grey-50);
  border-right: 1px solid var(--md-divider);
}
.md-mobile-page.md-tree-page .md-tree {
  padding: 4px 0;
}
.md-mobile-page.md-tree-page .md-tree ul { padding-left: 12px; }
.md-mobile-page.md-tree-page .md-tree__item {
  min-height: 44px;
  padding: 8px 8px 8px 6px;
  font-size: 0.875rem;
  border-radius: 0;
}
.md-mobile-page.md-tree-page .md-split__main {
  padding: 12px var(--md-safe-r) calc(16px + var(--md-safe-b)) 12px;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--md-bg-paper);
  gap: var(--md-module-gap);
}
/* 分类树右区：图文介绍（封面 + 标题摘要 + 正文） */
.md-cat-intro {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.md-cat-intro__media {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--md-radius);
  overflow: hidden;
}
.md-cat-intro .md-detail-head {
  margin: 0;
}
/* 触屏分类导航：左一级分组右分组横卡，滚正文与左栏高亮联动（对标 desktop-locator 左栏） */
.md-mobile-page.md-locator-page .md-mobile-body {
  padding: 0;
  gap: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.md-mobile-page.md-locator-page > .md-mobile-body > .md-mobile-sheet {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}
.md-mobile-page.md-locator-page > .md-mobile-body > .md-mobile-sheet > .md-split {
  flex: 1;
  min-height: 0;
  width: 100%;
  gap: 0;
}
.md-mobile-page.md-locator-page .md-split__side {
  width: 88px;
  border-radius: 0;
  box-shadow: none;
  padding: 8px 0;
  background: var(--md-grey-50);
  border-right: 1px solid var(--md-divider);
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.md-mobile-page.md-locator-page .md-locator--outline {
  padding: 0 4px;
  gap: 2px;
}
.md-mobile-page.md-locator-page .md-locator__item {
  min-height: 0;
  padding: 8px 6px;
  border-radius: 0;
  font-size: 0.8125rem;
  justify-content: center;
  text-align: center;
}
.md-mobile-page.md-locator-page .md-locator__item--l2 {
  padding: 6px 4px 6px 10px;
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--md-text-secondary);
  text-align: left;
  justify-content: flex-start;
}
.md-mobile-page.md-locator-page .md-locator__item--l2.is-active {
  color: var(--md-primary);
}
.md-mobile-page.md-locator-page .md-split__main {
  padding: 0 var(--md-safe-r) calc(12px + var(--md-safe-b)) 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--md-bg-default, #f7f7f7);
  gap: var(--md-module-gap);
}
.md-mobile-page.md-locator-page .md-split__main > .md-module {
  background: transparent;
  gap: var(--md-module-gap);
}
.md-mobile-page.md-locator-page .md-section-head {
  padding-left: 12px;
}
.md-mobile-page.md-locator-page .md-stack--cards {
  padding-left: 12px;
  gap: 8px;
}
.md-set-group {
  /* 功能区通栏 / 设置组：平铺，不要圆角阴影卡片壳 */
  background: var(--md-bg-paper);
  box-shadow: none;
  border-radius: 0;
  overflow: hidden;
}
/* 触屏功能区（金刚 / 通栏 / 一行两个）：跟正文同左右安全距，不要负边距贴手机框；组内分割线仍左右内缩 */
.md-set-group:has(.md-menu) { overflow: visible; }
.md-set-group + .md-set-group { margin-top: 0; }
/* 我的 / 设置等功能服务页：浅灰底（同详情），组与组间距漏出背景 */
.md-set-page {
  --md-set-page-bg: #f7f7f7;
  --md-set-page-gap: var(--md-module-gap);
  background: var(--md-set-page-bg);
}
.md-mobile-page.md-set-page {
  background: var(--md-set-page-bg);
}
.md-mobile-page.md-set-page > .md-mobile-body > .md-mobile-sheet {
  gap: var(--md-set-page-gap);
}
.md-mobile-page.md-set-page .md-module:has(> .md-set-group),
.md-mobile-page.md-set-page .md-module:has(> .md-set-pair) {
  background: transparent;
  gap: 0;
}
.md-d1.md-set-page {
  background: var(--md-set-page-bg);
  gap: var(--md-set-page-gap);
}
.md-d1.md-set-page > .md-breadcrumb {
  background: transparent;
}
.md-d1.md-set-page > .md-set-group + .md-set-group,
.md-d1.md-set-page > .md-set-pair + .md-set-group,
.md-d1.md-set-page > .md-set-group + .md-set-pair,
.md-d1.md-set-page > .md-set-pair + .md-set-pair {
  margin-top: 0; /* 由父级 gap 拉开 */
}
/* 触屏表单页：浅灰底 + 白底分组区块（内边距；组间露灰） */
.md-form-page {
  --md-form-page-bg: #f7f7f7;
  --md-form-page-gap: var(--md-module-gap);
  background: var(--md-form-page-bg);
}
.md-mobile-page.md-form-page {
  background: var(--md-form-page-bg);
}
.md-mobile-page.md-form-page > .md-mobile-body > .md-mobile-sheet {
  gap: var(--md-form-page-gap);
  padding-top: var(--md-form-page-gap);
}
.md-mobile-page.md-form-page form {
  display: flex;
  flex-direction: column;
  gap: var(--md-form-page-gap);
  width: 100%;
  margin: 0;
  min-width: 0;
}
.md-mobile-page.md-form-page .md-module {
  margin: 0;
  padding: 16px var(--md-safe-r, 12px) 16px var(--md-safe-l, 12px);
  background: var(--md-bg-paper);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
}
.md-mobile-page.md-form-page .md-section-head {
  margin: 0 0 4px;
}
/* 触屏表单页：字段/标签钮略矮，行高收紧；仍保留可点区域 */
.md-mobile-page.md-form-page .md-field__input:not(textarea),
.md-mobile-page.md-form-page .md-select,
.md-mobile-page.md-form-page .md-picker-trigger,
.md-mobile-page.md-form-page button.md-field__input {
  height: 40px;
  padding: 8px 12px;
  font-size: 0.875rem;
  line-height: 1.35;
}
.md-mobile-page.md-form-page .md-field:focus-within .md-field__input:not(textarea),
.md-mobile-page.md-form-page .md-field:focus-within .md-select,
.md-mobile-page.md-form-page .md-field:focus-within .md-picker-trigger,
.md-mobile-page.md-form-page .md-field:focus-within button.md-field__input {
  padding: 7px 11px;
}
.md-mobile-page.md-form-page textarea.md-field__input {
  min-height: 72px;
  height: auto;
  padding: 8px 12px;
  font-size: 0.875rem;
  line-height: 1.45;
}
.md-mobile-page.md-form-page .md-action-bar .md-btn,
.md-mobile-page.md-form-page form .md-btn:not(.md-btn--link):not(.md-icon-btn):not(.md-upload-grid__del):not(.md-upload__replace) {
  height: 34px;
  min-height: 34px;
  padding: 4px 14px;
  font-size: 0.875rem;
  line-height: 1.35;
}
.md-mobile-page.md-form-page .md-choice-group:not(.md-choice-group--list) > .md-check,
.md-mobile-page.md-form-page .md-choice-group:not(.md-choice-group--list) > .md-radio {
  min-height: 36px;
  padding: 6px 14px;
  line-height: 1.35;
}
.md-mobile-page.md-form-page .md-switch-row {
  min-height: 40px;
}
.md-set-group__title {
  padding: 12px 16px 4px;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--md-text-secondary);
}
.md-set-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 8px 16px;
  border-top: 1px solid var(--md-divider);
  color: inherit;
  text-decoration: none;
  box-sizing: border-box;
}
/* 列表横卡单行：每行独立纸面、上下有缝；功能通栏仍包在 md-set-group 里连成一片 */
.md-stack > .md-set-row,
.md-module > .md-set-row {
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-surface);
  border-radius: var(--md-radius);
  border: 0;
  overflow: hidden;
  min-height: 56px;
  padding-top: 14px;
  padding-bottom: 14px;
}
.md-stack > a.md-set-row,
.md-stack > button.md-set-row,
.md-module > a.md-set-row,
.md-module > button.md-set-row {
  border: 0;
}
a.md-set-row,
button.md-set-row {
  width: 100%;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
}
button.md-set-row { border-top: 1px solid var(--md-divider); }
a.md-set-row:hover,
button.md-set-row:hover { text-decoration: none; background: var(--md-hover); }
a.md-set-row:active,
button.md-set-row:active { background: var(--md-selected); }
.md-set-row__lead {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}
.md-set-row__lead > .md-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: var(--md-primary);
}
.md-set-row__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1rem;
  color: var(--md-text);
}
.md-set-row__trail {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  flex-shrink: 0;
  max-width: 46%;
}
.md-set-row__trail:has(.md-switch) {
  max-width: none;
}
.md-set-row__hint {
  font-size: 0.8125rem;
  line-height: 1.25;
  color: var(--md-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.md-set-row__trail > .md-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--md-text-disabled);
}
/* 功能入口：右侧说明位为方形图 → 行更高 */
.md-set-row--thumb,
.md-set-row:has(.md-set-row__thumb) {
  min-height: 76px;
  padding-top: 12px;
  padding-bottom: 12px;
  align-items: center;
}
.md-set-group > .md-set-row--thumb,
.md-set-group > .md-set-row:has(.md-set-row__thumb),
.md-set-pair > .md-set-row--thumb,
.md-set-pair > .md-set-row:has(.md-set-row__thumb) {
  min-height: 76px;
  padding-top: 12px;
  padding-bottom: 12px;
}
.md-set-row__thumb {
  width: 52px;
  height: 52px;
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
  flex-shrink: 0;
  box-sizing: border-box;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.md-set-row__trail:has(.md-set-row__thumb) {
  max-width: none;
  gap: 8px;
}
.md-set-pair > .md-set-row .md-set-row__trail:has(.md-set-row__thumb) {
  max-width: none;
}
.md-set-row__trail:has(.md-set-row__thumb) .md-set-row__hint {
  display: none;
}
.md-set-block {
  padding: 10px 16px 14px;
  border-top: 1px solid var(--md-divider);
  box-sizing: border-box;
}
.md-set-block__label {
  display: block;
  margin: 0 0 8px;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--md-text);
}
.md-set-block .md-slider__label { display: none; }
.md-set-picks {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px 12px;
  border-top: 1px solid var(--md-divider);
  box-sizing: border-box;
}
.md-set-pick {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-height: 52px;
  padding: 4px 0 0;
  margin: 0;
  cursor: pointer;
  user-select: none;
}
.md-set-pick input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
/* 选项面：文字 / 图标 / 图片均可 */
.md-set-pick__face {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 24px;
  max-width: 100%;
}
.md-set-pick__label {
  font-size: 0.875rem;
  line-height: 1.3;
  color: var(--md-text);
  text-align: center;
}
.md-set-pick__face > .md-icon {
  width: 28px;
  height: 28px;
  color: var(--md-text-secondary);
}
.md-set-pick__media {
  width: 40px;
  height: 40px;
  border-radius: var(--md-radius-md);
  display: block;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--md-grey-200);
  box-sizing: border-box;
}
/* 图片单选：9:16 竖版大图（通栏等分，随列宽拉高） */
.md-set-picks--media-9x16 {
  align-items: flex-start;
}
.md-set-picks--media-9x16 .md-set-pick {
  min-height: 0;
}
.md-set-pick__media--9x16 {
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  border-radius: var(--md-radius-lg);
}
.md-set-pick:has(.md-set-pick__media--9x16) .md-set-pick__face {
  width: 100%;
  min-height: 0;
}
.md-set-pick__mark {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.md-set-pick__mark .md-icon {
  width: 20px;
  height: 20px;
}
.md-set-pick__off { color: var(--md-grey-400); }
.md-set-pick__on { display: none; color: var(--md-primary); }
.md-set-pick:has(input:checked) .md-set-pick__label {
  color: var(--md-primary);
  font-weight: 500;
}
.md-set-pick:has(input:checked) .md-set-pick__face > .md-icon {
  color: var(--md-primary);
}
.md-set-pick:has(input:checked) .md-set-pick__off { display: none; }
.md-set-pick:has(input:checked) .md-set-pick__on { display: block; }
.md-set-pick:has(input:checked) .md-set-pick__media {
  box-shadow: var(--md-shadow-focus-primary-ring);
}
.md-set-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
/* 一行两个：平铺无卡片壳（功能区不要圆角阴影） */
.md-module > .md-set-pair,
.md-stack > .md-set-pair,
.md-d1 > .md-set-pair {
  background: var(--md-bg-paper);
  box-shadow: none;
  border-radius: 0;
  overflow: hidden;
}
.md-set-pair > .md-set-row {
  min-width: 0;
  min-height: 56px;
  padding-top: 14px;
  padding-bottom: 14px;
  padding-left: 12px;
  padding-right: 10px;
  border-top: 0;
  border-right: 0;
}
.md-set-pair > .md-set-row:first-child:not(:only-child) {
  position: relative;
}
/* 一行两个：竖分割线上下内缩、淡色，不贯穿；条目挨着靠内边距撑高 */
.md-set-pair > .md-set-row:first-child:not(:only-child)::after {
  content: "";
  position: absolute;
  top: var(--md-set-divider-inset-y);
  bottom: var(--md-set-divider-inset-y);
  right: 0;
  width: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}
.md-set-pair > .md-set-row:only-child {
  grid-column: 1;
  border-right: 0;
}
.md-set-pair > .md-set-row .md-set-row__lead { gap: 8px; }
.md-set-pair > .md-set-row .md-set-row__trail { max-width: 40%; }

/* 桌面功能/设置：通栏入口 2/3/4 列栅格（触屏仍单列通栏） */
.md-set-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  min-width: 0;
}
.md-d1.md-set-page .md-set-grid--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.md-d1.md-set-page .md-set-grid--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.md-d1.md-set-page .md-set-grid--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.md-set-group > .md-set-grid > .md-set-row,
.md-set-group > .md-set-grid > button.md-set-row,
.md-set-group > .md-set-grid > a.md-set-row {
  min-width: 0;
  min-height: 56px;
  padding-top: 14px;
  padding-bottom: 14px;
  border-top: 0;
  border-right: 0;
  position: relative;
}
.md-set-grid > .md-set-row--thumb,
.md-set-grid > .md-set-row:has(.md-set-row__thumb) {
  min-height: 76px;
  padding-top: 12px;
  padding-bottom: 12px;
}
.md-set-grid > .md-set-row .md-set-row__trail {
  max-width: 42%;
}
.md-set-grid--cols-2 > .md-set-row:not(:nth-child(2n))::after,
.md-set-grid--cols-3 > .md-set-row:not(:nth-child(3n))::after,
.md-set-grid--cols-4 > .md-set-row:not(:nth-child(4n))::after {
  content: "";
  position: absolute;
  top: var(--md-set-divider-inset-y);
  bottom: var(--md-set-divider-inset-y);
  right: 0;
  width: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}
.md-set-grid--cols-2 > .md-set-row:nth-child(n + 3)::before,
.md-set-grid--cols-3 > .md-set-row:nth-child(n + 4)::before,
.md-set-grid--cols-4 > .md-set-row:nth-child(n + 5)::before {
  content: "";
  position: absolute;
  left: var(--md-set-divider-inset-x);
  right: var(--md-set-divider-inset-x);
  top: 0;
  height: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}

/* 功能通栏 / 设置组：条目挨着（无行间外边距），靠内边距加高；分割线左右内缩、淡色 */
.md-set-group > .md-set-row,
.md-set-group > .md-set-block,
.md-set-group > .md-set-picks,
.md-set-group > .md-set-pair > .md-set-row,
.md-set-group > button.md-set-row {
  border-top: 0;
  border-right: 0;
}
.md-set-group > .md-set-row,
.md-set-group > button.md-set-row {
  min-height: 56px;
  padding-top: 14px;
  padding-bottom: 14px;
}
.md-set-group > .md-set-row + .md-set-row,
.md-set-group > .md-set-block + .md-set-block,
.md-set-group > .md-set-row + .md-set-block,
.md-set-group > .md-set-block + .md-set-row,
.md-set-group > .md-set-picks + .md-set-row,
.md-set-group > .md-set-row + .md-set-picks,
.md-set-group > .md-set-block + .md-set-picks,
.md-set-group > .md-set-picks + .md-set-block,
.md-set-group > .md-set-picks + .md-set-picks,
.md-set-group > .md-set-pair + .md-set-pair,
.md-set-group > .md-set-row + .md-set-pair,
.md-set-group > .md-set-pair + .md-set-row,
.md-set-group > .md-set-block + .md-set-pair,
.md-set-group > .md-set-pair + .md-set-block,
.md-set-group > .md-set-picks + .md-set-pair,
.md-set-group > .md-set-pair + .md-set-picks,
.md-set-group > .md-set-grid + .md-set-grid,
.md-set-group > .md-set-grid + .md-set-row,
.md-set-group > .md-set-row + .md-set-grid,
.md-set-group > .md-set-block + .md-set-grid,
.md-set-group > .md-set-grid + .md-set-block,
.md-set-group > .md-set-picks + .md-set-grid,
.md-set-group > .md-set-grid + .md-set-picks,
.md-set-group > .md-set-pair + .md-set-grid,
.md-set-group > .md-set-grid + .md-set-pair {
  position: relative;
  margin-top: 0;
}
.md-set-group > .md-set-row + .md-set-row::before,
.md-set-group > .md-set-block + .md-set-block::before,
.md-set-group > .md-set-row + .md-set-block::before,
.md-set-group > .md-set-block + .md-set-row::before,
.md-set-group > .md-set-picks + .md-set-row::before,
.md-set-group > .md-set-row + .md-set-picks::before,
.md-set-group > .md-set-block + .md-set-picks::before,
.md-set-group > .md-set-picks + .md-set-block::before,
.md-set-group > .md-set-picks + .md-set-picks::before,
.md-set-group > .md-set-pair + .md-set-pair::before,
.md-set-group > .md-set-row + .md-set-pair::before,
.md-set-group > .md-set-pair + .md-set-row::before,
.md-set-group > .md-set-block + .md-set-pair::before,
.md-set-group > .md-set-pair + .md-set-block::before,
.md-set-group > .md-set-picks + .md-set-pair::before,
.md-set-group > .md-set-pair + .md-set-picks::before,
.md-set-group > .md-set-grid + .md-set-grid::before,
.md-set-group > .md-set-grid + .md-set-row::before,
.md-set-group > .md-set-row + .md-set-grid::before,
.md-set-group > .md-set-block + .md-set-grid::before,
.md-set-group > .md-set-grid + .md-set-block::before,
.md-set-group > .md-set-picks + .md-set-grid::before,
.md-set-group > .md-set-grid + .md-set-picks::before,
.md-set-group > .md-set-pair + .md-set-grid::before,
.md-set-group > .md-set-grid + .md-set-pair::before {
  content: "";
  position: absolute;
  left: var(--md-set-divider-inset-x);
  right: var(--md-set-divider-inset-x);
  top: 0;
  height: 1px;
  background: var(--md-divider-soft);
  pointer-events: none;
}
.md-d1 > .md-breadcrumb,
.md-d1 > .md-stat-grid,
.md-d1__form,
.md-mobile-body {
  animation: md-rise 180ms var(--md-ease);
}
@keyframes md-rise {
  from { opacity: 0; }
  to { opacity: 1; }
}

.md-d1__form {
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-1);
  border-radius: var(--md-radius);
  padding: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--md-field-min), 1fr));
  column-gap: 16px;
  row-gap: 20px;
  align-items: start;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.md-d1__form.md-d1__form--cols-1 {
  grid-template-columns: minmax(var(--md-field-min), 1fr);
}
.md-d1__form.md-d1__form--cols-3 {
  grid-template-columns: repeat(3, minmax(var(--md-field-min), 1fr));
}
.md-d1__form.md-d1__form--cols-4 {
  grid-template-columns: repeat(4, minmax(var(--md-field-min), 1fr));
}
.md-d1__form .md-field,
.md-d1__form .md-btn-group {
  min-width: 0;
  width: 100%;
}
/* 向导用 [data-step] 包当前步时，必须自己吃双列栅格；否则字段贴死（gap 只作用在 form 直接子级） */
.md-d1__form > [data-step] {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--md-field-min), 1fr));
  column-gap: 16px;
  row-gap: 20px;
  align-items: start;
  grid-column: 1 / -1;
  min-width: 0;
}
.md-d1__form.md-d1__form--cols-1 > [data-step] {
  grid-template-columns: minmax(var(--md-field-min), 1fr);
}
.md-d1__form.md-d1__form--cols-3 > [data-step] {
  grid-template-columns: repeat(3, minmax(var(--md-field-min), 1fr));
}
.md-d1__form.md-d1__form--cols-4 > [data-step] {
  grid-template-columns: repeat(4, minmax(var(--md-field-min), 1fr));
}
.md-d1__form > [data-step] .md-body2 {
  grid-column: 1 / -1;
}
/* 嵌套块：块内字段同样保留行距，避免「框内无上下间距」 */
.md-d1__form .md-form-block {
  display: grid;
  grid-template-columns: repeat(2, minmax(var(--md-field-min), 1fr));
  column-gap: 16px;
  row-gap: 20px;
  align-items: start;
  min-width: 0;
  grid-column: 1 / -1;
}
.md-d1__form.md-d1__form--cols-1 .md-form-block {
  grid-template-columns: minmax(var(--md-field-min), 1fr);
}
.md-d1__form.md-d1__form--cols-3 .md-form-block {
  grid-template-columns: repeat(3, minmax(var(--md-field-min), 1fr));
}
.md-d1__form.md-d1__form--cols-4 .md-form-block {
  grid-template-columns: repeat(4, minmax(var(--md-field-min), 1fr));
}
.md-d1__form .md-form-block.md-form-block--cols-1 {
  grid-template-columns: minmax(var(--md-field-min), 1fr);
}
.md-d1__form .md-form-block.md-form-block--cols-2 {
  grid-template-columns: repeat(2, minmax(var(--md-field-min), 1fr));
}
.md-d1__form .md-form-block.md-form-block--cols-3 {
  grid-template-columns: repeat(3, minmax(var(--md-field-min), 1fr));
}
.md-d1__form .md-form-block.md-form-block--cols-4 {
  grid-template-columns: repeat(4, minmax(var(--md-field-min), 1fr));
}
.md-d1__form .md-form-block .md-field:has(textarea),
.md-d1__form .md-form-block .md-choice-group,
.md-d1__form .md-form-block .md-switch-row,
.md-d1__form .md-form-block .md-section-head,
.md-d1__form .md-form-block .md-slider,
.md-d1__form .md-form-block .md-upload,
.md-d1__form .md-form-block .md-upload-grid,
.md-d1__form .md-form-block .md-progress,
.md-d1__form .md-form-block .md-region-row,
.md-d1__form .md-form-block .md-btn-group,
.md-d1__form .md-form-block .md-form-label {
  grid-column: 1 / -1;
}
.md-d1__form .md-field:has(textarea),
.md-d1__form .md-btn-group,
.md-d1__form .md-choice-group,
.md-d1__form .md-switch-row,
.md-d1__form .md-section-head,
.md-d1__form .md-slider,
.md-d1__form .md-upload,
.md-d1__form .md-upload-grid,
.md-d1__form .md-progress,
.md-d1__form .md-form-block,
.md-d1__form .md-region-row,
.md-d1__form .md-caption,
.md-d1__form .md-field--combo,
.md-dialog__form .md-choice-group,
.md-dialog__form .md-switch-row {
  grid-column: 1 / -1;
}
.md-d1__form .md-section-head:not(:first-child) {
  margin-top: 4px;
  padding-top: 16px;
  border-top: 1px solid var(--md-divider);
}
.md-region-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 16px;
  row-gap: 20px;
  min-width: 0;
}
.md-form-block { min-width: 0; }
.md-d1__form .md-slider input[type="range"] { height: 32px; }
.md-d1__form .md-field__input:not(textarea),
.md-d1__form .md-field select,
.md-d1__form .md-select,
.md-d1__form .md-combo__trigger {
  height: 36px;
  padding: 6px 12px;
  font-size: 0.875rem;
}
.md-d1__form .md-combo__trigger {
  min-height: 36px;
  height: auto;
  padding-right: 28px;
}
.md-d1__form .md-field:focus-within .md-field__input:not(textarea),
.md-d1__form .md-field select:focus,
.md-d1__form .md-select:focus {
  padding: 5px 11px;
}
.md-d1__form .md-field--readonly:focus-within .md-field__input:not(textarea),
.md-d1__form .md-field:has(:disabled):focus-within .md-field__input:not(textarea) {
  padding: 6px 12px;
  border-width: 1px;
}

.md-dialog__form {
  display: grid;
  grid-template-columns: 1fr; /* 弹窗表单：一行一项 */
  gap: 16px;
  align-items: start;
}
.md-dialog__form .md-field,
.md-dialog__form .md-choice-group,
.md-dialog__form .md-switch-row,
.md-dialog__form .md-slider,
.md-dialog__form .md-upload,
.md-dialog__form .md-upload-grid,
.md-dialog__form .md-form-block,
.md-dialog__form .md-region-row,
.md-dialog__form .md-btn-group,
.md-dialog__form .md-section-head {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
}
.md-dialog__form .md-field {
  display: flex;
}
.md-aff-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
  align-items: flex-start;
  width: 100%;
  grid-column: 1 / -1;
}
.md-aff-row > .md-field {
  flex: 1 1 0;
  min-width: 0;
  grid-column: auto !important;
  width: auto !important;
  margin: 0;
}
.md-option-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  width: 100%;
  min-width: 0;
  grid-column: 1 / -1;
}
.md-option-row > .md-field {
  flex: 1 1 0;
  min-width: 0;
  grid-column: auto !important;
  width: auto !important;
  margin: 0;
}
.md-option-row > .md-switch-row {
  flex-shrink: 0;
  grid-column: auto !important;
  width: auto !important;
  margin: 0;
  padding-bottom: 6px;
}
.md-option-row > .md-icon-btn {
  flex-shrink: 0;
  align-self: flex-end;
  margin-bottom: 2px;
}
.md-field--richtext {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.md-richtext {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(0, 0, 0, 0.23);
  border-radius: var(--md-radius);
  background: var(--md-bg-paper);
  overflow: hidden;
  transition: border-color var(--md-duration) var(--md-ease), box-shadow var(--md-duration) var(--md-ease);
}
.md-field--richtext:focus-within .md-richtext {
  border-color: var(--md-primary);
  box-shadow: 0 0 0 1px var(--md-primary);
}
.md-richtext__toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--md-divider-soft);
  background: var(--md-bg-default, #fafafa);
  flex-shrink: 0;
}
.md-richtext__btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 0;
  border-radius: var(--md-radius);
  background: transparent;
  color: var(--md-text-secondary);
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}
.md-richtext__btn:hover {
  background: var(--md-hover);
  color: var(--md-text);
}
.md-richtext__btn .md-icon {
  width: 18px;
  height: 18px;
}
.md-richtext__body {
  min-height: 120px;
  max-height: 280px;
  overflow: auto;
  padding: 10px 12px;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--md-text);
  outline: none;
  word-break: break-word;
}
.md-richtext__body:empty::before {
  content: attr(data-placeholder);
  color: var(--md-text-disabled);
  pointer-events: none;
}
.md-richtext__body ul,
.md-richtext__body ol {
  margin: 0.5em 0;
  padding-left: 1.5em;
}
.md-richtext__body img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--md-radius);
  margin: 8px 0;
}
.md-richtext__file {
  display: none;
}
.md-dialog .md-field__input:not(textarea),
.md-dialog .md-field select,
.md-dialog .md-select {
  height: 36px;
  padding: 6px 12px;
  font-size: 0.875rem;
}
.md-dialog .md-field:focus-within .md-field__input:not(textarea),
.md-dialog .md-field select:focus,
.md-dialog .md-select:focus {
  padding: 5px 11px;
}

/* —— 真机预览：系统状态栏为固定顶演示组件，不参与页滚。
   时间/信号靠顶；左右各收约一个图标身位，不为胶囊留空；页内可点控件仍走安全距与胶囊避让 —— */
.md-status-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--md-z-status);
  height: var(--md-status-h);
  padding: 4px 20px 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--md-text);
  background: var(--md-bg-paper);
  pointer-events: none;
  box-sizing: border-box;
}
.md-status-bar--standard {
  color: var(--md-text);
  background: var(--md-bg-paper);
  transition: background-color 180ms var(--md-ease), color 180ms var(--md-ease);
}
.md-status-bar--immersive {
  color: #fff;
  background: transparent;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  transition: background-color 180ms var(--md-ease), color 180ms var(--md-ease), text-shadow 180ms var(--md-ease);
}
.md-mobile-page.md-standard,
.md-mobile-page:not(.md-immersive):not(.md-sink) { padding-top: var(--md-status-h); }
.md-mobile-page.md-immersive,
.md-mobile-page.md-sink { padding-top: 0; }
.md-status-bar__signals {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 16px;
}
.md-status-bar__signals::before,
.md-status-bar__signals::after {
  content: "";
  display: block;
  background: currentColor;
}
.md-status-bar__signals::before {
  width: 22px;
  height: 12px;
  border: 1.5px solid currentColor;
  border-radius: var(--md-radius-xs);
  background:
    linear-gradient(90deg, currentColor 70%, transparent 70%);
  box-sizing: border-box;
}
.md-status-bar__signals::after {
  width: 6px;
  height: 6px;
  border-radius: var(--md-radius-circle);
}

/* 多个 md-module 兄弟：父级 flex 列 + 模块间距（sheet / 详情 / 表单 / 页签面板等） */
:is(
  .md-mobile-page > .md-mobile-body > .md-mobile-sheet,
  .md-detail-content,
  .md-mobile-page.md-form-page form,
  .md-d1.md-detail-page > .md-detail-content,
  .md-d1.md-detail-page .md-tab-panel > .md-detail-content
):has(> .md-module + .md-module) {
  display: flex;
  flex-direction: column;
  gap: var(--md-module-gap);
}

.md-module {
  display: flex;
  flex-direction: column;
  gap: var(--md-space);
  width: 100%;
  min-width: 0;
  margin: 0;
}
.md-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0;
}
.md-section-head__title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  letter-spacing: 0.01em;
}
.md-section-head__action,
.md-section-head .md-btn--link {
  font-size: 0.8125rem;
  color: var(--md-primary);
  font-weight: 500;
}
.md-section-head .md-btn--link:hover {
  color: var(--md-primary-dark);
}

.md-mobile-page .md-appbar--mobile {
  flex-shrink: 0;
  box-shadow: none;
  border-bottom: 1px solid var(--md-divider);
  background: var(--md-bg-paper);
  color: var(--md-text);
  padding-left: 4px;
  padding-right: 4px;
}
.md-mobile-page .md-appbar--mobile .md-icon-btn,
.md-mobile-page .md-appbar--mobile .md-btn {
  color: var(--md-text);
}
.md-mobile-page .md-appbar--mobile > .md-appbar__title {
  display: flex;
  align-items: center;
  min-height: 40px;
  line-height: 1.25;
}
/* L2 居中标题栏：无返回，标题居中（常与 TabBar 并存） */
.md-appbar--center {
  justify-content: center;
}
.md-appbar--center > .md-appbar__title {
  flex: 1 1 auto;
  text-align: center;
  justify-content: center;
  padding-left: 8px;
  padding-right: 8px;
}
/* 返回 + 搜索：顶栏内嵌 md-search，无居中标题 */
.md-appbar--with-search {
  gap: 4px;
  padding-right: 12px;
}
.md-appbar--with-search .md-appbar__search {
  flex: 1;
  min-width: 0;
  margin-right: 4px;
  align-self: center;
  height: 34px;
  min-height: 34px;
  padding: 0 12px;
  font-size: 0.8125rem;
  line-height: 1;
}
.md-appbar--with-search .md-appbar__search .md-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.md-appbar--with-search .md-appbar__search .md-search__input,
.md-appbar--with-search .md-appbar__search input {
  line-height: 1.25;
  height: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
}
.md-appbar--with-trail {
  gap: 4px;
}
.md-appbar--with-trail .md-appbar__search {
  margin-right: 0;
}
.md-appbar__trail {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 0;
}
.md-icon-btn--dot {
  position: relative;
  overflow: visible;
}
.md-icon-btn--dot > .md-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  font-size: 0.625rem;
  font-weight: 600;
  pointer-events: none;
}
/* 订单列表页签：横向滚动 + 激活字重（无容器底边线） */
.md-mobile-page .md-tabs--line {
  gap: 0;
  overflow-x: auto;
  flex-wrap: nowrap;
  scrollbar-width: none;
  border-bottom: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch;
}
.md-mobile-page .md-tabs--line::-webkit-scrollbar {
  display: none;
}
.md-mobile-page .md-tabs--line .md-tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--md-text-secondary);
  border-radius: 0;
  padding: 0 12px 8px;
  height: auto;
  min-height: 36px;
  white-space: nowrap;
  position: relative;
  overflow: visible;
}
.md-mobile-page .md-tabs--line .md-tab:hover {
  background: transparent;
}
.md-mobile-page .md-tabs--line .md-tab.is-active {
  background: transparent;
  color: var(--md-text);
  font-weight: 600;
}
.md-mobile-page .md-tabs--line .md-tab.is-active::after {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 20px;
  height: 2px;
  background: var(--md-primary);
  border-radius: var(--md-radius-xs);
}
.md-mobile-page .md-tabs--line .md-tab:has(.md-tab__badge) {
  padding-right: 18px;
}
.md-tab__badge {
  position: absolute;
  top: 2px;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  border-radius: var(--md-radius-md);
  background: var(--md-error);
  color: #fff;
  font-size: 0.5625rem;
  font-weight: 600;
  line-height: 1;
  pointer-events: none;
}
/* 订单横卡：店头 + 多行商品 + 合计 + 浅底操作条 */
.md-card--order {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  padding: 0;
  overflow: hidden;
}
.md-order-card__promo {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 2px;
  min-height: 36px;
  padding: 10px 12px;
  font-size: 0.75rem;
  line-height: 1;
  color: var(--md-text-secondary);
  text-decoration: none;
  border-bottom: 0;
  position: relative;
  box-sizing: border-box;
}
.md-order-card__promo::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 1px;
  background: var(--md-divider-soft, rgba(0, 0, 0, 0.06));
  pointer-events: none;
}
.md-order-card__promo + .md-order-card__head {
  padding-top: 10px;
}
.md-order-card__promo .md-icon {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  opacity: 0.45;
}
.md-order-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 12px 4px;
  border-bottom: 0;
}
.md-order-card__shop-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
}
.md-order-card__promo .md-icon {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  opacity: 0.45;
}
.md-order-card__shop {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--md-text);
  text-decoration: none;
}
.md-order-card__shop-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.md-order-card__shop-tag {
  flex-shrink: 0;
  font-size: 0.625rem;
  padding: 0 5px;
  height: 18px;
  line-height: 18px;
  border-radius: var(--md-radius-xs);
}
.md-order-card__shop-go {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: var(--md-text-secondary);
  opacity: 0.55;
}
.md-order-card__status {
  flex-shrink: 0;
  font-size: 0.8125rem;
  color: var(--md-primary);
  white-space: nowrap;
}
.md-order-card__status--muted {
  color: var(--md-text-secondary);
}
.md-order-card__body {
  display: flex;
  flex-direction: column;
}
.md-order-card__line {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 12px;
  text-decoration: none;
  color: inherit;
}
.md-order-card__line + .md-order-card__line {
  border-top: 0;
  padding-top: 0;
}
.md-order-card__thumb {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: var(--md-radius-md);
  overflow: hidden;
}
.md-order-card__main {
  flex: 1;
  min-width: 0;
}
.md-order-card__name {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.35;
  color: var(--md-text);
}
.md-order-card__spec {
  margin: 4px 0 0;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--md-text-secondary);
}
.md-order-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 4px;
}
.md-order-card__tags .md-chip {
  font-size: 0.625rem;
  padding: 0 5px;
  height: 18px;
  line-height: 18px;
  border-radius: var(--md-radius-xs);
}
.md-order-card__price-col {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  margin-left: 8px;
  text-align: right;
}
.md-order-card__price {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--md-text);
  white-space: nowrap;
}
.md-order-card__qty {
  font-size: 0.75rem;
  color: var(--md-text-secondary);
}
.md-order-card__line-status {
  font-size: 0.6875rem;
  line-height: 1.25;
  color: var(--md-error);
  max-width: 5em;
}
.md-order-card__total {
  margin: 0;
  padding: 8px 12px 4px;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--md-text-secondary);
  text-align: right;
}
.md-order-card__total strong {
  font-weight: 600;
  color: var(--md-text);
}
.md-card--order > .md-order-card__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 12px;
}
.md-card--order > .md-order-card__actions .md-select-wrap:first-child {
  margin-right: auto;
}
.md-section-head--trail {
  justify-content: flex-end;
}
.md-mobile-page .md-card {
  border-radius: var(--md-radius-lg);
  box-shadow: var(--md-shadow-surface);
}
.md-card--row {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  overflow: visible;
  --md-row-media-w: 112px;
  --md-row-media-h: 112px; /* 默认 1:1；竖图由 --ratio-* 改高不改宽 */
}
.md-card--row.md-card--ratio-3x4 {
  --md-row-media-h: calc(var(--md-row-media-w) * 4 / 3);
}
.md-card--row.md-card--ratio-2x3 {
  --md-row-media-h: calc(var(--md-row-media-w) * 3 / 2);
}
.md-card--row .md-card__media,
.md-card--row > a.md-card__media {
  /* 横卡左图：宽高双锁，禁止 stretch/height:auto 把图拉高再经 aspect-ratio 撑宽 */
  flex: 0 0 var(--md-row-media-w);
  flex-grow: 0;
  flex-shrink: 0;
  width: var(--md-row-media-w);
  min-width: var(--md-row-media-w);
  max-width: var(--md-row-media-w);
  height: var(--md-row-media-h);
  min-height: var(--md-row-media-h);
  max-height: var(--md-row-media-h);
  aspect-ratio: auto;
  align-self: flex-start;
  box-sizing: border-box;
  overflow: hidden;
}
.md-card--row .md-card__body {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  min-width: 0;
  flex: 1 1 0%;
  text-align: left;
}
.md-card--row .md-card__title,
.md-card--row .md-card__subtitle,
.md-card--row .md-card__text,
.md-card--row .md-card__chips,
.md-card--row .md-card__meta,
.md-card--row .md-card__photos {
  text-align: left;
  align-self: flex-start;
  width: auto;
  max-width: 100%;
}
.md-card--row .md-card__photo {
  width: 40px;
  height: 40px;
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
}
.md-card--row .md-card__title a {
  color: inherit;
  text-decoration: none;
}
.md-card--row .md-card__rail {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  flex: 0 0 auto;
  align-self: stretch;
  min-width: 4.5em;
  padding: 16px 16px 16px 8px;
  box-sizing: border-box;
  text-align: right;
}
.md-card--row .md-card__rail:has(> .md-card__actions) {
  justify-content: space-between;
}
.md-card--row .md-card__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  text-align: right;
}
.md-card--row .md-card__aside .md-price {
  margin: 0;
  line-height: 1.2;
}
.md-card--row .md-card__dist {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--md-text-secondary);
  white-space: nowrap;
}
.md-card--row .md-card__rail .md-card__actions {
  padding: 0;
  margin-top: auto;
  justify-content: flex-end;
}
.md-card--row > .md-card__actions,
.md-card--row .md-card__actions--bar {
  flex: 1 0 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  padding: 0 16px 16px;
  box-sizing: border-box;
}
/* 触屏列表：①封面叠字 ②双列 ③a横卡多行 ③b单行走 md-set-row */
.md-mobile-page .md-card--row {
  --md-row-media-w: 96px;
  --md-row-media-h: 96px;
  align-items: stretch;
  min-height: 0;
  border: 0;
  box-shadow: var(--md-shadow-surface);
  background: var(--md-bg-paper);
}
.md-mobile-page .md-card--row.md-card--ratio-3x4 {
  --md-row-media-h: calc(var(--md-row-media-w) * 4 / 3);
}
.md-mobile-page .md-card--row.md-card--ratio-2x3 {
  --md-row-media-h: calc(var(--md-row-media-w) * 3 / 2);
}
.md-mobile-page .md-card--row .md-card__media,
.md-mobile-page .md-card--row > a.md-card__media {
  flex: 0 0 var(--md-row-media-w);
  flex-grow: 0;
  flex-shrink: 0;
  width: var(--md-row-media-w);
  min-width: var(--md-row-media-w);
  max-width: var(--md-row-media-w);
  height: var(--md-row-media-h);
  min-height: var(--md-row-media-h);
  max-height: var(--md-row-media-h);
  aspect-ratio: auto;
  margin: 8px 0 8px 8px;
  border-radius: var(--md-radius-lg);
  overflow: hidden;
  align-self: flex-start;
  box-sizing: border-box;
}
.md-mobile-page .md-card--row .md-card__leading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 12px 0 12px 12px;
  border-radius: var(--md-radius-lg);
  background: var(--md-grey-100);
  color: var(--md-text-secondary);
  flex-shrink: 0;
  align-self: flex-start;
}
.md-mobile-page .md-card--row .md-card__leading .md-icon {
  width: 22px;
  height: 22px;
}
.md-mobile-page .md-card--row .md-card__body {
  flex: 1 1 0%;
  min-width: 0;
  min-height: 0;
  padding: 12px 8px 12px 12px;
  justify-content: flex-start;
  align-items: stretch;
  gap: 6px;
}
.md-mobile-page .md-card--row:not(:has(> .md-card__rail)) .md-card__body {
  padding-right: 14px;
}
.md-mobile-page .md-card--row .md-card__rail {
  padding: 12px 12px 12px 4px;
}
.md-mobile-page .md-card--row .md-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-start;
}
.md-mobile-page .md-card--row .md-card__chips .md-chip {
  height: 18px;
  min-height: 18px;
  padding: 0 6px;
  font-size: 0.6875rem;
  border-radius: var(--md-radius-sm);
}
.md-mobile-page .md-card--row > .md-card__actions,
.md-mobile-page .md-card--row .md-card__actions--bar {
  padding: 0 12px 12px;
}
.md-mobile-page .md-card--row .md-card__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.01em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  word-break: break-word;
}
.md-mobile-page .md-card--row .md-card__subtitle {
  font-size: 0.75rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
.md-mobile-page .md-card--row .md-card__text {
  font-size: 0.75rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.md-mobile-page .md-card--row .md-card__foot {
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 4px;
}
.md-mobile-page .md-card--row .md-card__aside .md-price {
  font-size: 1.0625rem;
  font-weight: 600;
}
.md-mobile-page .md-card--row .md-card__meta {
  gap: 6px 10px;
}
.md-mobile-page .md-card--row .md-card__photos {
  width: auto;
  max-width: 100%;
  gap: 6px;
}
.md-mobile-page .md-card--row .md-card__photo {
  width: 40px;
  height: 40px;
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
}
.md-mobile-page .md-card--row:not(:has(> .md-card__media)):not(:has(> .md-card__leading)) .md-card__body {
  min-height: 0;
  padding: 12px 14px;
}
/* 字段少但因值长改走横卡多行：字号略大，高度随内容，不要定 min-height */
.md-mobile-page .md-card--row.md-card--long {
  min-height: 0;
}
.md-mobile-page .md-card--row.md-card--long .md-card__body {
  min-height: 0;
}
.md-mobile-page .md-card--row.md-card--long .md-card__title {
  font-size: 1.0625rem;
  line-height: 1.4;
  -webkit-line-clamp: 3;
}
.md-mobile-page .md-card--row.md-card--long .md-card__subtitle {
  font-size: 0.875rem;
  line-height: 1.45;
  -webkit-line-clamp: 2;
}
.md-mobile-page .md-card--row.md-card--long .md-card__text {
  font-size: 0.875rem;
  line-height: 1.5;
  -webkit-line-clamp: 4;
}
.md-mobile-page .md-card--row.md-card--long .md-card__aside .md-price {
  font-size: 1.125rem;
}
.md-mobile-page .md-stack:has(> .md-card--row),
.md-mobile-page .md-stack:has(> .md-card--cover),
.md-mobile-page .md-stack:has(> .md-card--plain) {
  gap: 16px;
}
/* 触屏列表卡：高度随内容，禁止卡片/body min-height（左图/图标位仍固定尺寸） */
.md-mobile-page .md-stack--cards > .md-card,
.md-mobile-page .md-stack > .md-card--row,
.md-mobile-page .md-stack > .md-card--cover,
.md-mobile-page .md-stack > .md-card--order {
  min-height: 0;
}
.md-price {
  color: var(--md-error);
  font-variant-numeric: tabular-nums;
  font-size: 1.125rem;
  font-weight: 600;
}

/* ① 一行单列大图：单行标题悬图片底部；高度随宽高比或固定 */
.md-card--cover {
  width: 100%;
  display: block;
  overflow: hidden;
}
.md-mobile-page .md-card--cover {
  border: 0;
  box-shadow: var(--md-shadow-surface);
  border-radius: var(--md-radius-lg);
}
.md-card--cover .md-card__media {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
}
.md-card--cover.md-card--h-sm .md-card__media { aspect-ratio: auto; height: 140px; }
.md-card--cover.md-card--h-md .md-card__media { aspect-ratio: auto; height: 180px; }
.md-card--cover.md-card--h-lg .md-card__media { aspect-ratio: auto; height: 220px; }
.md-card--cover .md-card__media::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 46%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.55) 100%);
}
.md-card--cover .md-card__title {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 12px 14px;
  width: 100%;
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

/* ② 一行两列：上图比例视情况（默认 1:1，--ratio-* 换）+ 标题最多两行 + 可选小标签/图标 + 可选金额 + 可选小字时间 */
.md-card--tile {
  min-width: 0;
}
.md-mobile-page .md-card--tile {
  border: 0;
  box-shadow: var(--md-shadow-surface);
}
.md-card--tile .md-card__media {
  width: 100%;
  aspect-ratio: 1;
}
/* 叠字/瓷砖：可横可竖，或 --ratio-auto 定宽高度随图；横卡左图只允许 1:1 或竖图（宽高比 < 1） */
.md-card--cover.md-card--ratio-16x9 .md-card__media,
.md-card--tile.md-card--ratio-16x9 .md-card__media { aspect-ratio: 16 / 9; }
.md-card--cover.md-card--ratio-2x1 .md-card__media,
.md-card--tile.md-card--ratio-2x1 .md-card__media { aspect-ratio: 2 / 1; }
.md-card--cover.md-card--ratio-4x3 .md-card__media,
.md-card--tile.md-card--ratio-4x3 .md-card__media { aspect-ratio: 4 / 3; }
.md-card--cover.md-card--ratio-3x4 .md-card__media,
.md-card--tile.md-card--ratio-3x4 .md-card__media { aspect-ratio: 3 / 4; }
.md-card--cover.md-card--ratio-2x3 .md-card__media,
.md-card--tile.md-card--ratio-2x3 .md-card__media { aspect-ratio: 2 / 3; }
.md-card--cover.md-card--ratio-1x1 .md-card__media,
.md-card--tile.md-card--ratio-1x1 .md-card__media { aspect-ratio: 1; }
/* 横卡 1:1 由 --md-row-media-w/h 双锁，不再用 aspect-ratio */
.md-card--cover.md-card--ratio-auto .md-card__media,
.md-card--tile.md-card--ratio-auto .md-card__media {
  aspect-ratio: auto;
  height: auto;
}
.md-card--cover .md-card__media > img,
.md-card--tile .md-card__media > img,
.md-card--row .md-card__media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.md-card--cover.md-card--ratio-auto .md-card__media > img,
.md-card--tile.md-card--ratio-auto .md-card__media > img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.md-card--tile .md-card__body {
  padding: 10px 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.md-card--tile:not(:has(> .md-card__media)) {
  min-height: 0;
}
.md-card-grid > .md-card--tile:not(:has(> .md-card__media)) .md-card__body {
  padding: 16px;
  flex: 1 1 auto;
}
.md-card--tile .md-card__title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  word-break: break-word;
}
.md-card--tile .md-card__chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
.md-card--tile .md-card__chips .md-chip {
  height: 18px;
  min-height: 18px;
  padding: 0 6px;
  font-size: 0.6875rem;
  border-radius: var(--md-radius-sm);
}
.md-card--tile .md-card__chips .md-icon {
  width: 14px;
  height: 14px;
  color: var(--md-text-secondary);
}
.md-card--tile .md-price {
  margin: 0;
  font-size: 1rem;
  line-height: 1.2;
}
.md-card--tile .md-card__time {
  margin: 0;
  font-size: 0.6875rem;
  line-height: 1.3;
  color: var(--md-text-secondary);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.md-card--tile .md-card__time .md-icon {
  width: 12px;
  height: 12px;
}

/* 兼容旧页：纯文已并入横卡多行 md-card--row（无左图 + 可选 __photos） */
.md-card--plain {
  flex-direction: column;
}
.md-mobile-page .md-card--plain {
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: none;
}
.md-card--plain .md-card__body {
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.md-card--plain .md-card__title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 500;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.md-card--plain .md-card__text {
  margin: 0;
  font-size: 0.8125rem;
}
.md-card__photos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.md-card__photo {
  width: calc((100% - 32px) / 5);
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
  flex-shrink: 0;
  box-sizing: border-box;
}
.md-mobile-page .md-card--row .md-card__leading--avatar {
  width: 40px;
  height: 40px;
  border-radius: var(--md-radius-circle);
  overflow: hidden;
  padding: 0;
  background: var(--md-grey-200);
}
/* 子节点铺满 40 圆；同节点挂 md-media-ph 时禁止再写 100%（会盖掉固定 40） */
.md-mobile-page .md-card--row .md-card__leading--avatar .md-card__thumb,
.md-mobile-page .md-card--row .md-card__leading--avatar > .md-media-ph {
  width: 100%;
  height: 100%;
  border-radius: var(--md-radius-circle);
}
.md-mobile-page .md-card--row .md-card__leading--avatar.md-media-ph {
  border-radius: var(--md-radius-circle);
}
.md-mobile-page .md-card--row .md-card__leading--avatar.md-media-ph::after {
  display: none;
}

.md-media-ph::after { opacity: 0.35; }
.md-media-ph--1,
.md-media-ph--2,
.md-media-ph--3,
.md-media-ph--4,
.md-media-ph--5,
.md-media-ph--6 { position: relative; overflow: hidden; }
.md-media-ph--1::after,
.md-media-ph--2::after,
.md-media-ph--3::after,
.md-media-ph--4::after,
.md-media-ph--5::after,
.md-media-ph--6::after { display: none; }
.md-media-ph--1 {
  background:
    radial-gradient(circle at 30% 35%, #ffcdd2 0 18%, transparent 19%),
    linear-gradient(165deg, #ff8a65 0%, #e64a19 48%, #bf360c 100%);
}
.md-media-ph--2 {
  background:
    radial-gradient(ellipse at 70% 30%, rgba(255,255,255,0.25), transparent 40%),
    linear-gradient(160deg, #a5d6a7 0%, #2e7d32 55%, #1b5e20 100%);
}
.md-media-ph--3 {
  background:
    radial-gradient(circle at 40% 60%, #fff59d 0 12%, transparent 13%),
    linear-gradient(180deg, #ffe082 0%, #f9a825 40%, #ef6c00 100%);
}
.md-media-ph--4 {
  background:
    linear-gradient(135deg, #d7ccc8 0%, #8d6e63 42%, #4e342e 100%);
}
.md-media-ph--5 {
  background:
    radial-gradient(circle at 60% 40%, #fff 0 8%, transparent 9%),
    linear-gradient(200deg, #bcaaa4 0%, #6d4c41 50%, #3e2723 100%);
}
.md-media-ph--6 {
  background:
    linear-gradient(180deg, #90caf9 0%, #1565c0 55%, #0d47a1 100%);
}

.md-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 4px;
}
.md-page-head h1,
.md-page-head .md-h3 { margin: 0; }
.md-thumb {
  width: 40px;
  height: 40px;
  border-radius: var(--md-radius-md);
  display: inline-block;
  vertical-align: middle;
  margin-right: 12px;
  flex-shrink: 0;
}
.md-row-goods {
  display: flex;
  align-items: center;
  min-width: var(--md-field-min);
  font-weight: 500;
}
.md-table td { font-variant-numeric: tabular-nums; }
.md-d1 { gap: 12px; }
.md-d1--list { gap: 8px; }
.md-d1__table { overflow: hidden; }
.md-search {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px;
  border-radius: var(--md-radius-2xl);
  background: var(--md-grey-100);
  color: var(--md-text-secondary);
  font-size: 0.875rem;
}
.md-search__input,
.md-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  font: inherit;
  color: var(--md-text);
}
.md-search__input::placeholder,
.md-search input::placeholder {
  color: var(--md-text-secondary);
}

/* —— AD 常用控件：按钮组 / 下拉 / 页内签 / 日期时间 / 提示 / 确认 —— */
.md-btn { text-transform: none; }

.md-btn-group {
  display: inline-flex;
  align-items: stretch;
  vertical-align: middle;
}
.md-btn-group > .md-btn {
  border-radius: 0;
  min-width: 56px;
}
.md-btn-group > .md-btn:first-child {
  border-radius: var(--md-radius) 0 0 var(--md-radius);
}
.md-btn-group > .md-btn:last-child {
  border-radius: 0 var(--md-radius) var(--md-radius) 0;
}
.md-btn-group > .md-btn--outlined + .md-btn--outlined { margin-left: -1px; }
.md-btn-group--split > .md-btn:last-child {
  min-width: 36px;
  padding-left: 8px;
  padding-right: 8px;
}

.md-field--select,
.md-field--date,
.md-field--daterange,
.md-field--time {
  min-width: 160px;
}
.md-field--select { position: relative; }
.md-field--select::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -2px;
  border-right: 2px solid var(--md-text-secondary);
  border-bottom: 2px solid var(--md-text-secondary);
  transform: rotate(45deg);
  pointer-events: none;
}
.md-field--sm.md-field--select::after,
.md-dialog .md-field--select::after,
.md-d1__form .md-field--select::after {
  top: 14px;
  margin-top: 0;
}
.md-field--select .md-select,
.md-field--select select {
  padding-right: 32px;
  cursor: pointer;
  background: var(--md-bg-paper);
}
/* 须写在 --select 白底之后，否则禁用/只读灰底会被盖掉 */
.md-field--select .md-select:disabled,
.md-field--select select:disabled,
.md-field--select.md-field--readonly .md-select,
.md-field--select.md-field--readonly select {
  background: var(--md-grey-200);
  background-color: var(--md-grey-200);
  cursor: default;
}
.md-field--date .md-field__input,
.md-field--daterange .md-field__input,
.md-field--time .md-field__input {
  padding-right: 12px;
  cursor: pointer;
}

.md-select-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 160px;
  height: 40px;
  padding: 8px 12px;
  border: 1px solid rgba(0, 0, 0, 0.23);
  border-radius: var(--md-radius);
  background: var(--md-bg-paper);
  color: var(--md-text);
  font-size: 0.875rem;
  cursor: pointer;
  text-align: left;
}
.md-select-btn:hover { border-color: rgba(0, 0, 0, 0.87); }
.md-select-btn:disabled,
.md-select-btn.is-disabled,
.md-field--readonly .md-select-btn,
.md-field:has(:disabled) .md-select-btn {
  background: var(--md-grey-200);
  background-color: var(--md-grey-200);
  color: var(--md-text-disabled);
  border-color: rgba(0, 0, 0, 0.12);
  cursor: default;
  pointer-events: none;
}
.md-select-btn::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--md-text-secondary);
  border-bottom: 2px solid var(--md-text-secondary);
  transform: rotate(45deg);
  margin-top: -4px;
  flex-shrink: 0;
}
.md-select-wrap { position: relative; display: inline-block; }

.md-field--combo {
  min-width: var(--md-field-min);
}
.md-combo {
  position: relative;
  width: 100%;
  min-width: var(--md-field-min);
}
.md-combo__value { display: none; }
.md-combo__trigger {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  width: 100%;
  min-height: 36px;
  padding: 4px 28px 4px 12px;
  border: 1px solid rgba(0, 0, 0, 0.23);
  border-radius: var(--md-radius);
  background: var(--md-bg-paper);
  color: var(--md-text);
  font-size: 0.875rem;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}
.md-combo__trigger:hover { border-color: rgba(0, 0, 0, 0.87); }
.md-combo.is-open .md-combo__trigger {
  border-color: var(--md-primary);
  border-width: 2px;
  padding: 3px 27px 3px 11px;
}
.md-combo__ph { color: var(--md-text-secondary); }
.md-combo__text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.md-combo__caret {
  position: absolute;
  right: 12px;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -6px;
  border-right: 2px solid var(--md-text-secondary);
  border-bottom: 2px solid var(--md-text-secondary);
  transform: rotate(45deg);
  pointer-events: none;
}
.md-combo.is-open .md-combo__caret {
  margin-top: -2px;
  transform: rotate(-135deg);
}
.md-combo__tag {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  max-width: 100%;
  height: 22px;
  padding: 0 4px 0 8px;
  border-radius: var(--md-radius-lg);
  background: var(--md-grey-200);
  font-size: 0.75rem;
  line-height: 22px;
}
.md-combo__tag-x {
  width: 16px;
  height: 16px;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: transparent;
  color: var(--md-text-secondary);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}
.md-combo__tag-x:hover { color: var(--md-text); }
.md-combo__panel {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  z-index: var(--md-z-modal);
  max-height: 280px;
  overflow: auto;
  background: var(--md-bg-paper);
  border-radius: var(--md-radius);
  box-shadow: var(--md-shadow-8);
}
.md-combo.is-open .md-combo__panel { display: flex; flex-direction: column; }
.md-combo__panel.is-portaled {
  display: flex;
  flex-direction: column;
  position: fixed;
  z-index: calc(var(--md-z-modal) + 10);
}
.md-combo__search-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding: 8px 12px;
  border-bottom: 1px solid var(--md-divider-soft);
}
.md-combo__search-row .md-icon {
  width: 18px;
  height: 18px;
  color: var(--md-text-secondary);
}
.md-combo__search {
  flex: 1;
  min-width: 0;
  height: 32px;
  border: 0;
  outline: none;
  background: transparent;
  font: inherit;
  font-size: 0.875rem;
  color: var(--md-text);
}
.md-combo__list,
.md-combo__tree {
  list-style: none;
  margin: 0;
  padding: 4px 0;
}
.md-combo__tree ul {
  list-style: none;
  margin: 0;
  padding: 0 0 0 12px;
}
.md-combo__tree li:not(.is-open) > ul { display: none; }
.md-combo__tree li.is-hidden { display: none; }
.md-combo__opt.is-filtered { display: none; }
.md-combo__node {
  display: flex;
  align-items: center;
  min-width: 0;
}
.md-combo__twist {
  flex-shrink: 0;
  width: 24px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-text-secondary);
  cursor: pointer;
}
.md-combo__twist::before {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  margin-top: -2px;
}
.md-combo__tree li.is-open > .md-combo__node .md-combo__twist::before {
  transform: rotate(45deg);
  margin-top: -4px;
}
.md-combo__label,
.md-combo__opt {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  min-height: 32px;
  padding: 4px 12px;
  border: 0;
  background: transparent;
  color: var(--md-text);
  font: inherit;
  font-size: 0.875rem;
  text-align: left;
  cursor: pointer;
}
.md-combo__label { cursor: default; color: var(--md-text-secondary); }
.md-combo__opt:hover { background: var(--md-hover); }
.md-combo__opt.is-active { color: var(--md-primary); background: rgba(25, 118, 210, 0.08); }
.md-combo[data-mode="multi"] .md-combo__opt::before {
  content: "";
  width: 14px;
  height: 14px;
  margin-right: 8px;
  border: 1px solid rgba(0, 0, 0, 0.42);
  border-radius: var(--md-radius-xs);
  box-sizing: border-box;
  flex-shrink: 0;
  background: var(--md-bg-paper);
}
.md-combo[data-mode="multi"] .md-combo__opt.is-active::before {
  background: var(--md-primary);
  border-color: var(--md-primary);
  box-shadow: inset 0 0 0 2px var(--md-bg-paper);
}
.md-combo__empty {
  padding: 12px 16px;
  font-size: 0.8125rem;
  color: var(--md-text-secondary);
}
.md-combo__leaf {
  padding-left: 24px;
}

.md-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 100%;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--md-bg-paper);
  border-radius: var(--md-radius);
  box-shadow: var(--md-shadow-8);
  z-index: var(--md-z-modal);
  display: none;
  max-height: 280px;
  overflow-y: auto;
}
.md-menu.is-open { display: block; }
.md-menu--right { left: auto; right: 0; }
.md-menu--fixed {
  position: fixed;
  top: 0;
  z-index: var(--md-z-modal);
}
.md-menu__item {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 8px 16px;
  font-size: 0.875rem;
  color: var(--md-text);
  cursor: pointer;
  border-radius: 0;
}
.md-menu__item:hover { background: var(--md-hover); }
.md-menu__item.is-active { color: var(--md-primary); background: rgba(25, 118, 210, 0.08); }
.md-menu__sep { height: 1px; margin: 4px 0; background: var(--md-divider); }

.md-tabs--page {
  /* 页内签：平铺，不要圆角阴影卡片壳 */
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  border-bottom: 1px solid var(--md-divider);
  padding: 0 8px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.md-tabs--page .md-tab {
  flex: 0 0 auto;
  min-width: 72px;
  padding: 0 16px;
  text-transform: none;
  letter-spacing: 0.02em;
}
.md-tab-panels { background: var(--md-bg-paper); }
.md-tab-panel { display: none; }
.md-tab-panel.is-active { display: block; }

.md-cal {
  width: 280px;
  background: var(--md-bg-paper);
  border-radius: var(--md-radius);
  box-shadow: var(--md-shadow-8);
  padding: 8px;
  z-index: calc(var(--md-z-modal) + 2);
}
.md-cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 4px 8px;
  font-size: 0.875rem;
  font-weight: 500;
}
.md-cal__week,
.md-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
}
.md-cal__week span {
  font-size: 0.6875rem;
  color: var(--md-text-secondary);
  padding: 4px 0;
}
.md-cal__day {
  height: 36px;
  border: 0;
  background: transparent;
  border-radius: var(--md-radius-circle);
  font-size: 0.8125rem;
  cursor: pointer;
  color: var(--md-text);
}
.md-cal__day:hover { background: var(--md-hover); }
.md-cal__day.is-today { color: var(--md-primary); font-weight: 600; }
.md-cal__day.is-active { background: var(--md-primary); color: #fff; }
.md-cal__day.is-muted { color: var(--md-text-disabled); }
.md-cal__day.is-in-range {
  background: rgba(25, 118, 210, 0.12);
  border-radius: var(--md-radius-sm);
}
.md-cal__day.is-in-range.is-today { color: var(--md-primary); }
.md-cal__hint {
  margin: 8px 0 0;
  font-size: 0.75rem;
  color: var(--md-text-secondary);
  text-align: center;
}
.md-cal-pop {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  display: none;
  z-index: calc(var(--md-z-modal) + 2);
}
.md-cal-pop.is-open { display: block; }
.md-field--date,
.md-field--daterange { position: relative; }
.md-field--date:focus-within,
.md-field--daterange:focus-within { z-index: 6; }
.md-field--daterange { min-width: 240px; }

.md-tooltip { position: relative; }
.md-tooltip[data-tip]::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  background: #616161;
  color: #fff;
  font-size: 0.75rem;
  line-height: 1.4;
  padding: 6px 8px;
  border-radius: var(--md-radius);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--md-duration) var(--md-ease);
  z-index: var(--md-z-tooltip, 1500);
}
.md-tooltip:hover::after, .md-tooltip:focus-visible::after { opacity: 1; }

.md-popconfirm {
  position: absolute;
  z-index: calc(var(--md-z-modal) + 2);
  width: 240px;
  padding: 12px;
  background: var(--md-bg-paper);
  border-radius: var(--md-radius);
  box-shadow: var(--md-shadow-8);
  display: none;
}
.md-popconfirm.is-open { display: block; }
.md-popconfirm__title { font-size: 0.875rem; font-weight: 500; margin: 0 0 8px; }
.md-popconfirm__actions { display: flex; justify-content: flex-end; gap: 8px; }

.md-snackbar--success { background: #2e7d32; }
.md-snackbar--error { background: var(--md-error); }
.md-snackbar--warning { background: var(--md-warning); }
.md-snackbar--info { background: var(--md-info); }

.md-dialog--sm { min-width: 280px; max-width: 400px; }
.md-dialog--lg { max-width: 840px; width: min(840px, calc(100% - 64px)); }

.md-toolbar .md-btn-group { margin-left: auto; }
.md-d1__toolbar {
  /* AD 功能栏：平铺，不要圆角阴影卡片壳；内外距仍保留 */
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 8px 16px;
  margin: 0;
  background: var(--md-bg-paper);
  box-shadow: none;
  border-radius: 0;
  flex-shrink: 0;
  box-sizing: border-box;
}

/* —— 触屏：下沉首屏 / 轮播 / 金刚区 / 主操作条 / 触控反馈 —— */

.md-hero {
  position: relative;
  flex-shrink: 0;
}

/* 沉浸式下沉：Hero 钉底层；顶距按 Banner 实际宽高比占位（切勿用滚动区 height 的百分比，会多出大块空白） */
.md-mobile-page.md-immersive:has(> .md-hero) {
  position: relative;
}
.md-mobile-page.md-immersive > .md-hero {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 0;
}
.md-mobile-page.md-immersive > .md-appbar--overlay {
  z-index: 2;
}
.md-mobile-page.md-immersive:has(> .md-hero) > .md-mobile-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  background-image: none;
  pointer-events: none;
}
.md-mobile-page.md-immersive:has(> .md-hero) > .md-mobile-body::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 2 / 1;
  min-height: 200px;
  height: auto;
  pointer-events: none;
}
.md-mobile-page.md-immersive:has(> .md-hero .md-swiper--wide) > .md-mobile-body::before {
  aspect-ratio: 16 / 9;
  min-height: 0;
}
.md-mobile-page.md-immersive:has(> .md-hero) > .md-mobile-body > .md-mobile-sheet {
  pointer-events: auto;
}
.md-mobile-page.md-immersive:has(> .md-hero) > .md-mobile-body > .md-mobile-sheet > * {
  pointer-events: auto;
}
.md-hero__slogan {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35);
}
.md-hero__sub {
  margin: 6px 0 0;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.92);
}
.md-swiper {
  position: relative;
  overflow: hidden;
}
.md-swiper__track {
  display: flex;
  transition: transform 420ms var(--md-ease);
  will-change: transform;
}
.md-swiper__slide {
  flex: 0 0 100%;
  min-height: 200px;
  aspect-ratio: 2 / 1;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 56px 20px 28px;
  box-sizing: border-box;
}
.md-swiper__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  display: flex;
  justify-content: center;
  gap: 6px;
  z-index: 2;
}
.md-swiper__dot {
  width: 6px;
  height: 6px;
  padding: 0;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
}
.md-swiper__dot.is-active { background: #fff; width: 14px; border-radius: var(--md-radius-sm); }

.md-king {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  padding: 0;
  box-shadow: none;
}
.md-king__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 72px;
  padding: 10px 6px;
  border: 0;
  border-radius: var(--md-radius-lg);
  background: var(--md-grey-100);
  color: var(--md-text);
  text-decoration: none;
  font-size: 0.75rem;
  line-height: 1.2;
  cursor: pointer;
  box-sizing: border-box;
  box-shadow: none;
}
.md-king__item:hover { text-decoration: none; background: var(--md-grey-200); }
.md-king__icon {
  width: 24px;
  height: 24px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-primary);
}
.md-king__icon .md-icon { width: 24px; height: 24px; }

.md-king--pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  box-shadow: none;
}
.md-king--pair .md-king__item {
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  min-height: 92px;
  padding: 14px 16px;
  gap: 8px;
  font-size: 0.9375rem;
  font-weight: 500;
  box-shadow: none;
}
.md-king--pair .md-king__icon {
  width: 20px;
  height: 20px;
}
.md-king--pair .md-king__icon .md-icon { width: 20px; height: 20px; }
.md-king--pair .md-king__name {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--md-text);
}
.md-king--pair .md-king__desc {
  display: block;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.35;
  color: var(--md-text-secondary);
}

/* —— 服务条 md-svc-strip：一整块白底，2/3/4 等分入口；项间短竖线（不贯通）；上区图标或统计数值 + 下区文字，上下居中。非金刚区（无项间 gap/无独立灰底圆角） —— */
.md-svc-strip {
  display: flex;
  align-items: stretch;
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--md-bg-paper);
  box-sizing: border-box;
  overflow: visible;
}
.md-svc-strip__item {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 76px;
  padding: 12px 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--md-text);
  text-decoration: none;
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
  -webkit-tap-highlight-color: rgba(25, 118, 210, 0.16);
}
.md-svc-strip__item:hover {
  text-decoration: none;
  background: var(--md-hover);
}
.md-svc-strip__item:active {
  transform: scale(0.98);
  background: var(--md-grey-100);
}
.md-svc-strip__item + .md-svc-strip__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 1.75rem;
  background: var(--md-divider-soft, var(--md-divider));
  pointer-events: none;
}
.md-svc-strip__icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  color: var(--md-primary);
  overflow: visible;
}
.md-svc-strip__icon .md-icon {
  width: 24px;
  height: 24px;
}
.md-svc-strip__badge {
  position: absolute;
  top: -5px;
  right: -9px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: var(--md-radius-md);
  background: var(--md-error);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box;
  pointer-events: none;
}
.md-svc-strip__value {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 28px;
  flex-shrink: 0;
  margin: 0;
  padding: 0 10px 0 2px;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--md-text);
  font-variant-numeric: tabular-nums;
  box-sizing: border-box;
}
.md-svc-strip__value--sm {
  font-size: 0.9375rem;
  font-weight: 600;
}
.md-svc-strip__help {
  position: absolute;
  top: 0;
  right: -2px;
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--md-text-disabled);
  border-radius: var(--md-radius-circle);
  background: var(--md-bg-paper);
  color: var(--md-text-disabled);
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
.md-svc-strip__help:hover {
  color: var(--md-primary);
  border-color: var(--md-primary);
}
.md-svc-strip__help:active {
  transform: scale(0.92);
}
.md-svc-strip__label {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--md-text);
}
.md-svc-strip--cols-2 .md-svc-strip__item {
  flex-basis: 50%;
}
.md-svc-strip--cols-3 .md-svc-strip__item {
  flex-basis: 33.3333%;
}
.md-svc-strip--cols-4 .md-svc-strip__item {
  flex-basis: 25%;
}
.md-svc-strip--cols-5 .md-svc-strip__item {
  flex-basis: 20%;
}
.md-svc-strip--cols-6 .md-svc-strip__item {
  flex-basis: 16.6667%;
}
/* 桌面常用功能：服务条白底块，与 md-set-group 同壳 */
.md-d1.md-set-page > .md-svc-strip,
.md-d1.md-set-page .md-set-group > .md-svc-strip {
  border-radius: var(--md-radius-md);
  overflow: hidden;
}
.md-svc-strip--desk .md-svc-strip__item {
  min-height: 84px;
  padding: 14px 10px;
  gap: 8px;
}
.md-svc-strip--desk .md-svc-strip__item:active {
  transform: none;
}
.md-svc-strip--desk .md-svc-strip__icon {
  width: 32px;
  height: 32px;
}
.md-svc-strip--desk .md-svc-strip__icon .md-icon {
  width: 26px;
  height: 26px;
}
.md-svc-strip--desk .md-svc-strip__value {
  font-size: 1.25rem;
  min-height: 32px;
}
.md-svc-strip--desk .md-svc-strip__label {
  font-size: 0.8125rem;
}

.md-btn--stack {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: auto;
  min-width: 64px;
  min-height: 64px;
  padding: 10px 8px;
  white-space: normal;
  line-height: 1.2;
  border-radius: var(--md-radius-lg);
}
.md-btn--stack .md-icon {
  width: 24px;
  height: 24px;
  background: transparent;
}

.md-action-bar {
  position: sticky;
  bottom: 0;
  z-index: 7;
  display: flex;
  gap: 8px;
  padding: 8px 16px calc(4px + env(safe-area-inset-bottom, 0px));
  background: var(--md-bg-paper);
  box-shadow: var(--md-shadow-edge-top);
  flex-shrink: 0;
}
.md-action-bar .md-btn { flex: 1; }
/* 贴底主操作条：一行只有一个按钮时占满整行 */
.md-action-bar > .md-btn:only-child,
.md-action-bar > a.md-btn:only-child {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
}
.md-mobile-page:has(.md-tabbar) .md-action-bar { bottom: var(--md-tabbar-h); }
.md-mobile-page:has(.md-tabbar) .md-snackbar { bottom: calc(var(--md-tabbar-h) + 16px); }

.md-btn, .md-icon-btn, .md-pod__item, .md-tabbar a, .md-king__item, .md-card, .md-list-item, .md-swiper__dot, .md-set-row {
  -webkit-tap-highlight-color: rgba(25, 118, 210, 0.16);
}
.md-icon-btn:active,
.md-tabbar a:active,
.md-king__item:active,
.md-list-item:active {
  transform: scale(0.97);
}
.md-card:active { transform: scale(0.99); }
.md-tabbar a, .md-tabbar a:hover { text-decoration: none; }

/* 圆角 / 曲面屏：左右 16。状态栏扁、底栏贴下边框；iframe 上下安全距 0，真机跟 env()。 */
.md-tabbar {
  padding-left: var(--md-safe-l);
  padding-right: var(--md-safe-r);
  padding-bottom: var(--md-safe-b);
}
.md-tabbar a:first-child,
.md-tabbar .md-tabbar__item:first-child {
  padding-left: 8px;
}
.md-tabbar a:last-child,
.md-tabbar .md-tabbar__item:last-child {
  padding-right: 8px;
}
/* —— 触屏 L2 滚动容器：body 纯滚动壳 + sheet 浅灰底与内边距 —— */
.md-mobile-page > .md-mobile-body {
  gap: 0;
  padding: 0;
  background: transparent;
  background-image: none;
}
.md-mobile-page > .md-mobile-body > .md-mobile-sheet {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: var(--md-module-gap);
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
  min-height: 0;
  padding: var(--md-scroll-pad-top) var(--md-safe-r) var(--md-scroll-pad-bottom) var(--md-safe-l);
  background: var(--md-scroll-bg);
  box-sizing: border-box;
}
/* 左右内边距：默认有 safe；贴边全幅时加 md-mobile-sheet--flush-x */
.md-mobile-page > .md-mobile-body > .md-mobile-sheet--flush-x {
  padding-left: 0;
  padding-right: 0;
}
.md-mobile-page:has(.md-tabbar) > .md-mobile-body > .md-mobile-sheet {
  padding-bottom: 12px;
}
.md-mobile-page.md-immersive:has(> .md-hero) > .md-mobile-body {
  gap: 0;
  padding: 0;
  background: transparent;
  background-image: none;
}
.md-mobile-page.md-immersive:has(> .md-hero):has(.md-tabbar) > .md-mobile-body {
  padding-bottom: 0;
}
.md-action-bar {
  padding: 8px var(--md-safe-r) calc(4px + var(--md-safe-b)) var(--md-safe-l);
}
.md-mobile-page:has(.md-tabbar) .md-action-bar {
  bottom: calc(var(--md-tabbar-h) + var(--md-safe-b));
}
.md-snackbar {
  bottom: calc(24px + var(--md-safe-b));
  max-width: min(568px, calc(100% - var(--md-safe-l) - var(--md-safe-r) - 32px));
}
.md-mobile-page:has(.md-tabbar) .md-snackbar {
  bottom: calc(var(--md-tabbar-h) + 16px + var(--md-safe-b));
}
.md-snackbar--toast,
body:has(.md-mobile-page) .md-snackbar {
  top: 50%;
  bottom: auto;
  left: 50%;
  min-width: 120px;
  max-width: min(220px, calc(100% - 48px));
  padding: 16px 18px 14px;
  border-radius: var(--md-radius-lg);
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  box-shadow: none;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  text-align: center;
  pointer-events: none;
  transform: translate(-50%, -46%) scale(0.92);
}
.md-snackbar--toast.is-open,
body:has(.md-mobile-page) .md-snackbar.is-open {
  transform: translate(-50%, -50%) scale(1);
}
.md-snackbar--toast.md-snackbar--success,
.md-snackbar--toast.md-snackbar--error,
.md-snackbar--toast.md-snackbar--warning,
.md-snackbar--toast.md-snackbar--info,
body:has(.md-mobile-page) .md-snackbar--success,
body:has(.md-mobile-page) .md-snackbar--error,
body:has(.md-mobile-page) .md-snackbar--warning,
body:has(.md-mobile-page) .md-snackbar--info {
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
}
.md-snackbar--toast .md-snackbar__icon,
.md-snackbar--toast .md-icon,
body:has(.md-mobile-page) .md-snackbar .md-icon {
  width: 32px;
  height: 32px;
  color: #fff;
  fill: currentColor;
}
.md-snackbar--toast .md-snackbar__text,
body:has(.md-mobile-page) .md-snackbar__text {
  color: #fff;
  font-size: 0.875rem;
  line-height: 1.3;
}
.md-swiper__slide {
  padding: 56px var(--md-safe-r) 28px var(--md-safe-l);
}
.md-drawer--left,
.md-drawer--right {
  padding-top: var(--md-status-h);
  padding-bottom: var(--md-safe-b);
}
.md-drawer--left { padding-left: var(--md-safe-l); }
.md-drawer--right { padding-right: var(--md-safe-r); }
.md-drawer--bottom {
  padding-left: var(--md-safe-l);
  padding-right: var(--md-safe-r);
  padding-bottom: var(--md-safe-b);
}
.md-dialog {
  max-height: calc(100% - var(--md-status-h) - var(--md-safe-b) - 48px);
}
body:has(.md-mobile-page) .md-dialog {
  width: min(600px, calc(100% - var(--md-safe-l) - var(--md-safe-r) - 24px));
  max-height: calc(100% - var(--md-status-h) - var(--md-safe-b) - 24px);
}
/* 触屏弹窗/半屏内边距收紧，多留给内容；桌面保持更松默认 */
body:has(.md-mobile-page) .md-dialog__title { padding: 12px 16px 6px; font-size: 1.125rem; }
body:has(.md-mobile-page) .md-dialog__body { padding: 4px 16px 12px; font-size: 0.875rem; }
body:has(.md-mobile-page) .md-dialog__actions { padding: 4px 8px 8px; }
body:has(.md-mobile-page) .md-dialog__form { gap: 12px 10px; }
body:has(.md-mobile-page) .md-drawer__title { padding: 12px 16px 6px; font-size: 1.125rem; }
body:has(.md-mobile-page) .md-drawer__body { padding: 4px 16px 12px; }
body:has(.md-mobile-page) .md-drawer__actions { padding: 4px 8px 8px; }
body:has(.md-mobile-page) .md-drawer--bottom > .md-drawer__close ~ .md-drawer__title,
body:has(.md-mobile-page) .md-drawer--bottom:has(> .md-drawer__close) > .md-drawer__title {
  padding-right: 44px;
}
body:has(.md-mobile-page) .md-drawer--bottom {
  max-height: 70vh;
}
/* 触屏抽屉（含侧滑筛选）：字段/底栏按钮与表单页同密度；抽屉常在 md-mobile-page 外，须单独约束 */
body:has(.md-mobile-page) .md-drawer .md-field {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body:has(.md-mobile-page) .md-drawer .md-field__input:not(textarea),
body:has(.md-mobile-page) .md-drawer .md-field select,
body:has(.md-mobile-page) .md-drawer .md-select,
body:has(.md-mobile-page) .md-drawer .md-picker-trigger,
body:has(.md-mobile-page) .md-drawer button.md-field__input {
  height: 40px;
  padding: 8px 12px;
  font-size: 0.875rem;
  line-height: 1.35;
}
body:has(.md-mobile-page) .md-drawer .md-field:focus-within .md-field__input:not(textarea),
body:has(.md-mobile-page) .md-drawer .md-field:focus-within select,
body:has(.md-mobile-page) .md-drawer .md-field:focus-within .md-select,
body:has(.md-mobile-page) .md-drawer .md-field:focus-within .md-picker-trigger,
body:has(.md-mobile-page) .md-drawer .md-field:focus-within button.md-field__input {
  padding: 7px 11px;
}
body:has(.md-mobile-page) .md-drawer__actions .md-btn:not(.md-icon-btn):not(.md-drawer__close) {
  height: 34px;
  min-height: 34px;
  padding: 4px 14px;
  font-size: 0.875rem;
  line-height: 1.35;
}

/* 触屏输入：独立成行防误触；表单单选/多选为标签+右上对号角标；列表仍用左侧圆/方 */
.md-mobile-page .md-field,
.md-mobile-page .md-switch-row,
.md-mobile-page .md-choice-group {
  display: flex;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.md-mobile-page .md-field { flex-direction: column; }
.md-mobile-page .md-switch-row { min-height: 44px; }
.md-form-label {
  display: block;
  margin: 0 0 6px;
  font-size: 0.75rem;
  color: var(--md-text-secondary);
}
.md-mobile-page form > * + * {
  margin-top: 16px;
}
.md-mobile-page .md-field + .md-field,
.md-mobile-page .md-field + .md-choice-group,
.md-mobile-page .md-field + .md-switch-row,
.md-mobile-page .md-field + .md-slider,
.md-mobile-page .md-field + .md-upload,
.md-mobile-page .md-field + .md-upload-grid,
.md-mobile-page .md-choice-group + .md-field,
.md-mobile-page .md-choice-group + .md-choice-group,
.md-mobile-page .md-choice-group + .md-switch-row,
.md-mobile-page .md-choice-group + .md-slider,
.md-mobile-page .md-switch-row + .md-field,
.md-mobile-page .md-switch-row + .md-choice-group,
.md-mobile-page .md-switch-row + .md-switch-row,
.md-mobile-page .md-slider + .md-slider,
.md-mobile-page .md-slider + .md-field,
.md-mobile-page .md-slider + .md-upload,
.md-mobile-page .md-slider + .md-upload-grid,
.md-mobile-page .md-upload + .md-upload,
.md-mobile-page .md-upload + .md-upload-grid,
.md-mobile-page .md-upload + .md-field,
.md-mobile-page .md-upload-grid + .md-upload,
.md-mobile-page .md-upload-grid + .md-field,
.md-mobile-page .md-upload-grid + .md-switch-row,
.md-mobile-page .md-switch-row + .md-upload,
.md-mobile-page .md-upload + .md-switch-row {
  margin-top: 16px;
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-choice-group__label {
  flex: 0 0 100%;
  margin: 0;
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-check,
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-radio {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 16px;
  margin: 0;
  border: 1px solid var(--md-divider);
  border-radius: var(--md-radius-md);
  background: var(--md-grey-100);
  overflow: hidden;
  gap: 0;
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-check input,
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-radio input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
  pointer-events: none;
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-check:has(input:checked),
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-radio:has(input:checked) {
  background: #fff;
  border-color: var(--md-primary);
  color: var(--md-primary);
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-check:has(input:checked)::after,
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-radio:has(input:checked)::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 22px 22px 0;
  border-color: transparent var(--md-primary) transparent transparent;
}
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-check:has(input:checked)::before,
.md-mobile-page .md-choice-group:not(.md-choice-group--list) > .md-radio:has(input:checked)::before {
  content: "";
  position: absolute;
  top: 3px;
  right: 4px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  z-index: 1;
}
.md-mobile-page .md-list-item .md-check,
.md-mobile-page .md-list-item .md-radio,
.md-mobile-page .md-card--row .md-check,
.md-mobile-page .md-card--row .md-radio,
.md-mobile-page .md-table .md-check,
.md-mobile-page .md-table .md-radio,
.md-mobile-page .md-choice-group--list .md-check,
.md-mobile-page .md-choice-group--list .md-radio {
  position: static;
  display: inline-flex;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  gap: 8px;
  color: var(--md-text);
}
.md-mobile-page .md-list-item .md-check::before,
.md-mobile-page .md-list-item .md-radio::before,
.md-mobile-page .md-list-item .md-check::after,
.md-mobile-page .md-list-item .md-radio::after,
.md-mobile-page .md-card--row .md-check::before,
.md-mobile-page .md-card--row .md-radio::before,
.md-mobile-page .md-card--row .md-check::after,
.md-mobile-page .md-card--row .md-radio::after,
.md-mobile-page .md-choice-group--list .md-check::before,
.md-mobile-page .md-choice-group--list .md-radio::before,
.md-mobile-page .md-choice-group--list .md-check::after,
.md-mobile-page .md-choice-group--list .md-radio::after {
  content: none;
}
.md-mobile-page .md-list-item .md-check input,
.md-mobile-page .md-list-item .md-radio input,
.md-mobile-page .md-card--row .md-check input,
.md-mobile-page .md-card--row .md-radio input,
.md-mobile-page .md-table .md-check input,
.md-mobile-page .md-table .md-radio input,
.md-mobile-page .md-choice-group--list .md-check input,
.md-mobile-page .md-choice-group--list .md-radio input {
  position: static;
  opacity: 1;
  width: 18px;
  height: 18px;
  pointer-events: auto;
}

/* 列表工具条贴顶；展示页叠图返回；列表主图比例视情况；详情非列表图 16:9；卡片可点 */
a.md-card {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.md-list-toolbar {
  flex-shrink: 0;
  z-index: 8;
  display: flex;
  flex-direction: column;
  gap: var(--md-space);
  background: var(--md-bg-paper);
  padding: 8px max(var(--md-safe-r), 12px) 0 max(var(--md-safe-l), 12px);
  box-shadow: var(--md-shadow-edge-bottom);
}
.md-mobile-page.md-mp .md-list-toolbar {
  padding-right: max(var(--md-safe-r), 12px);
}
.md-list-toolbar .md-search-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0;
  min-height: 44px;
  box-sizing: border-box;
}
.md-list-toolbar--tabs-only {
  padding-top: 4px;
  padding-bottom: 4px;
}
.md-search-row--tabs {
  align-items: stretch;
  min-width: 0;
}
.md-search-row--tabs .md-tabs--line {
  flex: 1;
  min-width: 0;
  max-width: 100%;
}
.md-tabs--stretch .md-tab {
  flex: 1 1 0;
  justify-content: center;
  padding-left: 4px;
  padding-right: 4px;
}
.md-list-toolbar .md-search-row > .md-search,
.md-list-toolbar .md-search-row > .md-search-row__filter {
  align-self: center;
  margin: 0;
}
.md-list-toolbar .md-search {
  flex: 1;
  min-width: 0;
  width: auto;
  height: 44px;
  box-sizing: border-box;
}
.md-list-toolbar .md-search-row__filter {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  color: var(--md-text-secondary);
}
.md-list-toolbar .md-search-row__filter .md-icon {
  width: 24px;
  height: 24px;
}
.md-search-row__filter.is-active {
  color: var(--md-primary);
}
/* 触屏搜索：仅左侧图标 + 输入；不要「搜索」文案，不要右侧搜索按钮 */
.md-mobile-page .md-search .md-caption,
.md-mobile-page .md-search .md-btn,
.md-mobile-page .md-search-row > .md-btn,
.md-list-toolbar .md-search .md-caption {
  display: none !important;
}
.md-mobile-page .md-search input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}
.md-mobile-page .md-search input[type="search"]::-webkit-search-decoration,
.md-mobile-page .md-search input[type="search"]::-webkit-search-results-button,
.md-mobile-page .md-search input[type="search"]::-webkit-search-results-decoration {
  display: none;
  -webkit-appearance: none;
}
.md-list-toolbar .md-section-head {
  margin: 0;
  min-height: 44px;
}
.md-appbar--overlay {
  position: absolute;
  top: var(--md-status-h);
  left: 0;
  right: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #fff;
  z-index: 6;
  padding-left: var(--md-safe-l);
  padding-right: max(var(--md-safe-r), 96px);
  transition: background-color 180ms var(--md-ease), color 180ms var(--md-ease), border-color 180ms var(--md-ease);
}
.md-mobile-page.md-immersive .md-appbar--overlay {
  background: transparent;
  border: 0;
  color: #fff;
}
.md-mobile-page.md-immersive .md-appbar--overlay.is-solid {
  background: var(--md-bg-paper);
  color: var(--md-text);
  border-bottom: 1px solid var(--md-divider);
}
.md-mobile-page.md-immersive .md-appbar--overlay.is-solid > .md-appbar__title {
  color: var(--md-text);
}
.md-appbar--overlay .md-icon-btn,
.md-mobile-page .md-appbar--overlay .md-icon-btn {
  color: #fff;
  background: rgba(0, 0, 0, 0.36);
}
.md-appbar--overlay .md-icon-btn:hover,
.md-mobile-page .md-appbar--overlay .md-icon-btn:hover {
  background: rgba(0, 0, 0, 0.5);
}
/* L3 透明叠图顶栏：滚正文后变纯色不透明（JS 加 is-solid） */
.md-appbar--overlay.is-solid {
  position: fixed;
  top: var(--md-status-h);
  left: 0;
  right: 0;
  background: var(--md-bg-paper);
  color: var(--md-text);
  border-bottom: 1px solid var(--md-divider);
  box-shadow: none;
  z-index: 10;
}
.md-appbar--overlay.is-solid .md-icon-btn,
.md-mobile-page .md-appbar--overlay.is-solid .md-icon-btn {
  color: var(--md-text);
  background: transparent;
}
.md-appbar--overlay.is-solid .md-icon-btn:hover,
.md-mobile-page .md-appbar--overlay.is-solid .md-icon-btn:hover {
  background: var(--md-hover);
}

.md-appbar--cover {
  position: relative;
  overflow: hidden;
  align-items: flex-end;
  min-height: calc(2 * var(--md-appbar-h-mobile));
  padding: 0 var(--md-safe-r) 10px var(--md-safe-l);
  padding-right: max(var(--md-safe-r), 96px);
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #fff;
}
.md-mobile-page.md-immersive .md-appbar--cover {
  min-height: calc(var(--md-status-h) + 2 * var(--md-appbar-h-mobile));
  padding-top: var(--md-status-h);
  background: transparent;
  border: 0;
  color: #fff;
}
.md-mobile-page .md-appbar--cover {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #fff;
}
.md-appbar__cover {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.md-appbar--cover::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.48) 100%);
}
.md-appbar--cover > *:not(.md-appbar__cover) {
  position: relative;
  z-index: 1;
}
.md-appbar--cover > .md-icon-btn,
.md-appbar--cover > a.md-icon-btn {
  flex-shrink: 0;
}
.md-appbar--cover > .md-appbar__title {
  display: flex;
  align-items: center;
  min-height: 40px;
  line-height: 1.25;
  margin: 0;
}
.md-appbar--cover .md-icon-btn,
.md-mobile-page .md-appbar--cover .md-icon-btn,
.md-mobile-page .md-appbar--cover .md-btn {
  color: #fff;
  background: rgba(0, 0, 0, 0.28);
}
.md-appbar--cover .md-icon-btn:hover,
.md-mobile-page .md-appbar--cover .md-icon-btn:hover {
  background: rgba(0, 0, 0, 0.46);
}
.md-swiper--square .md-swiper__slide {
  aspect-ratio: 1;
  min-height: 0;
  padding: 0;
}
.md-swiper--wide .md-swiper__slide {
  aspect-ratio: 16 / 9;
  min-height: 0;
  padding: 0;
}
.md-media--16x9 {
  aspect-ratio: 16 / 9;
  width: 100%;
  display: block;
  border-radius: var(--md-radius-md);
  background: var(--md-grey-200);
}
/* —— 详情：极浅灰页底；白底区块靠外边距/间隙露灰 —— */
.md-detail-page {
  --md-detail-bg: #f7f7f7;
  --md-detail-block-gap: var(--md-module-gap);
  background: var(--md-detail-bg);
}
.md-mobile-page.md-detail-page {
  background: var(--md-detail-bg);
}
.md-mobile-page.md-detail-page > .md-mobile-body {
  background: transparent;
}
.md-detail-content,
.md-mobile-page.md-detail-page > .md-mobile-body > .md-mobile-sheet {
  gap: var(--md-detail-block-gap);
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: calc(16px + var(--md-safe-b, 0px));
}
.md-mobile-page.md-detail-page.md-immersive:has(> .md-hero) > .md-mobile-body > .md-mobile-sheet {
  gap: var(--md-detail-block-gap);
  border-radius: 0;
  box-shadow: none;
}
.md-detail-page .md-module {
  margin: 0;
  padding: 16px var(--md-safe-r, 12px) 16px var(--md-safe-l, 12px);
  background: var(--md-bg-paper);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
}
/* 评论模块透底：列表卡直接坐在浅灰上，条目间距露灰 */
.md-detail-page .md-module:has(> .md-comment-list),
.md-detail-page .md-module:has(> .md-section-head + .md-comment-list) {
  background: transparent;
  padding-top: 4px;
  padding-bottom: 4px;
}
.md-detail-page .md-section-head {
  margin: 0 0 12px;
}
.md-detail-page .md-module,
.md-detail-page .md-detail-hero,
.md-detail-page .md-hero[data-section] {
  scroll-margin-top: 12px;
}
.md-mobile-page.md-detail-page .md-module,
.md-mobile-page.md-detail-page .md-hero[data-section] {
  scroll-margin-top: 56px;
}

.md-article {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0;
  min-width: 0;
}
.md-article h1,
.md-article__h1,
.md-article h2,
.md-article__h2,
.md-article h3,
.md-article__h3,
.md-article h4,
.md-article__h4 {
  margin: 4px 0 0;
  color: var(--md-text);
  text-indent: 0;
  font-weight: 600;
  line-height: 1.4;
}
.md-article h1,
.md-article__h1 {
  font-size: 1.25rem;
}
.md-article h2,
.md-article__h2 {
  font-size: 1.125rem;
}
.md-article h3,
.md-article__h3 {
  font-size: 1rem;
  font-weight: 600;
}
.md-article h4,
.md-article__h4 {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--md-text-secondary);
}
.md-article p {
  margin: 0;
  color: var(--md-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.75;
  text-indent: 0; /* 短句默认不缩进 */
}
/* 大段多行正文才首行缩进 */
.md-article p.md-article__body,
.md-article .md-article__body {
  text-indent: 2em;
}
/* 多字段 / 多项目罗列：项目符号 */
.md-article__list {
  margin: 0;
  padding: 0 0 0 1.25em;
  list-style: disc outside;
  color: var(--md-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.75;
  text-indent: 0;
  box-sizing: border-box;
}
.md-article__list--ordered {
  list-style: decimal outside;
}
.md-article__list > li {
  margin: 0 0 6px;
  padding: 0;
  text-indent: 0;
}
.md-article__list > li:last-child {
  margin-bottom: 0;
}
.md-article__figures {
  display: grid;
  gap: 10px;
  width: 100%;
  min-width: 0;
  margin: 0;
}
.md-article__figures--1 {
  grid-template-columns: 1fr;
}
.md-article__figures--2 {
  grid-template-columns: 1fr 1fr;
}
.md-article__figure {
  margin: 0;
  width: 100%;
  min-width: 0;
}
.md-article__figure .md-media--16x9,
.md-article__figure > img,
.md-article__figures .md-media--16x9,
.md-article__figures > img {
  display: block;
  width: 100%;
  border-radius: 0;
  overflow: hidden;
}
.md-article__caption {
  margin: 8px 0 0;
  padding: 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--md-text-disabled);
  text-align: center;
  text-indent: 0;
}
/* 详情内容表格：必要时横向滚动 */
.md-article__table-wrap,
.md-article .md-table-wrap {
  width: 100%;
  max-width: 100%;
  margin: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  text-indent: 0;
}
.md-article__table-wrap + .md-btn-row {
  margin-top: 12px;
}
.md-article__table,
.md-article .md-table {
  width: max(100%, 36rem);
  min-width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.md-article__table th,
.md-article__table td,
.md-article .md-table th,
.md-article .md-table td {
  padding: 10px 12px;
  border: 1px solid var(--md-divider);
  font-size: 0.875rem;
  line-height: 1.45;
  text-align: left;
  text-indent: 0;
  vertical-align: top;
  white-space: nowrap;
  background: transparent;
  box-shadow: none;
}
.md-article__table td.md-article__table-cell--wrap,
.md-article__table th.md-article__table-cell--wrap,
.md-article .md-table td.md-article__table-cell--wrap,
.md-article .md-table th.md-article__table-cell--wrap {
  white-space: normal;
  min-width: 10rem;
}
.md-article__table th,
.md-article .md-table th {
  font-weight: 600;
  color: var(--md-text);
  background: var(--md-grey-50);
}
.md-article__table td,
.md-article .md-table td {
  color: var(--md-text-secondary);
}
.md-article__table caption,
.md-article .md-table caption {
  caption-side: bottom;
  padding: 8px 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--md-text-disabled);
  text-align: center;
  text-indent: 0;
}
.md-article-block {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  box-sizing: border-box;
}
.md-article-block > .md-article { margin: 0; }

/* 字段列表 / 单组字段排版：名称 + 值（详情内 md-desc；列表页 md-group-list） */
.md-desc {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.md-desc__row {
  display: flex;
  align-items: flex-start;
  gap: 8px 16px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--md-divider-soft);
  box-sizing: border-box;
  min-width: 0;
}
.md-desc__row:first-child { padding-top: 0; }
.md-desc__row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.md-desc__label {
  flex: 0 0 auto;
  width: 5.5em;
  margin: 0;
  color: var(--md-text-secondary);
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 400;
  font-style: normal;
}
.md-desc__value {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--md-text);
  font-size: 0.9375rem;
  line-height: 1.5;
  word-break: break-word;
}
.md-desc__value--muted,
.md-desc__value:empty::before {
  color: var(--md-text-disabled);
}
.md-desc__value:empty::before {
  content: "—";
}
.md-desc__row--stack {
  flex-direction: column;
  gap: 6px;
}
.md-desc__row--stack .md-desc__label {
  width: auto;
}
.md-desc__row--span {
  grid-column: 1 / -1;
}
.md-desc__value .md-chip {
  vertical-align: middle;
}
/* 桌面：一行多组字段（触屏仍单列） */
.md-desc--cols-2,
.md-desc--cols-3 {
  display: grid;
  gap: 0 32px;
}
.md-desc--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.md-desc--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.md-desc--cols-2 .md-desc__row,
.md-desc--cols-3 .md-desc__row {
  padding: 12px 0;
  border-bottom: 1px solid var(--md-divider-soft);
}
.md-desc--cols-2 .md-desc__row:nth-child(-n+2),
.md-desc--cols-3 .md-desc__row:nth-child(-n+3) {
  padding-top: 0;
}
@media (max-width: 900px) {
  .md-desc--cols-2,
  .md-desc--cols-3 {
    display: flex;
    flex-direction: column;
  }
  .md-desc--cols-2 .md-desc__row:nth-child(-n+2),
  .md-desc--cols-3 .md-desc__row:nth-child(-n+3) {
    padding-top: 12px;
  }
  .md-desc--cols-2 .md-desc__row:first-child,
  .md-desc--cols-3 .md-desc__row:first-child {
    padding-top: 0;
  }
}
.md-mobile-page .md-desc--cols-2,
.md-mobile-page .md-desc--cols-3 {
  display: flex;
  flex-direction: column;
}
.md-mobile-page .md-desc__label {
  width: 6em;
}
.md-detail-page .md-module > .md-desc {
  margin: 0;
}

.md-comment-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.md-comment {
  background: var(--md-bg-paper);
  border: 0;
  border-radius: var(--md-radius-lg);
  padding: 12px;
  box-shadow: var(--md-shadow-surface);
}
.md-comment__user {
  margin: 0;
  font-weight: 500;
  font-size: 0.875rem;
}
.md-comment__time {
  margin: 4px 0 8px;
  font-size: 0.75rem;
  color: var(--md-text-disabled);
  line-height: 1.4;
}
.md-comment__text {
  margin: 0;
  color: var(--md-text-secondary);
  font-size: 0.875rem;
  line-height: 1.5;
}
.md-comment__photos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 0;
  padding: 0;
}
.md-comment__photo {
  width: 40px;
  height: 40px;
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
  flex-shrink: 0;
  box-sizing: border-box;
}

/* —— 资料卡片 md-profile：店铺/个人/公司等主体摘要；默认平铺（无圆角/轻阴影）；上必选、中下可选 —— */
.md-profile {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 0;
  padding: 14px 16px;
  background: var(--md-bg-paper);
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  min-width: 0;
}
/* 详情白底模块已有内边距时，资料卡自身不再叠一层 padding */
.md-detail-page .md-module > .md-profile {
  padding: 0;
  background: transparent;
}
/* 页顶资料卡：避开状态栏 + 顶部安全区（显式 --top，或沉浸式无 Hero/顶栏时自动） */
.md-profile--top {
  padding-top: calc(var(--md-status-h) + max(12px, var(--md-safe-t)));
  box-sizing: border-box;
}
.md-detail-page .md-module > .md-profile.md-profile--top {
  padding-top: calc(var(--md-status-h) + max(12px, var(--md-safe-t)));
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
}
.md-mobile-page.md-immersive:not(:has(> .md-hero)):not(:has(> .md-appbar)) > .md-mobile-body > .md-profile:first-child,
.md-mobile-page.md-immersive:not(:has(> .md-hero)):not(:has(> .md-appbar)) > .md-mobile-body > .md-module:first-child > .md-profile,
.md-mobile-page.md-immersive:not(:has(> .md-hero)):not(:has(> .md-appbar)) > .md-mobile-body > .md-mobile-sheet > .md-profile:first-child,
.md-mobile-page.md-immersive:not(:has(> .md-hero)):not(:has(> .md-appbar)) > .md-mobile-body > .md-mobile-sheet > .md-module:first-child > .md-profile {
  padding-top: calc(var(--md-status-h) + max(12px, var(--md-safe-t)));
}
.md-mobile-page.md-immersive:not(:has(> .md-hero)):not(:has(> .md-appbar)) > .md-mobile-body > .md-module:first-child:has(> .md-profile),
.md-mobile-page.md-immersive:not(:has(> .md-hero)):not(:has(> .md-appbar)) > .md-mobile-body > .md-mobile-sheet > .md-module:first-child:has(> .md-profile) {
  padding-top: calc(var(--md-status-h) + max(12px, var(--md-safe-t)));
}
.md-profile__head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}
.md-profile__media {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: var(--md-radius-lg);
  overflow: hidden;
  box-sizing: border-box;
  background-size: cover;
  background-position: center;
}
.md-profile__media--avatar {
  border-radius: var(--md-radius-circle);
}
.md-profile__media--sm {
  flex-basis: 44px;
  width: 44px;
  height: 44px;
}
.md-profile__media--lg {
  flex-basis: 72px;
  width: 72px;
  height: 72px;
}
.md-profile__main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.md-profile__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--md-text);
  text-align: left;
}
.md-profile__subtitle {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--md-text-secondary);
  text-align: left;
}
.md-profile__meta {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--md-text-secondary);
  text-align: left;
}
.md-profile__rating {
  color: #ed6c02;
  font-weight: 500;
  letter-spacing: 0.02em;
}
.md-profile__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 2px 0 0;
}
.md-profile__tags .md-chip {
  font-size: 0.6875rem;
  height: 22px;
  padding: 0 8px;
}
.md-profile__side {
  flex: 0 0 auto;
  align-self: flex-start;
  display: flex;
  align-items: flex-start;
}
.md-profile__side .md-btn {
  flex-shrink: 0;
}
.md-profile__stats {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  margin: 0;
  padding: 2px 0;
  min-width: 0;
}
.md-profile__stat {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 4px 8px;
  text-align: center;
  box-sizing: border-box;
}
.md-profile__stat + .md-profile__stat::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 1.25rem;
  background: var(--md-divider);
  pointer-events: none;
}
.md-profile__stat-value {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--md-text);
}
.md-profile__stat-label {
  margin: 0;
  font-size: 0.6875rem;
  line-height: 1.3;
  color: var(--md-text-disabled);
}
.md-profile__foot {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 8px;
  margin: 0;
  min-width: 0;
}
.md-profile__foot > .md-btn {
  flex: 1 1 0;
  min-width: 0;
}
.md-profile__foot > .md-btn.md-btn--soft {
  background: var(--md-grey-100, #f5f5f5);
  color: var(--md-text);
}
.md-profile__foot > .md-btn.md-btn--soft:hover {
  background: var(--md-grey-200, #eeeeee);
}
.md-profile__foot > .md-btn.md-btn--soft.md-btn--primary,
.md-profile__foot > .md-btn.md-btn--primary.md-btn--soft {
  background: var(--md-primary-soft);
  color: var(--md-primary);
}
.md-profile__foot > .md-btn.md-btn--soft.md-btn--primary:hover,
.md-profile__foot > .md-btn.md-btn--primary.md-btn--soft:hover {
  background: rgba(25, 118, 210, 0.18);
}

/* 我的页个人信息：同 md-profile 左定宽右填满；圆角矩形头像 + 昵称/ID/扩展行；右上可选浅底编辑 */
.md-profile--me {
  position: relative;
  gap: 0;
}
.md-profile--me .md-profile__media--avatar {
  border-radius: var(--md-radius-lg);
}
.md-profile--me .md-profile__edit {
  position: absolute;
  top: 14px;
  right: 16px;
  z-index: 1;
  min-width: 0;
  height: 28px;
  padding: 2px 10px;
  font-size: 0.8125rem;
  line-height: 1.35;
}
.md-profile--me:has(.md-profile__edit) .md-profile__head {
  padding-right: 52px;
  box-sizing: border-box;
}
.md-profile--me button.md-profile__media {
  cursor: pointer;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  appearance: none;
  -webkit-appearance: none;
}
.md-profile--me .md-profile__main {
  gap: 6px;
}
.md-profile--me .md-profile__name,
.md-profile--me button.md-profile__title.md-profile__name {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--md-text);
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-align: left;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.md-profile__name-input {
  width: 100%;
  max-width: 100%;
  height: 32px;
  padding: 4px 8px;
  border: 1px solid var(--md-primary);
  border-radius: var(--md-radius);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--md-text);
  box-sizing: border-box;
  outline: none;
}
.md-profile__uid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  width: 100%;
  min-width: 0;
}
.md-profile__uid-text {
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--md-text-secondary);
}
.md-profile__copy {
  height: 24px;
  min-width: 0;
  padding: 0 8px;
  font-size: 0.6875rem;
  line-height: 1.35;
}
.md-profile__extra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
}
.md-profile__extra:empty {
  display: none;
}
.md-mobile-page.md-set-page .md-module:has(> .md-profile--me),
.md-mobile-page.md-set-page .md-module:has(> .md-svc-strip) {
  background: transparent;
  padding: 0;
  gap: 0;
}

/* 表单页：左右安全距落在白底区块内边距，勿再给 body 叠一层 */
.md-mobile-page.md-form-page > .md-mobile-body > .md-mobile-sheet,
.md-mobile-page.md-set-page > .md-mobile-body > .md-mobile-sheet {
  padding-left: 0;
  padding-right: 0;
}
/* Legacy：body 直放 form 且无 sheet 时 body 承担 safe；有 sheet 时 safe 只在 sheet（列表搜索 form 在 toolbar 不算） */
.md-mobile-page:has(> .md-mobile-body > form):not(.md-form-page) > .md-mobile-body:not(:has(> .md-mobile-sheet)) {
  padding-left: var(--md-safe-l);
  padding-right: var(--md-safe-r);
}
.md-mobile-page:has(form) .md-field__input,
.md-mobile-page:has(form) .md-select,
.md-mobile-page:has(form) .md-picker-trigger {
  max-width: 100%;
}
.md-btn-demo { margin: 0; }
.md-btn-demo__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.md-display-block,
.md-detail-head {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  box-sizing: border-box;
}
.md-display-block .md-h2,
.md-detail-head .md-h2,
.md-detail-head__title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--md-text);
}
.md-detail-head__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: 10px;
}
.md-display-block .md-price,
.md-detail-head .md-price,
.md-detail-head__bar .md-price {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
}
.md-display-block .md-chip,
.md-detail-head .md-chip,
.md-detail-head__bar .md-chip {
  margin: 0;
}
.md-display-block .md-body2,
.md-detail-head .md-body2,
.md-detail-head__lead {
  margin: 12px 0 0;
  color: var(--md-text-secondary);
  font-size: 0.875rem;
  line-height: 1.5;
  text-indent: 0;
}
.md-d1.md-detail-page {
  background: var(--md-detail-bg, #f7f7f7);
  max-width: none;
  padding: 0 0 32px;
  box-sizing: border-box;
}
.md-d1.md-detail-page > .md-breadcrumb {
  margin: 0;
  padding: 12px 24px;
  background: transparent;
}
.md-d1.md-detail-page > .md-body2 {
  margin: 0;
  padding: 0 24px 8px;
}
.md-d1.md-detail-page > .md-tabs {
  padding: 0 24px;
  background: transparent;
  box-shadow: none;
}
.md-d1.md-detail-page > .md-tab-panels {
  background: transparent;
  flex: 1;
  min-height: 0;
}
.md-d1.md-detail-page > .md-detail-content,
.md-d1.md-detail-page .md-tab-panel > .md-detail-content {
  width: 100%;
  margin: 0;
  padding: 0 0 8px;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--md-detail-block-gap, 12px);
}
.md-d1 .md-swiper {
  border-radius: 0;
  background: var(--md-grey-200);
}
.md-d1 .md-detail-hero,
.md-d1.md-detail-page .md-module {
  padding: 20px 24px;
}
.md-d1 .md-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: 24px;
  align-items: start;
  max-width: none;
  margin: 0;
  background: var(--md-bg-paper);
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
}
.md-d1 .md-detail-body {
  max-width: none;
  display: flex;
  flex-direction: column;
  gap: var(--md-detail-block-gap, 12px);
  margin: 0;
  background: transparent;
}
.md-d1.md-detail-page .md-detail-body > .md-article,
.md-d1.md-detail-page .md-detail-body > .md-article-block {
  margin: 0;
  padding: 20px 24px;
  background: var(--md-bg-paper);
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
}
.md-d1.md-detail-page .md-detail-body > .md-section-head {
  margin: 0;
  padding: 16px 24px 0;
  background: transparent;
}
.md-d1.md-detail-page .md-detail-body > .md-comment-list {
  margin: 0;
  padding: 0 24px 8px;
  background: transparent;
  box-sizing: border-box;
}
.md-detail-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
}
@media (max-width: 900px) {
  .md-d1 .md-detail-hero { grid-template-columns: 1fr; }
}
.md-mobile-page .md-detail-head .md-h2,
.md-mobile-page .md-detail-head__title {
  font-size: 1.1875rem;
}
.md-mobile-page .md-action-bar + .md-mobile-body,
.md-mobile-page .md-mobile-body:has(+ .md-action-bar):not(:has(> .md-mobile-sheet)) {
  padding-bottom: 8px;
}
.md-mobile-page .md-mobile-body:has(+ .md-action-bar) > .md-mobile-sheet {
  padding-bottom: 8px;
}

button.md-field__input,
.md-picker-trigger {
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.md-picker-trigger:not(.has-value) {
  color: var(--md-text-disabled);
}

.md-slider {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.md-slider__label {
  font-size: 0.75rem;
  color: var(--md-text-secondary);
}
.md-slider__row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.md-slider input[type="range"] {
  flex: 1;
  min-width: 0;
  height: 44px;
  margin: 0;
  accent-color: var(--md-primary);
  cursor: pointer;
}
.md-slider__value {
  flex-shrink: 0;
  min-width: 3.5em;
  text-align: right;
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
  color: var(--md-text);
}
.md-slider__ticks {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--md-text-secondary);
  padding: 0 2px;
}
/* 五档位滑动条：先分档，每档圆点+文字同轴居中；选中档文字加粗、圆点高亮大圆 */
.md-slider--steps {
  --md-slider-steps: 5;
  --md-slider-dot: 8px;
  --md-slider-dot-active: 10px;
  --md-slider-halo: 24px;
}
.md-slider--steps .md-slider__segments-wrap {
  position: relative;
  width: 100%;
  min-height: 52px;
  padding: 4px 0 2px;
  box-sizing: border-box;
}
.md-slider--steps .md-slider__segments {
  display: grid;
  grid-template-columns: repeat(var(--md-slider-steps), minmax(0, 1fr));
  position: relative;
  pointer-events: none;
}
.md-slider--steps .md-slider__rail-line {
  position: absolute;
  left: calc(50% / var(--md-slider-steps));
  right: calc(50% / var(--md-slider-steps));
  top: calc(var(--md-slider-halo) / 2);
  height: 2px;
  background: var(--md-grey-300);
  transform: translateY(-50%);
  z-index: 0;
  pointer-events: none;
}
.md-slider--steps .md-slider__slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-width: 0;
  z-index: 1;
}
.md-slider--steps .md-slider__dot-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: var(--md-slider-halo);
  flex-shrink: 0;
}
.md-slider--steps .md-slider__dot {
  position: relative;
  width: var(--md-slider-dot);
  height: var(--md-slider-dot);
  border-radius: var(--md-radius-circle);
  background: var(--md-grey-400, #bdbdbd);
  box-sizing: border-box;
  flex-shrink: 0;
  transition: background 0.15s ease, width 0.15s ease, height 0.15s ease;
}
.md-slider--steps .md-slider__dot::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--md-slider-halo);
  height: var(--md-slider-halo);
  margin: calc(var(--md-slider-halo) / -2) 0 0 calc(var(--md-slider-halo) / -2);
  border-radius: var(--md-radius-circle);
  background: transparent;
  transform: scale(0.6);
  opacity: 0;
  transition: transform 0.15s ease, opacity 0.15s ease, background 0.15s ease;
  z-index: -1;
}
.md-slider--steps .md-slider__slot.is-active .md-slider__dot {
  width: var(--md-slider-dot-active);
  height: var(--md-slider-dot-active);
  background: var(--md-primary);
}
.md-slider--steps .md-slider__slot.is-active .md-slider__dot::before {
  background: rgba(25, 118, 210, 0.2);
  transform: scale(1);
  opacity: 1;
}
.md-slider--steps .md-slider__tick {
  min-width: 0;
  font-size: 0.75rem;
  line-height: 1.25;
  color: var(--md-text-secondary);
  text-align: center;
  transition: color 0.15s ease, font-weight 0.15s ease;
}
.md-slider--steps .md-slider__slot.is-active .md-slider__tick {
  color: var(--md-primary);
  font-weight: 600;
}
.md-slider--steps input[type="range"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}
.md-slider--steps .md-slider__value {
  display: none;
}

.md-upload--single {
  min-height: 160px;
  overflow: hidden;
}
.md-upload--single input[type="file"] { pointer-events: none; }
.md-upload--single.is-filled {
  padding: 0;
  border-style: solid;
  align-items: stretch;
}
.md-upload--single .md-upload__filled {
  position: relative;
  width: 100%;
}
.md-upload--single .md-upload__preview {
  width: 100%;
  aspect-ratio: 1;
  display: block;
  background-size: cover;
  background-position: center;
}
.md-upload--single .md-upload__preview.md-previewable,
.md-upload-grid__thumb.md-previewable {
  cursor: zoom-in;
}
.md-upload--single .md-upload__replace {
  position: absolute;
  right: 8px;
  bottom: 8px;
}
.md-upload--file .md-upload__name {
  font-size: 0.8125rem;
  color: var(--md-primary);
  margin: 0;
  word-break: break-all;
}
.md-upload--file + .md-progress,
.md-upload--file + .md-upload__progress {
  margin-top: -4px;
}
.md-upload-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}
.md-upload-grid__item,
.md-upload-grid__add {
  width: calc((100% - 24px) / 4);
  aspect-ratio: 1;
  border-radius: var(--md-radius-md);
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.md-upload-grid__thumb {
  width: 100%;
  height: 100%;
  display: block;
  background-size: cover;
  background-position: center;
}
.md-upload-grid__del {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 28px;
  height: 28px;
  min-width: 28px;
  padding: 0;
  border: 0;
  border-radius: var(--md-radius-circle);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.md-upload-grid__del .md-icon { width: 16px; height: 16px; }
.md-upload-grid__add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px dashed var(--md-grey-400);
  background: var(--md-grey-50);
  color: var(--md-text-secondary);
  font-size: 0.75rem;
  cursor: pointer;
}
.md-upload-grid__add input { display: none; }
.md-d1__form .md-upload-grid {
  gap: 8px;
}
.md-d1__form .md-upload-grid__item,
.md-d1__form .md-upload-grid__add {
  width: 80px;
  height: 80px;
  aspect-ratio: 1;
}
.md-d1__form .md-upload-grid__del {
  width: 20px;
  height: 20px;
  min-width: 20px;
  top: 2px;
  right: 2px;
}
.md-d1__form .md-upload-grid__del .md-icon { width: 12px; height: 12px; }
.md-d1__form .md-upload-grid__add { font-size: 0.6875rem; gap: 2px; }
.md-d1__form .md-upload-grid__add .md-icon { width: 20px; height: 20px; }
.is-hidden { display: none !important; }

.md-drawer.md-wheel {
  height: auto;
  max-height: 70vh;
}
.md-wheel__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 8px 0;
  flex-shrink: 0;
}
.md-wheel__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
}
.md-wheel__cols {
  display: flex;
  height: 216px;
  position: relative;
  margin: 8px 0 16px;
}
.md-wheel__col {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  text-align: center;
}
.md-wheel__opt {
  height: 36px;
  line-height: 36px;
  font-size: 0.9375rem;
  color: var(--md-text-secondary);
  cursor: pointer;
}
.md-wheel__opt.is-active {
  color: var(--md-primary);
  font-weight: 600;
  background: rgba(25, 118, 210, 0.08);
}
.md-wheel__tabs {
  display: flex;
  gap: 8px;
  padding: 4px 16px 0;
}
.md-wheel__tabs[hidden] {
  display: none;
}
.md-wheel__tab {
  flex: 1;
  height: 40px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--md-text-secondary);
  font-size: 0.875rem;
  cursor: pointer;
}
.md-wheel__tab.is-active {
  color: var(--md-primary);
  font-weight: 500;
  border-bottom-color: var(--md-primary);
}

.md-mobile-page select.md-select[data-md-bound="1"] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  opacity: 0;
  pointer-events: none;
}
button.md-select.md-select-trigger {
  display: block;
  text-align: left;
  cursor: pointer;
  font: inherit;
  padding-right: 32px;
}
.md-select-sheet-backdrop {
  z-index: calc(var(--md-z-modal) + 6);
}
.md-select-sheet {
  position: fixed;
  z-index: calc(var(--md-z-modal) + 7);
  display: flex;
  flex-direction: column;
  background: var(--md-bg-paper);
  color: var(--md-text);
  visibility: hidden;
  pointer-events: none;
  min-height: 0;
}
.md-select-sheet.is-open {
  visibility: visible;
  pointer-events: auto;
}
.md-select-sheet--center {
  left: 50%;
  top: 50%;
  width: min(320px, calc(100vw - 48px));
  max-height: min(70vh, calc(100% - var(--md-status-h) - var(--md-safe-b) - 32px));
  border-radius: var(--md-radius-dialog);
  box-shadow: var(--md-shadow-dialog);
  overflow: hidden;
  opacity: 0;
  transform: translate(-50%, -48%) scale(0.92);
  transition: opacity 225ms var(--md-ease), transform 225ms var(--md-ease), visibility 225ms var(--md-ease);
}
.md-select-sheet--center.is-open {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.md-select-sheet--bottom {
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-height: 70vh;
  border-radius: var(--md-radius-sheet-top);
  box-shadow: var(--md-shadow-16);
  padding-left: var(--md-safe-l);
  padding-right: var(--md-safe-r);
  padding-bottom: var(--md-safe-b);
  transform: translateY(100%);
  transition: transform 280ms var(--md-ease), visibility 280ms var(--md-ease);
}
.md-select-sheet--bottom.is-open {
  transform: none;
}
.md-select-sheet__handle {
  display: none;
  width: 36px;
  height: 4px;
  margin: 8px auto 0;
  border-radius: var(--md-radius-xs);
  background: var(--md-grey-300);
  flex-shrink: 0;
}
.md-select-sheet--bottom .md-select-sheet__handle { display: block; }
.md-select-sheet__title {
  margin: 0;
  padding: 16px 20px 8px;
  font-size: 1rem;
  font-weight: 500;
  flex-shrink: 0;
  text-align: center;
}
.md-select-sheet__list {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  min-height: 0;
  flex: 1 1 auto;
}
.md-select-sheet--center .md-select-sheet__list {
  max-height: min(52vh, 360px);
}
.md-select-sheet__opt {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 20px;
  border: 0;
  border-top: 1px solid var(--md-divider);
  background: transparent;
  color: var(--md-text);
  font-size: 1rem;
  text-align: center;
  cursor: pointer;
}
.md-select-sheet--bottom .md-select-sheet__opt { text-align: left; }
.md-select-sheet__opt.is-active {
  color: var(--md-primary);
  font-weight: 500;
}
.md-select-sheet__opt.is-disabled,
.md-select-sheet__opt:disabled {
  color: var(--md-text-disabled);
  cursor: default;
}
.md-select-sheet__cancel {
  flex-shrink: 0;
  width: 100%;
  min-height: 48px;
  border-top: 1px solid var(--md-divider);
  border-radius: 0;
}
.md-select-sheet__form {
  flex-shrink: 0;
  padding: 12px 20px 16px;
  border-top: 1px solid var(--md-divider);
  box-sizing: border-box;
}
.md-select-sheet__form .md-field {
  margin: 0 0 12px;
}
.md-select-sheet__form .md-btn {
  width: 100%;
}
