/* ========== 基础重置 ========== */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background: #f5f5f5; color: #333; -webkit-tap-highlight-color: transparent; }
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; }
button { border: none; outline: none; cursor: pointer; font-size: inherit; }
input { border: none; outline: none; font-size: inherit; }

/* ========== Toast ========== */
.toast { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0,0,0,0.7); color: #fff; padding: 20px 32px; border-radius: 12px; font-size: 28px; z-index: 9999; opacity: 0; transition: opacity 0.3s; pointer-events: none; text-align: center; max-width: 80%; }
.toast-show { opacity: 1; }

/* ========== Modal ========== */
.modal-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 9998; display: none; align-items: center; justify-content: center; }
.modal-box { background: #fff; border-radius: 16px; width: 580px; overflow: hidden; }
.modal-title { font-size: 32px; font-weight: 700; text-align: center; padding: 36px 32px 16px; color: #222; }
.modal-content { font-size: 28px; color: #666; text-align: center; padding: 0 32px 36px; line-height: 1.5; }
.modal-footer { display: flex; border-top: 1px solid #eee; }
.modal-btn { flex: 1; padding: 28px 0; font-size: 30px; background: none; }
.modal-cancel { color: #999; border-right: 1px solid #eee; }
.modal-confirm { color: #FF6B35; font-weight: 600; }

/* ========== Loading ========== */
.loading-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.3); z-index: 9999; display: none; align-items: center; justify-content: center; }
.loading-box { background: rgba(0,0,0,0.7); border-radius: 16px; padding: 40px; display: flex; flex-direction: column; align-items: center; }
.loading-spinner { width: 60px; height: 60px; border: 6px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.loading-text { color: #fff; font-size: 26px; margin-top: 20px; }

/* ========== ImagePreview ========== */
.img-preview { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.9); z-index: 9999; display: none; align-items: center; justify-content: center; }
.img-preview img { max-width: 100%; max-height: 100%; }

/* ========== TabBar ========== */
.tab-bar { position: fixed; bottom: 0; left: 0; right: 0; height: 110px; background: #fff; display: flex; border-top: 1px solid #eee; z-index: 100; padding-bottom: env(safe-area-inset-bottom); }
.tab-item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #999; font-size: 22px; }
.tab-item.tab-active { color: #FF6B35; }
.tab-icon { width: 48px; height: 48px; margin-bottom: 4px; }
.tab-text { font-size: 22px; }

/* ========== 页面容器 ========== */
#page-container { padding-bottom: 110px; min-height: 100vh; }

/* ========== Home页样式（来自home.wxss）========== */
.home-page { min-height: 100vh; background: #f5f5f5; }
.header { display: flex; align-items: center; justify-content: space-between; padding: 20px 32px; background: linear-gradient(135deg, #FF6B35, #FF8C55); padding-top: calc(20px + env(safe-area-inset-top)); }
.location-bar { display: flex; align-items: center; flex: 1; }
.location-icon { font-size: 28px; margin-right: 6px; }
.location-text { color: #fff; font-size: 28px; font-weight: 600; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.location-arrow { color: rgba(255,255,255,0.8); font-size: 22px; margin-left: 4px; }
.header-title { color: #fff; font-size: 36px; font-weight: 700; flex: 1; text-align: center; }
.header-msg { color: #fff; font-size: 40px; }

.search-wrap { background: linear-gradient(135deg, #FF6B35, #FF8C55); padding: 0 32px 24px; }
.search-box { background: #fff; border-radius: 48px; display: flex; align-items: center; padding: 0 28px; height: 76px; }
.search-icon { font-size: 32px; margin-right: 12px; color: #ccc; }
.search-input { flex: 1; font-size: 28px; color: #333; border: none; outline: none; background: transparent; }
.search-placeholder { color: #ccc; font-size: 28px; }

.banner-wrap { position: relative; padding: 0; margin: 0; }
.banner-swiper { width: 100%; height: 320px; }
.banner-img { width: 100%; height: 320px; display: block; }
.banner-title { position: absolute; bottom: 0; left: 0; right: 0; padding: 16px 24px; background: linear-gradient(transparent, rgba(0,0,0,0.5)); color: #fff; font-size: 28px; font-weight: 600; }

.section { background: #fff; margin: 20px 0; padding: 32px; }
.section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.section-title { font-size: 34px; font-weight: 700; color: #222; }
.section-more { font-size: 26px; color: #FF6B35; }

.service-list { display: flex; flex-direction: column; gap: 20px; }
.service-card { display: flex; background: #fafafa; border-radius: 16px; overflow: hidden; border: 1px solid #f0f0f0; }
.service-img { width: 200px; height: 180px; flex-shrink: 0; }
.service-info { flex: 1; padding: 18px 20px; display: flex; flex-direction: column; justify-content: space-between; }
.service-name { font-size: 30px; font-weight: 700; color: #222; }
.service-category { font-size: 24px; color: #999; margin-top: 4px; }
.service-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tag { font-size: 20px; padding: 4px 12px; border-radius: 6px; }
.tag-orange { background: #fff3e0; color: #FF6B35; }
.service-bottom { margin-top: 8px; display: flex; justify-content: space-between; align-items: center; }
.price-unit { font-size: 24px; color: #FF6B35; font-weight: 700; }
.price-num { font-size: 36px; color: #FF6B35; font-weight: 700; }
.price-per { font-size: 22px; color: #999; }
.service-meta { font-size: 22px; color: #999; }
.home-fav { font-size: 32px; }

.loading-state { padding: 60px 0; text-align: center; }
.loading-text { color: #999; font-size: 28px; }
.empty-state { padding: 80px 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.empty-icon { font-size: 80px; }
.empty-text { color: #999; font-size: 28px; }

.safe-bottom { height: env(safe-area-inset-bottom); }

/* ========== Worker页样式 ========== */
.worker-page { min-height: 100vh; background: #f5f5f5; }
.category-bar { display: flex; background: #fff; padding: 16px 32px; gap: 16px; overflow-x: auto; }
.category-item { white-space: nowrap; padding: 8px 24px; border-radius: 24px; font-size: 26px; color: #666; background: #f5f5f5; }
.category-item.active { background: #FF6B35; color: #fff; }
.sort-bar { display: flex; background: #fff; padding: 12px 32px; gap: 24px; border-bottom: 1px solid #eee; }
.sort-item { font-size: 24px; color: #999; position: relative; }
.sort-item.active { color: #FF6B35; font-weight: 600; }
.worker-list { padding: 20px 32px; display: flex; flex-direction: column; gap: 20px; }
.worker-card { display: flex; background: #fff; border-radius: 16px; padding: 24px; align-items: center; gap: 20px; }
.worker-avatar { width: 120px; height: 120px; border-radius: 50%; flex-shrink: 0; }
.worker-info { flex: 1; }
.worker-name { font-size: 30px; font-weight: 700; color: #222; }
.worker-name .online-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: #52c41a; margin-left: 8px; }
.worker-meta { font-size: 24px; color: #999; margin-top: 6px; }
.worker-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tag-blue { background: #e6f7ff; color: #1890ff; font-size: 20px; padding: 4px 12px; border-radius: 6px; }
.worker-distance { font-size: 22px; color: #52c41a; margin-top: 6px; }
.worker-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.worker-rating { font-size: 24px; color: #999; }
.worker-price { color: #FF6B35; font-size: 28px; font-weight: 700; }
.worker-price .price-unit { font-size: 22px; }
.worker-actions { display: flex; gap: 12px; }
.btn-book { background: #FF6B35; color: #fff; border: none; border-radius: 24px; padding: 8px 28px; font-size: 24px; }
.btn-fav { background: none; border: 1px solid #eee; border-radius: 24px; padding: 8px 20px; font-size: 24px; }

/* ========== 搜索清除按钮 ========== */
.search-clear { font-size: 28px; color: #999; padding: 0 12px; cursor: pointer; }

/* ========== WorkerDetail / Service 页样式 ========== */
.wd-page, .sv-page { background: #f5f5f5; min-height: 100vh; }
.wd-header { position: relative; }
.wd-cover { width: 100%; height: 360px; display: block; object-fit: cover; object-position: center; }
.wd-avatar { width: 140px; height: 140px; border-radius: 50%; border: 4px solid #fff; position: absolute; bottom: -60px; left: 32px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.wd-info, .sv-info { background: #fff; padding: 70px 32px 24px; text-align: center; }
.sv-info { padding-top: 32px; }
.wd-name { font-size: 34px; font-weight: 700; color: #222; }
.wd-meta { font-size: 24px; color: #999; margin-top: 8px; }
.wd-stats { font-size: 24px; color: #999; margin-top: 4px; }
.wd-price { font-size: 36px; color: #FF6B35; font-weight: 700; margin-top: 12px; }
.wd-price .price-unit { font-size: 24px; }
.wd-tabs { display: flex; background: #fff; border-bottom: 1px solid #eee; position: sticky; top: 0; z-index: 10; }
.wd-tab { flex: 1; text-align: center; padding: 24px 0; font-size: 28px; color: #999; cursor: pointer; }
.wd-tab.active { color: #FF6B35; font-weight: 600; border-bottom: 3px solid #FF6B35; }
.wd-content { padding: 24px 32px; min-height: 200px; }
.wd-section-title { font-size: 28px; font-weight: 700; color: #222; margin: 24px 0 12px; }
.wd-intro-text { font-size: 26px; color: #666; line-height: 1.6; }
.wd-cert { background: #f9f9f9; padding: 16px; border-radius: 8px; font-size: 26px; color: #666; margin-top: 8px; }
.wd-photos { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.wd-photo-item { width: calc(50% - 6px); aspect-ratio: 3/4; object-fit: cover; border-radius: 12px; cursor: pointer; background: #f0f0f0; }
.wd-footer, .sv-footer { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; padding: 16px 32px; display: flex; gap: 16px; border-top: 1px solid #eee; z-index: 50; }
.wd-footer .btn-book, .sv-footer .btn-book { flex: 1; padding: 16px 0; font-size: 30px; border-radius: 8px; }
.btn-call { display: flex; align-items: center; justify-content: center; color: #666; font-size: 26px; background: #f5f5f5; border-radius: 8px; padding: 16px 24px; text-decoration: none; }

.sv-cover { width: 100%; height: 360px; display: block; }
.sv-name { font-size: 34px; font-weight: 700; color: #222; }
.sv-price { font-size: 40px; color: #FF6B35; font-weight: 700; margin-top: 12px; }
.sv-price .price-per { font-size: 24px; color: #999; }
.sv-duration { font-size: 24px; color: #999; margin-top: 4px; }
.sv-section { margin-bottom: 24px; }
.sv-text { font-size: 26px; color: #666; line-height: 1.6; }
.sv-list { display: flex; flex-direction: column; gap: 8px; }
.sv-list-item { font-size: 24px; color: #666; }
.ds-item { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 1px solid #f0f0f0; cursor: pointer; }
.ds-name { font-size: 28px; font-weight: 600; color: #222; }
.ds-duration { font-size: 24px; color: #999; }
.ds-price { font-size: 30px; color: #FF6B35; font-weight: 700; }
.wk-item { display: flex; align-items: center; gap: 16px; padding: 20px 0; border-bottom: 1px solid #f0f0f0; cursor: pointer; }
.wk-item.selected { background: #fff8f5; margin: -8px -16px; padding: 20px 16px; border-radius: 12px; }
.wk-item-avatar { width: 80px; height: 80px; border-radius: 50%; }
.wk-item-info { flex: 1; }
.wk-item-name { font-size: 28px; font-weight: 600; color: #222; }
.wk-item-meta { font-size: 24px; color: #999; margin-top: 4px; }
.empty-state.small { padding: 40px 0; }

/* ========== Booking页样式 ========== */
.bk-page { background: #f5f5f5; min-height: 100vh; }
.bk-service { background: linear-gradient(135deg, #FF6B35, #FF8C55); padding: 32px; color: #fff; }
.bk-sv-name { font-size: 28px; opacity: 0.9; }
.bk-sv-price { font-size: 48px; font-weight: 700; margin-top: 8px; }
.bk-section { background: #fff; margin: 20px 0; padding: 24px 32px; }
.bk-section-title { font-size: 28px; font-weight: 700; color: #222; margin-bottom: 16px; }
.date-list { display: flex; gap: 12px; overflow-x: auto; }
.date-item { min-width: 100px; text-align: center; padding: 16px 12px; border-radius: 12px; background: #f5f5f5; }
.date-item.active { background: #FF6B35; color: #fff; }
.date-week { font-size: 22px; margin-bottom: 4px; }
.date-day { font-size: 28px; font-weight: 600; }
.time-list { display: flex; flex-wrap: wrap; gap: 12px; }
.time-item { padding: 12px 28px; border-radius: 24px; background: #f5f5f5; font-size: 26px; }
.time-item.active { background: #FF6B35; color: #fff; }
.addr-bar { display: flex; align-items: center; justify-content: space-between; padding: 20px 16px; background: #f9f9f9; border-radius: 12px; font-size: 28px; }
.addr-text { flex: 1; margin: 0 12px; }
.addr-distance { font-size: 24px; color: #FF6B35; margin-top: 8px; padding-left: 16px; }
.service-select-list { display: flex; flex-direction: column; gap: 12px; }
.service-select-item { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border: 2px solid #eee; border-radius: 12px; font-size: 28px; transition: all 0.2s; }
.service-select-item.active { border-color: #FF6B35; background: #FFF5F0; }
.svc-name { color: #333; }
.svc-price { color: #FF6B35; font-weight: 700; font-size: 30px; }
.addr-input-wrap { display: flex; gap: 12px; align-items: center; }
.addr-input { flex: 1; padding: 16px 20px; border: 2px solid #e8e8e8; border-radius: 12px; font-size: 26px; outline: none; }
.addr-input:focus { border-color: #FF6B35; }
.btn-addr-confirm { padding: 16px 28px; border-radius: 12px; border: none; background: #FF6B35; color: #fff; font-size: 26px; white-space: nowrap; }
.addr-input-tip { font-size: 22px; color: #999; margin-top: 8px; padding-left: 8px; }
.bk-remark { width: 100%; height: 120px; border: 1px solid #eee; border-radius: 12px; padding: 16px; font-size: 26px; resize: none; }
.bk-footer { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; padding: 16px 32px; padding-bottom: calc(16px + env(safe-area-inset-bottom)); display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #eee; z-index: 200; box-shadow: 0 -2px 10px rgba(0,0,0,0.08); }
.bk-total { font-size: 24px; color: #666; }
.bk-total-price { font-size: 36px; color: #FF6B35; font-weight: 700; }
.btn-submit { padding: 16px 48px; border-radius: 8px; font-size: 30px; }
.btn-submit:disabled { opacity: 0.6; }

/* ========== Order页样式 ========== */
.od-page { min-height: 100vh; background: #f5f5f5; }
.od-tabs { display: flex; background: #fff; overflow-x: auto; border-bottom: 1px solid #eee; position: sticky; top: 0; z-index: 10; }
.od-tab { white-space: nowrap; padding: 24px 20px; font-size: 26px; color: #999; }
.od-tab.active { color: #FF6B35; font-weight: 600; border-bottom: 3px solid #FF6B35; }
.od-list { padding: 20px 32px; display: flex; flex-direction: column; gap: 20px; }
.od-card { background: #fff; border-radius: 16px; padding: 24px; overflow: hidden; }
.od-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.od-status { font-size: 24px; padding: 4px 12px; border-radius: 6px; }
.od-pending { color: #fa8c16; background: #fff7e6; }
.od-paid { color: #52c41a; background: #f6ffed; }
.od-confirmed { color: #1890ff; background: #e6f7ff; }
.od-serving { color: #52c41a; background: #f6ffed; }
.od-done { color: #666; background: #f5f5f5; }
.od-cancelled { color: #999; background: #f5f5f5; }
.od-refunding, .od-refunded { color: #722ed1; background: #f9f0ff; }
.od-no { font-size: 22px; color: #ccc; }
.od-body { margin: 12px 0; }
.od-sv-name { font-size: 30px; font-weight: 600; color: #222; }
.od-meta { font-size: 24px; color: #999; margin-top: 6px; }
.od-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px solid #f0f0f0; }
.od-price { font-size: 30px; color: #FF6B35; font-weight: 700; }
.btn-cancel { background: none; border: 1px solid #ddd; color: #999; padding: 8px 20px; border-radius: 24px; font-size: 24px; }
.btn-pay-sm { background: linear-gradient(135deg, #FF6B35, #FF8C5A); color: #fff; border: none; padding: 8px 20px; border-radius: 24px; font-size: 24px; margin-right: 8px; cursor: pointer; }

/* ========== OrderDetail页样式 ========== */
.odd-page { min-height: 100vh; background: #f5f5f5; padding-bottom: 80px; }
.odd-header { padding: 48px 32px; text-align: center; color: #fff; }
.odd-pending { background: linear-gradient(135deg, #fa8c16, #ffc069); }
.odd-confirmed { background: linear-gradient(135deg, #1890ff, #69c0ff); }
.odd-serving { background: linear-gradient(135deg, #52c41a, #95de64); }
.odd-done { background: linear-gradient(135deg, #999, #bbb); }
.odd-cancelled { background: linear-gradient(135deg, #999, #bbb); }
.odd-refunding, .odd-refunded { background: linear-gradient(135deg, #722ed1, #b37feb); }
.odd-status-icon { font-size: 60px; }
.odd-status { font-size: 36px; font-weight: 700; margin-top: 12px; }
.odd-hint { font-size: 24px; opacity: 0.9; margin-top: 8px; }
.odd-section { background: #fff; margin: 20px 0; padding: 24px 32px; }
.odd-section-title { font-size: 28px; font-weight: 700; color: #222; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #f0f0f0; }
.odd-row { display: flex; justify-content: space-between; padding: 12px 0; font-size: 26px; color: #666; }
.odd-total { font-weight: 700; color: #FF6B35; font-size: 30px; }
.odd-copy { color: #1890ff; cursor: pointer; }
.odd-actions { padding: 0 32px 40px; display: flex; gap: 16px; }
.btn-action { flex: 1; padding: 16px 0; border-radius: 8px; font-size: 28px; }
.btn-primary { background: #FF6B35; color: #fff; }
.btn-danger { background: #fff; border: 1px solid #e74c3c; color: #e74c3c; }

/* ========== Profile页样式 ========== */
.pf-page { min-height: 100vh; background: #f5f5f5; }
.pf-header { background: linear-gradient(135deg, #FF6B35, #FF8C55); padding: 48px 32px; text-align: center; color: #fff; }
.pf-avatar { width: 120px; height: 120px; border-radius: 50%; margin: 0 auto; object-fit: cover; }
.pf-nick { font-size: 32px; font-weight: 600; margin-top: 16px; }
.pf-login-btn { background: rgba(255,255,255,0.2); color: #fff; border: 1px solid rgba(255,255,255,0.4); padding: 12px 48px; border-radius: 32px; font-size: 28px; margin-top: 20px; }
.pf-logout-btn { font-size: 24px; margin-top: 12px; opacity: 0.8; cursor: pointer; }
.pf-stats { display: flex; background: #fff; margin: 20px 0; padding: 32px; justify-content: center; }
.pf-stat { text-align: center; }
.pf-stat-num { display: block; font-size: 40px; font-weight: 700; color: #FF6B35; }
.pf-stat-label { display: block; font-size: 24px; color: #999; margin-top: 4px; }
.pf-menus { background: #fff; }
.pf-menu-item { display: flex; justify-content: space-between; padding: 28px 32px; border-bottom: 1px solid #f5f5f5; font-size: 28px; color: #333; cursor: pointer; }

/* ========== Address页样式 ========== */
.ad-page { min-height: 100vh; background: #f5f5f5; padding: 20px 32px; }
.ad-card { background: #fff; border-radius: 12px; padding: 24px; margin-bottom: 16px; }
.ad-info { margin-bottom: 12px; cursor: pointer; }
.ad-name { font-size: 30px; font-weight: 600; color: #222; margin-bottom: 8px; }
.ad-detail { font-size: 26px; color: #666; }
.ad-actions { display: flex; gap: 12px; }
.btn-sm { padding: 8px 24px; border-radius: 24px; font-size: 24px; background: #f5f5f5; color: #666; }
.btn-sm.btn-danger { color: #e74c3c; }
.btn-add { width: 100%; padding: 24px; border: 2px dashed #ddd; border-radius: 12px; background: none; font-size: 28px; color: #999; margin-top: 20px; }

/* ========== Favorite页样式 ========== */
.fv-page { min-height: 100vh; background: #f5f5f5; }

/* ========== 地址选择器 ========== */
.loc-picker-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #f5f5f5; z-index: 200; display: none; flex-direction: column; }
.loc-picker-mask.show { display: flex; }
.loc-picker-header { display: flex; align-items: center; padding: 20px 24px; background: #fff; border-bottom: 1px solid #eee; padding-top: calc(20px + env(safe-area-inset-top)); }
.loc-picker-back { font-size: 32px; color: #333; padding: 8px 16px 8px 0; cursor: pointer; }
.loc-picker-title { font-size: 32px; font-weight: 700; color: #222; flex: 1; text-align: center; margin-right: 40px; }
.loc-picker-search { display: flex; align-items: center; background: #fff; padding: 20px 24px; border-bottom: 1px solid #eee; }
.loc-picker-search .search-icon { font-size: 28px; margin-right: 12px; color: #ccc; }
.loc-search-input { flex: 1; font-size: 28px; color: #333; border: none; outline: none; background: transparent; }
.loc-search-input::placeholder { color: #ccc; }
.loc-picker-current { display: flex; align-items: center; padding: 28px 24px; background: #fff; margin: 16px 0; font-size: 28px; color: #FF6B35; cursor: pointer; gap: 12px; }
.loc-picker-current:active { background: #f9f9f9; }
.loc-picker-results { flex: 1; overflow-y: auto; background: #fff; }
.loc-result-item { display: flex; flex-direction: column; padding: 24px; border-bottom: 1px solid #f0f0f0; cursor: pointer; }
.loc-result-item:active { background: #f9f9f9; }
.loc-result-title { font-size: 28px; color: #222; font-weight: 600; margin-bottom: 6px; }
.loc-result-addr { font-size: 24px; color: #999; }
.loc-picker-loading { padding: 60px 0; text-align: center; color: #999; font-size: 26px; }
.loc-picker-empty { padding: 80px 0; text-align: center; color: #999; font-size: 26px; }

/* ========== 支付弹窗 ========== */
.pay-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 1000; display: flex; align-items: flex-end; justify-content: center; }
.pay-card { background: #fff; border-radius: 24px 24px 0 0; width: 100%; max-height: 80vh; overflow-y: auto; padding-bottom: env(safe-area-inset-bottom); }
.pay-card-header { display: flex; align-items: center; justify-content: space-between; padding: 32px 32px 16px; }
.pay-card-title { font-size: 34px; font-weight: 700; }
.pay-card-close { font-size: 32px; color: #999; padding: 8px; cursor: pointer; }
.pay-card-body { padding: 8px 32px 24px; }
.pay-row { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 1px solid #f5f5f5; font-size: 28px; }
.pay-label { color: #999; }
.pay-total { border-bottom: none; font-weight: 700; padding-top: 24px; }
.pay-amount { color: #FF6B35; font-size: 36px; font-weight: 700; }
.pay-card-footer { padding: 0 32px 32px; display: flex; flex-direction: column; gap: 16px; }
.pay-btn { width: 100%; padding: 22px; border-radius: 12px; border: none; font-size: 32px; font-weight: 600; cursor: pointer; }
.pay-btn:disabled { opacity: 0.6; }
.pay-btn-primary { background: linear-gradient(135deg, #FF6B35, #FF8C5A); color: #fff; }
.pay-btn-primary:active { background: linear-gradient(135deg, #e55a2b, #e67a4a); }
.pay-btn-secondary { background: #f5f5f5; color: #666; }
.pay-btn-secondary:active { background: #eee; }

/* ========== 地址编辑页 ========== */
.ae-page { padding: 24px; }
.ae-form { background: #fff; border-radius: 16px; padding: 8px 0; margin-bottom: 32px; }
.ae-field { display: flex; align-items: center; padding: 20px 24px; border-bottom: 1px solid #f5f5f5; }
.ae-field:last-child { border-bottom: none; }
.ae-field label { width: 140px; font-size: 28px; color: #333; flex-shrink: 0; }
.ae-field input[type="text"], .ae-field input[type="tel"] { flex: 1; font-size: 28px; color: #333; background: transparent; }
.ae-field input::placeholder { color: #ccc; }
.ae-switch-field { justify-content: space-between; }
.ae-switch-field input[type="checkbox"] { width: 40px; height: 40px; }
.ae-save-btn { display: block; width: calc(100% - 48px); margin: 0 auto 20px; padding: 22px; border-radius: 12px; background: linear-gradient(135deg, #FF6B35, #FF8C5A); color: #fff; font-size: 32px; font-weight: 600; border: none; }
.ae-save-btn:disabled { opacity: 0.6; }
.ae-del-btn { display: block; width: calc(100% - 48px); margin: 0 auto; padding: 22px; border-radius: 12px; background: #fff; color: #e74c3c; font-size: 30px; border: 1px solid #eee; }

/* ========== 服务详情页 ========== */
.service-detail-page { background: #f5f5f5; min-height: 100vh; padding-bottom: 120px; }
.service-detail-back { padding: 20px 24px; font-size: 28px; color: #666; cursor: pointer; background: #fff; }
.service-detail-img-wrap { width: 100%; height: 400px; overflow: hidden; background: #eee; }
.service-detail-img { width: 100%; height: 100%; object-fit: cover; }
.service-detail-body { background: #fff; padding: 24px; margin-top: 16px; }
.service-detail-name { font-size: 36px; font-weight: 700; color: #222; margin-bottom: 12px; }
.service-detail-price { font-size: 32px; color: #FF6B35; font-weight: 700; margin-bottom: 16px; }
.service-detail-price .price-unit { font-size: 24px; }
.service-detail-price .price-per { font-size: 24px; color: #999; font-weight: 400; }
.service-detail-tags { display: flex; gap: 12px; margin-bottom: 24px; }
.service-detail-section { margin-top: 24px; }
.service-detail-section .section-title { font-size: 30px; font-weight: 600; color: #333; margin-bottom: 12px; }
.service-detail-section .section-content { font-size: 26px; color: #666; line-height: 1.8; }
.service-detail-bottom { position: fixed; bottom: 0; left: 0; right: 0; padding: 16px 24px; background: #fff; border-top: 1px solid #eee; z-index: 100; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
