/* CSS Document */

/* ================= 基础 ================= */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body {
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  background: #f5f6f8; color: #333; font-size: 14px;
  max-width: 640px; margin: 0 auto;
  min-height: 100vh; position: relative;
  padding-bottom: 30px;
}
a { color: inherit; text-decoration: none; }
input, select, textarea, button { font-family: inherit; font-size: 14px; outline: none; }

/* ================= 顶部栏 ================= */
.header {
  position: sticky; top: 0; z-index: 10;
  height: 46px; background: #e94f6a; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 500;
}
.header .back {
  position: absolute; left: 12px; font-size: 22px;
  cursor: pointer; line-height: 1;
}
.header .right { position: absolute; right: 12px; font-size: 13px; }

/* ================= 卡片 ================= */
.card {
  background: #fff; border-radius: 10px;
  margin: 10px; padding: 14px;
}
.card + .card { margin-top: 0; }

/* ================= 套餐 ================= */
.plan {
  border: 1px solid #eee; border-radius: 10px;
  padding: 14px; margin-bottom: 12px;
  cursor: pointer; text-align: center;
  transition: all .15s;
}
.plan:hover { border-color: #ffb3c1; }
.plan.active {
  border-color: #e94f6a;
  background: #fff5f7;
}
.plan .name { font-weight: 600; font-size: 15px; }
.plan .price {
  color: #e94f6a; font-size: 22px;
  margin-top: 4px; font-weight: 600;
}

/* ================= 联系红娘卡片 ================= */
.contact-card {
  background: #fff; border-radius: 10px;
  margin: 10px; padding: 18px 14px;
}
.contact-card .row {
  display: flex; align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid #f5f5f5;
}
.contact-card .row:last-child { border-bottom: none; }
.contact-card .icon {
  font-size: 22px; width: 40px;
  text-align: center; flex-shrink: 0;
}
.contact-card .info { flex: 1; min-width: 0; }
.contact-card .label { color: #999; font-size: 12px; }
.contact-card .value {
  font-size: 16px; font-weight: 600;
  color: #333; margin-top: 2px;
  word-break: break-all;
}
.contact-card .action {
  background: #e94f6a; color: #fff;
  border: none; border-radius: 16px;
  padding: 8px 14px; font-size: 13px;
  cursor: pointer; flex-shrink: 0;
  text-decoration: none;
  display: inline-block;
}
.contact-card .action.ghost { background: #f0f0f0; color: #333; }
.contact-card .action:hover { opacity: .9; }

/* ================= 提示框 ================= */
.tip-box {
  background: #fff8e6; border-radius: 8px;
  margin: 10px; padding: 12px 14px;
  color: #a87700; font-size: 12px; line-height: 1.8;
}
.tip-box strong { color: #d48806; }

/* ================= 已选套餐标签 ================= */
.picked-plan {
  display: inline-block;
  background: #fff5f7; color: #e94f6a;
  padding: 3px 10px; border-radius: 12px;
  font-size: 12px; font-weight: 500;
}

/* ================= 按钮 ================= */
.btn {
  display: block; width: 100%; height: 44px;
  border: none; border-radius: 22px;
  background: #e94f6a; color: #fff;
  font-size: 15px; cursor: pointer;
  text-align: center; line-height: 44px;
}
.btn:hover { opacity: .9; }
.btn:disabled { opacity: .5; }
.btn-ghost { background: #f0f0f0; color: #333; }

/* ================= 通用表单行 ================= */
.form-row {
  display: flex; align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #f5f5f5;
}
.form-row:last-child { border-bottom: none; }
.form-row label { width: 76px; color: #666; flex-shrink: 0; }
.form-row input, .form-row select, .form-row textarea {
  flex: 1; border: none; background: transparent;
  color: #333; font-size: 14px;
}
.form-row textarea { min-height: 60px; resize: none; padding-top: 4px; }

/* ================= Toast ================= */
.toast {
  position: fixed; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,.75); color: #fff;
  padding: 10px 16px; border-radius: 6px;
  font-size: 13px; z-index: 999;
  opacity: 0; transition: opacity .2s;
  pointer-events: none; max-width: 80%;
  text-align: center;
}
.toast.show { opacity: 1; }

/* ================= 空状态 ================= */
.empty {
  text-align: center; color: #999;
  padding: 60px 0; font-size: 13px;
}

/* ================= PC 适配（居中窄栏） ================= */
@media (min-width: 768px) {
  body {
    background: #f0f2f5;
    padding-top: 20px;
    padding-bottom: 40px;
  }
  .header {
    border-radius: 10px 10px 0 0;
    margin: 0 10px;
  }
  .card, .contact-card, .tip-box { margin-left: 10px; margin-right: 10px; }
}