    * { box-sizing: border-box; }
    body {
      margin: 0;
      font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      background: #000;
      color: #fff;
    }
    .app-shell {
      width: 360px;
      max-width: 360px;
      height: 812px;
      margin: 20px auto;
      border-radius: 32px;
      overflow: hidden;
      background: #111;
      position: relative;
    }
    .page {
      position: absolute;
      inset: 0;
      background: #fff;
      color: #111;
      display: none;
      flex-direction: column;
    }
    .page.active {
      display: flex;
    }
    .tabbar {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      width: 360px;
      max-width: 100%;
      height: 90px;
      box-sizing: border-box;
      margin: 0 auto;
      background: #000;
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: stretch;
      font-size: 15px;
      border-radius: 19px 19px 0 0;
      z-index: 100;
      padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .tabbar span {
      cursor: pointer;
      opacity: 0.7;
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      font-size: 15px;
      line-height: 1;
      transform: translateY(-2px);
      transition: font-size 0.12s ease, transform 0.12s ease;
    }
    .tabbar span:active {
      font-size: 15px;
    }
    .tabbar span.active {
      opacity: 1;
      font-weight: 500;
      font-size: 18px;
      transform: translateY(5px);
    }
    /* 用户端 API 联调面板：地址栏 ?devApi=1 或 localStorage appShowDevDock=1 */
    .api-dev-dock {
      position: fixed;
      left: 8px;
      bottom: 102px;
      z-index: 10001;
      max-width: min(380px, calc(100vw - 16px));
      font-size: 12px;
      color: #111;
    }
    .api-dev-dock-inner {
      background: rgba(255, 255, 255, 0.96);
      border: 1px solid #ccc;
      border-radius: 10px;
      padding: 10px;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    }
    .api-dev-dock-title {
      font-weight: 700;
      margin-bottom: 8px;
    }
    .api-dev-dock-row {
      display: flex;
      flex-direction: column;
      gap: 4px;
      margin-bottom: 8px;
    }
    .api-dev-dock-row input[type='text'],
    .api-dev-dock-row input[type='password'],
    .api-dev-dock-row input[type='tel'] {
      width: 100%;
      box-sizing: border-box;
      padding: 6px 8px;
      font-size: 12px;
      border: 1px solid #ddd;
      border-radius: 6px;
    }
    .api-dev-dock-check {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 6px;
      cursor: pointer;
    }
    .api-dev-dock-btns {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 8px;
    }
    .api-dev-dock-btns button {
      padding: 6px 10px;
      font-size: 12px;
      border-radius: 6px;
      border: 1px solid #333;
      background: #111;
      color: #fff;
      cursor: pointer;
    }
    .api-dev-dock-btns button:active {
      opacity: 0.85;
    }
    .api-dev-dock-tip {
      margin: 8px 0 0;
      color: #666;
      line-height: 1.4;
    }

    .placeholder {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      color: #888;
    }

    /* 子页面通用：支付成功 / 设置 / 订单状态等 */
    .sub-page {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
      background: #fff;
      color: #111;
    }
    .sub-page-header {
      flex-shrink: 0;
      height: 48px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      border-bottom: 1px solid #eee;
    }
    .sub-page-back {
      position: absolute;
      left: 8px;
      top: 50%;
      transform: translateY(-50%);
      width: 44px;
      height: 44px;
      border: 0;
      background: transparent;
      font-size: 28px;
      line-height: 1;
      color: #111;
      cursor: pointer;
      padding: 0;
    }
    .sub-page-title {
      margin: 0;
      font-size: 17px;
      font-weight: 600;
    }
    .sub-page-body {
      flex: 1;
      overflow: auto;
      padding: 16px;
      font-size: 14px;
      color: #666;
    }
    .sub-page-placeholder {
      margin: 0;
      line-height: 1.6;
    }

    /* 领券中心 */
    .coupon-center-root {
      min-height: 0;
    }
    .coupon-center-tabs {
      flex-shrink: 0;
      display: flex;
      border-bottom: 1px solid #eee;
      background: #fff;
    }
    .coupon-center-tab {
      flex: 1;
      margin: 0;
      padding: 14px 8px;
      border: 0;
      background: transparent;
      font-size: 15px;
      color: #9c9c9c;
      cursor: pointer;
      position: relative;
    }
    .coupon-center-tab--active {
      color: #111;
      font-weight: 600;
    }
    .coupon-center-tab--active::after {
      content: '';
      position: absolute;
      left: 50%;
      bottom: 0;
      transform: translateX(-50%);
      width: 28px;
      height: 3px;
      border-radius: 2px;
      background: #111;
    }
    .coupon-center-body {
      padding: 16px 14px 24px;
      background: #f7f7f8;
    }
    .coupon-center-panel[hidden] {
      display: none !important;
    }
    .coupon-card {
      display: flex;
      align-items: stretch;
      margin: 0 0 12px;
      border-radius: 12px;
      overflow: hidden;
      background: #fff;
      box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
      border: 1px solid #f0f0f0;
    }
    .coupon-card-rail {
      flex-shrink: 0;
      width: 86px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
      background: linear-gradient(160deg, #ffe4ec 0%, #ffc2d4 100%);
      color: #5c2d2d;
    }
    .coupon-card--owned .coupon-card-rail {
      background: linear-gradient(160deg, #e8f4ff 0%, #cfe8ff 100%);
      color: #1a3d5c;
    }
    .coupon-card-amount {
      font-size: 22px;
      font-weight: 700;
      line-height: 1;
    }
    .coupon-card-yen {
      font-size: 13px;
      font-weight: 600;
      margin-right: 1px;
    }
    .coupon-card-kind {
      font-size: 11px;
      opacity: 0.85;
    }
    .coupon-card-main {
      flex: 1;
      min-width: 0;
      padding: 12px 10px 12px 12px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 4px;
    }
    .coupon-card-title {
      margin: 0;
      font-size: 15px;
      font-weight: 600;
      color: #111;
    }
    .coupon-card-rule {
      margin: 0;
      font-size: 12px;
      color: #666;
    }
    .coupon-card-exp {
      margin: 0;
      font-size: 11px;
      color: #999;
    }
    .coupon-card-action {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      padding: 0 12px 0 0;
    }
    .coupon-card-claim,
    .coupon-card-use {
      margin: 0;
      padding: 8px 14px;
      border: none;
      border-radius: 20px;
      font-size: 13px;
      font-weight: 600;
      cursor: pointer;
      white-space: nowrap;
      -webkit-tap-highlight-color: transparent;
    }
    .coupon-card-claim {
      background: #111;
      color: #fff;
    }
    .coupon-card-claim:disabled,
    .coupon-card-claim.is-claimed {
      background: #e8e8e8;
      color: #999;
      cursor: default;
    }
    .coupon-card-use {
      background: #fff;
      color: #111;
      border: 1px solid #ddd;
    }
    .coupon-center-hint {
      margin: 20px 0 0;
      font-size: 12px;
      color: #aaa;
      line-height: 1.5;
    }
    #page-pay-success.page {
      background: #fff;
    }
    #page-pay-success .pay-success-scroll {
      flex: 1;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-pay-success .pay-success-img {
      display: block;
      width: 100%;
      max-width: 360px;
      margin: 0 auto;
      vertical-align: top;
    }
    #page-pay-success .pay-success-header {
      flex-shrink: 0;
      height: 48px;
      display: flex;
      align-items: center;
      position: relative;
      border-bottom: 1px solid #f0f0f0;
    }
    .pay-success-page {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
    }

    /* 我的：顶图 360×368@0；头像@19,59；昵称@105,77；白条@43,197；券/金额/积分等见下；异形层顶 314 */
    #page-profile.page {
      background: #ffffff;
      color: #111111;
      overflow: auto;
      align-items: stretch;
      padding-bottom: calc(90px + env(safe-area-inset-bottom, 0));
    }
    .profile-main-stack {
      position: relative;
      width: 360px;
      max-width: 100%;
      margin: 0 auto;
      flex-shrink: 0;
      min-height: 809px;
      box-sizing: border-box;
    }
    .profile-hero-wrap {
      width: 100%;
      height: 368px;
      margin: 0;
      padding: 0;
      background: #000000;
      box-sizing: border-box;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .profile-hero-img {
      display: block;
      width: 360px;
      max-width: 100%;
      height: 368px;
      object-fit: fill;
      object-position: center top;
      pointer-events: none;
      user-select: none;
    }
    .profile-sheet-layer {
      position: absolute;
      left: 0;
      top: 314px;
      width: 100%;
      height: 499px;
      background: #ffffff;
      box-sizing: border-box;
      z-index: 1;
      display: block;
      pointer-events: none;
    }
    .profile-sheet-layer-img {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 426px;
      /* 设计稿异形 360×426；fill 铺满避免与层底 #fff 留缝 */
      object-fit: fill;
      object-position: center top;
      display: block;
      pointer-events: none;
      user-select: none;
    }
    /* 异形白底内帖子：padding-top 127px；异形图高 426px；层总高 499px（图下留白纯色） */
    .profile-sheet-feed {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      z-index: 2;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      pointer-events: auto;
      padding-top: 127px;
      padding-bottom: 48px;
      box-sizing: border-box;
    }
    .profile-sheet-feed .post {
      margin-bottom: 20px;
    }
    .profile-sheet-feed .post:first-child {
      margin-top: 0;
    }
    .profile-user-avatar {
      position: absolute;
      left: 19px;
      top: 64px;
      width: 63px;
      height: 63px;
      border-radius: 50%;
      object-fit: cover;
      object-position: center center;
      display: block;
      border: none;
      z-index: 5;
      pointer-events: none;
      user-select: none;
    }
    .profile-user-nickname {
      position: absolute;
      left: 105px;
      top: 82px;
      right: 24px;
      margin: 0;
      padding: 0;
      font-size: 14px;
      font-weight: 500;
      color: #ffffff;
      line-height: 1.2;
      text-align: left;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      z-index: 5;
      pointer-events: none;
      user-select: none;
    }
    .profile-toolbar-btn {
      position: absolute;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 6;
      display: flex;
      align-items: center;
      justify-content: center;
      -webkit-tap-highlight-color: transparent;
    }
    .profile-toolbar-btn img {
      display: block;
      pointer-events: none;
      user-select: none;
    }
    .profile-toolbar-btn--service {
      left: 270px;
      top: 50px;
      width: 56px;
      height: 40px;
    }
    .profile-toolbar-btn--service img {
      width: 56px;
      height: 40px;
      object-fit: contain;
      object-position: center center;
    }
    .profile-toolbar-btn--settings {
      left: 324px;
      top: 49px;
      width: 20px;
      height: 36px;
    }
    .profile-toolbar-btn--settings img {
      width: 20px;
      height: 36px;
      object-fit: contain;
      object-position: top center;
    }
    .profile-row-hit {
      position: absolute;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 6;
      display: block;
      overflow: hidden;
      -webkit-tap-highlight-color: transparent;
    }
    .profile-row-hit img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: fill;
      pointer-events: none;
      user-select: none;
    }
    .profile-row-hit--address {
      left: 93px;
      top: 107px;
      width: 70px;
      height: 13px;
    }
    .profile-row-hit--follow {
      left: 178px;
      top: 107px;
      width: 59px;
      height: 12px;
    }
    /* 节省卡 252×129 @11,155（z6）；右侧卡 87×120 @267,155 内叠 ¥图 66×69 居中再上 4px；券/金额/积分 z8 */
    .profile-savings-card-hit {
      position: absolute;
      left: 11px;
      top: 155px;
      width: 252px;
      height: 129px;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 6;
      display: block;
      line-height: 0;
      overflow: visible;
      -webkit-tap-highlight-color: transparent;
    }
    .profile-savings-card-hit img {
      display: block;
      width: 252px;
      height: 129px;
      object-fit: fill;
      object-position: center center;
      pointer-events: none;
      user-select: none;
    }
    .profile-savings-deco-wrap {
      position: absolute;
      left: 267px;
      top: 155px;
      width: 87px;
      height: 120px;
      z-index: 9;
      pointer-events: none;
    }
    .profile-savings-deco-bg {
      position: absolute;
      left: 0;
      top: 0;
      width: 87px;
      height: 120px;
      object-fit: fill;
      object-position: center center;
      display: block;
      pointer-events: none;
      user-select: none;
    }
    .profile-savings-deco-coupon {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 66px;
      height: 69px;
      transform: translate(-50%, calc(-50% - 4px));
      object-fit: contain;
      object-position: center center;
      display: block;
      pointer-events: none;
      user-select: none;
    }
    /* 第二张卡区最低：左卡底 155+129=284；文案自其下沿再 2px 起排 */
    .profile-coupon-below-card {
      position: absolute;
      left: 267px;
      width: 87px;
      top: 286px;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-size: 10px;
      font-weight: 400;
      line-height: 1.25;
      color: rgba(255, 255, 255, 0.9);
      text-align: center;
      z-index: 8;
      pointer-events: none;
      user-select: none;
    }
    .profile-cta-quchashou {
      position: absolute;
      left: 187px;
      top: 240px;
      width: 64px;
      height: 25px;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 8;
      display: block;
      -webkit-tap-highlight-color: transparent;
    }
    .profile-cta-quchashou img {
      display: block;
      width: 64px;
      height: 25px;
      object-fit: contain;
      object-position: center center;
      pointer-events: none;
      user-select: none;
    }
    .profile-deco-strip {
      position: absolute;
      left: 43px;
      top: 197px;
      width: 177px;
      height: 15px;
      z-index: 8;
      display: block;
      object-fit: fill;
      object-position: center center;
      pointer-events: none;
      user-select: none;
    }
    .profile-ticket-line {
      position: absolute;
      left: 54px;
      top: 218px;
      margin: 0;
      padding: 0;
      display: inline-flex;
      flex-direction: row;
      align-items: baseline;
      line-height: 1;
      color: #ffffff;
      z-index: 8;
      pointer-events: none;
      user-select: none;
      white-space: nowrap;
    }
    .profile-ticket-num {
      font-size: 14px;
      font-weight: 700;
      line-height: 1;
    }
    .profile-ticket-unit {
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
    }
    .profile-price-line {
      position: absolute;
      left: 124px;
      top: 218px;
      margin: 0;
      padding: 0;
      display: inline-flex;
      flex-direction: row;
      align-items: baseline;
      line-height: 1;
      color: #ffffff;
      z-index: 8;
      pointer-events: none;
      user-select: none;
      white-space: nowrap;
    }
    .profile-price-currency {
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
    }
    .profile-price-num {
      font-size: 14px;
      font-weight: 700;
      line-height: 1;
    }
    .profile-points-line {
      position: absolute;
      left: 192px;
      top: 218px;
      margin: 0;
      padding: 0;
      display: inline-flex;
      flex-direction: row;
      align-items: baseline;
      line-height: 1;
      color: #ffffff;
      z-index: 8;
      pointer-events: none;
      user-select: none;
      white-space: nowrap;
    }
    .profile-points-num {
      font-size: 14px;
      font-weight: 700;
      line-height: 1;
    }
    .profile-lo-pending-line {
      position: absolute;
      left: 39px;
      top: 247px;
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #ffffff;
      z-index: 8;
      pointer-events: none;
      user-select: none;
      white-space: nowrap;
    }
    .profile-lo-pending-num {
      color: #FAC6F7;
    }
    /* 白卡片 396×110 @13,304（较 308 上移 4px）；圆角13；投影 0 4px 4px 黑 25% */
    .profile-white-card {
      position: absolute;
      left: 13px;
      top: 304px;
      width: 396px;
      max-width: calc(100% - 13px);
      height: 110px;
      background: #ffffff;
      border-radius: 13px;
      box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
      box-sizing: border-box;
      z-index: 2;
    }
    .profile-order-title {
      position: absolute;
      left: 26px;
      top: 20px;
      margin: 0;
      padding: 0;
      font-size: 15px;
      font-weight: 400;
      color: #000000;
      line-height: 1.2;
    }
    .profile-order-all {
      position: absolute;
      right: 24px;
      top: 20px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      font-family: inherit;
      font-size: 11px;
      font-weight: 300;
      color: #666666;
      line-height: 1.2;
      -webkit-tap-highlight-color: transparent;
    }
    .profile-order-hit {
      position: absolute;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      z-index: 1;
      -webkit-tap-highlight-color: transparent;
    }
    .profile-order-hit img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center center;
      pointer-events: none;
      user-select: none;
    }
    .profile-order-hit--pay {
      left: 35px;
      top: 45px;
      width: 41px;
      height: 56px;
    }
    .profile-order-hit--ship {
      left: 102px;
      top: 46px;
      width: 46px;
      height: 55px;
    }
    .profile-order-hit--receive {
      left: 171px;
      top: 45px;
      width: 50px;
      height: 56px;
    }
    .profile-order-hit--review {
      left: 246px;
      top: 46px;
      width: 53px;
      height: 55px;
      overflow: visible;
    }
    /* 「待评价」角标：红点 + 数字（确认收货后累加） */
    .profile-order-review-badge {
      position: absolute;
      right: -2px;
      top: -2px;
      min-width: 16px;
      height: 16px;
      padding: 0 4px;
      border-radius: 999px;
      background: #e53935;
      color: #ffffff;
      font-size: 10px;
      font-weight: 600;
      line-height: 16px;
      text-align: center;
      box-sizing: border-box;
      pointer-events: none;
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 2;
    }
    .profile-order-review-badge.is-on {
      display: flex;
    }
    .profile-order-hit--aftersale {
      left: 290px;
      top: 45px;
      width: 41px;
      height: 56px;
    }

    /* 首页样式 */
    .home-wrap {
      flex: 1;
      display: flex;
      flex-direction: column;
      padding: 40px 24px 90px;
      background: linear-gradient(180deg, #ffffff 0%, #f9fbff 45%, #ffffff 100%);
    }
    .home-top-line {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 24px;
      font-size: 13px;
      color: #888;
    }
    .home-hashtag {
      font-size: 22px;
      font-weight: 600;
      margin-bottom: 12px;
    }

    #page-home.page.active {
      background: #1c1c1c;
    }
    /* 首页：顶栏与整页 #1C1C1C */
    .home-page {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      background: #1c1c1c;
    }
    .home-header {
      position: relative;
      height: 115px;
      background: #1c1c1c;
      flex-shrink: 0;
    }
    .home-search {
      position: absolute;
      left: 50%;
      top: 62px;
      width: 278px;
      height: 34px;
      transform: translateX(calc(-50% - 8px));
      border-radius: 10px;
      background: #5a5a5a;
      box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
      display: flex;
      align-items: center;
      padding: 0 10px;
      font-size: 12px;
      color: #e8e8e8;
    }
    .home-search input {
      border: none;
      outline: none;
      background: transparent;
      flex: 1;
      font-size: 12px;
      color: #e8e8e8;
    }
    .home-search input::placeholder {
      color: #9a9a9a;
    }
    .home-plus {
      position: absolute;
      right: 8px;
      top: 62px;
      width: 33px;
      height: 33px;
      padding: 0;
      border-radius: 0;
      background: transparent;
      border: none;
      color: #ffffff;
      line-height: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .home-plus img {
      width: 33px;
      height: 33px;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }
    .home-feed {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      background: #1c1c1c;
      padding-bottom: 90px;
    }
    .post {
      margin-bottom: 20px;
    }
    .post:first-child {
      margin-top: 20px;
    }
    .post-header {
      display: flex;
      align-items: center;
    }
    .post-avatar {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: #ddd;
      margin-left: 20px;
      margin-right: 10px;
      flex-shrink: 0;
    }
    .post-text {
      font-size: 12px;
      color: #000000;
    }
    #page-home .post-text {
      color: #e8e8e8;
    }
    .post-images {
      margin-top: 20px;
      display: grid;
      grid-template-columns: repeat(2, 120px);
      grid-auto-rows: 120px;
      justify-content: center;
      gap: 10px 10px;
    }
    .post-img {
      width: 120px;
      height: 120px;
      border-radius: 8px;
      background: #e5e5e5;
    }
    .post-img--video {
      display: block;
      object-fit: cover;
      background: #000;
    }

    /* 发帖页：409×728 白底 */
    #page-post-create.page.active { background: #ffffff; }
    .post-create-page {
      width: 360px;
      max-width: 100%;
      height: 100%;
      margin: 0 auto;
      background: #ffffff;
      display: flex;
      flex-direction: column;
      min-height: 0;
      position: relative;
    }
    /* 返回：图标 10×18，距页面左 50、顶 74 */
    .post-create-back {
      position: absolute;
      left: 50px;
      top: 74px;
      width: 10px;
      height: 18px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: block;
      z-index: 6;
      -webkit-tap-highlight-color: transparent;
      box-sizing: content-box;
    }
    .post-create-back img {
      width: 10px;
      height: 18px;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }
    /* 发发：57×27，#E3CADA，圆角 43；文案白色；距页面左 326、顶 74 */
    .post-publish-btn {
      position: absolute;
      left: 326px;
      top: 74px;
      width: 57px;
      height: 27px;
      padding: 0;
      border: none;
      box-sizing: border-box;
      background: #E3CADA;
      border-radius: 43px;
      color: #ffffff;
      font-size: 11px;
      font-weight: 500;
      line-height: 1;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 5;
      -webkit-tap-highlight-color: transparent;
    }
    .post-create-textarea {
      flex: 1;
      min-height: 0;
      width: 100%;
      box-sizing: border-box;
      border: none;
      outline: none;
      resize: none;
      padding: 120px 20px 24px;
      font-size: 14px;
      line-height: 1.5;
      color: #111;
      background: #ffffff;
      font-family: inherit;
    }
    .post-create-textarea::placeholder {
      color: #aaa;
    }
    .post-create-file-input {
      position: absolute;
      width: 0;
      height: 0;
      opacity: 0;
      pointer-events: none;
      overflow: hidden;
    }
    /* 视频：与返回键同一行偏右，勿与「发发」重叠 */
    .post-create-video-btn {
      position: absolute;
      left: 118px;
      top: 74px;
      z-index: 5;
      padding: 4px 12px;
      border: 1px solid #ccc;
      border-radius: 14px;
      background: #fff;
      color: #333;
      font-size: 11px;
      font-weight: 500;
      cursor: pointer;
      font-family: inherit;
      -webkit-tap-highlight-color: transparent;
    }
    .post-create-media-preview {
      flex-shrink: 0;
      max-height: 140px;
      overflow-x: auto;
      overflow-y: hidden;
      display: flex;
      flex-direction: row;
      gap: 8px;
      padding: 0 20px 12px;
      -webkit-overflow-scrolling: touch;
    }
    .post-create-media-preview:empty {
      display: none;
    }
    .post-create-preview-chip {
      position: relative;
      flex: 0 0 auto;
      width: 100px;
      height: 100px;
      border-radius: 8px;
      overflow: hidden;
      background: #111;
    }
    .post-create-preview-chip video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .post-create-preview-remove {
      position: absolute;
      top: 2px;
      right: 2px;
      width: 22px;
      height: 22px;
      border: none;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.55);
      color: #fff;
      font-size: 14px;
      line-height: 1;
      cursor: pointer;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    /* 商城页：409×728，背景 #1C1C1C */
    #page-mall.page.active { background: #1C1C1C; }
    .mall-page {
      position: relative;
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      background: #1C1C1C;
      padding-bottom: 90px;
    }
    /* 顶栏固定 宽360×高155（含分类条底 119+36） */
    .mall-top {
      position: relative;
      width: 360px;
      max-width: 100%;
      height: 155px;
      background: #1C1C1C;
      flex-shrink: 0;
      box-sizing: border-box;
    }
    .mall-back {
      position: absolute;
      left: 20px;
      top: 72px;
      width: 13px;
      height: 25px;
      cursor: pointer;
      background: transparent;
      border: none;
      padding: 0;
      line-height: 0;
    }
    .mall-back img {
      display: block;
      width: 13px;
      height: 25px;
      object-fit: contain;
    }
    .mall-search-wrap {
      position: absolute;
      left: 50%;
      top: 67px;
      width: 280px;
      height: 34px;
      transform: translateX(-50%);
      background: #5a5a5a;
      border-radius: 17px;
      display: flex;
      align-items: center;
      padding: 0 40px 0 15px;
      box-sizing: border-box;
    }
    .mall-search-input {
      flex: 1;
      min-width: 0;
      width: 100%;
      height: 100%;
      border: none;
      margin: 0;
      padding: 0 6px 0 0;
      box-sizing: border-box;
      font-size: 11px;
      font-weight: 400;
      font-family: inherit;
      color: #e8e8e8;
      background: transparent;
      outline: none;
      -webkit-appearance: none;
      appearance: none;
    }
    .mall-search-input::placeholder {
      color: #9a9a9a;
      font-size: 11px;
    }
    .mall-camera {
      position: absolute;
      right: 7px;
      top: 7px;
      width: 23px;
      height: 20px;
      flex-shrink: 0;
      opacity: 0.4;
    }
    .mall-camera svg { width: 23px; height: 20px; display: block; }
    .mall-search-link {
      position: absolute;
      right: 8px;
      top: 74px;
      font-size: 11px;
      color: #BC5A5A;
      cursor: pointer;
      text-decoration: none;
      border: none;
      padding: 0;
      background: transparent;
      font-family: inherit;
    }
    /* 黑色横向滚动导航 327×36，水平居中 */
    .mall-nav-wrap {
      position: absolute;
      left: 50%;
      top: 119px;
      width: 327px;
      height: 36px;
      transform: translateX(-50%);
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      display: flex;
      align-items: center;
      background: #000;
      border-radius: 18px;
    }
    .mall-nav-wrap::-webkit-scrollbar { display: none; }
    .mall-nav-inner {
      display: flex;
      align-items: center;
      gap: 0;
      height: 36px;
      min-width: max-content;
      padding: 0;
    }
    .mall-nav-item {
      flex-shrink: 0;
      height: 36px;
      min-width: 60px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      color: #BABABA;
      cursor: pointer;
      padding: 0 14px;
      border: none;
      background: transparent;
      position: relative;
      border-radius: 20px;
      text-align: center;
      white-space: nowrap;
    }
    .mall-nav-item.active {
      color: #000;
      background: #fff;
      border-radius: 20px;
      min-width: 60px;
      width: auto;
    }
    .mall-grid-wrap {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
      padding: 17px 47px 20px;
    }
    .mall-grid {
      display: grid;
      grid-template-columns: 132px 132px;
      gap: 26px 40px;
      justify-content: center;
      max-width: 304px;
      margin: 0 auto;
    }
    .mall-card {
      cursor: pointer;
      width: 132px;
      text-align: center;
    }
    .mall-card-img {
      width: 132px;
      height: 176px;
      border-radius: 0;
      background: #5a5a5a;
      overflow: hidden;
    }
    .mall-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    /* 商城/小物：标题 11px #BABABA，最多 14 字（脚本截断）；距图底 13px；图下居中 */
    .mall-card-title {
      font-size: 11px;
      color: #BABABA;
      margin-top: 13px;
      line-height: 1.3;
      width: 100%;
      max-width: 100%;
      margin-left: auto;
      margin-right: auto;
      padding: 0 2px;
      box-sizing: border-box;
      text-align: center;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      display: block;
    }
    .mall-card-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: 8px;
      padding: 0 2px;
      width: 100%;
    }
    /* 左侧价格：文案由卡片 data-price-display 同步（商家自定义） */
    .mall-card-price {
      font-size: 12px;
      color: #de847b;
      text-align: left;
      flex: 0 0 auto;
      margin-right: auto;
    }
    .mall-card-sales { font-size: 11px; color: #BABABA; }
    /* 小物：与推荐共用 mall-card 结构；主图区 170×170；双列 170+10+170，左右留白适配 360 */
    #page-small .mall-grid-wrap {
      padding: 17px 5px 20px;
    }
    #page-small .mall-grid {
      grid-template-columns: 170px 170px;
      gap: 18px 10px;
      max-width: 350px;
    }
    #page-small .mall-card {
      width: 170px;
      text-align: left;
    }
    #page-small .mall-card-img {
      width: 170px;
      height: 170px;
    }
    /* 小物：商品信息两行省略；价格与已拼件数同一行 */
    #page-small .mall-card-title {
      text-align: left;
      white-space: normal;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      text-overflow: ellipsis;
      min-height: 2.6em;
    }
    #page-small .mall-card-row {
      justify-content: space-between;
      align-items: flex-end;
    }
    /* 推荐（#page-mall）：主图 165×230；双列 165+10+165，左右留白与 mall-grid-wrap 内边距对齐 360 宽 */
    #page-mall .mall-grid-wrap {
      padding: 17px 10px 20px;
    }
    #page-mall .mall-grid {
      grid-template-columns: 165px 165px;
      gap: 26px 10px;
      max-width: 340px;
    }
    #page-mall .mall-card {
      width: 165px;
    }
    #page-mall .mall-card-img {
      width: 165px;
      height: 230px;
    }
    /* 商城底部三按钮 360×90 */
    .mall-bottom {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      width: 360px;
      max-width: 100%;
      height: 90px;
      box-sizing: border-box;
      margin: 0 auto;
      background: #000;
      border-radius: 19px 19px 0 0;
      display: none;
      align-items: center;
      justify-content: stretch;
      font-size: 15px;
      color: #fff;
      z-index: 100;
      padding-bottom: env(safe-area-inset-bottom, 0);
    }
    #page-mall.page.active ~ .mall-bottom,
    #page-small.page.active ~ .mall-bottom,
    #page-cart.page.active ~ .mall-bottom { display: flex; }
    #page-mall.page.active ~ .tabbar,
    #page-small.page.active ~ .tabbar,
    #page-cart.page.active ~ .tabbar,
    #page-product-detail.page.active ~ .tabbar,
    #page-product-sku.page.active ~ .tabbar,
    #page-edit-address.page.active ~ .tabbar,
    #page-merchant.page.active ~ .tabbar,
    #page-friend-msg-settings.page.active ~ .tabbar,
    #page-pay-success.page.active ~ .tabbar,
    #page-official-service.page.active ~ .tabbar,
    #page-follow-shops.page.active ~ .tabbar,
    #page-coupon-center.page.active ~ .tabbar,
    #page-orders-all.page.active ~ .tabbar,
    #page-order-pending-pay.page.active ~ .tabbar,
    #page-order-pending-ship.page.active ~ .tabbar,
    #page-order-pending-receive.page.active ~ .tabbar,
    #page-order-pending-review.page.active ~ .tabbar,
    #page-order-after-sale.page.active ~ .tabbar,
    #page-order-refund.page.active ~ .tabbar,
    #page-order-logistics.page.active ~ .tabbar,
    #page-order-review.page.active ~ .tabbar,
    #page-post-create.page.active ~ .tabbar,
    #page-settings.page.active ~ .tabbar,
    #page-settings-personal.page.active ~ .tabbar,
    #page-settings-nickname.page.active ~ .tabbar,
    #page-settings-notify.page.active ~ .tabbar,
    #page-settings-cache.page.active ~ .tabbar,
    #page-settings-help.page.active ~ .tabbar,
    #page-settings-agreement.page.active ~ .tabbar,
    #page-settings-privacy.page.active ~ .tabbar,
    #page-settings-about.page.active ~ .tabbar,
    #page-settings-delete-account.page.active ~ .tabbar,
    #page-settings-merchant.page.active ~ .tabbar { display: none; }
    #page-orders-all.page,
    #page-order-pending-pay.page,
    #page-order-pending-ship.page,
    #page-order-pending-receive.page,
    #page-order-pending-review.page,
    #page-order-after-sale.page,
    #page-order-refund.page,
    #page-order-review.page {
      background: #1b1b1b;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-order-logistics.page {
      background: rgba(40, 40, 40, 0.88);
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-orders-all.page.active,
    #page-order-pending-pay.page.active,
    #page-order-pending-ship.page.active,
    #page-order-pending-receive.page.active,
    #page-order-pending-review.page.active,
    #page-order-after-sale.page.active,
    #page-order-refund.page.active,
    #page-order-logistics.page.active,
    #page-order-review.page.active {
      align-items: flex-start;
    }
    .order-shell {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #1b1b1b;
      box-sizing: border-box;
    }
    /* 申请退款：409×728 #1B1B1B；标题 13 居中 @顶46；返回 9×17 @50,46；提交 104×35 #CCCCCC @144,666 */
    .order-refund-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #1b1b1b;
      box-sizing: border-box;
    }
    .order-refund-back {
      position: absolute;
      left: 50px;
      top: 46px;
      width: 9px;
      height: 17px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .order-refund-back-icon {
      display: block;
      width: 9px;
      height: 17px;
      flex-shrink: 0;
    }
    .order-refund-back:active {
      opacity: 0.75;
    }
    .order-refund-title {
      position: absolute;
      left: 0;
      right: 0;
      top: 46px;
      margin: 0;
      padding: 0 48px;
      text-align: center;
      font-size: 13px;
      font-weight: 400;
      line-height: 17px;
      color: #9c9c9c;
      box-sizing: border-box;
      z-index: 3;
      pointer-events: none;
    }
    .order-refund-body {
      padding: 0;
      box-sizing: border-box;
    }
    .order-refund-field {
      display: block;
      margin: 0 32px 6px;
      font-size: 12px;
      color: #9c9c9c;
    }
    .order-refund-field:first-of-type {
      margin-top: 88px;
    }
    .order-refund-input,
    .order-refund-textarea {
      display: block;
      width: calc(100% - 64px);
      margin: 0 32px 14px;
      box-sizing: border-box;
      padding: 8px 10px;
      border: 1px solid #444;
      border-radius: 4px;
      background: #2a2a2a;
      color: #e8e8e8;
      font-size: 13px;
      font-family: inherit;
    }
    .order-refund-textarea {
      resize: vertical;
      min-height: 64px;
    }
    .order-review-body {
      padding: 20px 24px 32px;
      color: #9c9c9c;
      text-align: left;
    }
    .order-review-hint {
      font-size: 12px;
      margin: 0 0 14px;
      line-height: 1.45;
      color: #9c9c9c;
    }
    .order-review-stars {
      display: flex;
      gap: 6px;
      margin: 0 0 16px;
    }
    .order-review-star {
      border: none;
      background: transparent;
      color: #444;
      font-size: 22px;
      line-height: 1;
      padding: 0;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .order-review-star.is-on {
      color: #d4a017;
    }
    .order-review-label {
      display: block;
      font-size: 12px;
      margin: 0 0 6px;
    }
    .order-review-textarea {
      width: 100%;
      box-sizing: border-box;
      padding: 10px;
      border: 1px solid #444;
      border-radius: 4px;
      background: #2a2a2a;
      color: #e8e8e8;
      font-size: 13px;
      font-family: inherit;
      margin-bottom: 18px;
      resize: vertical;
    }
    .order-review-submit {
      display: block;
      width: 100%;
      max-width: 220px;
      margin: 0 auto;
      padding: 10px 16px;
      border: none;
      border-radius: 4px;
      background: #cccccc;
      color: #000;
      font-size: 14px;
      cursor: pointer;
      font-family: inherit;
    }
    .order-review-submit:active {
      opacity: 0.9;
    }
    .order-refund-submit {
      position: absolute;
      left: 144px;
      top: 666px;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 104px;
      height: 35px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 2px;
      background: #cccccc;
      color: #000000;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-refund-submit:active {
      opacity: 0.92;
    }
    .order-item-card.order-item-card--after-sale .order-item-btn-refund,
    .order-item-card.order-item-card--after-sale .order-item-btn-logistics {
      display: none !important;
    }
    /* 查看物流：画布 409×728；#282828 @88% 见 #page-order-logistics；返回 52×52 @30,53；分享 47×47 @330,59 */
    .order-logistics-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      box-sizing: border-box;
    }
    .order-logistics-back {
      position: absolute;
      left: 30px;
      top: 53px;
      width: 52px;
      height: 52px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .order-logistics-back img {
      display: block;
      width: 52px;
      height: 52px;
      object-fit: contain;
      pointer-events: none;
    }
    .order-logistics-back:active {
      opacity: 0.88;
    }
    .order-logistics-share {
      position: absolute;
      left: 290px;
      top: 59px;
      width: 47px;
      height: 47px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .order-logistics-share img {
      display: block;
      width: 47px;
      height: 47px;
      object-fit: contain;
      pointer-events: none;
    }
    .order-logistics-share:active {
      opacity: 0.88;
    }
    /* 取单号 @58,301；复制按钮 @332,294 44×24 #B6B5B5；卡车 @34,339 41×25 */
    .order-logistics-pickup-row {
      position: absolute;
      left: 58px;
      top: 301px;
      z-index: 3;
      max-width: calc(100% - 58px - 24px);
      box-sizing: border-box;
    }
    .order-logistics-pickup-label {
      font-size: 13px;
      font-weight: 400;
      color: #6a6a6a;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      min-width: 0;
    }
    .order-logistics-pickup-copy {
      position: absolute;
      left: 332px;
      top: 294px;
      z-index: 3;
      width: 44px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 2px;
      background: #b6b5b5;
      color: #6a6a6a;
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      -webkit-tap-highlight-color: transparent;
    }
    .order-logistics-pickup-copy:active {
      opacity: 0.92;
    }
    .order-logistics-truck {
      position: absolute;
      left: 34px;
      top: 339px;
      width: 41px;
      height: 25px;
      z-index: 2;
      object-fit: contain;
      pointer-events: none;
      display: block;
      mix-blend-mode: darken;
      opacity: 0.86;
    }
    /* 运单+收货地单行（参考稿）：@90,334，12px #6A6A6A */
    .order-logistics-waybill-block {
      position: absolute;
      left: 90px;
      top: 334px;
      z-index: 3;
      max-width: calc(100% - 90px - 24px);
      box-sizing: border-box;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.5;
      color: #6a6a6a;
    }
    .order-logistics-waybill-text {
      margin: 0;
      padding: 0;
      word-break: break-all;
    }
    .order-logistics-waybill-text:empty {
      display: none;
    }
    .order-logistics-body {
      padding: 413px 24px 32px;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.5;
      color: #6a6a6a;
      box-sizing: border-box;
    }
    .order-logistics-section {
      margin: 0 0 16px;
    }
    .order-logistics-timeline {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .order-logistics-timeline-item {
      position: relative;
      padding: 0 0 0 44px;
      min-height: 14px;
      box-sizing: border-box;
    }
    /* 圆与圆之间竖线固定 40px；末项下垂线 30px + 底部留白 30px */
    .order-logistics-timeline-item:not(:last-child) {
      padding-bottom: 40px;
    }
    .order-logistics-timeline-item:not(:last-child)::after {
      content: '';
      position: absolute;
      left: calc(50px - 24px);
      top: 14px;
      width: 2px;
      height: 40px;
      background: #313131;
    }
    .order-logistics-timeline-item:last-child {
      padding-bottom: 30px;
    }
    .order-logistics-timeline-item:last-child::after {
      content: '';
      position: absolute;
      left: calc(50px - 24px);
      top: 14px;
      width: 2px;
      height: 30px;
      background: #313131;
    }
    /* 节点 14×14：圆心距页面左 44+7=51px（body 左右 24px） */
    .order-logistics-timeline-item::before {
      content: '';
      position: absolute;
      left: calc(44px - 24px);
      top: 0;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      box-sizing: border-box;
      z-index: 1;
      border-style: solid;
      border-width: 2px;
    }
    /* 最新：浅灰外环 + 中心深色实心点（参考稿双圈感） */
    .order-logistics-timeline-item--latest::before {
      border-color: #8a8a8a;
      background: #0a0a0a;
    }
    /* 历史：空心 + 描边 #313131，描边宽度 2px */
    .order-logistics-timeline-item--past::before {
      border-color: #313131;
      background: transparent;
    }
    .order-logistics-timeline-line {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 6px 10px;
      line-height: 1.35;
    }
    .order-logistics-timeline-phase {
      font-size: 14px;
      font-weight: 600;
      color: #8c8c8c;
    }
    .order-logistics-timeline-when {
      font-size: 10px;
      font-weight: 400;
      color: #6a6a6a;
    }
    .order-logistics-timeline-where {
      font-size: 10px;
      font-weight: 400;
      color: #6a6a6a;
    }
    .order-logistics-timeline-empty {
      padding: 12px 0;
      color: #6a6a6a;
    }
    .order-logistics-error {
      margin: 12px 0 0;
      color: #6a6a6a;
      font-size: 13px;
    }
    .order-shell-back-btn {
      position: absolute;
      left: 28px;
      top: 63px;
      width: 50px;
      height: 50px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      -webkit-tap-highlight-color: transparent;
    }
    .order-shell-back-btn img {
      display: block;
      width: 50px;
      height: 50px;
      object-fit: contain;
      pointer-events: none;
    }
    .order-shell-back-btn:active {
      opacity: 0.88;
    }
    /* 与返回键、Tab 同为 absolute，避免占位 + body 大 padding 叠成「导航下巨大空白」 */
    .order-shell-title {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      margin: 0;
      padding: 81px 48px 0;
      text-align: center;
      font-size: 20px;
      font-weight: 400;
      line-height: 1.2;
      color: #9c9c9c;
      box-sizing: border-box;
      z-index: 3;
      pointer-events: none;
    }
    /* 订单顶栏：黑条视觉 376×18 圆角 25（::before 居中）；行高 33；左 28 顶 151；Tab 超出可横向滑动 */
    .order-shell-nav {
      position: absolute;
      left: 28px;
      top: 151px;
      width: 304px;
      max-width: calc(100% - 56px);
      height: 33px;
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      touch-action: pan-x;
      display: flex;
      align-items: center;
      background: transparent;
      border-radius: 0;
      z-index: 2;
      margin: 0;
      box-sizing: border-box;
    }
    .order-shell-nav::before {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      height: 18px;
      background: #000000;
      border-radius: 25px;
      z-index: 0;
      pointer-events: none;
    }
    .order-shell-nav::-webkit-scrollbar {
      display: none;
    }
    .order-shell-tabs {
      position: relative;
      z-index: 1;
      display: flex;
      align-items: stretch;
      flex-wrap: nowrap;
      justify-content: flex-start;
      flex-shrink: 0;
      gap: 3px;
      height: 33px;
      width: max-content;
      min-width: 100%;
      max-width: none;
      padding: 0 9px;
      box-sizing: border-box;
    }
    /* 多档 Tab：每项最小宽度略大于均分，保证 6 项时超出黑条可横滑 */
    .order-shell-tab {
      flex: 0 0 auto;
      min-width: 62px;
      width: auto;
      max-width: none;
      height: 33px;
      margin: 0;
      padding: 0 1px;
      border: none;
      border-radius: 0;
      background: transparent;
      color: #9c9c9c;
      font-family: inherit;
      font-size: 14px;
      font-weight: 400;
      line-height: 33px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      position: relative;
      z-index: 1;
      overflow: hidden;
      text-overflow: ellipsis;
      -webkit-tap-highlight-color: transparent;
      box-sizing: border-box;
      letter-spacing: 0.02em;
    }
    /* 选中：白胶囊铺满当前格，13px 黑字（与未选 14px 接近，减轻跳变感） */
    .order-shell-tab.order-shell-tab--active {
      border-radius: 16px;
      background: #ffffff;
      color: #000000;
      font-size: 13px;
      line-height: 33px;
    }
    /* 顶栏均为 absolute 后：首条订单顶 = 导航底(151+33) + 18px */
    .order-shell-body {
      padding: calc(151px + 33px + 18px) 0 32px;
      font-size: 12px;
      color: #9c9c9c;
      line-height: 1.5;
    }
    .order-shell-body .sub-page-placeholder {
      color: #9c9c9c;
      margin: 0;
    }
    /* 退款 / 物流子页：无 Tab，body 顶距与有 Tab 页对齐视觉 */
    .order-shell-body.order-shell-body--aux {
      padding-top: calc(151px + 18px);
    }
    /* 订单列表项：409×155 #1B1B1B；图 78×78 圆角 5@31,15；标题/规格同上；¥10 数字 13 黑@348,21；件数×n 12 #7E7E7E@373,40；更多 13 #9C9C9C@18,128 */
    .order-item-card {
      position: relative;
      width: 360px;
      max-width: 100%;
      height: 155px;
      margin: 0 auto;
      background: #1b1b1b;
      box-sizing: border-box;
    }
    .order-item-card + .order-item-card {
      margin-top: 21px;
    }
    .order-item-img {
      position: absolute;
      left: 31px;
      top: 15px;
      width: 78px;
      height: 78px;
      object-fit: cover;
      display: block;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: #2a2a2a;
      box-sizing: border-box;
    }
    .order-item-title {
      position: absolute;
      left: 121px;
      right: 72px;
      top: 21px;
      margin: 0;
      padding: 0;
      width: auto;
      max-width: none;
      font-size: 12px;
      font-weight: 400;
      font-style: normal;
      line-height: 1.35;
      color: #9c9c9c;
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      word-break: break-word;
      box-sizing: border-box;
    }
    .order-item-spec {
      position: absolute;
      left: 121px;
      right: 72px;
      top: 59px;
      margin: 0;
      padding: 0;
      width: auto;
      max-width: none;
      font-size: 12px;
      font-style: italic;
      font-weight: 400;
      line-height: 1.25;
      color: #676363;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      box-sizing: border-box;
    }
    .order-item-price {
      position: absolute;
      left: auto;
      right: 12px;
      top: 21px;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: row;
      align-items: baseline;
      flex-wrap: nowrap;
      color: #000000;
      box-sizing: border-box;
    }
    .order-item-price-yen {
      font-size: 10px;
      font-weight: 400;
      line-height: 1;
      color: inherit;
    }
    .order-item-price-num {
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      color: inherit;
      margin-left: 1px;
    }
    .order-item-qty {
      position: absolute;
      left: auto;
      right: 12px;
      top: 40px;
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 400;
      font-style: normal;
      line-height: 1.2;
      color: #7e7e7e;
      text-align: right;
      box-sizing: border-box;
    }
    .order-item-more {
      position: absolute;
      left: 18px;
      top: 128px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1.2;
      color: #9c9c9c;
      cursor: pointer;
      text-align: left;
      -webkit-tap-highlight-color: transparent;
      box-sizing: border-box;
    }
    .order-item-more:active {
      opacity: 0.85;
    }
    /* 订单卡片：申请退款 / 查看物流 66×24 @143,120 & @215,120；字号 11px（相对卡片左上） */
    .order-item-action-btn {
      position: absolute;
      top: 120px;
      width: 66px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 0;
      background: #1b1b1b;
      color: #9c9c9c;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-item-action-btn:active {
      opacity: 0.88;
    }
    .order-item-btn-refund {
      left: 143px;
      font-size: 11px;
      color: #9c9c9c;
    }
    .order-item-btn-logistics {
      left: 215px;
      font-size: 11px;
      color: #9c9c9c;
    }
    /* 待付款 Tab：付款按钮 66×24 贴右留边，圆角 5 */
    .order-item-pay-btn {
      position: absolute;
      left: auto;
      right: 12px;
      top: 120px;
      width: 66px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: #b295a8;
      color: #000000;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-item-pay-btn:active {
      opacity: 0.9;
    }
    /* 待收货 Tab：确认收货 66×24 贴右留边，圆角 5，白字 */
    .order-item-confirm-btn {
      position: absolute;
      left: auto;
      right: 12px;
      top: 120px;
      width: 66px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: #b295a8;
      color: #ffffff;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-item-confirm-btn:active {
      opacity: 0.9;
    }
    /* 待发货 Tab：催发货（与确认收货同规格，右侧主操作） */
    .order-item-urge-ship-btn {
      position: absolute;
      left: auto;
      right: 12px;
      top: 120px;
      width: 66px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: #b295a8;
      color: #ffffff;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-item-urge-ship-btn:active {
      opacity: 0.9;
    }
    /* 售后 Tab：右侧主操作「售后详情」（与催发货同规格） */
    .order-item-after-sale-detail-btn {
      position: absolute;
      left: auto;
      right: 12px;
      top: 120px;
      width: 66px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: #b295a8;
      color: #ffffff;
      font-family: inherit;
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-item-after-sale-detail-btn:active {
      opacity: 0.9;
    }
    /* 评价 Tab：右侧「待评价」主按钮（与催发货/确认收货同规格） */
    .order-item-pending-review-btn {
      position: absolute;
      left: auto;
      right: 12px;
      top: 120px;
      width: 66px;
      height: 24px;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: 5px;
      background: #b295a8;
      color: #ffffff;
      font-family: inherit;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      white-space: nowrap;
      cursor: pointer;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .order-item-pending-review-btn:active {
      opacity: 0.9;
    }
    /* 设置页：白底纯文字列表（无整页切图） */
    #page-settings.page {
      background: #ffffff;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-settings.page.active {
      align-items: flex-start;
    }
    .settings-page-wrap {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 812px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #ffffff;
      display: flex;
      flex-direction: column;
      box-sizing: border-box;
    }
    .settings-screen-header {
      position: relative;
      flex-shrink: 0;
      min-height: 100px;
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }
    .settings-heading {
      position: absolute;
      left: 50%;
      top: 65px;
      transform: translateX(-50%);
      margin: 0;
      padding: 0;
      width: max-content;
      max-width: calc(100% - 120px);
      font-size: 16px;
      font-weight: 400;
      color: #000000;
      line-height: 1.2;
      text-align: center;
      pointer-events: none;
    }
    .settings-back {
      position: absolute;
      left: 38px;
      top: 64px;
      min-width: 44px;
      min-height: 44px;
      width: auto;
      height: auto;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 2;
      display: flex;
      align-items: flex-start;
      justify-content: flex-start;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-back img {
      width: 11px;
      height: 20px;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }
    .settings-back:active {
      opacity: 0.65;
    }
    .visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }
    .settings-menu {
      position: static;
      flex: 1 1 auto;
      z-index: 3;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 45px;
      padding: 12px 0 16px;
      box-sizing: border-box;
    }
    .settings-row {
      position: static;
      width: 100%;
      max-width: 100%;
      min-height: 0;
      padding: 8px 24px;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      box-sizing: border-box;
      text-align: left;
      font-family: inherit;
      font-size: 12px;
      font-weight: 400;
      color: #000000;
      line-height: 1.3;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-row:active {
      background: rgba(0, 0, 0, 0.04);
    }
    .settings-logout-btn {
      position: static;
      flex-shrink: 0;
      align-self: center;
      margin: auto 0 36px;
      width: auto;
      height: auto;
      padding: 14px 28px;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: block;
      box-sizing: border-box;
      font-family: inherit;
      font-size: 12px;
      font-weight: 400;
      color: #000000;
      line-height: 1.3;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-logout-btn:active {
      opacity: 0.65;
    }
    /* 消息通知子页：409×728 白底；返回图 9×17@46,67；标题 64；文案左 44；四开关右 27 顶 247→…→419 对应 语言视频/通话增强/声音/振动；装饰猫 158×124 左 217 底 63 */
    #page-settings-notify.page {
      background: #ffffff;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-settings-notify.page.active {
      align-items: flex-start;
    }
    /* 个人资料子页：409×728 白底；标题 12 黑 顶 64 居中；顶行 @171 左文案「头像」右 63 圆图，左右边 68；头像下到首行与行间均为 28；装饰心 60×68 @0,330 */
    #page-settings-personal.page {
      background: #ffffff;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-settings-personal.page.active {
      align-items: flex-start;
    }
    .settings-personal-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #ffffff;
      box-sizing: border-box;
    }
    .settings-personal-heading {
      margin: 0;
      padding: 64px 44px 0;
      text-align: center;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
    }
    .settings-personal-top-row {
      position: absolute;
      left: 68px;
      right: 68px;
      top: 171px;
      height: 63px;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      box-sizing: border-box;
    }
    .settings-personal-avatar-label,
    .settings-personal-field-label {
      margin: 0;
      padding: 0;
      flex-shrink: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
    }
    .settings-personal-avatar {
      width: 63px;
      height: 63px;
      border-radius: 50%;
      object-fit: cover;
      display: block;
      margin: 0;
      padding: 0;
      border: none;
      background: #f0f0f0;
      flex-shrink: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-personal-fields {
      position: absolute;
      left: 0;
      right: 0;
      width: 100%;
      top: calc(171px + 63px + 28px);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 28px;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    .settings-personal-field {
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      width: 100%;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      box-sizing: border-box;
    }
    .settings-personal-field-value {
      margin: 0;
      padding: 0;
      margin-left: auto;
      text-align: right;
      word-break: break-all;
      min-width: 0;
      max-width: 65%;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
    }
    #settingsPersonalPhoneLabel {
      transform: translateX(-4px);
    }
    .settings-personal-avatar-btn {
      border: none;
      padding: 0;
      margin: 0;
      background: transparent;
      cursor: pointer;
      border-radius: 50%;
      flex-shrink: 0;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-personal-avatar-btn:active {
      opacity: 0.88;
    }
    .settings-personal-field--editable {
      border: none;
      background: transparent;
      cursor: pointer;
      font-family: inherit;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      text-align: left;
      width: 360px;
      max-width: 100%;
      height: 71px;
      min-height: 71px;
      box-sizing: border-box;
      padding: 0 68px;
      margin: 0;
      flex-shrink: 0;
      -webkit-appearance: none;
      appearance: none;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-personal-field--editable:active {
      opacity: 0.88;
    }
    .settings-personal-field--readonly {
      cursor: default;
      width: 360px;
      max-width: 100%;
      min-height: 71px;
      box-sizing: border-box;
      padding: 0 68px;
      margin: 0;
      flex-shrink: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
    }
    .settings-personal-deco {
      position: absolute;
      left: 0;
      top: 330px;
      width: 60px;
      height: 68px;
      z-index: 1;
      pointer-events: none;
      user-select: none;
    }
    .settings-personal-deco img {
      display: block;
      width: 60px;
      height: 68px;
      object-fit: contain;
    }
    #page-settings-nickname.page {
      background: #ffffff;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-settings-nickname.page.active {
      align-items: flex-start;
    }
    .settings-nickname-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #ffffff;
      box-sizing: border-box;
      overflow-x: hidden;
    }
    .settings-nickname-deco-eyes {
      position: absolute;
      left: 156px;
      top: 10px;
      width: 108px;
      height: 39px;
      z-index: 1;
      pointer-events: none;
      user-select: none;
    }
    .settings-nickname-deco-eyes img {
      display: block;
      width: 108px;
      height: 39px;
      object-fit: contain;
    }
    .settings-nickname-title {
      position: absolute;
      left: 179px;
      top: 56px;
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      z-index: 2;
      pointer-events: none;
      user-select: none;
    }
    .settings-nickname-field-wrap {
      position: absolute;
      left: 0;
      top: 122px;
      width: 100%;
      max-width: 360px;
      height: 49px;
      box-sizing: border-box;
      border-radius: 16px;
      background: #D9D9D9;
      padding: 0 18px;
      display: flex;
      align-items: center;
      z-index: 3;
      cursor: text;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-nickname-field {
      width: 100%;
      border: none;
      margin: 0;
      padding: 0;
      background: transparent;
      font-family: inherit;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      outline: none;
      -webkit-appearance: none;
      appearance: none;
    }
    .settings-nickname-deco-cat {
      position: absolute;
      left: 50%;
      top: 305px;
      transform: translateX(-50%);
      width: 524px;
      height: 423px;
      z-index: 0;
      pointer-events: none;
      user-select: none;
    }
    .settings-nickname-deco-cat img {
      display: block;
      width: 524px;
      height: 423px;
      object-fit: contain;
    }
    #page-settings-cache.page {
      background: #ffffff;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-settings-cache.page.active {
      align-items: flex-start;
    }
    /* 帮助与反馈 / 用户使用协议 / 隐私政策 / APP介绍：409×728 白底；标题 13 顶 68 居中 */
    #page-settings-help.page,
    #page-settings-agreement.page,
    #page-settings-privacy.page,
    #page-settings-about.page {
      background: #ffffff;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #page-settings-help.page.active,
    #page-settings-agreement.page.active,
    #page-settings-privacy.page.active,
    #page-settings-about.page.active {
      align-items: flex-start;
    }
    .settings-help-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #ffffff;
      box-sizing: border-box;
      padding: 0 36px 48px;
    }
    .settings-help-heading {
      margin: 0;
      padding: 68px 12px 0;
      text-align: center;
      font-size: 13px;
      font-weight: 400;
      line-height: 1.3;
      color: #000000;
    }
    /* 正文首行距页面顶 120px（标题区 68px + 约一行标题高 + 本间距） */
    .settings-help-body {
      margin-top: calc(120px - 68px - 13px * 1.3);
    }
    .settings-help-section {
      margin: 0 0 22px;
    }
    .settings-help-section:last-child {
      margin-bottom: 0;
    }
    .settings-help-section-title {
      margin: 0 0 10px;
      font-size: 13px;
      font-weight: 700;
      line-height: 1.4;
      color: #000000;
    }
    .settings-help-section p {
      margin: 0;
      font-size: 13px;
      font-weight: 400;
      line-height: 1.55;
      color: #000000;
    }
    .settings-cache-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #ffffff;
      box-sizing: border-box;
      padding-bottom: 160px;
    }
    .settings-cache-heading {
      margin: 0;
      padding: 64px 44px 0;
      text-align: center;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
    }
    .settings-cache-modules {
      position: relative;
      z-index: 2;
      padding: 28px 44px 0;
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      gap: 36px;
    }
    .settings-cache-module {
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 10px;
      box-sizing: border-box;
    }
    .settings-cache-module-title {
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 600;
      line-height: 1.35;
      color: #000000;
      text-align: left;
    }
    .settings-cache-module-size {
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.35;
      color: #000000;
      text-align: left;
    }
    .settings-cache-module-desc {
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.55;
      color: #333333;
      text-align: left;
      max-width: 100%;
    }
    .settings-cache-deco {
      position: absolute;
      right: 1px;
      bottom: 39px;
      width: 175px;
      height: 137px;
      z-index: 1;
      pointer-events: none;
      user-select: none;
      line-height: 0;
    }
    .settings-cache-deco img {
      display: block;
      width: 175px;
      height: 137px;
      max-width: min(175px, 100%);
      object-fit: contain;
    }
    /* 各模块内「清理」52×25 黑底白字、右对齐 */
    .settings-cache-clear-btn {
      position: static;
      align-self: flex-end;
      width: 52px;
      height: 25px;
      box-sizing: border-box;
      margin: 4px 0 0;
      padding: 0;
      border: none;
      border-radius: 51px;
      background: #000000;
      color: #ffffff;
      font-family: inherit;
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      z-index: 3;
      flex-shrink: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-cache-clear-btn:active {
      opacity: 0.88;
    }
    .settings-notify-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      min-height: 800px;
      margin: 0 auto;
      flex-shrink: 0;
      background: #ffffff;
      box-sizing: border-box;
    }
    .sub-page.settings-settings-sub-root {
      position: relative;
    }
    /* 商家入驻：画布 409×1008；标题 15px 黑 顶 44px 居中；返回 12×23 @39,39 → data-back=settings */
    #page-settings-merchant.page {
      flex-direction: column;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      background: #eef0fb;
    }
    #page-settings-merchant.page.active {
      align-items: flex-start;
    }
    .settings-merchant-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      /* 子元素多为 absolute，高度需手写；与底部「继续」容器对齐，避免原先 1160px 留出大块空白 */
      min-height: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 113px + 15px * 1.2 + 29px + 10px * 1.2 + 27px + 43px + 28px
      );
      margin: 0 auto;
      flex-shrink: 0;
      box-sizing: border-box;
      /* 底图固定高度时短于 min-height，「继续」以下会露底；纵向拉满 + 同色兜底 */
      background-color: #eef0fb;
      background-image: url(../assets/settings-merchant-bg-409x1008.jpg);
      background-size: 360px 100%;
      background-position: center top;
      background-repeat: no-repeat;
    }
    .settings-merchant-back {
      position: absolute;
      left: 39px;
      top: 51px;
      width: 12px;
      height: 23px;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-merchant-back img {
      display: block;
      width: 12px;
      height: 23px;
      object-fit: contain;
      pointer-events: none;
      user-select: none;
    }
    .settings-merchant-title {
      position: absolute;
      left: 0;
      right: 0;
      top: 44px;
      margin: 0;
      padding: 0 48px;
      text-align: center;
      font-size: 15px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      box-sizing: border-box;
      pointer-events: none;
      z-index: 1;
    }
    /* 入驻步骤标题：15px 左对齐 @18；顶距自页顶累加 107 → +161 → +147 → +140 → +116 → +113 */
    .settings-merchant-section-title {
      position: absolute;
      left: 18px;
      right: 18px;
      margin: 0;
      padding: 0;
      text-align: left;
      font-size: 15px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      box-sizing: border-box;
      z-index: 2;
      pointer-events: none;
    }
    .settings-merchant-section-title--1 {
      top: 107px;
    }
    .settings-merchant-section-title--2 {
      top: 268px;
    }
    .settings-merchant-section-title--3 {
      top: 415px;
    }
    .settings-merchant-section-title--4 {
      top: 555px;
    }
    .settings-merchant-section-title--5 {
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px
      );
    }
    .settings-merchant-section-title--6 {
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 113px
      );
    }
    /* 入驻：可编辑行 label+input 整行可点；保证金两行仍为只读文案 */
    .settings-merchant-input-row {
      position: absolute;
      left: 45px;
      right: 18px;
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0;
      padding: 6px 0;
      min-height: calc(12px * 1.2 + 4px);
      box-sizing: border-box;
      z-index: 2;
      cursor: text;
      pointer-events: auto;
      font-family: inherit;
      -webkit-tap-highlight-color: transparent;
    }
    /* 店铺头像：整行点击调相册，无输入框 */
    .settings-merchant-photo-row {
      position: absolute;
      left: 45px;
      right: 18px;
      display: flex;
      align-items: center;
      gap: 10px;
      margin: 0;
      padding: 6px 0;
      min-height: calc(12px * 1.2 + 4px);
      box-sizing: border-box;
      z-index: 2;
      cursor: pointer;
      pointer-events: auto;
      font-family: inherit;
      border: none;
      background: transparent;
      text-align: left;
      width: auto;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-merchant-photo-hint {
      flex: 1 1 0;
      min-width: 0;
      font-size: 12px;
      line-height: 1.2;
      color: rgba(0, 0, 0, 0.32);
      font-weight: 400;
      text-align: left;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .settings-merchant-input-label {
      flex: 0 0 auto;
      white-space: nowrap;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      pointer-events: none;
      user-select: none;
    }
    .settings-merchant-input-el {
      flex: 1 1 0;
      min-width: 0;
      width: 100%;
      margin: 0;
      padding: 2px 0 2px 4px;
      border: none;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      font-size: 12px;
      line-height: 1.2;
      color: #000000;
      font-family: inherit;
      box-sizing: border-box;
      -webkit-appearance: none;
      appearance: none;
    }
    .settings-merchant-input-el::placeholder {
      color: rgba(0, 0, 0, 0.28);
    }
    .settings-merchant-input-el:focus {
      outline: none;
      background: transparent;
    }
    .settings-merchant-field {
      position: absolute;
      left: 45px;
      right: 18px;
      margin: 0;
      padding: 0;
      text-align: left;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      box-sizing: border-box;
      z-index: 2;
      pointer-events: none;
    }
    .settings-merchant-field--name {
      top: calc(107px + 15px * 1.2 + 29px - 5px);
    }
    .settings-merchant-field--idno {
      top: calc(107px + 15px * 1.2 + 29px + 12px * 1.2 + 25px - 5px);
    }
    .settings-merchant-field--phone {
      top: calc(107px + 15px * 1.2 + 29px + (12px * 1.2 + 25px) * 2 - 5px);
    }
    .settings-merchant-field--shop-name {
      top: calc(268px + 15px * 1.2 + 24px - 8px);
    }
    .settings-merchant-field--shop-avatar {
      top: calc(268px + 15px * 1.2 + 24px + 12px * 1.2 + 25px - 8px);
    }
    .settings-merchant-field--shop-cat {
      top: calc(268px + 15px * 1.2 + 24px + (12px * 1.2 + 25px) * 2 - 8px);
    }
    .settings-merchant-field--alipay-acct {
      top: calc(415px + 15px * 1.2 + 29px);
    }
    .settings-merchant-field--alipay-name {
      top: calc(415px + 15px * 1.2 + 29px + 12px * 1.2 + 25px);
    }
    .settings-merchant-field--id-front {
      top: calc(555px + 15px * 1.2 + 30px - 5px);
    }
    .settings-merchant-field--id-back {
      top: calc(555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px - 5px);
    }
    .settings-merchant-field--deposit {
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 27px
      );
    }
    .settings-merchant-field--deposit-note {
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 27px + 12px * 1.2 + 30px
      );
    }
    /* 身份认证：55×34，占位图为内嵌 <img>（与 HTML assets 路径一致） */
    .settings-merchant-id-upload {
      position: absolute;
      width: 55px;
      height: 34px;
      padding: 0;
      margin: 0;
      border: none;
      border-radius: 0;
      background: transparent;
      cursor: pointer;
      z-index: 3;
      box-sizing: border-box;
      line-height: 0;
      display: block;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-merchant-id-upload img {
      display: block;
      width: 55px;
      height: 34px;
      object-fit: contain;
      pointer-events: none;
      user-select: none;
    }
    .settings-merchant-id-upload--1 {
      top: calc(555px + 15px * 1.2 + 20px - 5px);
      left: 128px;
    }
    .settings-merchant-id-upload--2 {
      top: calc(555px + 15px * 1.2 + 20px + 34px + 9px - 5px);
      left: 128px;
    }
    .settings-merchant-id-upload--3 {
      top: calc(268px + 15px * 1.2 + 51px - 8px);
      left: 128px;
    }
    /* 六、协议：勾选 15×15 @55,27；说明 10px @85,29；渐变容器 154×43 @119，距说明下 27px，内「继续」居中 */
    .settings-merchant-agree-check {
      position: absolute;
      left: 55px;
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 113px + 15px * 1.2 + 27px
      );
      width: 15px;
      height: 15px;
      padding: 0;
      margin: 0;
      box-sizing: border-box;
      border: 1px solid #000000;
      background: #ffffff;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-merchant-agree-check-mark {
      display: none;
      font-size: 10px;
      font-weight: 700;
      line-height: 1;
      color: #000000;
    }
    .settings-merchant-agree-check.is-checked .settings-merchant-agree-check-mark {
      display: block;
    }
    .settings-merchant-agree-text {
      position: absolute;
      left: 85px;
      right: 18px;
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 113px + 15px * 1.2 + 29px
      );
      margin: 0;
      padding: 0;
      font-size: 10px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      text-align: left;
      box-sizing: border-box;
      z-index: 4;
      pointer-events: none;
    }
    .settings-merchant-agree-cta {
      position: absolute;
      left: 119px;
      top: calc(
        555px + 15px * 1.2 + 30px + 12px * 1.2 + 30px + 12px * 1.2 + 16px + 15px * 1.2 + 113px + 15px * 1.2 + 29px + 10px * 1.2 + 27px
      );
      width: 154px;
      height: 43px;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      border-radius: 4px;
      background: linear-gradient(
        to right,
        rgba(191, 182, 218, 0.38) 0%,
        rgba(255, 255, 255, 0.18) 100%
      );
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 4;
      pointer-events: none;
    }
    .settings-merchant-agree-cta-inner {
      font-size: 14px;
      font-weight: 500;
      color: #222222;
      line-height: 1.2;
      text-align: center;
      pointer-events: none;
    }
    #page-settings-notify .settings-from-settings-back.sub-page-back,
    #page-settings-personal .settings-from-settings-back.sub-page-back,
    #page-settings-nickname .settings-from-settings-back.sub-page-back,
    #page-settings-cache .settings-from-settings-back.sub-page-back,
    #page-settings-help .settings-from-settings-back.sub-page-back,
    #page-settings-agreement .settings-from-settings-back.sub-page-back,
    #page-settings-privacy .settings-from-settings-back.sub-page-back,
    #page-settings-about .settings-from-settings-back.sub-page-back,
    #page-settings-delete-account .settings-from-settings-back.sub-page-back {
      position: absolute;
      left: 46px;
      top: 67px;
      transform: none !important;
      width: 9px;
      height: 17px;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      font-size: 0;
      line-height: 0;
      color: transparent;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    #page-settings-notify .settings-from-settings-back.sub-page-back img,
    #page-settings-personal .settings-from-settings-back.sub-page-back img,
    #page-settings-nickname .settings-from-settings-back.sub-page-back img,
    #page-settings-cache .settings-from-settings-back.sub-page-back img,
    #page-settings-help .settings-from-settings-back.sub-page-back img,
    #page-settings-agreement .settings-from-settings-back.sub-page-back img,
    #page-settings-privacy .settings-from-settings-back.sub-page-back img,
    #page-settings-about .settings-from-settings-back.sub-page-back img,
    #page-settings-delete-account .settings-from-settings-back.sub-page-back img {
      display: block;
      width: 9px;
      height: 17px;
      object-fit: contain;
      pointer-events: none;
      user-select: none;
    }
    .settings-notify-deco {
      position: absolute;
      left: 217px;
      bottom: 63px;
      width: 158px;
      height: 124px;
      z-index: 1;
      pointer-events: none;
      user-select: none;
    }
    .settings-notify-deco img {
      display: block;
      width: 158px;
      height: 124px;
      object-fit: contain;
    }
    .settings-notify-heading {
      margin: 0;
      padding: 64px 44px 0;
      text-align: center;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
    }
    .settings-notify-label-abs {
      position: absolute;
      margin: 0;
      padding: 0;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.2;
      color: #000000;
      text-align: left;
      pointer-events: none;
      user-select: none;
      max-width: 260px;
    }
    .notify-abs-l1 { left: 44px; top: 215px; }
    .notify-abs-l2 { left: 44px; top: 257px; }
    .notify-abs-l3 { left: 44px; top: 299px; }
    .notify-abs-reminder { left: 44px; top: 340px; }
    .notify-abs-sound { left: 60px; top: 385px; }
    .notify-abs-vibrate { left: 60px; top: 429px; }
    .settings-notify-toggle {
      position: absolute;
      right: 27px;
      width: 51px;
      height: 31px;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 2;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .settings-notify-toggle--pos1 { top: 247px; }
    .settings-notify-toggle--pos2 { top: 297px; }
    .settings-notify-toggle--pos3 { top: 375px; }
    .settings-notify-toggle--pos4 { top: 419px; }
    .settings-notify-toggle img {
      display: block;
      width: 51px;
      height: 31px;
      object-fit: contain;
      pointer-events: none;
      user-select: none;
    }
    /* 与首页 .tabbar 一致：字号与垂直位移 */
    .mall-bottom span {
      cursor: pointer;
      opacity: 0.7;
      text-align: center;
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      line-height: 1;
      color: #ffffff;
      transform: translateY(-2px);
      transition: font-size 0.12s ease, transform 0.12s ease, opacity 0.12s ease;
    }
    .mall-bottom span:active {
      font-size: 15px;
    }
    .mall-bottom span.active {
      opacity: 1;
      font-weight: 500;
      font-size: 18px;
      color: #ffffff;
      transform: translateY(5px);
    }

    /* 小物页：409×728，背景 #1C1C1C；列表与推荐共用 mall-card（小物主图 170×170，推荐 165×230） */
    #page-small.page.active { background: #1C1C1C; }
    .small-page {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      background: #1C1C1C;
      padding-bottom: 90px;
    }
    .small-top {
      position: relative;
      width: 360px;
      max-width: 100%;
      height: 155px;
      background: #1C1C1C;
      flex-shrink: 0;
      box-sizing: border-box;
    }
    .small-back {
      position: absolute;
      left: 20px;
      top: 72px;
      width: 13px;
      height: 25px;
      cursor: pointer;
      border: none;
      padding: 0;
      background: transparent;
      line-height: 0;
    }
    .small-back img {
      display: block;
      width: 13px;
      height: 25px;
      object-fit: contain;
    }
    .small-search-wrap {
      position: absolute;
      left: 50%;
      top: 67px;
      width: 280px;
      height: 34px;
      transform: translateX(-50%);
      background: #5a5a5a;
      border-radius: 17px;
      display: flex;
      align-items: center;
      padding: 0 40px 0 15px;
      box-sizing: border-box;
    }
    .small-search-input {
      flex: 1;
      min-width: 0;
      width: 100%;
      height: 100%;
      border: none;
      margin: 0;
      padding: 0 6px 0 0;
      box-sizing: border-box;
      font-size: 11px;
      font-weight: 400;
      font-family: inherit;
      color: #e8e8e8;
      background: transparent;
      outline: none;
      -webkit-appearance: none;
      appearance: none;
    }
    .small-search-input::placeholder {
      color: #9a9a9a;
      font-size: 11px;
    }
    .small-camera {
      position: absolute;
      right: 7px;
      top: 7px;
      width: 23px;
      height: 20px;
      opacity: 0.4;
    }
    .small-camera svg { width: 23px; height: 20px; display: block; }
    .small-search-link {
      position: absolute;
      right: 8px;
      top: 74px;
      font-size: 11px;
      color: #BC5A5A;
      cursor: pointer;
      text-decoration: none;
      border: none;
      padding: 0;
      background: transparent;
      font-family: inherit;
    }
    .small-nav-wrap {
      position: absolute;
      left: 50%;
      top: 119px;
      width: 327px;
      height: 36px;
      transform: translateX(-50%);
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      display: flex;
      align-items: center;
      background: #000;
      border-radius: 18px;
    }
    .small-nav-wrap::-webkit-scrollbar { display: none; }
    .small-nav-inner {
      display: flex;
      align-items: center;
      height: 36px;
      min-width: max-content;
      padding: 0;
    }
    .small-nav-item {
      flex-shrink: 0;
      height: 36px;
      min-width: 60px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      color: #BABABA;
      cursor: pointer;
      padding: 0 14px;
      border: none;
      background: transparent;
      border-radius: 20px;
      text-align: center;
      white-space: nowrap;
    }
    .small-nav-item.active {
      color: #000;
      background: #fff;
      border-radius: 20px;
      min-width: 60px;
      width: auto;
    }

    /* 购物车页：409x728，背景 #282828 */
    #page-cart.page.active { background: #282828; }
    .cart-page {
      flex: 1;
      display: flex;
      flex-direction: column;
      background: #282828;
      padding-bottom: 90px;
      position: relative;
    }
    .cart-top {
      height: 109px;
      position: relative;
      background: #282828;
      flex-shrink: 0;
    }
    .cart-back-circle {
      position: absolute;
      left: 24px;
      top: 85px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      background: #000;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      padding: 0;
    }
    .cart-back-circle svg {
      width: 9px;
      height: 17px;
      display: block;
    }
    .cart-manage {
      position: absolute;
      right: 19px;
      top: 90px;
      width: 70px;
      height: 36px;
      border: none;
      border-radius: 0;
      background: #000;
      color: #fff;
      font-size: 13px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }
    .cart-list {
      flex: 1;
      overflow-y: auto;
      background: #282828;
      /* 顶栏 109px + 上留白，首张商品列表距页顶 160px */
      padding-top: 51px;
      padding-bottom: 124px;
    }
    .cart-item {
      width: 360px;
      min-height: 138px;
      background: #282828;
      position: relative;
      border-bottom: 3px solid #3d3d3d;
      cursor: pointer;
    }
    .cart-item.selected {
      background: #1f1f1f;
    }
    .cart-shop-line {
      position: absolute;
      top: 24px;
      left: 40px;
      display: flex;
      align-items: center;
      gap: 15px;
      font-size: 13px;
      color: #fff;
    }
    .cart-shop-arrow {
      width: 4px;
      height: 7px;
      display: block;
    }
    .cart-product {
      position: absolute;
      left: 11px;
      top: 45px;
      display: flex;
      align-items: flex-start;
    }
    .cart-thumb {
      width: 80px;
      height: 64px;
      border-radius: 5px;
      background: #555;
      flex-shrink: 0;
      overflow: hidden;
    }
    .cart-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .cart-info {
      margin-left: 12px;
      text-align: left;
      color: #fff;
      max-width: 230px;
    }
    .cart-name {
      font-size: 13px;
      line-height: 1.2;
      margin-top: 0;
    }
    .cart-spec {
      margin-top: 10px;
      font-size: 13px;
      font-style: italic;
      color: #676363;
      line-height: 1.2;
    }
    .cart-price {
      margin-top: 3px;
      color: #fff;
      line-height: 1;
      display: flex;
      align-items: baseline;
      gap: 1px;
    }
    .cart-price .yen { font-size: 13px; }
    .cart-price .num { font-size: 13px; }
    .cart-qty {
      position: absolute;
      right: 46px;
      top: 83px;
      color: #7E7E7E;
      font-size: 13px;
      line-height: 1;
    }
    /* 萌图：距左 268px；顶 398+35；图高 172 */
    .cart-float-meng {
      position: absolute;
      left: 268px;
      top: 433px;
      z-index: 5;
      margin: 0;
      padding: 0;
      display: block;
      line-height: 0;
      pointer-events: none;
    }
    .cart-float-img {
      display: block;
      width: 190px;
      height: 172px;
      object-fit: fill;
      object-position: left top;
    }
    /* 选中订单卡片后显示「结算」圆钮：84×84，距左 266px、距顶 545px（相对购物车页） */
    .cart-checkout-btn {
      position: absolute;
      left: 266px;
      top: 545px;
      width: 84px;
      height: 84px;
      border: 0;
      padding: 0;
      margin: 0;
      background: transparent;
      cursor: pointer;
      z-index: 30;
      display: none;
      border-radius: 50%;
      overflow: hidden;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .cart-checkout-btn.is-visible {
      display: block;
    }
    .cart-checkout-btn img {
      display: block;
      width: 84px;
      height: 84px;
      object-fit: cover;
    }
    /* 管理模式下选中商品：与结算同位置显示「删除」84×84 */
    .cart-delete-btn {
      position: absolute;
      left: 266px;
      top: 545px;
      width: 84px;
      height: 84px;
      border: 0;
      padding: 0;
      margin: 0;
      background: transparent;
      cursor: pointer;
      z-index: 30;
      display: none;
      border-radius: 50%;
      overflow: hidden;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .cart-delete-btn.is-visible {
      display: block;
    }
    .cart-delete-btn img {
      display: block;
      width: 84px;
      height: 84px;
      object-fit: cover;
    }

    /* 聊天页：顶栏 110px 固定，以下区域由 .chat-list flex:1 占满并可滚动 */
    #page-chat-list.page.active {
      min-height: 0;
      overflow: hidden;
    }
    .chat-page {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      background: #fff;
      padding-bottom: 90px;
      width: 360px;
      max-width: 100%;
      margin: 0 auto;
      box-sizing: border-box;
    }
    .chat-top {
      width: 360px;
      max-width: 100%;
      height: 110px;
      margin: 0 auto;
      background: #fff;
      flex-shrink: 0;
      position: relative;
      overflow: hidden;
    }
    .chat-add-icon {
      position: absolute;
      left: 44px;
      top: 56px;
      width: 22px;
      height: 22px;
      cursor: pointer;
      z-index: 9999;
    }
    .chat-add-icon::before {
      content: '';
      position: absolute;
      inset: 0;
      background: url('../assets/chat-add-friend.png') center center / contain no-repeat;
    }
    .chat-title {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 16px;
      font-weight: 400;
      line-height: normal;
      letter-spacing: 1px;
      color: #000000;
      pointer-events: none;
      transform: translateY(11px);
    }
    .chat-top-snow {
      position: absolute;
      right: 12px;
      top: 10px;
      width: 115px;
      height: 75px;
      object-fit: contain;
      pointer-events: none;
      z-index: 2;
    }
    .chat-top-snow { display: none; }
    .chat-top-snow-svg {
      position: absolute;
      right: 12px;
      top: 10px;
      width: 115px;
      height: 75px;
      pointer-events: none;
      display: none;
    }
    .chat-top-glow {
      position: absolute;
      right: -6px;
      top: -7px;
      width: 155px;
      height: 118px;
      pointer-events: none;
      z-index: 3;
      opacity: 0.95;
    }
    .chat-top-glow,
    .chat-top-snow-svg { display: none; }
    /* 雪花 + 叠加层：按 110px 顶栏与 91px 基准比例 (110/91) 缩放 */
    .chat-top::before {
      content: '';
      position: absolute;
      right: -7px;
      top: 10px;
      width: 105px;
      height: 68px;
      background: url('../assets/chat-snowflake.png') center center / contain no-repeat;
      z-index: 2;
      pointer-events: none;
      opacity: 0.6;
      display: block;
    }
    .chat-top::after {
      content: '';
      position: absolute;
      right: -6px;
      top: -7px;
      width: 155px;
      height: 118px;
      background: linear-gradient(45deg, #95EEFC 0%, #D4F9FF 100%);
      z-index: 4;
      pointer-events: none;
      filter: blur(150px);
      mix-blend-mode: screen;
      opacity: 1;
      display: none;
    }
    .chat-top-overlay-white {
      position: absolute;
      right: -18px;
      top: 0;
      width: 273px;
      height: 178px;
      background: url('../assets/chat-overlay-white.png') center center / cover no-repeat;
      z-index: 3;
      pointer-events: none;
      opacity: 1;
    }
    .chat-top-overlay-blue2 {
      position: absolute;
      right: -18px;
      top: 0;
      width: 273px;
      height: 178px;
      background: url('../assets/chat-overlay-blue.png') center center / cover no-repeat;
      z-index: 4;
      pointer-events: none;
      opacity: 1;
    }
    .chat-top-overlay-white2 {
      position: absolute;
      right: -18px;
      top: 0;
      width: 273px;
      height: 178px;
      background: url('../assets/chat-overlay-white2.png') center center / cover no-repeat;
      z-index: 5;
      pointer-events: none;
      opacity: 1;
    }
    /* 置顶会话上方：占一行 360×55，内嵌与首页同风格的搜索框 */
    .chat-list-search-row {
      flex-shrink: 0;
      width: 360px;
      max-width: 100%;
      height: 55px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #ffffff;
      box-sizing: border-box;
      border-bottom: 1px solid #ebebeb;
    }
    #page-chat-list .chat-list-search {
      width: 330px;
      height: 34px;
      border-radius: 10px;
      background: #d9d9d9;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 12px;
      box-sizing: border-box;
    }
    #page-chat-list .chat-list-search input {
      border: none;
      outline: none;
      background: transparent;
      flex: 1;
      min-width: 0;
      width: 100%;
      font-size: 12px;
      color: #000000;
      text-align: center;
    }
    #page-chat-list .chat-list-search input::placeholder {
      color: #888888;
      text-align: center;
    }
    .chat-list {
      flex: 1 1 auto;
      min-height: 0;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      margin: 0 auto;
      padding: 0;
      position: relative;
      width: 360px;
      max-width: 100%;
      box-sizing: border-box;
      scrollbar-width: thin;
      scrollbar-color: #000000 #e8e8e8;
    }
    .chat-list-empty {
      margin: 0;
      padding: 48px 24px 32px;
      text-align: center;
      font-size: 14px;
      color: #9c9c9c;
      line-height: 1.5;
    }
    .chat-list::-webkit-scrollbar {
      width: 6px;
    }
    .chat-list::-webkit-scrollbar-track {
      background: #e8e8e8;
    }
    .chat-list::-webkit-scrollbar-thumb {
      background: #000000;
      border-radius: 3px;
    }
    .chat-list::before {
      content: '';
      position: absolute;
      right: -35px;
      top: 78px;
      width: 230px;
      height: 150px;
      background: url('../assets/chat-snowflake.png') center center / contain no-repeat;
      z-index: 1;
      pointer-events: none;
      opacity: 0.75;
      display: none;
    }
    .chat-row {
      position: relative;
      box-sizing: border-box;
      width: 100%;
      max-width: 360px;
      margin-left: auto;
      margin-right: auto;
    }
    .chat-row::after {
      content: '';
      position: absolute;
      left: 77px;
      right: 0;
      bottom: 0;
      width: auto;
      height: 1px;
      background: #DEDEDE;
    }
    /* 会话行统一 360×66，对方头像 55×55 */
    .chat-row-pinned {
      height: 66px;
      min-height: 66px;
      background: #EDEDED;
      margin-top: 0;
    }
    .chat-row-pinned .chat-avatar {
      left: 14px;
      top: 5px;
      width: 55px;
      height: 55px;
    }
    .chat-row-pinned .chat-name { left: 77px; top: 12px; font-size: 13px; }
    .chat-row-pinned .chat-preview { left: 77px; top: 36px; }
    .chat-row-pinned .chat-time { top: 13px; }
    .chat-row-normal,
    .chat-row-friend {
      height: 66px;
      min-height: 66px;
      background: #FFFFFF;
    }
    .chat-row-normal .chat-avatar,
    .chat-row-friend .chat-avatar {
      left: 14px;
      top: 5px;
      width: 55px;
      height: 55px;
    }
    .chat-row-normal .chat-name,
    .chat-row-friend .chat-name {
      left: 77px;
      top: 12px;
      font-size: 13px;
      color: #000000;
    }
    .chat-row-normal .chat-preview,
    .chat-row-friend .chat-preview { left: 77px; top: 36px; }
    .chat-row-normal .chat-time,
    .chat-row-friend .chat-time { top: 13px; }
    .chat-row-normal .chat-preview,
    .chat-row-friend .chat-preview,
    .chat-row-pinned .chat-preview { color: #B9AEAE; }
    .chat-avatar {
      position: absolute;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: #e0e0e0;
      overflow: hidden;
    }
    .chat-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .chat-name {
      position: absolute;
      color: #000;
    }
    .chat-preview {
      position: absolute;
      font-size: 11px;
      max-width: 200px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .chat-time {
      position: absolute;
      right: 12px;
      width: auto;
      min-width: 28px;
      max-width: 48px;
      height: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 10px;
      font-weight: 300;
      line-height: normal;
      letter-spacing: 0.06em;
      color: #000;
      opacity: 1;
      border-radius: 0;
    }

    /* ========== 单聊 360×800 ========== */
    #page-chat-single.page.active { background: #000000; }
    .cs-page {
      flex: 1;
      display: flex;
      flex-direction: column;
      background: #000000;
      position: relative;
      width: 360px;
      max-width: 100%;
      margin: 0 auto;
      min-height: 0;
      overflow-x: hidden;
      overflow-y: visible;
    }
    .cs-top {
      height: 141px;
      flex-shrink: 0;
      background: linear-gradient(180deg, #515666 0%, #7180C6 50%, #A8BAFB 100%);
      position: relative;
      overflow: visible;
      z-index: 10;
    }
    .cs-glass {
      position: absolute;
      left: 50%;
      margin-left: -168.5px;
      top: 61px;
      width: 337px;
      height: 60px;
      background: #000000;
      border-radius: 50px;
      overflow: visible;
      isolation: isolate;
    }
    .cs-back {
      position: absolute;
      left: 26px;
      top: 50%;
      transform: translateY(-50%);
      z-index: 4;
      width: 44px;
      height: 44px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      -webkit-tap-highlight-color: transparent;
    }
    .cs-back img {
      width: 11px;
      height: 20px;
      display: block;
      object-fit: contain;
    }
    .cs-title {
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 16px;
      font-weight: 400;
      color: #ffffff;
      letter-spacing: 1px;
      pointer-events: none;
      line-height: 1.2;
    }
    /* 省略号：距右 23px（在 28px 基础上再向右 5px） */
    .cs-dots-btn {
      position: absolute;
      right: 23px;
      bottom: 10px;
      z-index: 5;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #ffffff;
    }
    .cs-dots-btn .cs-dots {
      font-size: 38px;
      line-height: 1;
      display: block;
      pointer-events: none;
      font-weight: 300;
    }
    /* 497×89 黑色渐变条：断点 4% #1D1D1D、53% #000、100% #090909（均不透明）；图层模糊 50% → blur(25px)；父级横向裁切 */
    .cs-blur-rect {
      position: absolute;
      left: 50%;
      top: 120px;
      width: 437px;
      height: 78px;
      margin-left: -218.5px;
      background: linear-gradient(to bottom, #1d1d1d 4%, #000000 53%, #090909 100%);
      pointer-events: none;
      z-index: 200;
      filter: blur(25px);
      -webkit-filter: blur(25px);
      transform: translateZ(0);
      will-change: filter;
    }
    .cs-list {
      position: relative;
      z-index: 2;
      width: 360px;
      height: 622px;
      flex-shrink: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      background: linear-gradient(
        180deg,
        rgba(16, 22, 36, 1) 5%,
        rgba(17, 17, 17, 1) 15%,
        rgba(17, 17, 17, 1) 82%,
        rgba(30, 29, 29, 1) 90%,
        rgba(0, 0, 0, 0.5) 100%
      );
      padding-bottom: 78px;
    }
    .cs-list::-webkit-scrollbar { display: none; }
    .cs-date {
      text-align: center;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 12px;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.42);
      padding: 18px 16px 14px;
    }
    .cs-group { display: flex; flex-direction: column; }
    /* hidden 属性需压过 .cs-row 的 display:flex，否则单聊按会话隐藏的语音行仍会显示 */
    #page-chat-single .cs-group .cs-row[hidden] {
      display: none !important;
    }
    .cs-row {
      display: flex;
      align-items: flex-start;
    }
    .cs-row.left {
      justify-content: flex-start;
      align-items: center;
    }
    .cs-row.right { justify-content: flex-end; }
    /* 360×800 布局：头像 45×45；气泡宽约 268（≈305×360/409） */
    .cs-av-l {
      margin-left: 7px;
      width: 45px;
      height: 45px;
      border-radius: 50%;
      background: #c8c8c8;
      flex-shrink: 0;
    }
    .cs-av-r {
      margin-right: 5px;
      width: 45px;
      height: 45px;
      border-radius: 50%;
      background: #a8a8a8;
      flex-shrink: 0;
      align-self: flex-start;
    }
    .cs-col {
      display: flex;
      flex-direction: column;
      max-width: 268px;
      width: fit-content;
      position: relative;
    }
    .cs-row.left .cs-col { margin-left: 11px; }
    .cs-row.right .cs-col { margin-right: 5px; align-items: flex-end; }
    /* 气泡+时间成组：文档流纵向紧贴，避免 absolute + 字体行盒造成「假间距」 */
    .cs-msg-stub {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      row-gap: 0;
      column-gap: 0;
      margin: 0;
      padding: 0;
      width: fit-content;
      max-width: 268px;
    }
    .cs-row.left .cs-msg-stub {
      align-items: flex-start;
    }
    .cs-row.left .cs-msg-stub .cs-time {
      align-self: flex-end;
      width: 100%;
      text-align: right;
    }
    .cs-bubble {
      box-sizing: border-box;
      padding: 19px 23px;
      max-width: 268px;
      width: fit-content;
      word-break: break-word;
    }
    /* 对方消息：白底圆角矩形（与历史稿一致，宽度按 360 内 268 上限缩放） */
    .cs-bubble.left {
      padding: 11px 20px;
      min-width: 70px;
      min-height: 44px;
      border-radius: 30px;
      background: #ffffff;
      display: inline-flex;
      align-items: center;
      justify-content: flex-start;
      width: fit-content;
      max-width: 268px;
      box-sizing: border-box;
    }
    .cs-bubble.left .cs-txt {
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 12px;
      font-weight: 400;
      color: #000000;
      text-align: left;
      line-height: 1.35;
      letter-spacing: 0;
    }
    .cs-bubble.right.media {
      min-width: 176px;
      min-height: 106px;
      max-width: 268px;
      padding: 0;
      border-radius: 30px;
      background: linear-gradient(180deg, #ffffff 0%, #ece6ff 45%, #c4b8f0 100%);
    }
    /* 单聊「我」文字气泡：浅蓝→薰衣草横向渐变胶囊；随文字宽高自适应 */
    .cs-bubble.right.cs-bubble-me {
      padding: 10px 16px;
      min-height: 32px;
      border-radius: 9999px;
      background-color: transparent;
      background-image: linear-gradient(
        90deg,
        #f5f8ff 0%,
        #e8eeff 42%,
        #c5cef0 100%
      );
      background-repeat: no-repeat;
      background-size: 100% 100%;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      overflow: hidden;
      width: fit-content;
      max-width: 268px;
    }
    .cs-bubble.right.cs-bubble-me .cs-txt {
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 12px;
      font-weight: 400;
      color: #1a1a1a;
      line-height: 1.4;
      text-align: left;
    }
    /* 语音消息：与渐变气泡同系的轻量控件（无原生 controls） */
    .cs-bubble.right.cs-bubble-me.cs-bubble-me-voice {
      padding: 7px 12px 7px 10px;
      min-height: 0;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-wrap {
      position: relative;
      display: flex;
      align-items: center;
      gap: 10px;
      max-width: min(155px, calc(100% - 8px));
      min-height: 28px;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-audio-el {
      position: absolute;
      width: 0;
      height: 0;
      opacity: 0;
      pointer-events: none;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-player {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 1;
      min-width: 0;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play {
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border: 0;
      border-radius: 50%;
      padding: 0;
      margin: 0;
      cursor: pointer;
      position: relative;
      -webkit-tap-highlight-color: transparent;
      background: linear-gradient(160deg, rgba(255, 255, 255, 0.92) 0%, rgba(236, 240, 255, 0.75) 100%);
      box-shadow:
        0 1px 2px rgba(76, 92, 160, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
      transition: transform 0.12s ease, box-shadow 0.12s ease;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play:hover {
      box-shadow:
        0 2px 6px rgba(76, 92, 160, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play:active {
      transform: scale(0.94);
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play:focus-visible {
      outline: 2px solid rgba(91, 108, 180, 0.45);
      outline-offset: 2px;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play::before {
      content: '';
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(calc(-50% + 1px), -50%);
      border-style: solid;
      border-width: 5px 0 5px 8px;
      border-color: transparent transparent transparent #4a5a9a;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play.is-playing::before {
      border: none;
      width: 3px;
      height: 10px;
      left: 9px;
      transform: translateY(-50%);
      border-radius: 1px;
      background: #4a5a9a;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play::after {
      content: none;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-play.is-playing::after {
      content: '';
      position: absolute;
      right: 9px;
      top: 50%;
      transform: translateY(-50%);
      width: 3px;
      height: 10px;
      border-radius: 1px;
      background: #4a5a9a;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-bar {
      flex: 1;
      min-width: 48px;
      max-width: 96px;
      height: 4px;
      border-radius: 999px;
      background: rgba(74, 90, 154, 0.14);
      overflow: hidden;
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-bar-fill {
      display: block;
      height: 100%;
      width: 0%;
      border-radius: 999px;
      background: linear-gradient(90deg, #7a8cc4 0%, #5a6bb0 55%, #4d5fa3 100%);
      box-shadow: 0 0 8px rgba(90, 107, 176, 0.25);
    }
    .cs-bubble.right.cs-bubble-me .cs-voice-dur {
      flex-shrink: 0;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 11px;
      font-weight: 400;
      color: rgba(58, 68, 118, 0.72);
      font-variant-numeric: tabular-nums;
      letter-spacing: 0.01em;
      min-width: 2.25em;
      text-align: right;
    }
    /* 时间：文档流紧跟气泡；行高=字号，避免行盒多出一块「空」 */
    .cs-time {
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-weight: 300;
      font-size: 10px;
      letter-spacing: 0;
      color: rgba(255, 255, 255, 0.42);
      white-space: nowrap;
      margin: 0;
      padding: 0;
      border: 0;
      line-height: 10px;
      min-height: 10px;
      display: block;
      box-sizing: border-box;
      text-align: right;
    }
    .cs-row.right .cs-msg-stub .cs-time {
      width: 100%;
    }
    .cs-row.gap13 { margin-top: 13px; }
    .cs-row.gap16 { margin-top: 16px; }
    /* 底部：渐变输入条 + 条内左侧链接图标 + 条右侧图标 */
    .cs-input-zone {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      width: 360px;
      max-width: 100%;
      margin: 0 auto;
      height: 62px;
      pointer-events: none;
      z-index: 8;
    }
    .cs-input-bar {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 62px;
      border-radius: 31px;
      background: linear-gradient(180deg, #ffffff 0%, #1d1d1d 100%);
      overflow: hidden;
    }
    /* 输入条内左侧：链接图标（原麦克风位） */
    .cs-input-link {
      position: absolute;
      left: 26px;
      top: 50%;
      transform: translateY(-50%);
      width: 28px;
      height: 28px;
      object-fit: contain;
      pointer-events: none;
    }
    .cs-input-right {
      position: absolute;
      right: 37px;
      bottom: 17px;
      width: 28px;
      height: 28px;
      pointer-events: none;
      z-index: 3;
    }
    .cs-input-right img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
    }
    .cs-input-mic-hit {
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      pointer-events: auto;
      -webkit-tap-highlight-color: transparent;
    }
    .cs-input-mic-hit.is-recording img {
      filter: drop-shadow(0 0 6px rgba(255, 68, 68, 0.95));
    }
    .cs-rec-hint {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 72px;
      margin: 0;
      padding: 0;
      text-align: center;
      font-size: 12px;
      font-weight: 400;
      color: rgba(255, 255, 255, 0.88);
      line-height: 1.3;
      pointer-events: none;
      z-index: 9;
      display: none;
    }
    .cs-page.is-voice-recording .cs-rec-hint {
      display: block;
    }
    /* 单聊：只保留底部链接图标，不展示点击展开的「语言/视频」菜单与相关弹层 */
    #page-chat-single .cs-link-pop,
    #page-chat-single .cs-sheet-overlay {
      display: none !important;
    }
    #page-chat-single .cs-input-link-hit {
      pointer-events: none;
      cursor: default;
    }
    .cs-input-link-hit {
      position: absolute;
      left: 18px;
      top: 50%;
      transform: translateY(-50%);
      width: 44px;
      height: 44px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      pointer-events: auto;
      z-index: 3;
      -webkit-tap-highlight-color: transparent;
    }
    .cs-input-link-hit .cs-input-link {
      position: static;
      transform: none;
      pointer-events: none;
    }
    /* 点链接后出现：152×117 椭圆；底随输入条贴底后上移 26px（原底 53 → 27） */
    .cs-link-pop {
      position: absolute;
      left: -24px;
      bottom: 27px;
      width: 152px;
      height: 117px;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.56);
      display: none;
      flex-direction: column;
      overflow: hidden;
      z-index: 55;
      box-sizing: border-box;
    }
    .cs-link-pop.is-open {
      display: flex;
    }
    .cs-link-pop-half {
      flex: 1;
      min-height: 0;
      width: 100%;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      color: #ffffff;
      font-size: 13px;
      font-weight: 700;
      line-height: 1.2;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      font-family: inherit;
      -webkit-tap-highlight-color: transparent;
    }
    .cs-link-pop-half:active {
      background: rgba(255, 255, 255, 0.08);
    }
    .cs-sheet-overlay {
      position: absolute;
      inset: 0;
      z-index: 70;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
      box-sizing: border-box;
    }
    .cs-sheet-overlay.is-open {
      display: flex;
    }
    .cs-sheet-scrim {
      position: absolute;
      inset: 0;
      margin: 0;
      padding: 0;
      border: none;
      background: rgba(0, 0, 0, 0.45);
      cursor: pointer;
    }
    .cs-sheet-panel {
      position: relative;
      z-index: 1;
      width: 280px;
      max-width: 100%;
      padding: 20px 18px 16px;
      border-radius: 16px;
      background: #2a2a2a;
      color: #fff;
      text-align: center;
      box-sizing: border-box;
    }
    .cs-sheet-title {
      margin: 0 0 10px;
      font-size: 16px;
      font-weight: 700;
    }
    .cs-sheet-desc {
      margin: 0 0 16px;
      font-size: 13px;
      color: #ccc;
      line-height: 1.45;
    }
    .cs-sheet-close {
      margin: 0 auto;
      padding: 8px 20px;
      border: none;
      border-radius: 20px;
      background: #ffffff;
      color: #111;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      font-family: inherit;
    }

    /* 好友消息设置 409×728：底层水纹 + 渐变 + 返回与对方头像 */
    #page-friend-msg-settings.page {
      flex-direction: column;
      overflow: hidden;
      background: #515666;
    }
    #page-friend-msg-settings.page.active {
      background: #515666;
    }
    .fms-page {
      position: relative;
      width: 360px;
      max-width: 100%;
      height: 100%;
      min-height: 0;
      flex: 1;
      margin: 0 auto;
      overflow: hidden;
      box-sizing: border-box;
    }
    /* 第一层：水纹/视频位图 409×728，不透明度 20%，略模糊以便透出 */
    .fms-bg-media {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      max-width: 360px;
      margin: 0 auto;
      background-image: url(../assets/friend-settings-water.png);
      background-size: 360px 800px;
      background-position: center top;
      background-repeat: no-repeat;
      z-index: 0;
      filter: blur(5px);
      -webkit-filter: blur(5px);
      opacity: 0.2;
      pointer-events: none;
    }
    .fms-bg-media.fms-bg-media--custom {
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
      opacity: 0.34;
      filter: blur(4px);
      -webkit-filter: blur(4px);
    }
    /* 第二层：线性渐变 从下到上 0%#515666 → 50%/100%#7180C6 */
    .fms-bg-gradient {
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(to top, #515666 0%, #7180C6 50%, #7180C6 100%);
      pointer-events: none;
    }
    /* 装饰正圆 100×100：黑 0% 30% 透明 → 100% 全透明 */
    .fms-orb {
      position: absolute;
      width: 100px;
      height: 100px;
      border-radius: 50%;
      pointer-events: none;
      z-index: 2;
      box-sizing: border-box;
    }
    /* 自上而下渐变，(47, 468) */
    .fms-orb--tb {
      left: 47px;
      top: 468px;
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 100%);
    }
    /* 从左到右渐变，(136, 296) */
    .fms-orb--lr {
      left: 136px;
      top: 296px;
      background: linear-gradient(to right, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 100%);
    }
    .fms-back {
      position: absolute;
      left: 38px;
      top: 64px;
      width: 60px;
      height: 60px;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .fms-back img {
      width: 60px;
      height: 60px;
      display: block;
      object-fit: contain;
    }
    /* 对方头像：99×99 正圆 */
    .fms-peer-avatar {
      position: absolute;
      left: 231px;
      top: 52px;
      width: 99px;
      height: 99px;
      object-fit: cover;
      z-index: 4;
      background: #6a6a6a;
      border-radius: 50%;
    }
    .fms-toolbar {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 5;
    }
    .fms-action {
      position: absolute;
      border: none;
      margin: 0;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      font-family: inherit;
      box-sizing: border-box;
      color: #ffffff;
      text-align: center;
      pointer-events: auto;
      -webkit-tap-highlight-color: transparent;
      line-height: 1;
    }
    /* 查看全部：159×49，黑 42%，字水平垂直居中 */
    .fms-btn-viewall {
      left: 11px;
      top: 247px;
      width: 159px;
      height: 49px;
      border-radius: 24px;
      background: rgba(0, 0, 0, 0.42);
      font-size: 15px;
      font-weight: 400;
    }
    /* 背景：149×60，黑，字水平垂直居中 */
    .fms-btn-bgset {
      left: 211px;
      top: 290px;
      width: 149px;
      height: 60px;
      border-radius: 50px;
      background: #000000;
      font-size: 15px;
      font-weight: 400;
    }
    /* 消息静音：180×49，黑，字水平垂直居中 */
    .fms-btn-mute {
      left: 0;
      top: 404px;
      width: 180px;
      height: 49px;
      border-radius: 20px;
      background: #000000;
      font-size: 15px;
      font-weight: 400;
    }
    /* 清空聊天：180×49，黑 52%，字水平垂直居中 */
    .fms-btn-clear {
      left: 180px;
      top: 404px;
      width: 180px;
      height: 49px;
      border-radius: 20px;
      background: rgba(0, 0, 0, 0.52);
      font-size: 15px;
      font-weight: 400;
    }
    /* 置顶聊天：159×49，黑，水平居中 */
    .fms-btn-pin {
      left: 50%;
      /* 置顶聊天容器 208×49，整体下移 6px */
      top: 472px;
      width: 208px;
      height: 49px;
      margin-left: -104px;
      border-radius: 20px;
      background: #000000;
      font-size: 15px;
      font-weight: 400;
    }
    /* 投诉：339×61，黑，字水平垂直居中 */
    .fms-btn-complain {
      left: 50%;
      /* 投诉按钮下移 20px */
      top: 666px;
      width: 339px;
      height: 61px;
      margin-left: -169.5px;
      border-radius: 30px;
      background: #000000;
      font-size: 16px;
      font-weight: 400;
    }

    /* 商品详情页 409×1600 + 底部固定操作栏 57px 高 */
    #page-product-detail.page {
      flex-direction: column;
      overflow: hidden;
      background: #f3f3f3;
    }
    #page-product-detail.page.active {
      background: #f3f3f3;
    }
    .pd-scroll {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
      /* 底部固定栏高度，避免内容滚到栏下 */
      padding-bottom: 57px;
      box-sizing: border-box;
    }
    .pd-wrap {
      width: 360px;
      max-width: 100%;
      min-height: 1408px;
      margin: 0 auto;
      position: relative;
      background: #f3f3f3;
      box-sizing: border-box;
      padding-bottom: 24px;
    }
    /* 底栏：固定悬浮在详情页底部，高度与主操作钮 57px 对齐 */
    #page-product-detail.page .pd-bottom-bar {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      max-width: 360px;
      margin: 0 auto;
      height: 57px;
      z-index: 30;
      background: #f3f3f3;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      box-sizing: border-box;
      padding: 0 0 0 4px;
      box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.06);
      isolation: isolate;
    }
    .pd-bottom-icons {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-evenly;
      height: 100%;
    }
    .pd-bottom-icon-btn {
      flex: 1;
      border: none;
      background: transparent;
      padding: 0 2px;
      margin: 0;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100%;
    }
    .pd-bottom-icon-btn img {
      display: block;
      height: 40px;
      width: auto;
      max-width: 100%;
      max-height: 48px;
      object-fit: contain;
      /* 与白底 PNG 融合进 #F3F3F3，黑色线条仍清晰 */
      opacity: 0.88;
      mix-blend-mode: multiply;
    }
    .pd-bottom-actions {
      display: flex;
      flex-direction: row;
      align-items: center;
      flex-shrink: 0;
    }
    .pd-btn-cart {
      width: 104px;
      height: 57px;
      border: none;
      margin: 0;
      padding: 0;
      background: #e9aea9;
      color: #ffffff;
      font-size: 15px;
      font-weight: 500;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      line-height: 1.2;
      font-family: inherit;
      box-sizing: border-box;
    }
    .pd-btn-buy {
      width: 172px;
      height: 57px;
      border: none;
      margin: 0;
      padding: 0;
      background: #111111;
      color: #ffffff;
      font-size: 16px;
      font-weight: 500;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      line-height: 1.2;
      font-family: inherit;
      box-sizing: border-box;
    }
    /* 返回：52×52 图钮，距页顶 60px；分享仍为圆钮 */
    .pd-back-wrap {
      position: absolute;
      left: 24px;
      top: 60px;
      z-index: 10;
    }
    .pd-back-btn {
      display: block;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      line-height: 0;
      -webkit-tap-highlight-color: transparent;
    }
    .pd-back-btn img {
      display: block;
      width: 52px;
      height: 52px;
      object-fit: contain;
    }
    /* 与 .pd-back-wrap 52×52@top:60 垂直居中对齐（中心约 86px → 42px 高按钮 top:65） */
    .pd-top-actions {
      position: absolute;
      right: 24px;
      top: 65px;
      z-index: 10;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: flex-end;
    }
    .pd-circle-btn {
      border: none;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.35);
      color: #fff;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      flex-shrink: 0;
      box-sizing: border-box;
    }
    .pd-circle-btn--sm {
      width: 36px;
      height: 36px;
      font-size: 18px;
      line-height: 1;
    }
    .pd-circle-btn--lg {
      width: 42px;
      height: 42px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .pd-circle-btn--lg img {
      width: 20px;
      height: 20px;
      object-fit: contain;
      object-position: center center;
      display: block;
      margin: 0;
      flex-shrink: 0;
      opacity: 0.65;
    }
    /* 主图：横向滑动多图，scroll-snap */
    .pd-hero {
      margin-left: auto;
      margin-right: auto;
      margin-top: 0;
      width: 360px;
      max-width: 100%;
      height: 542px;
      overflow-x: auto;
      overflow-y: hidden;
      display: flex;
      flex-flow: row nowrap;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scroll-behavior: smooth;
      background: #e0e0e0;
      border-radius: 4px;
      scrollbar-width: none;
    }
    .pd-hero::-webkit-scrollbar {
      display: none;
    }
    .pd-hero-slide {
      flex: 0 0 100%;
      min-width: 100%;
      height: 100%;
      scroll-snap-align: start;
      box-sizing: border-box;
    }
    .pd-hero-slide img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    /* 商品标题：正常（非斜体）；距主图底 14px（较原 18px 整体上移 4px，与包邮/发货/分割线/劵后价同步） */
    .pd-title {
      margin-left: 32px;
      margin-right: 24px;
      margin-top: 14px;
      margin-bottom: 0;
      font-size: 15px;
      font-weight: 400;
      font-style: normal;
      line-height: 1.45;
      color: #000000;
    }
    /* 标题底到发货行顶 6px（较原 10px 整体上移 4px，含劵后价流）；整行距左 35px */
    .pd-ship-row {
      margin-left: 35px;
      margin-top: 6px;
      margin-bottom: 0;
      margin-right: 24px;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      column-gap: 9px;
      row-gap: 4px;
      font-size: 12px;
      color: #000000;
      letter-spacing: 1px;
    }
    .pd-city,
    .pd-pipe {
      font-size: 12px;
      font-weight: 400;
      color: #000000;
    }
    /* 劵后价区：跟在发货地行下方，间隔 6px；与左侧 33px 对齐；字色 #ce4031 的 alpha=0.85（仅颜色，不用 opacity） */
    .pd-coupon-row {
      position: relative;
      margin: 6px 0 0 33px;
      padding: 0;
      display: flex;
      flex-direction: row;
      align-items: baseline;
      flex-wrap: nowrap;
      gap: 4px;
      box-sizing: border-box;
      pointer-events: auto;
      font-style: italic;
    }
    /* 分割线：随劵后价流式排版，距价行底 10px */
    .pd-review-divider {
      width: 360px;
      max-width: 100%;
      height: 1px;
      background: #e0e0e0;
      border: none;
      margin: 10px 0 0;
      padding: 0;
      pointer-events: none;
      box-sizing: border-box;
    }
    /* 商品评价标题：与分割线下沿 13px；与标签区同左右 12px 内边距 */
    .pd-review-heading-row {
      margin: 13px 12px 0;
      padding: 0;
      box-sizing: border-box;
    }
    .pd-review-heading {
      margin: 0;
      padding: 0;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      color: #000000;
    }
    /* 评价：首个标签距页左 39px；筛选 4 列；标签横向间隔 12px；未选中 #D0D0D0、选中 #5F655D */
    .pd-review-tabs-wrap {
      margin: 6px 12px 0 39px;
      display: grid;
      grid-template-columns: repeat(4, minmax(66px, auto));
      column-gap: 12px;
      row-gap: 4px;
      padding: 0;
      align-items: start;
      box-sizing: border-box;
      overflow-x: auto;
      overflow-y: visible;
      scrollbar-width: none;
      -webkit-overflow-scrolling: touch;
    }
    .pd-review-tabs-wrap::-webkit-scrollbar {
      display: none;
    }
    .pd-review-tablist {
      display: contents;
    }
    .pd-review-tab {
      min-width: 66px;
      width: auto;
      height: 28px;
      box-sizing: border-box;
      border: none;
      border-radius: 7px;
      background: #d0d0d0;
      color: #000000;
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
      display: inline-flex;
      flex-direction: row;
      align-items: center;
      justify-content: flex-start;
      gap: 6px;
      text-align: left;
      padding: 0 9px;
      margin: 0;
      cursor: pointer;
      font-family: inherit;
      flex-shrink: 0;
      justify-self: start;
      font-style: normal;
    }
    .pd-review-tab-label {
      flex-shrink: 0;
      font-size: 12px;
      font-weight: 400;
    }
    .pd-review-tab-num {
      flex-shrink: 0;
      font-size: 12px;
      font-weight: 400;
    }
    .pd-review-tab[aria-selected="true"] {
      background: #5f655d;
      color: #ffffff;
    }
    .pd-review-tab:focus-visible {
      outline: 2px solid rgba(0, 0, 0, 0.35);
      outline-offset: 1px;
    }
    /* 评价列表：左右留白使内宽≥324（160×2+4 间距） */
    .pd-review-list {
      margin: 14px 18px 24px 18px;
      padding: 0;
      max-width: calc(100% - 36px);
      box-sizing: border-box;
    }
    .pd-review-hint {
      margin: 8px 18px 20px;
      padding: 0;
      font-size: 11px;
      font-weight: 400;
      line-height: 1.45;
      color: #666666;
    }
    .pd-review-item {
      list-style: none;
      margin: 0 0 14px;
      padding: 0 0 12px;
      border-bottom: 1px solid #ececec;
    }
    .pd-review-item:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .pd-review-item-head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      margin-bottom: 6px;
    }
    .pd-review-avatar {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      object-fit: cover;
      background: #e8e8e8;
      flex-shrink: 0;
    }
    .pd-review-nick {
      font-size: 14px;
      font-weight: 500;
      color: #333;
      max-width: 140px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .pd-review-stars {
      font-size: 9px;
      letter-spacing: 0.5px;
      color: #e8a010;
      line-height: 1;
    }
    .pd-review-date {
      margin-left: auto;
      font-size: 9px;
      color: #b0b0b0;
      flex-shrink: 0;
    }
    .pd-review-text {
      margin: 0 0 6px;
      padding: 0;
      font-size: 15px;
      font-weight: 400;
      line-height: 1.45;
      color: #222;
      word-break: break-word;
    }
    /* 评价配图：160×160，一行两张（文字在图上方由 DOM 顺序保证） */
    .pd-review-pics {
      display: grid;
      grid-template-columns: 160px 160px;
      gap: 4px;
      margin: 0 0 6px;
      justify-content: start;
    }
    .pd-review-pics img,
    .pd-review-pics video {
      width: 160px;
      height: 160px;
      max-width: 160px;
      max-height: 160px;
      object-fit: cover;
      border-radius: 4px;
      background: #f0f0f0;
      display: block;
    }
    .pd-review-follow {
      margin: 6px 0 0;
      padding: 6px 8px;
      background: #f7f7f7;
      border-radius: 4px;
      font-size: 9px;
      line-height: 1.4;
      color: #444;
    }
    .pd-review-follow-label {
      color: #888;
      margin-right: 4px;
    }
    .pd-coupon-label {
      position: static;
      font-size: 20px;
      font-style: italic;
      font-weight: 400;
      color: rgba(206, 64, 49, 0.85);
      line-height: 1;
      margin: 0;
      padding: 0;
    }
    .pd-price-coupon {
      position: static;
      font-size: 15px;
      font-style: italic;
      font-weight: 400;
      color: rgba(206, 64, 49, 0.85);
      line-height: 1;
      margin: 0;
      padding: 0;
    }
    /* 发货时间：相对主图区定位；与流式区块整体上移 4px（原末尾 +7px 改为 +3px） */
    .pd-ship-window {
      position: absolute;
      left: 282px;
      top: calc(29px + 542px + 25px - 17px + 10px + 10px + 3px);
      font-size: 11px;
      font-weight: 400;
      color: #b9aeae;
      line-height: 1.3;
      margin: 0;
      padding: 0;
      max-width: 130px;
    }
    /* 退换货：与发货时间同步整体上移 4px */
    .pd-return-policy {
      position: absolute;
      left: 247px;
      top: calc(29px + 542px + 25px - 17px + 11px * 1.3 + 1px + 10px + 10px + 3px);
      font-size: 12px;
      font-weight: 400;
      color: #b9aeae;
      line-height: 1.3;
      margin: 0;
      padding: 0;
      max-width: 165px;
    }

    /* 店铺客服页（商品详情-客服）：409×728 #282828 */
    #page-official-service.page {
      flex-direction: column;
      overflow: hidden;
      background: #282828;
      color: #fff;
    }
    #page-official-service.page.active {
      background: #282828;
    }
    .shop-service-board {
      position: relative;
      width: 360px;
      max-width: 100%;
      height: 800px;
      min-height: 800px;
      margin: 0 auto;
      box-sizing: border-box;
      background: #282828;
      flex-shrink: 0;
    }
    /* 返回 9×17，距左 42、距顶 64（切图 shop-service-back.png 白箭头，勿再 invert） */
    .shop-service-back {
      position: absolute;
      left: 42px;
      top: 74px;
      z-index: 10;
      width: 9px;
      height: 17px;
      padding: 14px 20px;
      margin: -14px 0 0 -20px;
      border: none;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      -webkit-tap-highlight-color: transparent;
    }
    .shop-service-back img {
      width: 9px;
      height: 17px;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }
    /* 商家名称：水平居中、13px 白字，距顶 63px（较原 57px 下移 6px） */
    .shop-service-shop-name {
      position: absolute;
      left: 50%;
      top: 67px;
      transform: translateX(-50%);
      width: auto;
      max-width: min(240px, calc(100% - 100px));
      height: auto;
      min-height: 16px;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-size: 14px;
      line-height: 17px;
      font-weight: 400;
      color: #ffffff;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      text-align: center;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      pointer-events: none;
    }
    /* 底部麦克风：较原底再上移 6px；➕ 另上移 4px 见 .shop-service-add */
    .shop-service-mic {
      position: absolute;
      left: 14px;
      top: auto;
      bottom: 11px;
      width: 32px;
      height: 32px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 11;
      display: flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    .shop-service-mic img {
      width: 20px;
      height: 26px;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }
    .shop-service-mic.is-recording img {
      opacity: 0.9;
      filter: drop-shadow(0 0 6px rgba(255, 68, 68, 0.95));
    }
    .shop-service-board.is-recording .shop-service-input::placeholder {
      color: #c44;
    }
    /* 输入框：距左 51、与麦克同底再上移 6px */
    .shop-service-input {
      position: absolute;
      left: 51px;
      top: auto;
      bottom: 11px;
      width: 299px;
      height: 38px;
      box-sizing: border-box;
      border: none;
      border-radius: 11px;
      background: #d9d9d9;
      padding: 0 14px;
      font-size: 14px;
      color: #111;
      outline: none;
      -webkit-appearance: none;
      appearance: none;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
    }
    .shop-service-input::placeholder {
      color: #888;
    }
    /* 加号：与输入条同底再上移 6px，并相对麦克/输入额外上移 4px */
    .shop-service-add {
      position: absolute;
      left: auto;
      right: 14px;
      top: auto;
      bottom: 11px;
      width: 31px;
      height: 30px;
      padding: 0;
      margin: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      z-index: 11;
      display: flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
      box-sizing: border-box;
      transform: translateY(-4px);
      -webkit-tap-highlight-color: transparent;
    }
    .shop-service-add img {
      width: 31px;
      height: 30px;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }

    /* 商家信息页 409×728 #2F2F2D */
    #page-merchant.page {
      flex-direction: column;
      overflow: hidden;
      background: #2F2F2D;
      color: #D2D2D2;
    }
    #page-merchant.page.active {
      background: #2F2F2D;
    }
    .merchant-page {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      max-width: 360px;
      margin: 0 auto;
      width: 100%;
      position: relative;
      background: #2F2F2D;
      box-sizing: border-box;
    }
    /* 顶部固定 409×200（较 195 下延 5px，内部内容整体下移 5px） */
    .merchant-header {
      flex-shrink: 0;
      width: 100%;
      height: 200px;
      position: relative;
      z-index: 5;
      background: #2F2F2D;
      box-sizing: border-box;
      overflow: visible;
    }
    /* 店铺顶栏装饰字标：91×22，在搜索框之上 */
    .merchant-shop-wordmark {
      position: absolute;
      left: 243px;
      top: 162px;
      width: 91px;
      height: 22px;
      object-fit: contain;
      pointer-events: none;
      z-index: 12;
      display: block;
    }
    .merchant-back {
      position: absolute;
      left: 17px;
      top: 54px;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      line-height: 0;
    }
    .merchant-back img {
      display: block;
      height: 17px;
      width: auto;
      filter: brightness(0);
    }
    /* 商家头像：正方形、无圆角（较 87 下移 5px） */
    .merchant-avatar {
      position: absolute;
      left: 25px;
      top: 92px;
      width: 50px;
      height: 50px;
      border-radius: 0;
      object-fit: cover;
      background: #444;
    }
    /* 关注：76×29 #450F0A（较 91px 下移 5px） */
    .merchant-follow {
      position: absolute;
      right: 12px;
      top: 96px;
      width: 76px;
      height: 29px;
      padding: 0;
      border: none;
      border-radius: 0;
      background: #450F0A;
      color: #ffffff;
      font-size: 12px;
      font-weight: 400;
      cursor: pointer;
      font-family: inherit;
      display: flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      line-height: 1;
    }
    /* 店名、评价星、分数、粉丝（较 90px 下移 5px） */
    .merchant-info-col {
      position: absolute;
      left: 104px;
      top: 95px;
      right: 96px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      text-align: left;
    }
    .merchant-name {
      margin: 0;
      padding: 0;
      font-size: 12px;
      color: #D2D2D2;
      font-weight: 400;
      line-height: 1.2;
    }
    /* 店名与评价行间隔 9px；评价星与 x.x 顶部对齐（与星图最高处同行） */
    .merchant-rating-line {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: flex-start;
      margin-top: 9px;
      gap: 23px;
    }
    .merchant-stars-row {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: flex-start;
      gap: 4px;
      max-width: calc(6 * 14px + 5 * 4px);
    }
    /* 评价星：14×14 显示（源图缩放适配） */
    .merchant-star {
      width: 14px;
      height: 14px;
      flex-shrink: 0;
      border-radius: 0;
      background-color: transparent;
      background-image: url(../assets/merchant-rating-star.png);
      background-size: 14px 14px;
      background-repeat: no-repeat;
      background-position: center;
      overflow: hidden;
    }
    .merchant-fans {
      margin-top: 5px;
      font-size: 10px;
      color: #958C8C;
      line-height: 1.2;
    }
    /* 评分数字 14px #DD9595，与评价星同一行、顶对齐 */
    .merchant-score {
      margin: 0;
      padding: 0;
      font-size: 14px;
      color: #DD9595;
      font-weight: 400;
      line-height: 14px;
      flex-shrink: 0;
    }
    /* 搜索框 320×30 #EEEEEE，左右居中，圆角 14px（低于字标图层） */
    .merchant-search {
      position: absolute;
      left: 50%;
      bottom: 12px;
      width: 320px;
      max-width: calc(100% - 24px);
      height: 30px;
      margin: 0;
      transform: translateX(-50%);
      background: #EEEEEE;
      border-radius: 14px;
      box-sizing: border-box;
      z-index: 6;
    }
    .merchant-search-icon {
      position: absolute;
      left: 13px;
      top: 9px;
      width: 17px;
      height: 17px;
      display: block;
      object-fit: contain;
    }
    /* 店铺页列表顶图 360×605：底层，商品网格叠在其上可交互 */
    .merchant-shop-banner {
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      display: block;
      width: 360px;
      max-width: 100%;
      height: 605px;
      margin: 0;
      object-fit: cover;
      object-position: center top;
      z-index: 0;
      pointer-events: none;
      flex-shrink: 0;
    }
    .merchant-scroll {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
      position: relative;
      background-color: #2F2F2D;
      isolation: isolate;
    }
    /* 商品区 margin-top + padding-top 与顶图同高：与 sticky 横幅重叠时卡片始终在图之上 */
    .merchant-product-grid {
      position: relative;
      z-index: 2;
      margin-top: 0;
      padding: 16px 11px 32px;
      display: grid;
      grid-template-columns: 160px 160px;
      column-gap: 18px;
      justify-content: center;
      row-gap: 20px;
      max-width: 360px;
      margin-left: auto;
      margin-right: auto;
      box-sizing: border-box;
    }
    .merchant-prod-card {
      cursor: pointer;
      text-align: left;
      width: 160px;
      position: relative;
      z-index: 1;
    }
    .merchant-prod-img {
      width: 160px;
      height: 213px;
      object-fit: cover;
      display: block;
      background: #c8c8c8;
      border-radius: 2px;
    }
    .merchant-prod-title {
      margin: 8px 0 0;
      font-size: 12px;
      color: #111111;
      line-height: 1.35;
      white-space: pre-line;
      overflow: hidden;
    }
    .merchant-prod-meta {
      margin-top: 6px;
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 4px 8px;
      font-size: 11px;
    }
    .merchant-prod-price {
      font-size: 14px;
      font-weight: 600;
      color: #e2553a;
    }
    .merchant-prod-coupon-tag {
      color: #b08080;
      font-size: 10px;
    }
    .merchant-prod-sales {
      color: #9a9a9a;
      font-size: 10px;
      width: 100%;
    }

    /* 立即购买 → 规格/支付页 画布 409×1295 白底 */
    #page-product-sku.page {
      flex-direction: column;
      background: #ffffff;
      color: #111;
      overflow: hidden;
    }
    #page-product-sku.page.active {
      background: #ffffff;
    }
    /* 修改地址页：白底 */
    #page-edit-address.page {
      flex-direction: column;
      background: #ffffff;
      color: #111;
      overflow: hidden;
    }
    #page-edit-address.page.active {
      background: #ffffff;
    }
    .addr-edit-wrap {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      padding: 0 0 32px;
      max-width: 360px;
      margin: 0 auto;
      width: 100%;
      box-sizing: border-box;
    }
    /* 猫：左侧、适当放大；× 顶右；常用地址 (32,130)；管理 (320,132) */
    .addr-edit-header {
      position: relative;
      width: 100%;
      max-width: 360px;
      min-height: 172px;
      margin: 0 auto;
      padding: 0;
      box-sizing: border-box;
      border-bottom: 1px dashed #d8d8d8;
    }
    .addr-edit-cat {
      position: absolute;
      left: 0;
      top: 10px;
      width: 210px;
      height: auto;
      max-height: 112px;
      display: block;
      object-fit: contain;
      object-position: left top;
      image-rendering: pixelated;
      image-rendering: crisp-edges;
    }
    .addr-edit-close {
      position: absolute;
      right: 16px;
      top: 30px;
      border: none;
      background: transparent;
      padding: 2px 6px;
      margin: 0;
      cursor: pointer;
      font-size: 48px;
      line-height: 1;
      color: #000;
    }
    .addr-edit-section-title {
      position: absolute;
      left: 32px;
      top: 130px;
      margin: 0;
      font-size: 14px;
      font-weight: 400;
      letter-spacing: 0.06em;
      color: #111;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      line-height: 1.2;
    }
    .addr-edit-manage {
      position: absolute;
      left: 320px;
      top: 132px;
      border: none;
      background: transparent;
      padding: 0;
      margin: 0;
      min-width: 0;
      min-height: 0;
      box-sizing: border-box;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      font-size: 14px;
      color: #000;
      letter-spacing: 0.06em;
      cursor: pointer;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      line-height: 1.2;
    }
    .addr-edit-manage-icon {
      width: 19px;
      height: 19px;
      flex-shrink: 0;
      opacity: 0.85;
      transform: translate(-5px, -8px);
    }
    .addr-list {
      padding: 16px 0 8px;
      background: transparent;
    }
    .addr-card {
      position: relative;
      width: 360px;
      max-width: 100%;
      height: 109px;
      min-height: 109px;
      box-sizing: border-box;
      padding: 12px 16px 12px 24px;
      background: #ffffff;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 8px;
      border-bottom: 1px solid #ebebeb;
      margin: 0 auto 5px;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .addr-card:active {
      opacity: 0.92;
    }
    .addr-card.addr-card--active {
      outline: 2px solid #d84315;
      outline-offset: -2px;
    }
    .addr-card:last-of-type {
      margin-bottom: 0;
    }
    .addr-card-body {
      flex: 1;
      min-width: 0;
      text-align: left;
    }
    .addr-card-addr {
      margin: 0;
      font-size: 12px;
      line-height: 1.5;
      color: #111;
    }
    /* 「区」后另起一行：省市区一行，街道一行；仅街道时隐藏空 region */
    .addr-card-region:empty {
      display: none;
    }
    .addr-card-region {
      display: inline;
    }
    .addr-card-street {
      display: block;
      margin-top: 2px;
    }
    .addr-card-contact {
      margin: 6px 0 0;
      font-size: 12px;
      line-height: 1.45;
      color: #111;
    }
    .addr-card-name-phone {
      margin-right: 6px;
    }
    /* 默认：区划一行为红橙色；联系人、默认 标签为黑 */
    .addr-card--default .addr-card-addr {
      color: #d84315;
    }
    .addr-card--default .addr-card-contact {
      color: #111;
    }
    .addr-card-badge {
      font-size: 12px;
      color: #111;
      font-weight: 400;
    }
    .addr-card-actions {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 8px;
      flex-shrink: 0;
      padding-top: 0;
    }
    .addr-card-edit {
      border: none;
      background: transparent;
      padding: 4px;
      margin: -4px;
      cursor: pointer;
      color: #666;
      line-height: 0;
      position: relative;
      z-index: 1;
    }
    .addr-card-edit img.addr-card-edit-icon {
      display: block;
      width: 20px;
      height: auto;
      object-fit: contain;
    }
    .addr-edit-wrap.is-manage .addr-card-remove {
      display: flex;
    }
    .addr-card-remove {
      display: none;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      border: none;
      border-radius: 50%;
      background: #eee;
      color: #666;
      font-size: 14px;
      line-height: 1;
      cursor: pointer;
      flex-shrink: 0;
      position: relative;
      z-index: 1;
    }
    .addr-add-block {
      width: 100%;
      box-sizing: border-box;
      background: #fff;
      border-top: none;
      padding-bottom: 24px;
    }
    .addr-add-head {
      box-sizing: border-box;
    }
    .addr-add-title {
      margin: 0;
      min-height: 48px;
      display: flex;
      align-items: center;
      padding: 12px 32px 10px;
      font-size: 14px;
      font-weight: 600;
      letter-spacing: 0.06em;
      color: #111;
      box-sizing: border-box;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
    }
    /* 「新增」区块上方无通栏分割线 */
    /* 详细地址 / 收货人 / 手机号：标签在左、填写在右；相邻行间距 45px；底部分割线宽 351px 水平居中 */
    .addr-add-fields {
      padding: 0 48px 16px;
      margin-top: 24px;
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 45px;
    }
    .addr-detail-wrap {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 10px;
      width: 100%;
    }
    .addr-detail-hint {
      margin: 0;
      padding: 0 0 0 0;
      font-size: 11px;
      line-height: 1.45;
      color: #8a8a8a;
      text-align: right;
      letter-spacing: 0.02em;
    }
    .addr-line-field {
      width: 100%;
      max-width: none;
      margin: 0;
      display: grid;
      grid-template-columns: auto 1fr;
      column-gap: 12px;
      row-gap: 10px;
      align-items: center;
      box-sizing: border-box;
    }
    .addr-line-label {
      grid-column: 1;
      grid-row: 1;
      font-size: 14px;
      font-weight: 400;
      letter-spacing: 0.06em;
      color: #111;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      line-height: 1.2;
      min-width: 4.5em;
    }
    .addr-line-field input {
      grid-column: 2;
      grid-row: 1;
      min-width: 0;
      width: 100%;
      box-sizing: border-box;
      border: none;
      border-radius: 0;
      margin: 0;
      padding: 6px 0 10px;
      font-size: 14px;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      letter-spacing: 0.06em;
      color: #111;
      background: transparent;
      outline: none;
      text-align: right;
    }
    .addr-line-field::after {
      content: '';
      grid-column: 1 / -1;
      grid-row: 2;
      width: 100%;
      margin: 0;
      box-sizing: border-box;
      border: none;
      border-bottom: 0.3px solid #e4e5e5;
      height: 0;
      align-self: end;
    }
    .addr-line-field input::placeholder {
      color: #9a9a9a;
    }
    .addr-edit-save {
      display: block;
      width: 131px;
      height: 37px;
      margin: 16px auto 0;
      padding: 0;
      border: none;
      border-radius: 10px;
      background: #989898;
      color: #000000;
      font-size: 14px;
      font-weight: 500;
      cursor: pointer;
      line-height: 37px;
      text-align: center;
      box-sizing: border-box;
    }
    .sku-scroll {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
      position: relative;
    }
    .sku-page-wrap {
      width: 360px;
      max-width: 100%;
      min-height: 0;
      margin: 0 auto;
      position: relative;
      background: #ffffff;
      box-sizing: border-box;
      padding-bottom: 24px;
    }
    .sku-hero {
      width: 360px;
      max-width: 100%;
      height: 222px;
      object-fit: cover;
      display: block;
      margin: 0 auto;
    }
    /* 点击修改地址热区：祝福语 → 分割线（含） */
    .sku-address-edit-zone {
      position: relative;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .sku-address-edit-zone:active {
      opacity: 0.92;
    }
    /* 第二张图（猫咪）：距商品图底 8px，距页左 39px（相对 sku-page-wrap，与改地址热区分层） */
    .sku-deco-cat {
      position: absolute;
      left: 39px;
      top: calc(222px + 8px);
      width: auto;
      height: auto;
      max-height: 56px;
      display: block;
      pointer-events: none;
      z-index: 2;
    }
    /* 主图（商品顶图）底到祝福语：32px；文案水平居中 */
    .sku-wish-top {
      margin: 32px 0 0;
      padding: 0 48px 8px;
      font-size: 12px;
      color: #f1b7cf;
      line-height: 1.4;
      text-align: center;
      transform: translateX(-8px);
    }
    /* 手机号行与快递包邮/发货时间：纵向间隔 2px；与主图区衔接（保持手机行顶 ≈ 主图底 +72px） */
    .sku-phone-ship-stack {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 2px;
      width: 100%;
      box-sizing: border-box;
      padding: 0 20px;
      margin-top: calc(72px - 32px - 12px * 1.4 - 8px);
    }
    /* 联系行：定位图标 + 手机 + 地址 + 右侧箭头（元素间距 8px） */
    .sku-phone-addr-row {
      position: relative;
      left: auto;
      right: auto;
      top: auto;
      display: flex;
      flex-direction: row;
      align-items: center;
      flex-wrap: nowrap;
      font-size: 13px;
      line-height: 1.25;
      margin: 0;
      padding: 0;
      width: 100%;
    }
    .sku-loc-icon {
      width: calc(16px / 3);
      height: calc(16px / 3);
      object-fit: contain;
      flex-shrink: 0;
      display: block;
      margin-right: 8px;
    }
    .sku-phone-addr-row #skuPhoneLine {
      font-weight: 500;
      color: #111;
      margin: 0 8px 0 0;
      padding: 0;
      flex-shrink: 0;
    }
    .sku-phone-addr-row #skuAddrLine {
      color: #333;
      font-weight: 400;
      margin: 0;
      padding: 0;
      flex: 1;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .sku-contact-chevron {
      flex-shrink: 0;
      margin-left: 8px;
      margin-right: 0;
      color: #c8c8c8;
      font-size: 20px;
      line-height: 1;
      font-weight: 300;
      transform: translateY(-1px);
    }
    .sku-body {
      padding: 24px 20px 0;
      position: relative;
    }
    /* 仅保留 × 图案，无正圆底；距商品图底 25px，距页右 20px */
    .sku-close {
      position: absolute;
      top: calc(222px + 25px);
      right: 20px;
      z-index: 10;
      width: auto;
      height: auto;
      min-width: 0;
      border: none;
      background: transparent;
      border-radius: 0;
      font-size: 24px;
      line-height: 1;
      color: #666;
      cursor: pointer;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .sku-addr-block {
      font-size: 13px;
      line-height: 1.45;
      margin: -4px 0 0;
      /* 与 stack 左 padding 20px 叠加：20 + 25 + meta translateX(5px) = 50px 到「快递」 */
      padding: 0 0 0 25px;
      box-sizing: border-box;
    }
    .sku-phone { font-weight: 500; }
    .sku-addr { color: #333; margin-top: 2px; }
    .sku-ship-meta {
      margin-top: 0;
      font-size: 11px;
      transform: translate(5px, 10px);
    }
    /* 快递包邮距画布左 50px；包邮｜预售 发货 同一行 flex 随动 */
    .sku-ship-row1 {
      position: relative;
      display: flex;
      flex-direction: row;
      align-items: center;
      flex-wrap: nowrap;
      min-height: calc(11px * 1.3);
      font-size: 11px;
      line-height: 1.3;
    }
    .sku-ship-free {
      position: static;
      color: #000000;
      font-size: 11px;
      line-height: 1.3;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .sku-ship-sep {
      flex-shrink: 0;
      margin: 0 6px;
      font-size: 11px;
      line-height: 1.3;
      color: #000000;
      font-weight: 400;
    }
    /* 分割线：在堆叠区内左右居中（抵消 .sku-addr-block 左 padding），位于小框商品图上方 */
    .sku-ship-line-wrap {
      margin-left: -25px;
      width: calc(100% + 25px);
      display: flex;
      justify-content: center;
      box-sizing: border-box;
    }
    .sku-ship-line {
      width: 363px;
      max-width: calc(100% - 40px);
      height: 1px;
      min-height: 1px;
      margin: 8px 0 0;
      background: #e0e0e0;
      border: none;
      padding: 0;
      box-sizing: border-box;
      flex-shrink: 0;
    }
    .sku-ship-right {
      position: static;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: flex-start;
      gap: 8px;
      flex-wrap: nowrap;
      flex-shrink: 0;
    }
    .sku-ship-tag {
      display: inline-block;
      padding: 1px 6px;
      border-radius: 3px;
      background: rgba(206, 64, 49, 0.1);
      color: #ce4031;
      font-size: 10px;
      line-height: 1.3;
    }
    .sku-ship-days {
      font-size: 11px;
      line-height: 1.3;
      color: #ce4031;
      white-space: nowrap;
    }
    .sku-ship-meta .sku-red { color: #ce4031; }
    .sku-product-row {
      display: flex;
      flex-direction: row;
      gap: 30px;
      margin-top: -4px;
      margin-bottom: 24px;
      align-items: flex-start;
    }
    .sku-thumb {
      width: 121px;
      height: 121px;
      border-radius: 8px;
      object-fit: cover;
      flex-shrink: 0;
      background: #eee;
    }
    .sku-product-info {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      touch-action: pan-y;
    }
    /* 立即购买/支付页商品标题：14px；全文最多 25 字（Unicode 字素）由脚本截断 */
    .sku-product-title {
      font-size: 14px;
      line-height: 1.45;
      max-width: 100%;
      color: #111;
      display: block;
      margin: 2px 0 0;
      padding: 0;
      white-space: normal;
      overflow: visible;
      word-break: break-word;
      overflow-wrap: break-word;
      box-sizing: border-box;
    }
    /* 实付价 + 件数：与商品标题间隔 16px */
    .sku-product-price-qty {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      align-self: flex-start;
      margin-top: 16px;
      transform: none;
    }
    /* 实付¥ + 数字：字色 #b42323 的 alpha=0.85（仅颜色，不用 opacity） */
    .sku-price {
      margin-top: 0;
      margin-bottom: 0;
      display: inline-flex;
      align-items: baseline;
      flex-wrap: nowrap;
      font-family: "Roboto", -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-weight: 400;
    }
    .sku-price-prefix {
      font-size: 16px;
      color: rgba(180, 35, 35, 0.85);
      font-weight: 400;
      line-height: 1;
    }
    .sku-price-num {
      font-size: 24px;
      font-weight: 400;
      color: rgba(180, 35, 35, 0.85);
      line-height: 1;
      margin-left: 0;
    }
    /* 件数加减：总长 84×24，圆角 8px；#D9D9D9 41% 不透明，无描边；三等分 −｜数｜+ */
    .sku-qty {
      margin-top: 5px;
      margin-left: 2px;
      display: inline-flex;
      flex-shrink: 0;
      align-items: stretch;
      gap: 0;
      width: 84px;
      max-width: 84px;
      border: none;
      background: rgba(217, 217, 217, 0.41);
      border-radius: 8px;
      overflow: hidden;
      box-sizing: border-box;
    }
    .sku-qty-btn {
      flex: 1 1 0;
      min-width: 0;
      width: auto;
      height: 24px;
      box-sizing: border-box;
      border: none;
      background: transparent;
      font-size: 14px;
      line-height: 1;
      cursor: pointer;
      color: #333;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0;
    }
    .sku-qty-num {
      flex: 1 1 0;
      min-width: 0;
      min-height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      font-size: 12px;
      line-height: 1;
      box-sizing: border-box;
      background: transparent;
      color: #333;
    }
    .sku-block { margin-bottom: 8px; }
    /* 颜色分类块与尺寸块之间：最后色块底 →「尺寸」标题顶 = 38px */
    .sku-block--color-only {
      margin-bottom: 0;
    }
    .sku-block--size-after-color {
      margin-top: 38px;
      margin-bottom: 0;
    }
    /* 无颜色分类时，尺寸块紧跟商品行，缩小上间距 */
    .sku-block--size-after-color.sku-block--size-no-color {
      margin-top: 16px;
    }
    /* 最后一个尺寸块底 →「支付方式」标题顶 38px */
    .sku-block--pay-methods {
      margin-top: 38px;
      padding-bottom: 0;
    }
    /* 颜色分类 / 尺寸 / 支付方式：标题同字号 */
    .sku-block-title {
      font-size: 13px;
      font-weight: 500;
      margin-bottom: 8px;
      color: #111;
      font-family: inherit;
    }
    .sku-block-title--color {
      font-size: 13px;
      font-weight: 500;
      margin-bottom: 8px;
      color: #111;
      font-family: inherit;
    }
    .sku-block-title--size {
      margin-bottom: 8px;
    }
    /* 颜色分类：312×22，#E6E6E6，圆角 18；选中 #BABABA */
    .sku-color-list {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 8px;
    }
    .sku-color-tag {
      width: 312px;
      max-width: 100%;
      min-height: 24px;
      height: auto;
      padding: 4px 10px;
      border: none;
      border-radius: 18px;
      background: #e6e6e6;
      color: #111;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      cursor: pointer;
      box-sizing: border-box;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      font-family: inherit;
    }
    .sku-color-tag.is-selected {
      background: #bababa;
      box-shadow: none;
    }
    /* 尺寸：74×20，#E6E6E6，圆角 18；选中 #BABABA；文案与个数由 section[data-sku-sizes] JSON 数组决定 */
    .sku-size-grid {
      display: grid;
      grid-template-columns: repeat(4, 74px);
      column-gap: 15px;
      row-gap: 8px;
      justify-content: start;
    }
    .sku-size-tag {
      width: 74px;
      min-height: 24px;
      height: auto;
      padding: 2px 4px;
      border: none;
      border-radius: 18px;
      background: #e6e6e6;
      color: #111;
      font-size: 13px;
      font-weight: 400;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      cursor: pointer;
      box-sizing: border-box;
      font-family: inherit;
    }
    .sku-size-tag.is-selected {
      background: #bababa;
    }
    .sku-pay-row--wechat,
    .sku-pay-row[data-pay='wechat'] {
      display: none !important;
    }
    .sku-pay-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 0;
      border-top: 1px solid #f0f0f0;
      border-bottom: none;
      font-size: 13px;
    }
    .sku-pay-row-main {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 0;
    }
    .sku-pay-icon {
      width: 22px;
      height: 22px;
      flex-shrink: 0;
      display: block;
      object-fit: contain;
    }
    /* 支付宝与微信之间无分割线 */
    .sku-pay-row + .sku-pay-row {
      border-top: none;
    }
    .sku-pay-radio {
      width: 18px;
      height: 18px;
      border-radius: 50%;
      border: 2px solid #ccc;
      flex-shrink: 0;
    }
    .sku-pay-row.is-on .sku-pay-radio {
      border-color: #ce4031;
      box-shadow: inset 0 0 0 4px #ce4031;
    }
    /* 立即支付 / 加入购物车：与支付方式区间隔 50px，横向居中 */
    .sku-pay-now-bar {
      position: relative;
      left: auto;
      top: auto;
      width: 390px;
      max-width: calc(100% - 20px);
      height: 58px;
      padding: 0;
      margin: 50px auto 0;
      border: none;
      border-radius: 78px;
      background: #e3cada;
      color: #ffffff;
      font-size: 16px;
      font-weight: 500;
      line-height: 1;
      cursor: pointer;
      font-family: inherit;
      box-sizing: border-box;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 15;
      -webkit-tap-highlight-color: transparent;
    }
    /* 加好友页：409×728 白底 */
    #page-add-friend.page.active { background: #ffffff; }
    .addfriend-wrap {
      width: 360px;
      height: 800px;
      position: relative;
      background: #ffffff;
    }
    .addfriend-title {
      position: absolute;
      top: 34px;
      left: 0;
      right: 0;
      text-align: center;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 13px;
      font-weight: 400;
      letter-spacing: 1px;
      color: #000000;
      pointer-events: none; /* 不挡住左侧返回键点击 */
    }
    .addfriend-back {
      position: absolute;
      left: 34px;
      top: 35px;
      z-index: 10;
      width: 9px;
      height: 17px;
      border: none;
      /* 扩大触控/点击热区（图标仍为 9×17） */
      padding: 14px 20px;
      margin: -14px 0 0 -20px;
      background: transparent;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      -webkit-tap-highlight-color: transparent;
    }
    .addfriend-back img {
      width: 9px;
      height: 17px;
      display: block;
      object-fit: contain;
    }
    /* 浅灰条：实为 ID 搜索框，点击即聚焦、移动端唤起输入法；数字键盘用 inputmode */
    .addfriend-id-input {
      position: absolute;
      left: 34px;
      top: 76px;
      width: 354px;
      height: 42px;
      box-sizing: border-box;
      border: none;
      border-radius: 5px;
      background: #d9d9d9;
      padding: 0 14px;
      font-family: Inter, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
      font-size: 14px;
      font-weight: 400;
      color: #111;
      outline: none;
      -webkit-appearance: none;
      appearance: none;
    }
    .addfriend-id-input::placeholder {
      color: #888;
    }
    .addfriend-id-input:focus {
      box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
    }
    .addfriend-results {
      position: absolute;
      left: 34px;
      top: 128px;
      width: 354px;
      max-height: 280px;
      overflow-y: auto;
      margin: 0;
      padding: 0;
      list-style: none;
      box-sizing: border-box;
      display: none;
      background: #fff;
      border-radius: 8px;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
      border: 1px solid #eee;
    }
    .addfriend-results.is-visible {
      display: block;
    }
    .addfriend-results li {
      padding: 12px 14px;
      font-size: 14px;
      color: #111;
      border-bottom: 1px solid #f0f0f0;
      cursor: pointer;
      -webkit-tap-highlight-color: transparent;
    }
    .addfriend-results li:last-child {
      border-bottom: none;
    }
    .addfriend-results li:active {
      background: #f5f5f5;
    }
    .addfriend-results .addfriend-result-id {
      font-size: 12px;
      color: #666;
      margin-top: 4px;
    }
    .addfriend-results .addfriend-empty {
      padding: 14px;
      font-size: 13px;
      color: #999;
      cursor: default;
    }
