/* ============================================================
   bottom-nav.css —— v55 手机端底部主导航（首页 / 线索）
   两页同款：白底，图标在上文字在下；激活色暖橙红 #E4573D，未激活 #AEB6C2；
   线索项带红色未读数徽标。未登录 / 访客：由 main.js 保持 hidden（整体不渲染）。
   · v55~v119：栏高 74px（含 env(safe-area-inset-bottom)），图标顶格 + 10px 上内边距；
     底栏可见时（.phone-frame.has-bottom-nav）首页内容区底部留白 164px。
   · v120（需求 3，老板截图指出「底栏上下方白色空白太高、名片内容被挤上去」，
     并在方案 A/B 中**拍板选方案 B**）：栏高 74 → **56px**、图标 23 → 20px、
     图标与文字间距 3 → 1px、文字 11 → 10.5px，并改**垂直居中**
     （原 align-items:flex-start + padding-top:10px 会固定把墨迹顶在上方，栏底空 24px）；
     首页内容区底部留白 164 → **70px**（56 栏高 + 14 呼吸），线索页 92 → **68px**。
     实测：滚到底时最后内容 → 底栏顶从 90px 收到 14px，一屏多显示约 100px 内容。
     安全区仍在**栏底**补偿（padding-bottom: var(--safe-bottom)），刘海机加高不影响居中。
   · v129（需求 3，老板在 48/44 两档中**拍板选 44px**）：栏高 56 → **44px**，垂直居中不变，
     图标 20px / 文字 10.5px / 间距 gap 1px 与安全区补偿一概不动；
     栏内上下留白随之由 11.2px 收到 5.2px；
     配套内容区底部留白：首页 70 → **58px**（44 栏高 + 14 呼吸），线索页 68 → **56px**（44 + 12 呼吸）。
   复用 base.css 的设计 token（--safe-bottom / --c-line / --c-danger 等）。
   层级：40（高于固定头部 30，低于弹层 500+，见 layout.css 层级表）。
   ============================================================ */
.bottom-nav {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  height: calc(44px + var(--safe-bottom));
  display: flex;
  align-items: center;
  padding-top: 0;
  padding-bottom: var(--safe-bottom);
  background: #fff;
  border-top: 1px solid var(--c-line);
  box-shadow: 0 -6px 20px rgba(15, 43, 91, .06);
}
.bottom-nav[hidden] { display: none; }

.bottom-nav .bn {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  padding: 0;
  position: relative;
  color: #AEB6C2;
  transition: color .18s ease;
}
.bottom-nav .bn .bn-ico {
  width: 20px;
  height: 20px;
  display: block;
}
.bottom-nav .bn .bn-ico-wrap { position: relative; display: flex; }
.bottom-nav .bn .bn-lb {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .5px;
  line-height: 1.2;
}
.bottom-nav .bn.on { color: #E4573D; }
.bottom-nav .bn.on .bn-ico { stroke: #E4573D; }

/* 未读红点徽标 */
.bottom-nav .bn-badge {
  position: absolute;
  top: -5px;
  left: calc(50% + 7px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--c-danger);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(220, 38, 38, .4);
}
.bottom-nav .bn-badge[hidden] { display: none; }

/* 底栏可见时：首页三页内容区 + 线索页底部留白（防内容被底栏遮挡）
   v120（需求 3，方案 B）：164 → 70px（56 栏高 + 14 呼吸）；线索页 92 → 68px。 */
.phone-frame.has-bottom-nav .page-inner {
  padding-bottom: calc(58px + var(--safe-bottom));
}
.phone-frame.has-bottom-nav .leads-page {
  padding-bottom: calc(56px + var(--safe-bottom));
}
