:root{
  --primary:#1A362B; --primary-light:#EEF4F0; --primary-hover:#264A3D;
  --gold:#C5A059; --gold-light:#F7F3EB; --gold-hover:#D4AF37; --vermilion:#C83C23;
  --bg-main:#FAF7F2; --card-bg:#FFFFFF;
  --text-main:#000000; --text-sub:#1A1A1A; --text-muted:#333333;
  --border-color:#EBE5DA; --border-gold:rgba(197,160,89,0.3);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0;}
view{display:block;} text{display:inline;}
html{font-size:min(calc(100vw/7.5), 64px);}
body{margin:0 auto;max-width:480px;min-height:100vh;background:var(--bg-main);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text-main);font-size:0.2800rem;padding-bottom:calc(1.7000rem + env(safe-area-inset-bottom));overflow-x:hidden;}
input,select,textarea,button{font-family:inherit;}
.page{display:none;}
.page.active{display:block;padding-bottom:calc(0.4000rem + env(safe-area-inset-bottom));}
.bottom-tabbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;background:#fff;display:flex;box-shadow:0 -2px 12px rgba(0,0,0,.06);z-index:20;padding:12rpx 0;border-top:1rpx solid var(--border-color);}
.tab-item{flex:1;text-align:center;font-size:26rpx;color:var(--text-muted);}
.tab-item.active{color:var(--primary);font-weight:700;}
.banner{position:relative;width:100%;overflow:hidden;}
.banner-track{display:flex;transition:transform .4s ease;}
.banner-slide{flex:0 0 100%;position:relative;}
.banner-slide img{width:100%;height:400rpx;object-fit:cover;display:block;}
.banner-title{position:absolute;left:24rpx;bottom:20rpx;color:#fff;font-size:30rpx;font-weight:700;text-shadow:0 2rpx 8rpx rgba(0,0,0,.5);}
.banner-dots{position:absolute;right:24rpx;bottom:18rpx;display:flex;gap:8rpx;}
.banner-dots .dot{width:10rpx;height:10rpx;border-radius:50%;background:rgba(255,255,255,.5);}
.banner-dots .dot.on{background:var(--gold);}
.dates{display:flex;gap:12rpx;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.dates .d{flex:0 0 auto;width:96rpx;text-align:center;padding:14rpx 0;border-radius:14rpx;background:#fff;border:1rpx solid var(--border-color);}
.dates .d .wd{font-size:22rpx;color:var(--text-sub);}
.dates .d .num{font-size:30rpx;font-weight:700;margin-top:4rpx;}
.dates .d.sel{background:var(--primary);color:#fff;border-color:var(--primary);}
.dates .d.sel .wd{color:#d8e8e0;}
.mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:30;display:none;align-items:flex-end;justify-content:center;}
.mask.on{display:flex;}
body .mask.notice-mask{align-items:center;justify-content:center;z-index:9998;}
/* 账单明细详情弹窗 */
body .mask.bill-detail-mask { align-items: center; justify-content: center; z-index: 9990; }
.bd-row { display: flex; justify-content: space-between; align-items: center; line-height: 2.4; border-bottom: 0.0100rem dashed #F0EDE4; font-size: 0.2800rem; }
.bd-row .bd-label { color: #6A7B72; flex-shrink: 0; margin-right: 0.2400rem; }
.bd-remark { margin-top: 0.1600rem; color: #6A7B72; font-size: 0.2400rem; line-height: 1.7; background: #FAF8F5; padding: 0.1200rem 0.1600rem; border-radius: 0.0800rem; }

/* 新人专享立减活动卡 */
.promo-card { border: 0.0100rem solid rgba(197,160,89,0.4); background: linear-gradient(135deg, #FFFDF7, #FBF3E3); }
.promo-title { font-size: 0.3200rem; font-weight: 700; color: #8C6D2D; margin-bottom: 0.1200rem; }
.promo-desc { font-size: 0.2600rem; color: #5C6B5E; line-height: 1.6; margin-bottom: 0.1400rem; }
.promo-rules { border-top: 0.0100rem dashed #E5D9C3; padding-top: 0.1200rem; }
.promo-rule { font-size: 0.2400rem; color: #7A6A5A; line-height: 1.8; }

/* 轻提示 Toast：白底金边卡片，居中醒目 */
.toast{
  position:fixed;left:50%;top:35%;
  transform:translateX(-50%) translateY(10rpx);
  background:#FFFFFF;
  color:#2C3E2D;
  border:0.0200rem solid rgba(197,160,89,0.6);
  box-shadow:0 0.1200rem 0.4000rem rgba(26,54,43,0.2);
  padding:0.2600rem 0.4800rem;
  border-radius:0.1600rem;
  font-size:0.3000rem;
  font-weight:600;
  line-height:1.6;
  text-align:center;
  max-width:80%;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.foot{font-size:22rpx;color:#aaa;}
/* ============================================================
 * 智慧中医小程序 — 禅意国风 (Zen Oriental Luxury) 页面样式
 * ============================================================ */

.container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  background-color: var(--bg-main);
  color: var(--text-main);
}

.tab-content {
  flex: 1;
  overflow-y: auto;
  padding-bottom: 1.6000rem;
}

/* ── 门店 3 照片轮播图 ── */
.shop-swiper {
  height: 3.8000rem;
  margin: 0.2000rem 0.2400rem;
  border-radius: 0.2400rem;
  overflow: hidden;
  position: relative;
  border: 0.0100rem solid var(--border-gold);
}

.swiper-img {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
}

.swiper-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 0.1600rem 0.2400rem;
  background: linear-gradient(to top, rgba(26, 54, 43, 0.85) 0%, rgba(26, 54, 43, 0) 100%);
  color: #F4ECE0;
}

.swiper-title {
  font-size: 0.2600rem;
  font-weight: 500;
  letter-spacing: 0.0100rem;
}

/* ── 门店介绍 Banner ── */
.shop-banner {
  margin: 0.2000rem 0.2400rem;
  padding: 0.4400rem 0.3200rem;
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  border-radius: 0.2400rem;
  color: #F4ECE0;
  text-align: center;
  position: relative;
  overflow: hidden;
  border: 0.0100rem solid rgba(197, 160, 89, 0.3);
}

.banner-cloud-bg {
  position: absolute;
  top: -0.4000rem;
  right: -0.4000rem;
  width: 2.0000rem;
  height: 2.0000rem;
  background: radial-gradient(circle, rgba(197, 160, 89, 0.2) 0%, rgba(0,0,0,0) 70%);
  border-radius: 50%;
  pointer-events: none;
}

.seal-icon-lg {
  width: 0.7200rem;
  height: 0.7200rem;
  margin: 0 auto 0.1600rem;
  border-radius: 0.1800rem;
  background: linear-gradient(135deg, #C5A059 0%, #9E7B3B 100%);
  color: #1A362B;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.3800rem;
  font-weight: bold;
  box-shadow: 0 0.0600rem 0.1600rem rgba(197, 160, 89, 0.35);
}

.shop-banner-title {
  font-size: 0.3800rem;
  font-weight: bold;
  letter-spacing: 0.0200rem;
  margin-bottom: 0.1000rem;
  color: #F4ECE0;
}

.shop-banner-sub {
  font-size: 0.2400rem;
  color: #C5A059;
  letter-spacing: 0.0100rem;
  margin-bottom: 0.2400rem;
}

.shop-status-badge {
  display: inline-block;
  font-size: 0.2200rem;
  background: rgba(255, 255, 255, 0.12);
  color: #EEF4F0;
  padding: 0.0600rem 0.2000rem;
  border-radius: 0.3000rem;
  border: 0.0100rem solid rgba(197, 160, 89, 0.3);
}

/* ── 通用信息卡片 ── */
.info-card {
  background: #FFFFFF;
  border-radius: 0.2400rem;
  padding: 0.3000rem 0.3200rem;
  margin: 0 0.2400rem 0.2400rem;
  border: 0.0100rem solid rgba(197, 160, 89, 0.28);
  box-shadow: 0 0.1000rem 0.3000rem rgba(26, 54, 43, 0.05);
  position: relative;
  overflow: hidden;
}

.section-title {
  font-size: 0.3200rem;
  font-weight: 700;
  margin-bottom: 0.2400rem;
  color: var(--primary);
  display: flex;
  align-items: center;
  letter-spacing: 0.0150rem;
}

.section-title::before {
  content: "";
  display: inline-block;
  width: 0.0800rem;
  height: 0.3200rem;
  background: linear-gradient(180deg, #C5A059 0%, #1A362B 100%);
  border-radius: 0.0400rem;
  margin-right: 0.1600rem;
  box-shadow: 0 0.0200rem 0.0600rem rgba(197, 160, 89, 0.4);
}

.info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.1800rem 0;
  border-bottom: 0.0100rem dashed var(--border-color);
  font-size: 0.2800rem;
}



.info-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.info-icon {
  font-size: 0.3200rem;
}

.phone-num {
  color: var(--gold);
  font-weight: bold;
}

/* ── 高定服务卡片 ── */
.service-list {
  display: flex;
  flex-direction: column;
  gap: 0.2000rem;
}

.service-card {
  background: #FAF8F5;
  border-radius: 0.1600rem;
  padding: 0.2400rem 0.2800rem;
  border: 0.0100rem solid rgba(197, 160, 89, 0.2);
  transition: all 0.2s ease;
}

.svc-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.1200rem;
}

.svc-name-box {
  display: flex;
  flex-direction: column;
}

.svc-name {
  font-size: 0.3200rem;
  font-weight: bold;
  color: var(--primary);
}

.svc-duration {
  font-size: 0.2200rem;
  color: var(--text-muted);
  margin-top: 0.0400rem;
}

.svc-price-box {
  text-align: right;
}

.svc-price {
  font-size: 0.3200rem;
  font-weight: bold;
  color: var(--gold);
}

.member-active {
  color: var(--vermilion);
  font-size: 0.3400rem;
}

.original-strike {
  text-decoration: line-through;
  color: var(--text-muted);
  font-size: 0.2400rem;
  margin-left: 0.0800rem;
}

.svc-price-tag {
  font-size: 0.2000rem;
  background: var(--gold-light);
  color: #8C6D2D;
  padding: 0.0200rem 0.1000rem;
  border-radius: 0.0600rem;
  margin-left: 0.0800rem;
}

.svc-desc {
  font-size: 0.2400rem;
  color: var(--text-sub);
  line-height: 1.6;
}

/* ── 在线预约看板 ── */
.header-bar {
  padding: 0.2400rem 0.3200rem;
  background: #FFFFFF;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 0.0100rem solid var(--border-color);
  margin-bottom: 0.1600rem;
}

.date-selector {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.1000rem;
  font-size: 0.2800rem;
  font-weight: 600;
  color: #111D16;
  background: #FAFAF8;
  padding: 0.1200rem 0.2800rem;
  border-radius: 0.3000rem;
  border: 0.0100rem solid #EEEAE4;
  cursor: pointer;
}

/* 原生日期输入框覆盖整个日期栏：用户真实点按直接触发系统选择器（兼容 iOS/微信） */
.date-input-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 16px;
}

.header-tips {
  font-size: 0.2600rem;
  color: #333333;
  font-weight: 500;
}

.section-group {
  margin: 0.2400rem;
}

.group-header {
  font-size: 0.2800rem;
  font-weight: 600;
  color: #111D16;
  margin-bottom: 0.1600rem;
  display: flex;
  align-items: center;
  gap: 0.0800rem;
}

.schedule-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.1600rem;
}

.time-card {
  background: #FFFFFF;
  border-radius: 0.1600rem;
  padding: 0.2200rem 0;
  text-align: center;
  border: 0.0100rem solid #EEEAE4;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  position: relative;
  overflow: hidden;
}

.time-card:active {
  transform: scale(0.97);
}

.card-time {
  font-size: 0.3200rem;
  font-weight: 700;
  color: #111D16;
  margin-bottom: 0.0800rem;
  letter-spacing: 0.0100rem;
}

.card-status-pill {
  font-size: 0.2200rem;
  display: inline-block;
  padding: 0.0400rem 0.1800rem;
  border-radius: 0.2000rem;
  background: #F2F0EC;
  color: #111D16;
  font-weight: 600;
}

.card-open {
  border-color: #EEEAE4;
  background: #FFFFFF;
}
.card-open .card-status-pill {
  background: #1A362B;
  color: #FFFFFF;
}

.card-booked {
  background: #FFFFFF;
  border-color: #E5D9C3;
}
.card-booked .card-status-pill {
  background: #F5EFE0;
  color: #111D16;
  border: 0.0100rem solid #E5D9C3;
}

.card-full {
  opacity: 0.8;
  background: #FFFFFF;
  border-color: #EEEAE4;
}
.card-full .card-status-pill {
  background: #F2F0EC;
  color: #555555;
}

.card-off {
  opacity: 0.8;
  background: #FAFAF8;
  border-color: #EEEAE4;
}
.card-off .card-status-pill {
  background: #F2F0EC;
  color: #555555;
}

.card-past {
  background: #FAFAF8;
  opacity: 0.75;
}

/* ── 浮动 AI 助手按钮 ── */
.floating-btn {
  position: fixed;
  bottom: 1.6000rem;
  right: 0.3200rem;
  z-index: 100;
  border-radius: 0.4000rem;
  padding: 0.1600rem 0.2800rem;
  display: flex;
  align-items: center;
  gap: 0.1000rem;
  box-shadow: 0 0.1000rem 0.3000rem rgba(197, 160, 89, 0.35);
}

.ai-btn {
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #F4ECE0;
  border: 0.0100rem solid rgba(197, 160, 89, 0.4);
}

.ai-btn-icon {
  font-size: 0.3200rem;
  color: var(--gold);
}

.ai-btn-text {
  font-size: 0.2600rem;
  font-weight: bold;
  letter-spacing: 0.0100rem;
}

/* ── 底部导航 TabBar（大方舒适宽敞样式） ── */
.bottom-tabbar {
  display: flex;
  height: 1.2400rem;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(16px);
  border-top: 0.0150rem solid #EBE5DA;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 90;
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
  box-shadow: 0 -0.0600rem 0.2400rem rgba(0, 0, 0, 0.05);
}

.tab-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0.1200rem 0;
  transition: all 0.2s ease;
  position: relative;
}

.tab-label {
  font-size: 0.3000rem;
  color: #555555;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  letter-spacing: 0.0200rem;
}

.tab-item.active .tab-label {
  color: #1A362B;
  font-weight: 700;
  font-size: 0.3100rem;
}

.tab-item.active::after {
  content: "";
  position: absolute;
  bottom: 0.1400rem;
  left: 50%;
  transform: translateX(-50%);
  width: 0.4400rem;
  height: 0.0600rem;
  background: #C5A059;
  border-radius: 0.0600rem;
}

/* ── 个人中心 ── */
.user-center {
  padding-top: 0.1200rem;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.2000rem 0.4000rem;
  text-align: center;
}

.empty-logo-img {
  width: 1.2000rem;
  height: 1.2000rem;
  border-radius: 50%;
  margin-bottom: 0.2400rem;
  border: 0.0300rem solid #D4C9B8;
}

.empty-title {
  font-size: 0.3200rem;
  font-weight: bold;
  color: var(--primary);
  margin-bottom: 0.1000rem;
}

.empty-sub {
  font-size: 0.2600rem;
  color: var(--text-muted);
}

/* 门票入场券样式 Upcoming Card */
.upcoming-card {
  background: #FFFFFF;
  border-radius: 0.2000rem;
  margin: 0 0.2400rem 0.2400rem;
  overflow: hidden;
  border: 0.0100rem solid var(--gold);
}

.u-top {
  padding: 0.2400rem 0.3200rem;
  background: linear-gradient(135deg, #FBF8F1 0%, #FFFFFF 100%);
  border-bottom: 0.0100rem dashed var(--gold);
}

.u-badge {
  display: inline-block;
  background: linear-gradient(135deg, #C5A059 0%, #D4AF37 100%);
  color: #FFFFFF;
  font-size: 0.2200rem;
  padding: 0.0400rem 0.1800rem;
  border-radius: 0.2000rem;
  margin-bottom: 0.1600rem;
  font-weight: bold;
}

.u-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.u-service {
  font-size: 0.3600rem;
  font-weight: bold;
  color: var(--primary);
  display: block;
  margin-bottom: 0.0600rem;
}

.u-doctor {
  font-size: 0.2400rem;
  color: var(--text-sub);
}

.u-time-box {
  text-align: right;
}

.u-date {
  font-size: 0.2400rem;
  color: var(--text-sub);
}

.u-time {
  font-size: 0.4400rem;
  font-weight: bold;
  color: var(--gold);
  font-family: monospace;
}

.u-bottom {
  padding: 0.2000rem 0.3200rem;
  background: #FFFFFF;
}

.u-tips {
  font-size: 0.2400rem;
  color: var(--text-sub);
}

.checkin-btn {
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #FFFFFF;
  text-align: center;
  padding: 0.2000rem;
  border-radius: 0.1200rem;
  margin-top: 0.2000rem;
  font-size: 0.3000rem;
  font-weight: bold;
  letter-spacing: 0.0200rem;
}

.checkin-btn.waiting {
  background: #F4ECE0;
  color: #8C6D2D;
  border: 0.0100rem solid var(--gold);
}

/* 个人资料卡片 */
.profile-card {
  display: flex;
  align-items: center;
  padding: 0.2400rem 0.3200rem;
  margin: 0 0.2400rem 0.2400rem;
  background: #FFFFFF;
  border-radius: 0.2000rem;
  border: 0.0100rem solid var(--border-gold);
  gap: 0.2400rem;
}

.avatar-btn {
  width: 1.2000rem !important;
  height: 1.2000rem !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 50% !important;
  border: 0.0400rem solid var(--gold) !important;
  overflow: hidden !important;
  display: block !important;
  box-sizing: border-box !important;
}

.user-avatar-img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
}

.user-name {
  font-size: 0.3600rem;
  font-weight: bold;
  color: var(--primary);
  display: flex;
  align-items: center;
}

.vip-badge {
  font-size: 0.2000rem;
  color: #FFFFFF;
  background: linear-gradient(135deg, #C5A059 0%, #D4AF37 100%);
  padding: 0.0400rem 0.1400rem;
  border-radius: 0.2000rem;
  margin-left: 0.1600rem;
}

.user-tags {
  font-size: 0.2400rem;
  color: var(--text-sub);
  margin: 0.0800rem 0;
}

.edit-profile-btn {
  font-size: 0.2200rem;
  color: var(--gold);
  display: inline-block;
  padding: 0.0400rem 0.1600rem;
  background: var(--gold-light);
  border-radius: 0.2000rem;
}

/* 黑金资产卡片 */
.asset-card {
  background: linear-gradient(135deg, #1A362B 0%, #11261D 100%) !important;
  color: #F4ECE0 !important;
  border: 0.0100rem solid rgba(197, 160, 89, 0.3) !important;
}

.text-gold {
  color: var(--gold) !important;
}

.help-circle {
  font-size: 0.2400rem;
  color: var(--gold);
  border: 0.0100rem solid var(--gold);
  border-radius: 50%;
  width: 0.3200rem;
  height: 0.3200rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.1600rem;
}

.balance-detail {
  display: flex;
  gap: 0.3000rem;
  margin-top: 0.2000rem;
  padding: 0.1600rem 0;
  border-bottom: 0.0100rem dashed rgba(197, 160, 89, 0.3);
}

.bal-item {
  flex: 1;
  text-align: center;
  background: rgba(255, 255, 255, 0.06);
  padding: 0.1600rem;
  border-radius: 0.1200rem;
  border: 0.0100rem solid rgba(197, 160, 89, 0.2);
}

.bal-label {
  font-size: 0.2200rem;
  color: #A8B8B0;
  display: block;
  margin-bottom: 0.0600rem;
}

.bal-val {
  font-size: 0.3400rem;
  font-weight: bold;
  font-family: monospace;
}

.bal-val.cash { color: #FFFFFF; }
.bal-val.bonus { color: var(--gold); }

.asset-counts {
  margin-top: 0.2000rem;
}

.counts-title {
  font-size: 0.2400rem;
  color: #A8B8B0;
  margin-bottom: 0.1200rem;
}

.counts-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.1400rem;
}

.counts-chip {
  background: rgba(255, 255, 255, 0.08);
  border: 0.0100rem solid rgba(197, 160, 89, 0.3);
  padding: 0.0800rem 0.1800rem;
  border-radius: 0.1000rem;
  font-size: 0.2400rem;
  color: #F4ECE0;
  display: flex;
  align-items: center;
  gap: 0.1000rem;
}

.counts-num {
  color: var(--gold);
  font-weight: bold;
}

.clickable {
  transition: transform 0.2s;
}
.clickable:active {
  transform: scale(0.98);
}

.link-more {
  color: var(--gold);
  font-size: 0.2400rem;
}

.doc-name {
  color: var(--primary);
  font-weight: 500;
}

/* 记录 Tab 切换 */
.records-tabs {
  display: flex;
  margin: 0.2000rem 0.2400rem;
  background: #FFFFFF;
  border-radius: 0.1600rem;
  overflow: hidden;
  border: 0.0100rem solid #EEEAE4;
}

.record-tab {
  flex: 1;
  text-align: center;
  padding: 0.2400rem 0.1000rem;
  font-size: 0.2800rem;
  color: #4A5E53;
  position: relative;
  font-weight: 400;
}

.record-tab.active {
  color: #111D16;
  font-weight: 600;
}

.record-tab.active::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 0.0400rem;
  background: var(--primary);
  border-radius: 0.0400rem;
}

.history-item {
  background: #FFFFFF;
  padding: 0.2800rem 0.3200rem;
  margin: 0 0.2400rem 0.1600rem;
  border-radius: 0.1600rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 0.0100rem solid #EEEAE4;
}

.h-service {
  font-size: 0.2800rem;
  font-weight: 600;
  color: #000000;
  display: block;
  margin-bottom: 0.0600rem;
}

.h-time {
  font-size: 0.2600rem;
  color: #333333;
  font-weight: 500;
}

.h-right {
  font-size: 0.2800rem;
  font-weight: 600;
  color: #000000;
}

.h-right.done { color: #1A362B; font-weight: 700; }
.h-right.pending { color: #8C6D2D; font-weight: 700; }

.empty-history {
  text-align: center;
  color: #333333;
  padding: 0.6000rem 0;
  font-size: 0.2600rem;
  font-weight: 500;
}

/* 调理档案凭证卡片 */
.treatment-card {
  background: #FFFFFF;
  border-radius: 0.1600rem;
  margin: 0 0.2400rem 0.2000rem;
  padding: 0.2800rem 0.3200rem;
  border: 0.0100rem solid #EEEAE4;
}

.tr-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 0.0100rem solid #F2F0EC;
  padding-bottom: 0.1600rem;
  margin-bottom: 0.1600rem;
}

.tr-date {
  font-weight: 600;
  font-size: 0.2800rem;
  color: #000000;
}

.tr-doc {
  color: #333333;
  font-size: 0.2600rem;
  font-weight: 500;
}

.tr-body {
  font-size: 0.2600rem;
  display: flex;
  flex-direction: column;
  gap: 0.1200rem;
}

.tr-row {
  display: flex;
  align-items: center;
}

.tr-label {
  color: #333333;
  width: 1.6000rem;
  flex-shrink: 0;
  font-size: 0.2600rem;
  font-weight: 500;
}

.tr-val {
  color: #000000;
  flex: 1;
  font-size: 0.2600rem;
  font-weight: 600;
}

.tr-val-amount {
  color: #000000;
  font-weight: 700;
  font-size: 0.3000rem;
  font-family: monospace;
}

/* 调理记录：辨证/取穴等长文本换行 + 待完善提示 */
.tr-val-note { color: #8A6D3B; }
.treatment-card .tr-row { align-items: flex-start; }
.treatment-card .tr-val { line-height: 1.65; font-weight: 500; word-break: break-all; }
.tr-pending-card { border: 1px dashed #E4D9C3; background: #FDFBF6; }
.tr-pending-tip {
  font-size: 0.2500rem;
  color: #A08A5F;
  background: #FBF6EA;
  border-radius: 0.1000rem;
  padding: 0.1400rem 0.1800rem;
  line-height: 1.6;
}

/* 我的预约：已完成服务的去处引导 + 历史履约（无明细）分组标题 */
.appt-todo-tip {
  margin: 0.2400rem;
  padding: 0.2600rem 0.3000rem;
  background: #F4F8F5;
  border: 1px solid #DCEAE0;
  border-radius: 0.2000rem;
  font-size: 0.2600rem;
  color: #2A5946;
  text-align: center;
}
.past-appt-title {
  margin: 0.3000rem 0.2400rem 0.1200rem;
  font-size: 0.2500rem;
  color: #9A948A;
}

.tr-status-box {
  background: #FAFAF8;
  border: 0.0100rem solid #EEEAE4;
  padding: 0.1200rem 0.1600rem;
  border-radius: 0.1000rem;
  margin-top: 0.1000rem;
}

.tr-val-status {
  color: #1A362B;
  font-weight: 700;
  font-size: 0.2600rem;
}

/* ── 弹窗遮罩与对话框 ── */
.modal-mask, .chat-mask, .login-mask {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.45);
  z-index: 9990;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-content, .login-box {
  width: 84%;
  background: #FFFFFF;
  border-radius: 0.2400rem;
  padding: 0.4000rem 0.3200rem;
  box-sizing: border-box;
}

.modal-title, .login-title {
  font-size: 0.3400rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 0.2400rem;
  color: #222222;
}

.login-desc {
  font-size: 0.2400rem;
  color: var(--text-sub);
  margin-bottom: 0.3600rem;
  text-align: center;
}

.modal-input, .login-input {
  background: #FFFFFF;
  border: 0.0100rem solid var(--border-color);
  border-radius: 0.1200rem;
  padding: 0 0.2400rem;
  height: 0.8400rem;
  line-height: 0.8400rem;
  font-size: 0.2800rem;
  margin-bottom: 0.2000rem;
  color: var(--text-main);
  box-sizing: border-box;
  width: 100%;
}

.login-logo {
  font-size: 0.8000rem;
  text-align: center;
  margin-bottom: 0.1600rem;
  color: var(--gold);
}

.login-btn {
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #FFFFFF;
  padding: 0.2400rem;
  border-radius: 0.1200rem;
  font-size: 0.3000rem;
  font-weight: bold;
  text-align: center;
  margin-top: 0.2000rem;
  letter-spacing: 0.0200rem;
}

.service-grid { margin-bottom: 0.2400rem; }
.svc-label { font-size: 0.2400rem; color: var(--text-sub); margin-bottom: 0.1600rem; }
.svc-chips { display: flex; flex-wrap: wrap; gap: 0.1400rem; }
.svc-chip {
  padding: 0.1000rem 0.2400rem;
  border-radius: 0.3000rem;
  font-size: 0.2600rem;
  background: #FFFFFF;
  border: 0.0100rem solid var(--border-color);
  color: var(--text-sub);
}
.svc-selected {
  background: var(--primary);
  color: #FFFFFF;
  border-color: var(--primary);
}

.modal-picker {
  text-align: center;
  font-size: 0.3200rem;
  font-weight: bold;
  color: var(--gold);
  margin: 0.2000rem 0 0.2000rem;
  padding: 0.1600rem;
  background: #FFFFFF;
  border-radius: 0.1200rem;
  border: 0.0100rem solid var(--border-gold);
}

.service-notice {
  background: rgba(197, 160, 89, 0.12);
  border: 0.0100rem solid rgba(197, 160, 89, 0.35);
  border-radius: 0.1600rem;
  padding: 0.1600rem 0.2000rem;
  margin-bottom: 0.2000rem;
  display: flex;
  align-items: flex-start;
  gap: 0.1200rem;
}

.notice-icon {
  font-size: 0.2600rem;
  line-height: 1.4;
}

.notice-text {
  font-size: 0.2300rem;
  color: #8C6D2D;
  line-height: 1.5;
  flex: 1;
}

.module-notice {
  background: linear-gradient(135deg, rgba(251, 248, 241, 0.95) 0%, rgba(245, 239, 227, 0.95) 100%);
  border: 0.0100rem solid var(--border-gold);
  border-radius: 0.2000rem;
  padding: 0.2000rem 0.2400rem;
  display: flex;
  align-items: flex-start;
  gap: 0.1600rem;
}

.module-notice .notice-icon {
  font-size: 0.3200rem;
  margin-top: 0.0200rem;
}

.notice-body {
  flex: 1;
}

.notice-title {
  font-size: 0.2600rem;
  font-weight: bold;
  color: var(--primary);
  margin-bottom: 0.0600rem;
}

.notice-desc {
  font-size: 0.2300rem;
  color: var(--text-sub);
  line-height: 1.55;
}

.modal-btns { display: flex; gap: 0.2000rem; margin-top: 0.3200rem; }
.modal-btns .btn {
  flex: 1;
  text-align: center;
  padding: 0.2400rem;
  border-radius: 0.1200rem;
  font-size: 0.2800rem;
  font-weight: bold;
  letter-spacing: 0.0100rem;
}

.btn.cancel { background: #EBE5DA; color: var(--text-sub); }
.btn.confirm { background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%); color: #FFFFFF; }

/* 预约弹窗立减提示 */
.booking-promo {
  font-size: 0.2400rem;
  color: #B45309;
  background: #FFFBEB;
  border: 0.0100rem solid #FDE68A;
  border-radius: 0.1200rem;
  padding: 0.1000rem 0.1400rem;
  text-align: center;
  line-height: 1.6;
  margin-bottom: 0.1600rem;
}

/* 预约提交同意条款 */
.booking-consent {
  font-size: 0.2200rem;
  color: #999;
  text-align: center;
  line-height: 1.6;
  margin-bottom: 0.2000rem;
}
.booking-consent a { color: #2A5946; }

/* 个人档案：退出登录按钮 */
.logout-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.2200rem;
  border-radius: 0.1600rem;
  border: 0.0100rem solid #D8D2C5;
  background: #FFFFFF;
  color: #7A6A5A;
  font-size: 0.2800rem;
  font-weight: 600;
  cursor: pointer;
}

/* ── AI 聊天弹窗 Drawer ── */
.chat-popup {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80vh;
  max-height: 80vh;
  background: #FAF7F2;
  border-radius: 0.3200rem 0.3200rem 0 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  box-shadow: 0 -0.1000rem 0.4000rem rgba(0, 0, 0, 0.15);
  border-top: 0.0100rem solid var(--border-gold);
  box-sizing: border-box;
}

.chat-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.3200rem 0.4000rem;
  border-bottom: 0.0100rem solid var(--border-color);
  font-size: 0.3200rem;
  font-weight: bold;
  color: var(--primary);
}

.chat-header-actions { display: flex; align-items: center; gap: 0.2000rem; }
.clear-btn { font-size: 0.2200rem; color: var(--text-sub); padding: 0.0600rem 0.1800rem; border: 0.0100rem solid var(--border-color); border-radius: 0.2000rem; font-weight: normal; }
.close-btn { font-size: 0.4800rem; color: var(--text-sub); line-height: 1; padding: 0 0.1000rem; }

.disclaimer-bar {
  background: var(--gold-light);
  color: #8C6D2D;
  font-size: 0.2200rem;
  text-align: center;
  padding: 0.1400rem;
  border-bottom: 0.0100rem solid rgba(197, 160, 89, 0.2);
}

.chat-list { flex: 1; padding: 0.2400rem 0.2400rem; overflow-y: auto; box-sizing: border-box; width: 100%; }
.message-item { display: flex; align-items: flex-start; gap: 0.1600rem; margin-bottom: 0.2800rem; width: 100%; box-sizing: border-box; }
.message-item.user { flex-direction: row-reverse; }

.logo-avatar, .user-avatar-wrap {
  width: 0.7600rem;
  height: 0.7600rem;
  border-radius: 50%;
  flex-shrink: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.logo-avatar {
  border: 0.0200rem solid var(--border-gold);
  box-shadow: 0 0.0400rem 0.1000rem rgba(197, 160, 89, 0.2);
}

.user-avatar-wrap {
  background: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-avatar-txt {
  font-size: 0.3600rem;
  color: #FFFFFF;
  line-height: 1;
}

.avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: block;
}

.bubble {
  max-width: calc(100% - 1.1000rem);
  padding: 0.2000rem 0.2800rem;
  border-radius: 0.2000rem;
  font-size: 0.2800rem;
  line-height: 1.6;
  word-break: break-all;
  overflow-wrap: break-word;
  white-space: pre-wrap;
  box-sizing: border-box;
}

.message-item.user .bubble {
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #FFFFFF;
  border-top-right-radius: 0.0400rem;
}

.message-item.ai .bubble {
  background: #FFFFFF;
  color: var(--text-main);
  border-top-left-radius: 0.0400rem;
  border: 0.0100rem solid var(--border-gold);
  box-shadow: 0 0.0400rem 0.1200rem rgba(0, 0, 0, 0.04);
}

.input-bar {
  display: flex;
  gap: 0.2000rem;
  padding: 0.2000rem 0.2800rem;
  border-top: 0.0100rem solid var(--border-color);
  align-items: flex-end;
  background: #FFFFFF;
  padding-bottom: calc(0.2000rem + env(safe-area-inset-bottom));
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}

.chat-input {
  flex: 1;
  background: #FAF7F2;
  border-radius: 0.1600rem;
  padding: 0.1800rem 0.2400rem;
  font-size: 0.2800rem;
  line-height: 1.5;
  min-height: 0.4000rem;
  max-height: 1.6000rem;
  box-sizing: border-box;
  border: 0.0100rem solid var(--border-color);
  word-break: break-all;
  overflow-wrap: break-word;
}

.send-btn {
  background: linear-gradient(135deg, #C5A059 0%, #D4AF37 100%);
  color: #FFFFFF;
  padding: 0.2000rem 0.3600rem;
  border-radius: 0.1600rem;
  font-size: 0.2800rem;
  font-weight: bold;
  white-space: nowrap;
}

.send-btn.disabled { background: #CBD5E1; color: #FFFFFF; }

.edit-gender-row { display: flex; align-items: center; margin-bottom: 0.2000rem; padding: 0 0.1000rem; }
.edit-label { font-size: 0.2800rem; color: var(--text-main); margin-right: 0.3200rem; font-weight: bold; }
.gender-options { display: flex; gap: 0.2400rem; }
.gender-opt { padding: 0.1000rem 0.3600rem; border-radius: 0.3000rem; font-size: 0.2800rem; background: #FFFFFF; border: 0.0100rem solid var(--border-color); color: var(--text-sub); }
.gender-opt.selected { background: var(--primary); color: #FFFFFF; border-color: var(--primary); }

/* 健康档案弹窗分区标题 */
.ep-section-title {
  font-size: 0.2600rem;
  color: #666666;
  font-weight: 500;
  margin-bottom: 0.1200rem;
  padding-left: 0.0400rem;
}

/* ── 调理记录与辨证档案 顶部返回导航 ── */
.records-header-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.2400rem 0.3200rem;
  background: #FFFFFF;
  margin-bottom: 0.1600rem;
}

.back-btn {
  display: flex;
  align-items: center;
  gap: 0.0800rem;
  color: var(--primary);
  font-size: 0.2600rem;
  font-weight: 600;
  padding: 0.1000rem 0.2200rem;
  background: var(--primary-light);
  border-radius: 0.3000rem;
  border: 0.0100rem solid rgba(26, 54, 43, 0.2);
}

.back-btn:active {
  opacity: 0.8;
  background: rgba(26, 54, 43, 0.15);
}

.back-arrow {
  font-size: 0.3000rem;
}

.records-page-title {
  font-size: 0.2800rem;
  font-weight: 600;
  color: #111D16;
}

/* ── AI 快捷提问气泡 ── */
.quick-questions-box {
  padding: 0.1600rem 0.2400rem;
  background: #FAF7F2;
  border-bottom: 0.0100rem dashed var(--border-gold);
}

.quick-title {
  font-size: 0.2400rem;
  color: var(--gold);
  font-weight: bold;
  display: block;
  margin-bottom: 0.1200rem;
}

.quick-chips {
  display: flex;
  flex-direction: column;
  gap: 0.1200rem;
}

.quick-chip {
  font-size: 0.2400rem;
  color: var(--primary);
  background: #FFFFFF;
  border: 0.0100rem solid rgba(197, 160, 89, 0.4);
  padding: 0.1200rem 0.2000rem;
  border-radius: 0.3000rem;
  box-shadow: 0 0.0200rem 0.0600rem rgba(0, 0, 0, 0.02);
  transition: all 0.2s ease;
}

.quick-chip:active {
  background: var(--primary-light);
  border-color: var(--primary);
}

/* ── 11步专业辨证调理陪伴路径全景 ── */
.path-steps-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.1200rem 0.1000rem;
  background: #FAFAF8;
  border-radius: 0.1200rem;
  padding: 0.2000rem 0.1600rem;
  border: 0.0100rem solid #EEEAE4;
}

.path-step-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
  border: 0.0100rem solid #EEEAE4;
  border-radius: 0.1000rem;
  padding: 0.1000rem 0.1400rem;
  min-width: 0.9000rem;
}

.step-num {
  font-size: 0.2400rem;
  font-weight: 700;
  color: #111D16;
}

.step-txt {
  font-size: 0.2400rem;
  color: #111D16;
  font-weight: 500;
  white-space: nowrap;
}

.step-arrow {
  font-size: 0.2400rem;
  color: #111D16;
  font-weight: 600;
}

/* ── 强迫症级工整对齐样式 ── */
.aligned-notice-list {
  display: flex;
  flex-direction: column;
  gap: 0.1200rem;
  margin-top: 0.1000rem;
}

.aligned-notice-item {
  display: flex;
  align-items: flex-start;
  font-size: 0.2600rem;
  line-height: 1.6;
  color: #111D16;
  font-weight: 500;
}

.aligned-notice-label {
  font-weight: 600;
  color: #111D16;
  width: 1.4000rem;
  flex-shrink: 0;
}

.aligned-notice-num {
  font-weight: 600;
  color: #111D16;
  width: 1.7000rem;
  flex-shrink: 0;
}

.aligned-notice-val {
  flex: 1;
  word-break: break-word;
  color: #111D16;
}

/* ── 单行紧凑型项目列表 (Compact Service Row) ── */
.compact-service-list {
  display: flex;
  flex-direction: column;
  gap: 0.1600rem;
}

.compact-service-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.2200rem 0.2400rem;
  background: #FFFFFF;
  border-radius: 0.1600rem;
  border: 0.0100rem solid #EEEAE4;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  box-sizing: border-box;
  width: 100%;
}

.compact-service-row:active {
  transform: scale(0.98);
  background: #FAFAF8;
}

.cs-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.0600rem;
  flex: 1;
  min-width: 0;
  margin-right: 0.1200rem;
}

.cs-meta {
  display: flex;
  align-items: center;
  gap: 0.0800rem;
}

.cs-name {
  font-size: 0.2800rem;
  font-weight: 700;
  color: #111D16;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1;
  max-width: 100%;
}
  min-width: 0;
}

.cs-duration {
  font-size: 0.1800rem;
  color: #8A948E;
  background: #FAF7F0;
  padding: 0.0200rem 0.1000rem;
  border-radius: 0.0600rem;
  border: 0.0100rem solid #E5DCCB;
  font-weight: 400;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-block;
}

.cs-once-tag {
  font-size: 0.2200rem;
  color: #B45309;
  background: #FFFBEB;
  padding: 0.0200rem 0.1000rem;
  border-radius: 0.0600rem;
  border: 0.0100rem solid #FDE68A;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-block;
}

.cs-right {
  display: flex;
  align-items: center;
  gap: 0.1200rem;
  flex-shrink: 0;
  white-space: nowrap;
}

.cs-price-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.0800rem;
  width: 2.7000rem;   /* 固定宽度：左原价右会员价，各行列对齐 */
  flex-shrink: 0;
  white-space: nowrap;
}

.cs-price {
  font-size: 0.3000rem;
  font-weight: 700;
  color: #111D16;
  font-family: 'Inter', -apple-system, monospace;
  white-space: nowrap;
  flex-shrink: 0;
}

.cs-price.original-strike {
  text-decoration: line-through;
  color: #888888;
  font-size: 0.2400rem;
}

.cs-price-vip {
  font-size: 0.2200rem;
  background: #F5EFE0;
  color: #8C6D2D;
  padding: 0.0200rem 0.1000rem;
  border-radius: 0.0600rem;
  font-weight: 600;
  border: 0.0100rem solid #E5D9C3;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-block;
}

.cs-price-vip.member-active {
  color: #C83C23;
  font-size: 0.2400rem;
  background: #FFF1F0;
  border-color: #F5C6C0;
}

.cs-price-none {
  color: #C0B8AA;
  background: none;
  border: none;
  padding: 0;
  font-size: 0.2600rem;
}

.cs-arrow {
  font-size: 0.2400rem;
  color: #8C6D2D;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 0.0400rem;
}

/* ── 项目详情 Modal 弹窗 ── */
.modal-container {
  width: 86vw;
  max-height: 85vh;
  background: #FFFFFF;
  border-radius: 0.3200rem;
  overflow: hidden;
  border: 0.0100rem solid var(--border-gold);
  animation: modalFadeIn 0.25s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes modalFadeIn {
  from { opacity: 0; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1); }
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.2800rem 0.3600rem;
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #F4ECE0;
}

.modal-badge {
  font-size: 0.2800rem;
  font-weight: bold;
  letter-spacing: 0.0100rem;
}

.close-btn {
  font-size: 0.3600rem;
  color: var(--gold);
  padding: 0 0.1000rem;
}

.modal-body {
  padding: 0.3200rem 0.3600rem;
  max-height: 58vh;
  overflow-y: auto;
}

.svc-modal-title-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.2400rem;
  border-bottom: 0.0100rem dashed var(--border-color);
  padding-bottom: 0.1600rem;
}

.svc-modal-name {
  font-size: 0.3800rem;
  font-weight: bold;
  color: var(--primary);
}

.svc-modal-duration {
  font-size: 0.2600rem;
  color: var(--text-sub);
}

.svc-modal-price-card {
  display: flex;
  align-items: center;
  justify-content: space-around;
  background: #FAF7F2;
  border-radius: 0.2000rem;
  padding: 0.2000rem 0;
  margin-bottom: 0.2800rem;
  border: 0.0100rem solid rgba(197, 160, 89, 0.3);
}

.price-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.price-item .price-label {
  font-size: 0.2200rem;
  color: var(--text-sub);
  margin-bottom: 0.0600rem;
}

.price-item .price-val {
  font-size: 0.3400rem;
  font-weight: bold;
  color: var(--primary);
}

.price-item.gold-highlight .price-label {
  color: var(--vermilion);
  font-weight: bold;
}

.price-item.gold-highlight .price-val {
  color: var(--vermilion);
  font-size: 0.4000rem;
}

.price-divider {
  width: 0.0100rem;
  height: 0.4800rem;
  background: var(--border-color);
}

.svc-modal-section {
  margin-bottom: 0.2400rem;
}

.modal-sub-title {
  font-size: 0.2800rem;
  font-weight: bold;
  color: var(--primary);
  margin-bottom: 0.1200rem;
}

.modal-suitable-box {
  background: #FDF8EF;
  border-left: 0.0600rem solid var(--gold);
  border-radius: 0.1200rem;
  padding: 0.1800rem 0.2400rem;
  font-size: 0.2700rem;
  color: #61480D;
  line-height: 1.6;
  font-weight: 600;
}

.modal-desc-box {
  background: #FAF8F5;
  border-radius: 0.1200rem;
  padding: 0.2000rem 0.2400rem;
  font-size: 0.2700rem;
  color: #111D16;
  line-height: 1.7;
  font-weight: 500;
  border: 0.0100rem solid rgba(26, 54, 43, 0.12);
}

.modal-footer {
  padding: 0.2000rem 0.3600rem 0.3200rem;
}

.modal-action-btn {
  width: 100%;
  padding: 0.2200rem 0;
  font-size: 0.3000rem;
  border-radius: 0.4000rem;
  box-shadow: 0 0.0800rem 0.2400rem rgba(26, 54, 43, 0.25);
}

/* ── 确认预约 Modal 高奢清爽 Selector 样式 ── */
.modal-picker-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.1200rem;
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #F4ECE0;
  padding: 0.1800rem 0.2400rem;
  border-radius: 0.1800rem;
  font-size: 0.2800rem;
  font-weight: bold;
  box-shadow: 0 0.0400rem 0.1600rem rgba(26, 54, 43, 0.2);
}

.svc-select-label {
  font-size: 0.2600rem;
  font-weight: bold;
  color: var(--primary);
  margin-bottom: 0.1200rem;
}

.picker-select-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #FAF8F5;
  border: 0.0100rem solid rgba(197, 160, 89, 0.4);
  padding: 0.2400rem 0.2800rem;
  border-radius: 0.1800rem;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}

.picker-select-box:active {
  background: #F4EFE6;
  border-color: var(--gold);
}

.picker-val {
  font-size: 0.3000rem;
  font-weight: bold;
  color: var(--primary);
}

.picker-arrow {
  font-size: 0.2200rem;
  color: var(--gold);
}

.service-notice-bar {
  display: flex;
  align-items: flex-start;
  gap: 0.1200rem;
  background: #FDF8EF;
  border-left: 0.0600rem solid var(--gold);
  border-radius: 0.1200rem;
  padding: 0.1600rem 0.2000rem;
}

.s-notice-icon {
  font-size: 0.2400rem;
  line-height: 1.4;
}

.s-notice-txt {
  font-size: 0.2300rem;
  color: #61480D;
  line-height: 1.5;
  flex: 1;
}

.input-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.1600rem;
}

.input-item-row {
  display: flex;
  align-items: center;
  background: #FAFAF8;
  border: 0.0100rem solid #E8E3D9;
  border-radius: 0.1400rem;
  padding: 0 0.2400rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.input-item-row:focus-within {
  border-color: #C5A059;
  box-shadow: 0 0 0 0.0300rem rgba(197, 160, 89, 0.15);
}

.clean-form-input {
  flex: 1;
  height: 0.8800rem;
  font-size: 0.3000rem;
  color: #2C3E2D;
  background: transparent;
  border: none;
  outline: none;
}
.clean-form-input::placeholder {
  color: #B9C0BA;
}

/* ── 预约信息摘要（H5 内联展示，小程序原版为弹窗） ── */
.sel-info {
  font-size: 0.2600rem;
  line-height: 1.7;
  color: var(--text-main);
  background: var(--primary-light);
  border: 0.0100rem solid rgba(26, 54, 43, 0.12);
  border-radius: 0.1600rem;
  padding: 0.1800rem 0.2400rem;
  white-space: pre-line;
  word-break: break-all;
}

/* ── 自定义半屏高奢大字项目选择抽屉 (Sheet Container) ── */
.sheet-container {
  width: 100vw;
  max-height: 70vh;
  background: #FFFFFF;
  border-radius: 0.3600rem 0.3600rem 0 0;
  position: absolute;
  bottom: 0;
  left: 0;
  overflow: hidden;
  border-top: 0.0100rem solid var(--border-gold);
  animation: sheetSlideUp 0.25s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes sheetSlideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

.sheet-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.3200rem 0.4000rem;
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  color: #F4ECE0;
}

.sheet-title {
  font-size: 0.3200rem;
  font-weight: bold;
  letter-spacing: 0.0100rem;
}

.sheet-body {
  padding: 0.2400rem 0.3200rem;
  max-height: 52vh;
  box-sizing: border-box;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.sheet-svc-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.2800rem 0.2800rem;
  background: #FAF8F5;
  border-radius: 0.2000rem;
  margin-bottom: 0.1600rem;
  border: 0.0100rem solid rgba(26, 54, 43, 0.08);
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}

.sheet-svc-item:active {
  background: #F4EFE6;
}

.sheet-svc-active {
  background: #FDF8EF;
  border: 0.0200rem solid var(--gold);
  box-shadow: 0 0.0400rem 0.1600rem rgba(197, 160, 89, 0.2);
}

.sheet-item-left {
  display: flex;
  align-items: center;
  gap: 0.2000rem;
}

.sheet-item-icon {
  font-size: 0.2600rem;
}

.sheet-item-name {
  font-size: 0.3200rem;
  font-weight: bold;
  color: var(--primary);
}

.sheet-svc-item.sheet-svc-active {
  border-color: #C5A059;
  background: #FDF8EF;
}
.sheet-svc-active .sheet-item-name {
  color: var(--vermilion);
}

.sheet-item-check {
  font-size: 0.2600rem;
  font-weight: bold;
  color: var(--vermilion);
  background: rgba(197, 160, 89, 0.15);
  padding: 0.0400rem 0.1600rem;
  border-radius: 0.2000rem;
}

/* ── 即刻到店 / 拨打电话联系大夫横幅 ── */
.instant-call-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: linear-gradient(135deg, #FAF4EB 0%, #F5E8D3 100%);
  border: 0.0100rem solid var(--border-gold);
  border-radius: 0.2000rem;
  padding: 0.2000rem 0.2800rem;
  margin: 0.1600rem 0.2400rem 0;
}

.instant-call-banner:active {
  transform: scale(0.98);
}

.icb-left {
  display: flex;
  flex-direction: column;
}

.icb-title {
  font-size: 0.2800rem;
  font-weight: bold;
  color: var(--vermilion);
}

.icb-sub {
  font-size: 0.2200rem;
  color: #8C6D2D;
  margin-top: 0.0400rem;
}

.icb-btn {
  font-size: 0.2400rem;
  font-weight: bold;
  color: #FFFFFF;
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
  padding: 0.1200rem 0.2400rem;
  border-radius: 0.3000rem;
  box-shadow: 0 0.0400rem 0.1200rem rgba(26, 54, 43, 0.2);
}

.card-ongoing {
  background: #FDF8EF !important;
  border: 0.0200rem solid var(--gold) !important;
  box-shadow: 0 0.0400rem 0.1200rem rgba(197, 160, 89, 0.25) !important;
}

.card-ongoing .card-time {
  color: var(--vermilion) !important;
  font-weight: bold;
}

.card-ongoing .card-status-pill {
  background: var(--gold-light);
  color: #8C6D2D;
  font-weight: bold;
}

/* ══════════════════════════════════════════
   新版个人档案页 — 简约高端大气
   ══════════════════════════════════════════ */

/* 通用卡片基底 */
.p-card {
  background: #FFFFFF;
  border-radius: 0.1600rem;
  margin: 0 0.2400rem 0.2000rem;
  padding: 0.2800rem 0.3200rem;
  border: 0.0100rem solid #EEEAE4;
}

/* ── 1. 个人名片 ── */
.p-profile-card {
  display: flex;
  align-items: center;
  gap: 0.2400rem;
  padding: 0.3200rem;
}

.p-avatar-btn {
  width: 1.0000rem !important;
  height: 1.0000rem !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 50% !important;
  border: 0.0300rem solid #D4C9B8 !important;
  overflow: hidden !important;
  display: block !important;
  box-sizing: border-box !important;
  background: transparent !important;
}

.p-avatar-img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50%;
}

.p-info {
  flex: 1;
}

.p-name-row {
  display: flex;
  align-items: center;
  gap: 0.1200rem;
}

.p-name {
  font-size: 0.3600rem;
  font-weight: 600;
  color: var(--text-main);
}

.p-vip-tag {
  font-size: 0.2000rem;
  color: #8C6D2D;
  background: #F5EFE0;
  padding: 0.0200rem 0.1400rem;
  border-radius: 0.0600rem;
  font-weight: 500;
  border: 0.0100rem solid #E5D9C3;
}

.p-meta {
  font-size: 0.2600rem;
  color: var(--text-sub);
  margin-top: 0.0800rem;
  display: block;
}

/* ── 2. 即期预约通行券 ── */
.p-ticket-card {
  border-left: 0.0600rem solid var(--primary);
  padding: 0;
  overflow: hidden;
}

.p-ticket-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.2400rem 0.2800rem;
}

.p-ticket-left {
  display: flex;
  flex-direction: column;
}

.p-ticket-svc {
  font-size: 0.3000rem;
  font-weight: 600;
  color: var(--text-main);
}

.p-ticket-date {
  font-size: 0.2400rem;
  color: var(--text-sub);
  margin-top: 0.0600rem;
}

.p-ticket-time-badge {
  font-size: 0.4000rem;
  font-weight: 700;
  color: var(--primary);
  font-family: monospace;
}

.p-ticket-bottom {
  padding: 0.1600rem 0.2800rem 0.2000rem;
  border-top: 0.0100rem dashed #E5E0D8;
  background: #FAFAF8;
}

.p-checkin-btn {
  text-align: center;
  padding: 0.1600rem;
  border-radius: 0.1000rem;
  font-size: 0.2800rem;
  font-weight: 600;
  color: #FFFFFF;
  background: var(--primary);
}

.p-checkin-btn:active {
  opacity: 0.85;
}

.p-checkin-waiting {
  background: #F5F0E6;
  color: #8C6D2D;
  border: 0.0100rem solid #E5D9C3;
}

.p-checked-text {
  font-size: 0.2800rem;
  color: var(--primary);
  font-weight: 500;
}

/* ── 3. 资产概览 ── */
.p-asset-card {
  background: #FAFAF8;
}

.p-asset-row {
  display: flex;
  align-items: center;
}

.p-asset-item {
  flex: 1;
  text-align: center;
}

.p-asset-label {
  display: block;
  font-size: 0.2400rem;
  color: var(--text-sub);
  margin-bottom: 0.0800rem;
}

.p-asset-val {
  font-size: 0.3000rem;
  font-weight: 600;
  color: var(--text-main);
  font-family: monospace;
}

.p-asset-muted {
  font-size: 0.2400rem;
  font-weight: 500;
  color: #999999;
  font-family: inherit;
}

.p-asset-green {
  color: var(--primary);
}

.p-asset-divider {
  width: 0.0100rem;
  height: 0.6000rem;
  background: #E5E0D8;
  margin: 0 0.1600rem;
}

.p-counts-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.1200rem;
  margin-top: 0.2000rem;
  padding-top: 0.2000rem;
  border-top: 0.0100rem solid #EEEAE4;
}

.p-count-chip {
  display: flex;
  align-items: center;
  gap: 0.0800rem;
  background: #FFFFFF;
  border: 0.0100rem solid #EEEAE4;
  padding: 0.0600rem 0.1600rem;
  border-radius: 0.0800rem;
  font-size: 0.2400rem;
}

.p-chip-name {
  color: var(--text-sub);
}

.p-chip-num {
  color: var(--primary);
  font-weight: 600;
}

/* ── 4. 个人档案 4 项单行菜单列表（恰好 4 行，绝不折行） ── */
.p-menu-list {
  padding: 0 0.3200rem;
  background: #FFFFFF;
}

.p-menu-cell {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 1.0400rem;
  border-bottom: 0.0100rem solid #F2EFF5;
}

.p-menu-cell:last-child {
  border-bottom: none;
}

.p-menu-left {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}

.p-menu-dot {
  width: 0.1000rem;
  height: 0.1000rem;
  border-radius: 50%;
  background: #2A5946;
  margin-right: 0.1600rem;
  flex-shrink: 0;
}

.p-menu-title {
  font-size: 0.2800rem;
  font-weight: 700;
  color: #000000;
  white-space: nowrap;
}

.p-menu-right {
  display: flex;
  align-items: center;
  gap: 0.1000rem;
  flex-shrink: 0;
}

.p-menu-tag {
  font-size: 0.2400rem;
  color: #666666;
  font-weight: 500;
  white-space: nowrap;
}

.p-menu-arrow {
  font-size: 0.3200rem;
  color: #AAAAAA;
  margin-left: 0.0400rem;
  font-weight: 400;
}

/* ── 统一规矩大气的标题栏 ── */
.p-section-title-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.2000rem;
}

.p-section-title-txt {
  font-size: 0.3000rem;
  font-weight: 700;
  color: #000000;
  border-left: 0.0800rem solid #2A5946;
  padding-left: 0.1600rem;
  line-height: 1.3;
}

.p-section-tag {
  font-size: 0.2200rem;
  color: #B89947;
  font-weight: 600;
  letter-spacing: 0.0200rem;
  background: rgba(184, 153, 71, 0.1);
  padding: 0.0400rem 0.1400rem;
  border-radius: 0.2000rem;
  border: 0.0100rem solid rgba(184, 153, 71, 0.3);
}

.p-shop-intro-text {
  font-size: 0.2600rem !important;
  color: #222222 !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  padding: 0.2000rem;
  background: #F8FAF8;
  border-radius: 0.1200rem;
  border-left: 0.0400rem solid #2A5946;
  margin-bottom: 0.2400rem;
  word-break: break-all;
}

/* ── 2x2 对称高雅承诺流线 ── */
.p-promise-pill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.1600rem;
}

.p-promise-pill-item {
  background: #FAFAF8;
  border: 0.0150rem solid #EBE7DF;
  border-radius: 0.1200rem;
  padding: 0.2000rem 0.1800rem;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.pill-num {
  font-size: 0.2400rem;
  font-weight: 700;
  color: #B89947;
  margin-bottom: 0.0400rem;
}

.pill-title {
  font-size: 0.2800rem;
  font-weight: 700;
  color: #000000;
  margin-bottom: 0.0400rem;
}

.pill-desc {
  font-size: 0.2400rem !important;
  color: #333333 !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
}

/* ── 12步流程：3行4列完满对称网格 ── */
.path-grid-12 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.1400rem 0.1000rem;
  background: #FAFAF8;
  border-radius: 0.1200rem;
  padding: 0.2000rem 0.1400rem;
  border: 0.0100rem solid #EBE7DF;
}

.step-card {
  background: #FFFFFF;
  border: 0.0100rem solid #E2DDD5;
  border-radius: 0.1000rem;
  padding: 0.1400rem 0.0400rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 0 0.0200rem 0.0600rem rgba(0, 0, 0, 0.02);
}

.sc-num {
  font-size: 0.2200rem;
  font-weight: 700;
  color: #B89947;
  line-height: 1.2;
}

.sc-name {
  font-size: 0.2400rem;
  font-weight: 600;
  color: #111111;
  margin-top: 0.0400rem;
  white-space: nowrap;
}

.p-notice-flex-row {
  display: flex;
  gap: 0.2000rem;
  width: 100%;
}

.p-notice-col {
  flex: 1;
  min-width: 0;
  background: #FAFAF8;
  border-radius: 0.1200rem;
  padding: 0.2000rem;
  border: 0.0100rem solid #EEEAE4;
  box-sizing: border-box;
}

.p-notice-col-title {
  font-size: 0.2800rem;
  font-weight: 700;
  color: #000000;
  display: block;
  margin-bottom: 0.0800rem;
}

.p-notice-col-text {
  font-size: 0.2600rem !important;
  color: #222222 !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  word-break: break-all;
}

.p-price-notice-bar {
  background: #FAFAF8;
  padding: 0.1600rem 0.2000rem;
  border-radius: 0.1200rem;
  margin-bottom: 0.2000rem;
  font-size: 0.2600rem;
  color: #111111;
  line-height: 1.5;
  border: 0.0100rem solid #EEEAE4;
  font-weight: 500;
}

/* ── 储值余额"账单明细"入口链接 ── */
.p-asset-link {
  display: block;
  font-size: 0.2200rem;
  color: #C5A059;
  margin-top: 0.0600rem;
  font-weight: 500;
}

/* ============================================================
 * 📱 仿微信支付账单明细样式
 * ============================================================ */

/* 账户概览卡片 */
.bill-summary-card {
  margin-top: 0.1600rem !important;
  padding: 0.3200rem !important;
  background: linear-gradient(135deg, #2C2C2C 0%, #1A1A1A 100%) !important;
  border-radius: 0.2000rem !important;
  border: none !important;
}

.bill-balance-row {
  text-align: center;
  padding-bottom: 0.2400rem;
  border-bottom: 0.0100rem solid rgba(255,255,255,0.1);
}

.bill-balance-main {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.bill-balance-label {
  font-size: 0.2400rem;
  color: rgba(255,255,255,0.6);
  margin-bottom: 0.1200rem;
}

.bill-balance-amount {
  font-size: 0.5600rem;
  font-weight: 700;
  color: #FFFFFF;
  font-family: -apple-system, 'DIN Alternate', monospace;
  letter-spacing: 0.0200rem;
}

.bill-stat-row {
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding-top: 0.2400rem;
}

.bill-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}

.bill-stat-label {
  font-size: 0.2200rem;
  color: rgba(255,255,255,0.5);
  margin-bottom: 0.0800rem;
}

.bill-stat-val {
  font-size: 0.2800rem;
  font-weight: 600;
  font-family: -apple-system, monospace;
}

.bill-stat-green {
  color: #5DC66A;
}

.bill-stat-red {
  color: #FF6B6B;
}

.bill-stat-divider {
  width: 0.0100rem;
  height: 0.5000rem;
  background: rgba(255,255,255,0.15);
}

/* 账单列表 */
.bill-list-title {
  font-size: 0.2600rem;
  font-weight: 600;
  color: var(--text-main);
  padding: 0.1600rem 0.2800rem 0.1200rem;
  border-bottom: 0.0100rem solid #F0EDE8;
}

.bill-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.2400rem 0.2800rem;
  border-bottom: 0.0100rem solid #F5F3F0;
  transition: background 0.15s;
}

.bill-item:active {
  background: #FAF9F7;
}

.bill-item:last-child {
  border-bottom: none;
}

.bill-item-left {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}

.bill-item-icon {
  width: 0.6000rem;
  height: 0.6000rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.2800rem;
  margin-right: 0.2000rem;
  flex-shrink: 0;
}

.bill-icon-in {
  background: rgba(93, 198, 106, 0.12);
  color: #5DC66A;
}

.bill-icon-out {
  background: rgba(255, 107, 107, 0.12);
  color: #FF6B6B;
}

.bill-item-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.bill-item-title {
  font-size: 0.2800rem;
  font-weight: 500;
  color: var(--text-main);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bill-item-time {
  font-size: 0.2200rem;
  color: var(--text-sub);
  margin-top: 0.0400rem;
}

.bill-item-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
  margin-left: 0.1600rem;
}

.bill-item-amount {
  font-size: 0.3000rem;
  font-weight: 600;
  font-family: -apple-system, 'DIN Alternate', monospace;
}

.amount-green {
  color: #5DC66A;
}

.amount-red {
  color: #333333;
}

.bill-item-tag {
  font-size: 0.2000rem;
  color: var(--text-sub);
  margin-top: 0.0400rem;
  padding: 0.0200rem 0.1000rem;
  background: #F5F3F0;
  border-radius: 0.0600rem;
}

/* ── 📅 日期/月份筛选组件样式 ── */
.bill-filter-card,
.treatment-filter-card {
  margin-top: 0.1600rem !important;
  margin-bottom: 0.1600rem !important;
  padding: 0.2000rem 0.2400rem !important;
  background: #FAFAF8 !important;
  border: 0.0100rem solid #EEEAE4 !important;
}

.bill-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.month-picker-btn {
  display: flex;
  align-items: center;
  background: #FFFFFF;
  border: 0.0100rem solid #E2DDD5;
  padding: 0.1000rem 0.2000rem;
  border-radius: 0.2800rem;
  font-size: 0.2600rem;
  color: var(--text-main);
  box-shadow: 0 0.0200rem 0.0600rem rgba(0,0,0,0.03);
}

.mp-icon {
  margin-right: 0.1000rem;
  font-size: 0.2600rem;
}

.mp-text {
  font-weight: 500;
}

.mp-arrow {
  margin-left: 0.1200rem;
  font-size: 0.2000rem;
  color: var(--text-sub);
}

.month-reset-btn {
  font-size: 0.2400rem;
  color: #C5A059;
  padding: 0.0800rem 0.1600rem;
  background: rgba(197, 160, 89, 0.1);
  border-radius: 0.2000rem;
  font-weight: 500;
}

.month-summary-bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 0.1600rem;
  padding-top: 0.1200rem;
  border-top: 0.0100rem dashed #E5E0D8;
  font-size: 0.2400rem;
  color: var(--text-sub);
}

.ms-item {
  margin-right: 0.2400rem;
}

.ms-green {
  color: #5DC66A;
  font-weight: 600;
}

.ms-red {
  color: #E54D42;
  font-weight: 600;
}

.bill-list-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.2600rem;
  font-weight: 600;
  color: var(--text-main);
  padding: 0.1600rem 0.2800rem 0.1200rem;
  border-bottom: 0.0100rem solid #F0EDE8;
}

.bill-list-count {
  font-size: 0.2200rem;
  color: var(--text-sub);
  font-weight: normal;
}

/* ===== H5 修正：底部 Tab 居中（覆盖原版 wxss 的 left:0 冲突） ===== */
body .bottom-tabbar{left:50%;right:auto;transform:translateX(-50%);max-width:480px;}

/* ===== H5 修正：宣传图轮播 1:1 复刻小程序 swiper ===== */
body .banner{
  height: 3.8000rem;                 /* 小程序 380rpx */
  width: calc(100% - 0.4800rem);     /* 抵消左右 24rpx margin，防止横向溢出 */
  box-sizing: border-box;
  margin: 0.2000rem 0.2400rem;       /* 20rpx 24rpx */
  border-radius: 0.2400rem;          /* 24rpx */
  overflow: hidden;
  position: relative;
  border: 0.0100rem solid var(--border-gold);
  background: linear-gradient(135deg, #1A362B 0%, #2A4D3E 100%);
}
body .banner-track{height:100%;transition:transform .4s ease;}
body .banner-slide{flex:0 0 100%;height:100%;position:relative;}
body .banner-slide img{width:100%;height:100%;object-fit:cover;display:block;}
body .banner-title{
  position:absolute;left:0;right:0;bottom:0;
  padding:0.1600rem 0.2400rem;       /* 16rpx 24rpx */
  background:linear-gradient(to top, rgba(26,54,43,0.85) 0%, rgba(26,54,43,0) 100%);
  color:#F4ECE0;font-size:0.2600rem;font-weight:500;letter-spacing:0.0100rem;
  text-shadow:none;
}
body .banner-dots{
  position:absolute;left:0;right:0;bottom:0.1200rem;
  display:flex;justify-content:center;gap:0.0800rem;
}
body .banner-dots .dot{width:0.1000rem;height:0.1000rem;border-radius:50%;background:rgba(255,255,255,.5);}
body .banner-dots .dot.on{background:var(--gold);width:0.2000rem;border-radius:0.0500rem;}

/* ===== H5 修正：项目详情弹窗居中（小程序 modal-mask 用 align-items:center） ===== */
body .mask.svc-mask{
  align-items:center;justify-content:center;
  z-index:9990;
}
.zen-shadow{box-shadow:0 12rpx 48rpx rgba(26,54,43,0.22);}
.modal-title-box{display:flex;align-items:center;gap:0.1200rem;}
.btn-primary{
  background:linear-gradient(135deg,#1A362B 0%,#2A4D3E 100%);
  color:#FFFFFF;border:none;font-weight:bold;letter-spacing:0.0100rem;
  font-family:inherit;
}
.svc-mask .modal-title-box{display:block;}

/* ===== H5 修正：确认预约弹窗（居中）+ 项目选择抽屉（底部） ===== */
body .mask.book-mask{
  align-items:center;justify-content:center;
  z-index:9990;
}
body .mask.sheet-mask{
  align-items:flex-end;justify-content:center;
  z-index:9991;
}
.mp-txt{font-size:0.2800rem;}
.service-select-group{margin:0.2400rem 0 0.1600rem;}
body .book-mask .clean-form-input{width:100%;box-sizing:border-box;}

/* ===== H5 修正：我的预约详情（居中 modal）+ 取消原因 ActionSheet ===== */
body .mask.appt-mask{align-items:center;justify-content:center;z-index:9990;}
.appt-modal-title{
  font-size:0.3400rem;font-weight:600;text-align:center;
  padding:0.3200rem 0.3200rem 0.1600rem;color:#222222;
}
.appt-modal-body{
  padding:0.2000rem 0.3600rem 0.3200rem;
  font-size:0.2800rem;color:var(--text-main);line-height:1.8;
  text-align:center;
}
.appt-modal-row{font-size:0.2800rem;color:var(--text-main);margin-bottom:0.0800rem;}
.appt-modal-row b{color:var(--primary);}
.appt-modal-hint{font-size:0.2600rem;color:var(--text-sub);margin-top:0.1600rem;line-height:1.6;}
.appt-modal-btns{display:flex;border-top:0.0100rem solid #EEEAE4;}
.appt-btn{
  flex:1;text-align:center;padding:0.2600rem 0;font-size:0.3000rem;font-weight:600;
  color:var(--text-sub);border-right:0.0100rem solid #EEEAE4;background:#fff;
}
.appt-btn-cancel{color:var(--vermilion);border-right:none;font-weight:bold;}
body .mask.reason-mask{align-items:flex-end;justify-content:center;z-index:9992;}
.reason-sheet{width:86vw;max-width:480px;background:#fff;border-radius:0.2400rem 0.2400rem 0 0;overflow:hidden;padding-bottom:0.1000rem;}
.reason-item{
  text-align:center;padding:0.3000rem 0;font-size:0.3000rem;color:var(--text-main);
  border-bottom:0.0100rem solid #F2EFF5;background:#fff;
}
.reason-item:active{background:#FAF8F5;}
.reason-cancel{color:#888;font-weight:500;background:#FAF8F5;margin-top:0.1000rem;}

/* ===== H5 修正：资产说明弹窗居中（对齐小程序 modal-mask） ===== */
body .mask.asset-mask{align-items:center;justify-content:center;z-index:9990;}

/* ===== H5 修正：意见反馈简约化 ===== */
.fb-form-title{font-size:0.3200rem;font-weight:700;color:var(--text-main);margin-bottom:0.2400rem;}
.fb-field-label{font-size:0.2600rem;color:var(--text-sub);margin-bottom:0.1200rem;font-weight:500;}
.fb-type-row{display:flex;gap:0.1600rem;margin-bottom:0.2400rem;flex-wrap:wrap;}
.fb-type{
  padding:0.1200rem 0.3000rem;border-radius:0.4000rem;font-size:0.2600rem;
  background:#F5F5F3;color:var(--text-main);border:0.0100rem solid #E8E8E4;
}
.fb-type.sel{background:var(--primary);color:#fff;border-color:var(--primary);}
.fb-history-title{font-size:0.2800rem;font-weight:600;color:var(--text-main);margin-bottom:0.1200rem;display:flex;justify-content:space-between;align-items:center;}
.fb-history-refresh{font-size:0.2400rem;color:var(--text-sub);font-weight:400;}
.fb-textarea{
  height:3.0000rem;                    /* 固定约4行 */
  width:100%;box-sizing:border-box;
  padding:0.2000rem;margin-bottom:0.2400rem;
  resize:none;line-height:1.6;
  border:0.0100rem solid var(--border-color);border-radius:0.1200rem;
  background:#fff;
}

/* ===== H5 修正：健康档案简洁分组 ===== */
.pe-field{display:flex;align-items:center;padding:0.2200rem 0;border-bottom:0.0100rem solid #F2F0EB;}
.pe-field:last-child{border-bottom:none;}
.pe-label{width:1.4000rem;font-size:0.2800rem;color:var(--text-main);flex-shrink:0;}
.pe-label .req{color:#D64541;font-style:normal;margin-left:4rpx;}
.pe-input{
  flex:1;border:none;outline:none;background:transparent;
  height:0.6000rem;font-size:0.2800rem;color:var(--text-main);text-align:right;
}
.pe-input::-webkit-input-placeholder{color:#B8B4AA;text-align:right;}
.pe-input::placeholder{color:#B8B4AA;text-align:right;}
textarea.pe-input{text-align:left;border:0.0100rem solid #EEEAE4;border-radius:0.1200rem;background:#FAF8F5;padding:0.1600rem 0.2000rem;height:1.2000rem;}
textarea.pe-input::-webkit-input-placeholder{text-align:left;}
textarea.pe-input::placeholder{text-align:left;}
#page-profile_edit .gender-opt{
  width:1.4000rem;height:0.6800rem;line-height:0.6800rem;text-align:center;
  border-radius:0.4000rem;border:0.0100rem solid #E5E0D8;font-size:0.2800rem;color:var(--text-main);
  margin-right:0.2000rem;
}
#page-profile_edit .gender-opt.selected{background:var(--primary);color:#fff;border-color:var(--primary);}
.pe-sub{font-size:0.2400rem;color:#A8A39A;margin-bottom:0.1600rem;}

/* ===== H5 修正：注册门性别/年龄必填 ===== */
.register-gender-row{
  display:flex;align-items:center;
  background:#FAF8F5;border:0.0100rem solid rgba(26,54,43,0.12);
  border-radius:0.1800rem;padding:0 0.2400rem;height:0.8400rem;
}
#userGate .gender-opt{width:1.4000rem;height:0.6800rem;line-height:0.6800rem;text-align:center;border-radius:0.4000rem;border:0.0100rem solid #E5E0D8;font-size:0.2800rem;color:var(--text-main);}
#userGate .gender-opt.selected{background:var(--primary);color:#fff;border-color:var(--primary);}

/* ===== 站内红点 / 改约 / 评价（2026-08-11 新增） ===== */
.bottom-tabbar .tab-item{position:relative;}
.red-dot{display:none;position:absolute;top:4rpx;right:12rpx;width:14rpx;height:14rpx;background:#ff4d4f;border-radius:50%;box-shadow:0 0 0 2rpx #fff;}
.red-dot-inline{display:none;width:14rpx;height:14rpx;background:#ff4d4f;border-radius:50%;margin-left:10rpx;vertical-align:middle;}
.change-enter{margin-top:20rpx;padding:18rpx 24rpx;background:#FFF8E7;border:1rpx solid #F0D9A8;border-radius:12rpx;color:#B8860B;font-size:26rpx;text-align:center;}
#changeSlots{display:flex;flex-wrap:wrap;gap:3%;}
#changeSlots .time-card{flex:0 0 30%;margin-bottom:12rpx;}
#changeSlots .chg-selected{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;}
#changeSlots .chg-selected .card-status-pill{color:#fff!important;}

/* ===== 我的预约卡片（2026-08-11 简约大气版） ===== */
.appt-card{background:#fff;border-radius:0.2000rem;margin:0 0.2400rem 0.2400rem;padding:0.3200rem;box-shadow:0 2rpx 14rpx rgba(26,54,43,.05);}
.appt-card-top{display:flex;align-items:center;margin-bottom:12rpx;}
.appt-card-svc{font-size:0.3000rem;font-weight:600;color:var(--text-main);flex:1;}
.appt-status{font-size:0.2400rem;color:#8C6D2D;flex-shrink:0;}
.appt-status.pending{color:#8C6D2D;}
.appt-status.arrived{color:#B45309;font-weight:600;}
.appt-status.checked{color:#166534;font-weight:600;}
.appt-status.done{color:#1A362B;}
.appt-status.cancelled{color:#AAA;}
.appt-status.expired{color:#AAA;}
.appt-card-meta{font-size:0.2600rem;color:#8C8C84;font-weight:400;line-height:1.6;}
.appt-dot{margin:0 10rpx;color:#C9C2B6;}
.appt-op-row{display:flex;justify-content:flex-end;gap:16rpx;margin-top:20rpx;}
.appt-op-btn{padding:12rpx 32rpx;border-radius:40rpx;font-size:0.2400rem;color:#8C6D2D;border:1rpx solid #D8C9A8;background:#fff;text-align:center;}
.appt-op-main{background:var(--primary);color:#fff;border-color:var(--primary);}
.appt-op-disabled{color:#AAA;border-color:#E4E0D6;background:#FAF8F5;}

/* ===== 健康档案编辑（大留白简洁大气版 2026-08-11） ===== */
.ep-block{padding:0 0.4800rem;margin-top:0.4800rem;}
.ep-block-title{font-size:0.3000rem;font-weight:700;color:var(--text-main);margin-bottom:0.1000rem;}
.ep-hint{font-size:0.2400rem;color:#A8A39A;margin-bottom:0.2400rem;}
.ep-field{margin-bottom:0.3200rem;}
.ep-label{display:block;font-size:0.2600rem;color:#666;font-weight:600;margin-bottom:0.1200rem;}
.ep-input{width:100%;height:0.9200rem;background:#F8F6F1;border:0.0100rem solid #C9C2B4;border-radius:0.1600rem;padding:0 0.2400rem;font-size:0.2800rem;color:var(--text-main);box-sizing:border-box;}
.ep-input:focus{outline:none;border-color:var(--gold);background:#fff;}
.ep-input[readonly]{color:#999;background:#F3F1EC;}
.ep-input::-webkit-input-placeholder{color:#B8B4AA;}
.ep-input::placeholder{color:#B8B4AA;}
.ep-textarea{height:1.6000rem;padding:0.2000rem 0.2400rem;resize:none;line-height:1.6;}
.ep-row{display:flex;gap:0.2400rem;}
.ep-half{flex:1;}
#page-ep_basic .ep-half .gender-options{display:flex;gap:0.1600rem;}
#page-ep_basic .ep-half .gender-opt{flex:1;text-align:center;padding:0.1000rem 0;border-radius:0.1600rem;font-size:0.2800rem;background:#fff;border:0.0100rem solid #C9C2B4;color:var(--text-sub);}
#page-ep_basic .ep-half .gender-opt.selected{background:var(--primary);color:#fff;border-color:var(--primary);}
.ep-save{margin:0.5600rem auto 0.6000rem;text-align:center;}
.ep-save .btn{display:inline-block;padding:0.2200rem 0.9000rem;border-radius:0.5000rem;width:auto;}
