/* ====== 卡片容器 ====== */
.md3-table-card {
  background: #fff; border: 1px solid var(--md3-color-outline-variant);
  border-radius: 12px; margin-bottom: 20px; overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.07);
}
/* 卡片头部 */
.md3-table-card__head {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; font-size:14px; font-weight:700;
  color:var(--md3-color-on-surface);
  background:var(--md3-color-surface-container-low);
  border-bottom:1px solid var(--md3-color-outline-variant);
  min-height:48px;
}
.md3-table-card__head strong { font-weight:700; }
.md3-table-card__head a { text-decoration:none; }
/* 卡片体 */
.md3-table-card__body {
  padding:16px 20px;
}
/* 独立 head+body（无 md3-table-card 包裹时）自动形成卡片 */
.md3-table-card__head + .md3-table-card__body {
  border-top:none;
}
/* 第一个 head 和最后一个 body 形成完整卡片外观 */
.md3-table-card__head:first-child,
.md3-table-card__head {
  /* 继承父级或自行形成卡片顶部 */
}

.md3-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* 表格 */
.md3-table {
  width: 100%; border-collapse: collapse;
  font-size: 13.5px; color: var(--md3-color-on-surface);
}
.md3-table thead th,
.md3-table th {
  padding: 11px 16px; font-size: 12px; font-weight: 700;
  color: var(--md3-color-on-surface-variant);
  background: var(--md3-color-surface-container-low);
  border-bottom: 1px solid var(--md3-color-outline-variant);
  text-align: left; white-space: nowrap;
}
.md3-table tbody td,
.md3-table td {
  padding: 11px 16px;
  border-bottom: 1px solid var(--md3-color-outline-variant);
  vertical-align: middle;
}
.md3-table tbody tr:nth-child(even) td,
.md3-table tr:nth-child(even) td { background: rgba(0,95,184,.025); }
.md3-table tbody tr:hover td,
.md3-table tr:hover td { background: rgba(0,95,184,.06) !important; }
.md3-table tbody tr:last-child td,
.md3-table tr:last-child td { border-bottom: none; }

/* 通用辅助类 */
.md3-id-chip {
  display: inline-flex; align-items: center; padding: 2px 10px;
  border-radius: 10px; font-size: 12px; font-weight: 700;
  background: var(--md3-color-surface-container);
  color: var(--md3-color-on-surface-variant);
}
.sx-income  { color: var(--md3-color-success) !important; font-weight: 700 !important; }
.sx-expense { color: var(--md3-color-error) !important; font-weight: 700 !important; }
.md3-muted  { color: var(--md3-color-on-surface-variant) !important; font-size: 12.5px !important; }
.md3-link   { color: var(--md3-color-primary) !important; text-decoration: none !important; font-weight: 500 !important; }
.md3-link:hover { text-decoration: underline !important; }

/* 小计行 */
.sanxio-subtotal-row td {
  background: var(--md3-color-surface-container-low) !important;
  border-top: 2px solid var(--md3-color-outline-variant) !important;
  font-weight: 700 !important; border-bottom: none !important;
}

/* ====== Listing 列表通用 ====== */
/* 纯文本列表 */
.sanxio-list-txt { padding:0; margin:0; }
.sanxio-list-txt ul { list-style:none; padding:0; margin:0; }
.sanxio-list-txt li {
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 0; border-bottom:1px solid var(--md3-color-outline-variant);
  font-size:13.5px; line-height:1.5;
}
/* 商品页卖家卡：列表左对齐（避免 space-between 把防采集图挤到右侧） */
.mdc-show-contact .sanxio-show-contact-panel__body .sanxio-list-txt li,
.mdc-show-contact .sanxio-list-txt li {
  justify-content: flex-start;
  gap: 8px;
}
.mdc-show-contact .sanxio-show-contact-panel__body .sanxio-list-txt li a,
.mdc-show-contact .sanxio-list-txt li a {
  flex: 0 1 auto;
  white-space: normal;
}
.mdc-show-contact .sanxio-show-contact-panel__body .sanxio-list-txt li span,
.mdc-show-contact .sanxio-list-txt li span {
  margin-left: 0;
}
.sanxio-list-txt li:last-child { border-bottom:none; }
.sanxio-list-txt li a { color:var(--md3-color-on-surface); text-decoration:none; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sanxio-list-txt li a:hover { color:var(--md3-color-primary); }
.sanxio-list-txt li span,
.sanxio-list-txt li i { font-size:12px; color:var(--md3-color-on-surface-variant); white-space:nowrap; margin-left:12px; font-style:normal; }

/* 图文混合列表 */
.sanxio-list-mix { }
.sanxio-list-mix table { width:100%; border-collapse:collapse; }
.sanxio-list-mix th {
  padding:10px 12px; font-size:12px; font-weight:700;
  color:var(--md3-color-on-surface-variant);
  background:var(--md3-color-surface-container-low);
  border-bottom:1px solid var(--md3-color-outline-variant);
  text-align:center;
}
.sanxio-list-mix td {
  padding:10px 12px; border-bottom:1px solid var(--md3-color-outline-variant);
  font-size:13.5px; vertical-align:middle;
}
.sanxio-list-mix tr:last-child td { border-bottom:none; }
.sanxio-list-mix td a { color:var(--md3-color-on-surface); text-decoration:none; }
.sanxio-list-mix td a:hover { color:var(--md3-color-primary); }
.sanxio-list-mix td img { max-width:80px; border-radius:8px; }

/* 空状态 */
.sanxio-empty { padding:40px 0; text-align:center; color:var(--md3-color-on-surface-variant); font-size:14px; }

/* 分页 */
.sanxio-pages { padding:16px 0; text-align:center; }
.sanxio-pages input,
.sanxio-pages a { display:inline-block; min-width:32px; height:34px; line-height:34px; padding:0 10px; border-radius:8px; border:1px solid var(--md3-color-outline-variant); background:#fff; color:var(--md3-color-on-surface); text-decoration:none; font-size:13px; margin:2px; vertical-align:middle; }
.sanxio-pages a:hover { border-color:var(--md3-color-primary); color:var(--md3-color-primary); background:var(--md3-color-primary-container); }
.sanxio-pages .sanxio-pages__current { background:var(--md3-color-primary); color:#fff; border-color:var(--md3-color-primary); font-weight:700; }

/* ====== Chip 组件：联系卡片 ====== */
/* 非商品页侧栏（.contact-body）：单独成卡；商品页 .mdc-show-contact 内由 mall-show.css 压平 */
.contact-body > .sanxio-show-contact-panel {
	background: #fff;
	border: 1px solid var(--md3-color-outline-variant);
	border-radius: 12px;
	margin-bottom: 20px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
}

.contact-body > .sanxio-show-contact-panel > .sanxio-show-contact-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 20px;
	font-size: 14px;
	font-weight: 700;
	color: var(--md3-color-on-surface);
	background: var(--md3-color-surface-container-low);
	border-bottom: 1px solid var(--md3-color-outline-variant);
	min-height: 48px;
}

.contact-body > .sanxio-show-contact-panel > .sanxio-show-contact-panel__body {
	padding: 16px 20px;
}

.sanxio-contact-row { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.sanxio-contact-actions { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; padding:10px 0; border-top:1px solid var(--md3-color-outline-variant); border-bottom:1px solid var(--md3-color-outline-variant); }
.sanxio-contact-links { display:flex; gap:8px; margin-top:10px; }

/*======= sanxio contact card (non-mall pages sharing contact.htm) start ===========*/
.contact-body .sx-contact-card {
	display: flex;
	flex-direction: column;
	gap: var(--sanxio-content-gap, 16px);
}
.contact-body .sx-contact-card__head { display:flex; align-items:flex-start; gap:8px; }
.contact-body .sx-contact-card__avatar { position:relative; flex:0 0 48px; width:48px; height:48px; border-radius:12px; overflow:visible; background:var(--md3-color-surface-container-high,#ece6f0); }
.contact-body .sx-contact-card__avatar img { display:block; width:48px; height:48px; border-radius:inherit; object-fit:cover; }
.contact-body .sx-contact-card__online-dot { position:absolute; right:-1px; bottom:-1px; width:12px; height:12px; border-radius:50%; border:2px solid #fff; box-sizing:border-box; }
.contact-body .sx-contact-card__online-dot.is-on { background:#1e8e3e; }
.contact-body .sx-contact-card__online-dot.is-off { background:#9aa0a6; }
.contact-body .sx-contact-card__head-main { flex:1 1 auto; min-width:0; }
.contact-body .sx-contact-card__status { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:4px; font-size:12px; color:var(--md3-color-on-surface-variant,#49454f); }
.contact-body .sx-contact-card__presence { font-weight:600; }
.contact-body .sx-contact-card__presence.is-on { color:#1e8e3e; }
.contact-body .sx-contact-card__presence.is-off { color:#9aa0a6; }
.contact-body .sx-contact-card__follow { position:relative; display:inline-flex; align-items:center; gap:2px; min-height:36px; padding:4px 8px; border:1px solid var(--md3-color-outline-variant); border-radius:999px; background:#fff; cursor:pointer; }
.contact-body .sx-contact-card__badges { display:flex; flex-wrap:wrap; gap:6px; }
.contact-body .sx-contact-card__facts { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0; }
.contact-body .sx-contact-card__facts li { display:flex; align-items:center; gap:8px; margin:0; box-sizing:border-box; min-height:36px; padding:8px 0; border:none; border-bottom:1px solid var(--md3-color-outline-variant,#cac4d0); font-size:13px; line-height:1.4; font-weight:400; }
.contact-body .sx-contact-card__facts .material-symbols-outlined { display:inline-flex; align-items:center; justify-content:center; flex:0 0 20px; width:20px; height:20px; margin:0; font-size:18px; line-height:1; text-align:center; color:var(--md3-color-on-surface-variant,#49454f); }
.contact-body .sx-contact-card__cta.sanxio-contact-actions { flex-direction:column; align-items:stretch; border-top:none; border-bottom:none; }
.contact-body .sx-contact-card__chat { width:100%; justify-content:center; }
.contact-body .sx-contact-card__cta-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.contact-body .sx-contact-card__cta-sec { width:100%; justify-content:center; box-sizing:border-box; }
.contact-body .sx-contact-card__links.sanxio-contact-links { justify-content:center; align-items:center; gap:6px; flex-wrap:wrap; border-top:1px solid var(--md3-color-outline-variant); padding-top:8px; }
.contact-body .sx-contact-card__link { color:var(--md3-color-primary,#1976d2); font-size:13px; font-weight:600; text-decoration:none; }
.contact-body .sx-contact-card__link-sep { color:var(--md3-color-outline-variant,#cac4d0); }
/*======= sanxio contact card end ===========*/

/* Badge */
.sanxio-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 10px; border-radius:9999px; font-size:11px; font-weight:600; }
.sanxio-badge--vip { background:#FFD700; color:#333; }
.sanxio-badge--group { background:var(--md3-color-secondary-container); color:var(--md3-color-on-secondary-container); }
.sanxio-badge--year { background:var(--md3-color-surface-container); color:var(--md3-color-on-surface-variant); }
.sanxio-badge--ok { background:#E8F5E9; color:#2E7D32; }
.sanxio-badge--warn { background:#FFF3E0; color:#E65100; }
.sanxio-badge--online { background:#E8F5E9; color:#2E7D32; }
.sanxio-badge--offline { background:var(--md3-color-surface-container); color:var(--md3-color-on-surface-variant); }

/* Banner */
.sanxio-banner { padding:16px; border-radius:12px; font-size:14px; line-height:1.8; }
.sanxio-banner--info { background:#E3F2FD; border:1px solid #90CAF9; color:#1565C0; }
.sanxio-banner--warn { background:#FFF3E0; border:1px solid #FFCC80; color:#E65100; }
.sanxio-form-actions { margin-top:12px; display:flex; gap:8px; }

/* ====== Chip 组件：浮动按钮 (ball) — 与 #backToTop 纵向错开 ====== */
.sanxio-fab {
	position: fixed;
	right: 20px;
	bottom: 24px;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--md3-color-primary, #005fb8);
	color: var(--md3-color-on-primary, #fff);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
	z-index: 7990;
	transition: transform 0.2s, box-shadow 0.2s;
}
.sanxio-fab:hover {
	transform: scale(1.06);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.24);
}
/* 有在线咨询球时，返回顶部叠在其上方（56 + 16 间距） */
body:has(.sanxio-fab) #backToTop.md3-fab-top,
body:has(.sanxio-fab) .md3-fab-top {
	bottom: 96px;
}
@media (max-width: 1024px) {
	.sanxio-fab {
		bottom: calc(52px + 16px + env(safe-area-inset-bottom, 0px));
	}
	body:has(.sanxio-fab) #backToTop.md3-fab-top,
	body:has(.sanxio-fab) .md3-fab-top {
		bottom: calc(52px + 16px + 56px + 16px + env(safe-area-inset-bottom, 0px));
	}
}

/* ====== Chip 组件：工具栏 (tool) ====== */
.sanxio-toolbar { display:flex; flex-wrap:wrap; gap:6px; padding:12px 0; }
.sanxio-toolbar__btn { display:inline-flex; align-items:center; gap:4px; padding:6px 14px; border-radius:9999px; border:1px solid var(--md3-color-outline-variant); background:#fff; color:var(--md3-color-on-surface-variant); font-size:12px; text-decoration:none; cursor:pointer; transition:all .2s; }
.sanxio-toolbar__btn:hover { border-color:var(--md3-color-primary); color:var(--md3-color-primary); background:var(--md3-color-primary-container); }
.sanxio-toolbar__btn span { font-weight:600; }
