/* 费聘 — 全站公共样式（Boss直聘风格，青蓝 #00BEBC） */
:root {
  --primary: #00BEBC;
  --primary-dark: #00A9A7;
  --primary-light: #E6F9F9;
  --bg: #F5F6F7;
  --card: #FFFFFF;
  --text-1: #1F2329;
  --text-2: #4E5969;
  --text-3: #86909C;
  --line: #EDEEF0;
  --danger: #F53F3F;
  --green: #00B42A;
  --orange: #FF8800;
  --radius: 16px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  background: var(--bg); color: var(--text-1); font-size: 14px;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; border: none; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 14px; outline: none; border: none; }
img { display: block; max-width: 100%; }

/* ===== 顶部导航 ===== */
.topbar {
  background: #fff; position: sticky; top: 0; z-index: 100;
  border-bottom: 1px solid var(--line);
}
.topbar-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 20px;
  height: 60px; display: flex; align-items: center; gap: 32px;
}
.logo { display: flex; align-items: center; gap: 8px; font-size: 22px; font-weight: 700; color: var(--primary); }
.logo .logo-mark {
  width: 32px; height: 32px; border-radius: 8px; background: var(--primary);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 17px; font-weight: 700;
}
/* 品牌 Logo 图（后台上传）：替换标识字方块，等比缩放 */
.logo img.brand-logo { height: 34px; width: auto; max-width: 180px; object-fit: contain; border-radius: 8px; display: block; }
.site-foot .f-mark img.brand-logo { height: 100%; width: 100%; object-fit: contain; border-radius: inherit; background: none; }
.nav-links { display: flex; gap: 30px; font-size: 15px; color: var(--text-2); }
.nav-links a { padding: 4px 0; position: relative; transition: color .18s; }
.nav-links a.active, .nav-links a:hover { color: var(--primary); font-weight: 600; }
/* PC 导航选中态：底部一条短横线，比纯变色的指向更明确 */
.nav-links a.active::after {
  content: ""; position: absolute; left: 50%; margin-left: -11px; bottom: -3px;
  width: 22px; height: 3px; border-radius: 2px; background: var(--primary);
}
/* 「找工作」跳本页职位列表：避免锚点被吸顶导航挡住 */
#jobList { scroll-margin-top: 82px; }
.topbar-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }
/* 游客态 PC 顶栏：登录（青色描边）/ 注册（青色实心） */
.btn-login { background: #fff; color: var(--primary); border: 1px solid rgba(0, 190, 188, .42); }
.btn-login:hover { background: var(--primary-light); border-color: var(--primary); }
.btn-register { box-shadow: 0 4px 12px rgba(0, 190, 188, .22); }
/* 登录后用户 chip 的下拉箭头，提示可点 */
.user-chip .chip-caret { color: var(--text-3); flex: none; transition: transform .2s; }
.user-chip:has(.dropdown.open) .chip-caret { transform: rotate(180deg); }
@media (max-width: 768px) {
  /* 小屏隐藏 PC 导航（底部 tabbar 已覆盖），避免横向溢出 */
  .topbar-inner { gap: 12px; padding: 0 16px; height: 54px; }
  .nav-links { display: none; }
  .topbar-right .btn { padding: 7px 14px; font-size: 13px; }
}
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 9px 22px; border-radius: 8px; font-size: 14px; font-weight: 500;
  transition: opacity .15s;
}
.btn:active { opacity: .8; }
.btn-primary { background: var(--primary); color: #fff; }
.btn-ghost { background: var(--primary-light); color: var(--primary); }
.btn-outline { background: #fff; color: var(--text-2); border: 1px solid var(--line); }
.btn-danger { background: #FEECEC; color: var(--danger); }
.btn-lg { padding: 12px 28px; font-size: 15px; border-radius: 10px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }

/* 用户菜单 */
.user-chip { display: flex; align-items: center; gap: 8px; cursor: pointer; position: relative; }
.avatar {
  width: 34px; height: 34px; border-radius: 50%; background: var(--primary);
  color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; flex-shrink: 0;
}
.avatar.co { background: #1F2329; border-radius: 8px; }
.dropdown {
  display: none; position: absolute; right: 0; top: 44px; background: #fff;
  border-radius: 10px; box-shadow: 0 8px 30px rgba(0,0,0,.1); min-width: 140px; overflow: hidden;
}
.dropdown.open { display: block; }
.dropdown a, .dropdown button {
  display: block; width: 100%; text-align: left; padding: 11px 16px; font-size: 14px; background: none; color: var(--text-1);
}
.dropdown a:hover, .dropdown button:hover { background: var(--bg); color: var(--primary); }

/* ===== 布局 ===== */
.container { max-width: 1200px; margin: 0 auto; padding: 20px; }
.card { background: var(--card); border-radius: var(--radius); padding: 20px; }
.muted { color: var(--text-3); }
.t2 { color: var(--text-2); }

/* ===== Hero + 搜索 ===== */
.hero { background: linear-gradient(135deg, #0BBEBD 0%, #089E9E 100%); padding: 44px 20px 56px; }
.hero-inner { max-width: 1200px; margin: 0 auto; }
.hero h1 { color: #fff; font-size: 30px; letter-spacing: 1px; }
.hero p.sub { color: rgba(255,255,255,.85); margin-top: 8px; font-size: 15px; }
.search-box {
  margin-top: 24px; background: #fff; border-radius: 12px; padding: 8px 8px 8px 20px;
  display: flex; align-items: center; gap: 12px; max-width: 720px; box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.search-box input { flex: 1; height: 40px; font-size: 15px; background: none; }
.search-box .btn { border-radius: 8px; padding: 10px 30px; font-size: 15px; }
.hot-words { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.hot-words a {
  color: rgba(255,255,255,.9); font-size: 13px; padding: 4px 12px;
  background: rgba(255,255,255,.16); border-radius: 20px;
}

/* ===== 筛选条 ===== */
.filter-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.chip {
  padding: 7px 16px; border-radius: 20px; background: #fff; color: var(--text-2);
  font-size: 13px; cursor: pointer; border: 1px solid transparent;
}
.chip.active { background: var(--primary-light); color: var(--primary); font-weight: 600; }

/* ===== 地区筛选（PC 筛选条 + H5 筛选行共用面板） ===== */
.pc-dist { position: relative; }
.chip.dist-chip { display: flex; align-items: center; gap: 5px; background: #fff; color: var(--text-2); }
.chip.dist-chip .pin { color: var(--text-3); }
.chip.dist-chip .cv { color: var(--text-3); transition: transform .18s; }
.chip.dist-chip.on { background: var(--primary-light); color: var(--primary); font-weight: 600; }
.chip.dist-chip.on .pin, .chip.dist-chip.on .cv { color: var(--primary); }
.chip.dist-chip.open .cv, .m-fi.open svg { transform: rotate(180deg); }

.dist-pop {
  position: absolute; top: calc(100% + 10px); left: 0; z-index: 121; width: 100%;
  background: #fff; border-radius: 16px; padding: 14px 14px 12px;
  box-shadow: 0 14px 44px rgba(31,35,41,.16);
  transform-origin: top left; animation: dropIn .18s ease;
}
.dist-pop[hidden] { display: none; }
.dist-pop.in-pc { width: 452px; }
.dist-pop.in-h5 { left: -14px; right: -14px; width: auto; }
.dp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.dp-head b { font-size: 14.5px; color: #1F2329; }
.dp-head span { font-size: 12px; color: #A0A6B0; }
.dp-all {
  display: flex; align-items: center; gap: 6px; padding: 11px 12px; border-radius: 10px;
  background: #F2FBFB; color: #0A9E9E; font-size: 13.5px; cursor: pointer; margin-bottom: 8px;
}
.dp-all b { font-weight: 600; }
.dp-all svg { flex-shrink: 0; }
.dp-all.act { background: var(--primary-light); color: var(--primary); box-shadow: inset 0 0 0 1px rgba(11,190,189,.35); }
.dp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.dist-pop.in-pc .dp-grid { grid-template-columns: repeat(4, 1fr); }
.dp-i {
  display: flex; align-items: center; justify-content: center; gap: 4px; padding: 10px 4px;
  border-radius: 9px; background: #F7F8FA; font-size: 13px; color: #1F2329;
  cursor: pointer; white-space: nowrap; transition: background .15s;
}
.dp-i:hover { background: #EFF1F4; }
.dp-i.act { background: var(--primary-light); color: var(--primary); font-weight: 700; box-shadow: inset 0 0 0 1px rgba(11,190,189,.35); }
.dp-i.zero { color: #BCC2CB; }

/* ===== 职位卡 ===== */
.job-list { display: flex; flex-direction: column; gap: 12px; }
.job-card {
  background: #fff; border-radius: var(--radius); padding: 20px;
  display: flex; gap: 16px; align-items: flex-start; cursor: pointer; transition: box-shadow .15s;
}
.job-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,.06); }
.job-main { flex: 1; min-width: 0; }
.job-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.job-title { font-size: 16px; font-weight: 600; }
.tag-urgent {
  font-size: 11px; color: var(--danger); background: #FEECEC;
  padding: 2px 8px; border-radius: 4px; font-weight: 600;
}
.tag-pt { font-size: 11px; color: var(--orange); background: #FFF3E5; padding: 2px 8px; border-radius: 4px; }
.salary { color: var(--primary); font-size: 16px; font-weight: 700; white-space: nowrap; }
.job-info { margin-top: 8px; color: var(--text-3); font-size: 13px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.dot { width: 3px; height: 3px; border-radius: 50%; background: #C9CDD4; display: inline-block; }
.job-tags { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
.job-tags span {
  font-size: 12px; color: var(--text-2); background: #F2F3F5; padding: 3px 10px; border-radius: 4px;
}
.job-co { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.co-logo {
  width: 40px; height: 40px; border-radius: 10px; background: var(--primary-light);
  color: var(--primary); display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 26px; line-height: 1; flex-shrink: 0;
}
.co-name { font-size: 13px; color: var(--text-2); font-weight: 500; }
.co-meta { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.v-badge {
  font-size: 10px; color: var(--primary); border: 1px solid var(--primary);
  border-radius: 3px; padding: 0 4px; margin-left: 4px;
}

/* ===== 详情页 ===== */
.detail-wrap { max-width: 820px; margin: 0 auto; padding: 20px; }
.detail-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.detail-head h1 { font-size: 22px; }
.detail-head .salary { font-size: 20px; }
.detail-sec { margin-top: 16px; }
.detail-sec h3 { font-size: 15px; margin-bottom: 10px; }
.detail-desc { white-space: pre-wrap; color: var(--text-2); line-height: 1.8; font-size: 14px; }
.detail-foot {
  position: fixed; bottom: 0; left: 0; right: 0; background: #fff;
  border-top: 1px solid var(--line); padding: 12px 20px; z-index: 50;
  display: flex; gap: 12px; align-items: center; justify-content: center;
}
.detail-foot .btn { min-width: 140px; }

/* ===== 表单 ===== */
.auth-wrap { max-width: 420px; margin: 48px auto; padding: 0 20px; }
.auth-card { background: #fff; border-radius: 20px; padding: 32px 28px; }
.auth-card h2 { font-size: 20px; margin-bottom: 4px; }
.auth-card .sub { color: var(--text-3); font-size: 13px; margin-bottom: 22px; }
.role-tabs { display: flex; background: var(--bg); border-radius: 10px; padding: 4px; margin-bottom: 22px; }
.role-tabs button {
  flex: 1; padding: 9px 0; border-radius: 8px; background: none; color: var(--text-2); font-size: 14px;
}
.role-tabs button.active { background: #fff; color: var(--primary); font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.field { margin-bottom: 16px; }
.field label { display: block; font-size: 13px; color: var(--text-2); margin-bottom: 6px; }
.field input, .field select, .field textarea {
  width: 100%; background: var(--bg); border-radius: 10px; padding: 12px 14px; font-size: 14px;
}
.field textarea { min-height: 110px; resize: vertical; line-height: 1.7; }
.field input:focus, .field textarea:focus, .field select:focus { box-shadow: 0 0 0 2px var(--primary-light); }
.form-row { display: flex; gap: 12px; }
.form-row .field { flex: 1; }
.auth-link { text-align: center; margin-top: 18px; font-size: 13px; color: var(--text-3); }
.auth-link a { color: var(--primary); }

/* 演示入口分隔线 */
.demo-divider {
  display: flex; align-items: center; gap: 12px; margin: 20px 0 14px;
  color: var(--text-3); font-size: 12px;
}
.demo-divider::before, .demo-divider::after {
  content: ""; flex: 1; height: 1px; background: var(--line);
}

/* ===== 企业工作台 ===== */
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 16px; }
.stat-card { background: #fff; border-radius: var(--radius); padding: 18px 20px; }
.stat-card .num { font-size: 26px; font-weight: 700; }
.stat-card .lbl { color: var(--text-3); font-size: 13px; margin-top: 4px; }
.sec-title { font-size: 16px; font-weight: 700; margin: 20px 0 12px; display: flex; justify-content: space-between; align-items: center; }

/* 列表通用行 */
.row-item {
  background: #fff; border-radius: var(--radius); padding: 18px 20px;
  display: flex; align-items: center; gap: 14px; margin-bottom: 10px;
}
.row-item .grow { flex: 1; min-width: 0; }
.row-title { font-weight: 600; font-size: 15px; }
.status-pill { font-size: 12px; padding: 4px 12px; border-radius: 20px; }
.st-delivered { background: #F2F3F5; color: var(--text-2); }
.st-interviewing { background: var(--primary-light); color: var(--primary); }
.st-offered { background: #E8FFEA; color: var(--green); }
.st-rejected { background: #FEECEC; color: var(--danger); }

/* 空状态 */
.empty { text-align: center; padding: 60px 20px; color: var(--text-3); }
.empty .ico { font-size: 44px; margin-bottom: 12px; }

/* Toast */
#toast {
  position: fixed; top: 76px; left: 50%; transform: translateX(-50%) translateY(-20px);
  background: rgba(31,35,41,.92); color: #fff; padding: 11px 22px; border-radius: 10px;
  font-size: 14px; z-index: 999; opacity: 0; transition: all .25s; pointer-events: none; max-width: 80vw;
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* 页脚 */
.footer { text-align: center; color: var(--text-3); font-size: 12px; padding: 32px 20px 40px; }
/* 页脚网站信息 */
.site-foot { padding: 30px 20px 38px; }
.site-foot .f-brand { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 12px; }
.site-foot .f-brand b { color: var(--text-1); font-size: 15px; }
.site-foot .f-mark { width: 22px; height: 22px; border-radius: 6px; background: var(--primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.site-foot .f-slogan { color: var(--text-3); font-size: 12px; }
.site-foot .f-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; font-size: 12px; margin-bottom: 9px; }
.site-foot .f-links a { color: var(--text-2); }
.site-foot .f-links a:hover { color: var(--primary); }
.site-foot .f-links i { color: var(--text-3); font-style: normal; opacity: .55; }
.site-foot .f-info { font-size: 12px; color: var(--text-3); margin-bottom: 7px; }
.site-foot .f-info a { color: var(--text-2); }
.site-foot .f-lic { font-size: 12px; color: var(--text-3); margin-bottom: 7px; line-height: 1.7; }
.site-foot .f-lic a { color: var(--text-3); }
.site-foot .f-lic a:hover { color: var(--primary); }
.site-foot .f-copy { font-size: 12px; color: var(--text-3); }

/* ===== 响应式（H5） ===== */
@media (max-width: 768px) {
  .topbar-inner { padding: 0 16px; gap: 16px; height: 52px; }
  .nav-links { display: none; }
  .hero { padding: 30px 16px 40px; }
  .hero h1 { font-size: 22px; }
  .search-box { flex-wrap: nowrap; }
  .container, .detail-wrap { padding: 14px 14px 20px; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .job-card { padding: 16px; }
  .auth-wrap { margin: 20px auto; }
  .form-row { flex-direction: column; gap: 0; }
  .detail-foot .btn { min-width: 120px; }
  .hide-m { display: none !important; }
}

/* ===== 底部 Tab（H5）===== */
/* ===== 底部悬浮胶囊导航（BOSS 风） ===== */
.tabbar {
  position: fixed; bottom: calc(10px + env(safe-area-inset-bottom));
  left: 12px; right: 12px; max-width: 456px; margin: 0 auto; z-index: 95;
  background: #fff; border-radius: 34px; display: flex; align-items: center;
  padding: 6px 8px; border: none;
  box-shadow: 0 8px 28px rgba(20, 30, 45, .16), 0 2px 8px rgba(20, 30, 45, .08);
}
.tabbar a {
  flex: 1; text-align: center; padding: 7px 0 6px; color: #86909C;
  font-size: 11.5px; border-radius: 24px; position: relative;
  transition: background .15s, color .15s;
}
.tabbar a .t-ico { line-height: 0; display: block; position: relative; margin: 0 auto 2px; width: 22px; }
.tabbar a .t-ico svg { display: block; margin: 0 auto; }
.tabbar a.active { color: var(--primary); font-weight: 700; background: #EFF3F5; }
.tabbar a:active { background: #F5F7F8; }
.tabbar a.active:active { background: #EFF3F5; }
.tb-badge {
  position: absolute; top: -7px; right: -10px; min-width: 17px; height: 17px;
  padding: 0 4px; border-radius: 9px; background: #F53F3F; color: #fff;
  font-size: 10px; font-weight: 700; line-height: 17px; text-align: center;
  font-style: normal; box-shadow: 0 0 0 2px #fff;
}
.tb-dot {
  position: absolute; top: -4px; right: -5px; width: 8px; height: 8px;
  border-radius: 4px; background: #F53F3F; box-shadow: 0 0 0 2px #fff;
}
.tb-badge[hidden], .tb-dot[hidden] { display: none !important; }
.has-tabbar { padding-bottom: 96px; }
@media (min-width: 769px) { .tabbar { display: none; } .has-tabbar { padding-bottom: 20px; } }

/* ===== 分类宫格（首页）===== */
.cat-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; background: #fff; border-radius: var(--radius); padding: 16px 8px; margin-bottom: 16px; }
.cat-grid a { text-align: center; font-size: 13px; color: var(--text-2); padding: 6px 0; }
.cat-grid a .c-ico {
  width: 44px; height: 44px; margin: 0 auto 6px; border-radius: 12px;
  background: var(--primary-light); display: flex; align-items: center; justify-content: center; font-size: 21px;
}
@media (max-width: 768px) { .cat-grid { grid-template-columns: repeat(5, 1fr); gap: 2px; } }

/* ===== 个人中心 ===== */
.me-head { background: linear-gradient(135deg, #0BBEBD, #089E9E); padding: 22px 20px 46px; color: #fff; }
.me-head .row1 { display: flex; align-items: center; gap: 14px; }
.me-head .avatar { width: 58px; height: 58px; font-size: 22px; background: rgba(255,255,255,.25); }
.me-stats { display: grid; grid-template-columns: repeat(4, 1fr); text-align: center; margin-top: 18px; }
.me-stats b { font-size: 19px; display: block; }
.me-stats span { font-size: 12px; opacity: .85; }
.me-body { margin-top: -28px; padding: 0 14px 20px; }
.menu-grid { display: grid; grid-template-columns: repeat(4, 1fr); text-align: center; }
.menu-grid a { font-size: 13px; color: var(--text-2); padding: 4px 0; position: relative; }
.menu-grid a .m-ico { font-size: 24px; display: block; margin-bottom: 5px; }
.menu-grid .badge {
  position: absolute; top: -2px; right: calc(50% - 22px); background: var(--danger); color: #fff;
  font-size: 10px; min-width: 16px; height: 16px; line-height: 16px; border-radius: 8px; padding: 0 4px;
}
.menu-list a { display: flex; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.menu-list a:last-child { border-bottom: none; }
.menu-list a .arrow { margin-left: auto; color: var(--text-3); }
.progress { height: 8px; background: var(--bg); border-radius: 4px; overflow: hidden; flex: 1; }
.progress > i { display: block; height: 100%; background: var(--primary); border-radius: 4px; }

/* ===== 企业中心 H5 ===== */
.co-head { background: linear-gradient(135deg, #0BBEBD, #089E9E); padding: 18px 20px 40px; color: #fff; }
.co-head .top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; font-size: 15px; }
.co-card { margin: -24px 14px 12px; }
.banner-promo {
  margin: 0 14px 12px; background: linear-gradient(90deg, #FFF7EC, #FFFDF9);
  border: 1px solid #FFE4BD; border-radius: 12px; padding: 12px 16px;
  display: flex; align-items: center; gap: 10px; font-size: 13px; color: #8C5A1F;
}

/* ===== 地图找工作 ===== */
.map-stage { position: relative; height: calc(100vh - 240px); min-height: 420px; background: #EAF3EE; overflow: hidden; border-radius: 0 0 var(--radius) var(--radius); }
.map-pin {
  position: absolute; transform: translate(-50%, -100%); background: var(--primary); color: #fff;
  padding: 4px 10px; border-radius: 16px 16px 16px 2px; font-size: 12px; font-weight: 700; cursor: pointer;
  box-shadow: 0 3px 10px rgba(0,190,188,.4); white-space: nowrap; z-index: 2;
}
.map-pin::after { content: ""; position: absolute; left: 4px; bottom: -5px; width: 8px; height: 8px; background: var(--primary); transform: rotate(45deg); }
.map-pin.me { background: #1F2329; box-shadow: 0 3px 10px rgba(0,0,0,.3); }
.map-pin.active { background: var(--orange); box-shadow: 0 3px 10px rgba(255,136,0,.4); }
.map-drawer { background: #fff; padding: 16px 20px 20px; }
@media (max-width: 768px) { .map-stage { height: 52vh; } }

/* ===== 运营后台 ===== */
.admin { display: flex; min-height: 100vh; background: var(--bg); }
.admin-side { width: 208px; background: #001645; color: #B7BDD3; padding: 18px 0; flex-shrink: 0; }
.admin-side .logo { color: #fff; padding: 0 20px 18px; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 18px; }
.admin-side .logo .logo-mark { background: var(--primary); }
.admin-side .sub { padding: 0 20px; font-size: 11px; color: #5A6B95; margin-top: 4px; }
.admin-nav { margin-top: 12px; }
.admin-nav a { display: block; padding: 12px 20px; font-size: 14px; cursor: pointer; color: #B7BDD3; }
.admin-nav a:hover { color: #fff; }
.admin-nav a.active { background: #014DB2; color: #fff; }
.admin-main { flex: 1; min-width: 0; padding: 20px 24px; }
.admin-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.admin-top h2 { font-size: 18px; }
.admin-table { width: 100%; background: #fff; border-radius: 12px; overflow: hidden; font-size: 13px; }
.admin-table table { width: 100%; border-collapse: collapse; }
.admin-table th { background: #F7F8FA; text-align: left; padding: 11px 14px; color: var(--text-2); font-weight: 500; }
.admin-table td { padding: 12px 14px; border-top: 1px solid var(--line); color: var(--text-1); }
.admin-table tr:hover td { background: #FAFBFC; }
.mini-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
@media (max-width: 900px) {
  .admin-side { width: 60px; }
  .admin-side .logo span, .admin-side .sub, .admin-nav a { font-size: 0; }
  .admin-nav a::first-letter { font-size: 15px; }
  .mini-stats { grid-template-columns: repeat(2, 1fr); }
}
.pill-ok { background: #E8FFEA; color: var(--green); }
.pill-warn { background: #FFF3E5; color: var(--orange); }
.pill-gray { background: #F2F3F5; color: var(--text-2); }
.status-pill.pill-ok, .status-pill.pill-warn, .status-pill.pill-gray { font-size: 12px; padding: 4px 12px; border-radius: 20px; }

/* 简历详情 */
.cand-head { background: linear-gradient(135deg, #0BBEBD, #089E9E); padding: 20px; color: #fff; display: flex; gap: 14px; align-items: center; }
.exp-item { padding: 14px 0; border-bottom: 1px solid var(--line); }
.exp-item:last-child { border-bottom: none; }
.exp-item h4 { font-size: 14px; }
.exp-item .period { color: var(--text-3); font-size: 12px; margin: 4px 0; }
.exp-item p { color: var(--text-2); font-size: 13px; line-height: 1.7; }

/* ===== Boss 风移动端首页（对齐 H5 首页定稿截图）===== */
.m-home { display: none; }
@media (max-width: 768px) {
  .pc-home { display: none; }
  .m-home { display: block; }
}
.m-head { background: #fff; padding: 20px 16px 14px; }
.m-head-row { display: flex; align-items: baseline; gap: 14px; }
.m-head-row h1 { font-size: 25px; font-weight: 800; letter-spacing: .5px; }
.m-cat { font-size: 15px; color: var(--text-2); }
.m-acts { margin-left: auto; display: flex; gap: 20px; align-items: center; color: var(--text-1); }
.m-acts a { padding: 2px; display: flex; align-items: center; }
.m-extra { display: none; margin-top: 12px; flex-wrap: wrap; gap: 8px; }
.m-extra.open { display: flex; }
.m-extra .chip { background: var(--bg); }
.m-searchbar { display: none; margin-top: 12px; background: var(--bg); border-radius: 10px; padding: 0 12px; align-items: center; gap: 8px; }
.m-searchbar.open { display: flex; }
.m-searchbar input { flex: 1; height: 38px; background: none; font-size: 14px; }
.m-filter-row { display: flex; align-items: center; justify-content: space-between; margin-top: 18px; position: relative; }
.m-fi { display: flex; align-items: center; gap: 3px; font-size: 14.5px; color: #4E5969; font-weight: 600; cursor: pointer; user-select: none; }
.m-fi.on { color: #1F2329; font-weight: 800; }
.m-fi svg { flex-shrink: 0; color: #86909C; }
.m-fi.on svg { color: #1F2329; }
.m-fi .f-badge { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 9px; background: var(--primary); color: #fff; font-size: 10.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.m-fi .f-badge[hidden] { display: none; }
.m-drop-mask { position: fixed; inset: 0; z-index: 110; display: none; }
.m-drop-mask.open { display: block; }
.m-drop {
  display: none; position: absolute; top: calc(100% + 10px); left: 0; min-width: 150px;
  background: #fff; border-radius: 12px; box-shadow: 0 10px 32px rgba(31,35,41,.14);
  padding: 6px 0; z-index: 111; transform-origin: top left; animation: dropIn .16s ease;
}
.m-drop.right { left: auto; right: 64px; transform-origin: top right; }
.m-drop.open { display: block; }
@keyframes dropIn { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: none; } }
.m-drop a { display: block; padding: 11px 18px; font-size: 14px; color: #1F2329; cursor: pointer; }
.m-drop a:active { background: #F6F7F9; }
.m-drop a.act { color: var(--primary); font-weight: 700; }
.ms-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.ms-head b { font-size: 17px; }
.ms-reset { font-size: 13px; color: var(--text-3); cursor: pointer; }
.m-sheet { max-height: 78vh; overflow-y: auto; }
.m-tip { text-align: center; color: var(--primary); font-size: 13px; padding: 8px 0 12px; transition: opacity .4s; }
.m-tip.hide { opacity: 0; }
.m-body { padding: 0 12px 24px; }
.boss-list { display: flex; flex-direction: column; gap: 12px; }
.boss-card {
  background: #fff; border-radius: 14px; padding: 16px 14px 14px; cursor: pointer;
}
.boss-card:active { background: #FAFBFC; }
.bc-top { display: flex; align-items: center; gap: 8px; }
.bc-title { flex: 1; min-width: 0; font-size: 17px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-tag { font-size: 11px; padding: 2px 7px; border-radius: 4px; font-weight: 600; flex-shrink: 0; }
.bc-tag.urgent { color: var(--danger); background: #FEECEC; }
.bc-tag.direct { color: #2A7BF6; background: #EAF2FF; }
.bc-salary { margin-left: auto; color: var(--primary); font-size: 17px; font-weight: 800; white-space: nowrap; }
.bc-co { margin-top: 9px; color: var(--text-3); font-size: 13px; }
.bc-tags { margin-top: 11px; display: flex; gap: 8px; flex-wrap: wrap; }
.bc-tags span { font-size: 12px; color: var(--text-2); background: #F2F3F5; padding: 3px 10px; border-radius: 4px; }
.bc-foot { margin-top: 13px; display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-3); }
.bc-logo {
  width: 22px; height: 22px; border-radius: 50%;
  /* Boss 风默认 Logo：品牌青色渐变背景 + 企业名首字白字加粗；上传真实 logo 后显示图片 */
  background: linear-gradient(135deg, #00BEBC, #00A9A7); color: #fff;
  font-size: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-weight: 800; line-height: 1;
  overflow: hidden;
}
/* 企业上传了真实 logo（图片）时的填充样式 */
.logo-img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; display: block; }
.bc-foot b { color: var(--text-1); font-weight: 600; font-size: 13px; }
.bc-dist { margin-left: auto; }
/* 筛选底部弹层 */
.m-sheet-mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 120; display: none; }
.m-sheet-mask.open { display: block; }
.m-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; background: #fff; z-index: 121; display: none;
  border-radius: 16px 16px 0 0; padding: 18px 16px calc(20px + env(safe-area-inset-bottom));
}
.m-sheet.open { display: block; }
.m-sheet h3 { font-size: 15px; margin-bottom: 12px; }
.m-sheet .chips { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.m-sheet .btns { display: flex; gap: 12px; }
.m-sheet .btns .btn { flex: 1; }

/* ===== Boss 风移动端职位详情（对齐定稿截图）===== */
.m-nav { display: none; }
.m-detail { display: none; }
@media (max-width: 768px) {
  .pc-detail { display: none; }
  .m-detail { display: block; }
  .m-nav { display: flex; }
  body.jd-page .topbar { display: none; }
  body.jd-page .detail-foot { display: none !important; }
}
.m-nav {
  position: sticky; top: 0; z-index: 100; background: #fff; height: 48px;
  align-items: center; justify-content: space-between; padding: 0 14px;
}
.m-nav .nv-title { font-size: 16px; font-weight: 600; }
.m-nav a { display: flex; align-items: center; padding: 4px; color: var(--text-1); }
.m-detail { padding: 10px 12px 96px; }
.jd-card { background: #fff; border-radius: 14px; padding: 16px 14px; margin-bottom: 12px; }
.jd-title-row { display: flex; align-items: center; gap: 8px; }
.jd-title { font-size: 20px; font-weight: 800; }
.jd-salary { margin-top: 10px; color: var(--primary); font-size: 20px; font-weight: 800; }
.jd-salary small { font-size: 14px; font-weight: 700; }
.jd-tags { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.jd-tags span { font-size: 12px; color: var(--text-2); background: #F2F3F5; padding: 3px 10px; border-radius: 4px; }
.jd-meta { margin-top: 12px; color: var(--text-3); font-size: 12px; }
.jd-hr { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 10px; }
.jd-hr .havatar {
  width: 38px; height: 38px; border-radius: 50%;
  /* 招聘负责人头像 = 企业 Logo（真实图优先，否则企业首字 + Boss 风青色渐变背景） */
  background: linear-gradient(135deg, #00BEBC, #00A9A7); color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; flex-shrink: 0;
  overflow: hidden;
}
.jd-hr .hname { font-size: 15px; font-weight: 700; }
.jd-hr .hsub { color: var(--text-3); font-size: 12px; margin-top: 3px; }
.jd-hr .btn { margin-left: auto; padding: 8px 18px; border-radius: 18px; font-size: 14px; }
.jd-co { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.jd-co .clogo {
  width: 44px; height: 44px; border-radius: 50%; background: #E5E6EB; color: #86909C;
  font-size: 28px; font-weight: 800; line-height: 1; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
/* 职位详情：企业 Logo 默认首字使用 Boss 风（品牌青色）背景，白字加粗 */
.detail-sec .co-logo,
.jd-co .clogo {
  background: linear-gradient(135deg, #00BEBC, #00A9A7);
  color: #fff; font-weight: 800; overflow: hidden;
}
.jd-co .cname { font-size: 16px; font-weight: 700; display: flex; align-items: center; gap: 5px; }
.jd-co .vcheck { color: var(--primary); display: flex; }
.jd-co .cmeta { color: var(--text-3); font-size: 12px; margin-top: 4px; }
.jd-co .chev { margin-left: auto; color: #C9CDD4; display: flex; }
.jd-sec h3 { font-size: 16px; font-weight: 800; margin-bottom: 12px; }
.jd-sec .seeall { float: right; font-size: 12px; color: var(--text-3); font-weight: 400; }
.jd-desc { white-space: pre-wrap; color: var(--text-1); font-size: 14px; line-height: 1.9; }
.jd-map {
  height: 170px; background: #EAF1F7; border-radius: 10px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; color: #86909C; font-size: 15px;
  position: relative; cursor: pointer;
}
.jd-map canvas, .jd-map iframe { border-radius: 10px; }
.jd-map-ph {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  background: linear-gradient(135deg, #EAF3EE 0%, #E3EDF6 100%);
  background-image:
    linear-gradient(rgba(160,190,175,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(160,190,175,.12) 1px, transparent 1px),
    linear-gradient(135deg, #EDF5F0 0%, #E4EDF5 100%);
  background-size: 28px 28px, 28px 28px, 100% 100%;
  width: 100%; height: 100%;
}
.jd-map-ph .mp-pin { font-size: 26px; line-height: 1; }
.jd-map-ph .mp-txt { font-size: 13px; color: #6B7A90; }
.jd-map-ph .mp-go { margin-top: 2px; font-size: 12px; color: var(--primary); font-weight: 700; }
.jd-addr { margin-top: 12px; font-size: 13px; color: var(--text-2); display: flex; align-items: center; gap: 10px; }
.jd-addr .grow { flex: 1; min-width: 0; display: flex; align-items: center; gap: 4px; }
.jd-nav { font-size: 12px; color: var(--primary); font-weight: 700; white-space: nowrap; }
/* 工作地址定稿：地址行在地图上方，右上是「导航 ›」 */
.jd-addr-top { margin: 2px 0 12px; font-size: 15px; color: var(--text-1); display: flex; align-items: center; gap: 10px; }
.jd-addr-top .grow { flex: 1; min-width: 0; line-height: 1.5; }
.jd-addr-top .jd-nav { font-size: 14px; }
/* 地图右下角「腾讯地图」角标（无内置水印时的兜底展示） */
.tmap-badge {
  position: absolute; right: 8px; bottom: 8px; z-index: 6; pointer-events: none;
  display: flex; align-items: center; gap: 4px;
  background: rgba(255,255,255,.94); border-radius: 3px; padding: 3px 7px;
  font-size: 11px; color: #333; font-weight: 600; box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.tmap-badge i {
  width: 13px; height: 13px; border-radius: 2px;
  background: conic-gradient(from 45deg, #3C8CFF 0 25%, #F5F7FA 0 50%, #F55C3D 0 75%, #3CB54A 0);
}
/* 求职安全提示卡 */
.jd-safe { }
.jd-safe .jd-safe-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.jd-safe .jd-safe-hd svg { color: var(--primary); flex-shrink: 0; }
.jd-safe .jd-safe-hd h3 { margin: 0; }
.jd-safe p { font-size: 13px; color: #5A6B81; line-height: 1.9; margin: 0; }
.jd-safe p b { color: var(--text-1); }
.jd-sims { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.jd-sim { border: 1px solid var(--line); border-radius: 10px; padding: 12px; cursor: pointer; }
.jd-sim .st { font-size: 14px; font-weight: 700; }
.jd-sim .ss { color: var(--primary); font-size: 15px; font-weight: 800; margin-top: 6px; }
.jd-sim .sc { color: var(--text-3); font-size: 11px; margin-top: 6px; }
.m-foot {
  position: fixed; bottom: 0; left: 0; right: 0; background: #fff; z-index: 110;
  border-top: 1px solid var(--line); display: flex; align-items: center; gap: 2px;
  padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
}
.mf-item { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 10px; color: var(--text-2); padding: 0 9px; }
.mf-item svg { display: block; }
.mf-item.on { color: var(--primary); }
.mf-chat { flex: 1; margin-left: 8px; border-radius: 22px; padding: 12px 0; font-size: 15px; }

/* ===== Boss 风移动端候选人简历（对齐定稿截图）===== */
.pc-cand { display: block; }
@media (max-width: 768px) {
  .pc-cand { display: none; }
  body.cr-page .topbar { display: none; }
  body.cr-page .detail-foot { display: none !important; }
}
.cr-card { background: #fff; border-radius: 14px; padding: 16px 14px; margin-bottom: 12px; }
.cr-sec h3 { font-size: 16px; font-weight: 800; margin-bottom: 12px; }
.cr-head { display: flex; gap: 12px; }
.cr-avatar {
  width: 54px; height: 54px; border-radius: 50%; background: var(--primary-light); color: var(--primary);
  display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 700; flex-shrink: 0;
}
.cr-name-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cr-name { font-size: 20px; font-weight: 800; }
.cr-match { font-size: 11px; color: var(--primary); background: var(--primary-light); border-radius: 4px; padding: 2px 7px; font-weight: 600; }
.cr-info { margin-top: 7px; color: var(--text-2); font-size: 13px; }
.cr-info2 { margin-top: 5px; color: var(--text-3); font-size: 12px; }
.cr-applied { margin-top: 12px; background: #F5F6F7; border-radius: 10px; padding: 10px 12px; display: flex; align-items: center; font-size: 13px; color: var(--text-1); }
.cr-applied .time { margin-left: auto; color: var(--text-3); font-size: 12px; }
.cr-expect { background: #F5F6F7; border-radius: 10px; padding: 12px 14px; display: flex; gap: 10px; }
.cr-expect .t-ico { color: var(--primary); display: flex; margin-top: 2px; }
.cr-expect .p { font-size: 15px; font-weight: 700; }
.cr-expect .m { color: var(--text-3); font-size: 12px; margin-top: 5px; }
.cr-tl-item { position: relative; padding-left: 16px; padding-bottom: 16px; }
.cr-tl-item:last-child { padding-bottom: 0; }
.cr-tl-item::before { content: ""; position: absolute; left: 0; top: 6px; width: 8px; height: 8px; border-radius: 50%; background: #C9CDD4; }
.cr-tl-item.first::before { background: var(--primary); }
.cr-tl-item h4 { font-size: 15px; font-weight: 700; }
.cr-tl-item .meta { color: var(--text-3); font-size: 12px; margin: 4px 0; }
.cr-tl-item p { color: var(--text-2); font-size: 13px; line-height: 1.7; }
.cr-edu-row { display: flex; justify-content: space-between; align-items: baseline; }
.cr-edu-row h4 { font-size: 15px; font-weight: 700; }
.cr-edu-row .period { color: var(--text-3); font-size: 13px; }
.cr-edu-meta { color: var(--text-2); font-size: 13px; margin-top: 6px; }
.cr-skills { display: flex; gap: 8px; flex-wrap: wrap; }
.cr-skills span { font-size: 12px; color: var(--primary); background: var(--primary-light); padding: 4px 12px; border-radius: 6px; font-weight: 500; }
.cr-intro { color: var(--text-2); font-size: 13px; line-height: 1.8; }
.mf-round {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color: var(--text-2); margin-right: 6px;
}
#actBtns .btn { width: 100%; margin-bottom: 10px; }
#actBtns .btn:last-child { margin-bottom: 0; }

/* ===== 顶栏双入口：我要求职 / 我要招人 ===== */
.entry-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 38px; padding: 0 18px; border-radius: 8px;
  font-size: 14px; font-weight: 600; white-space: nowrap;
  transition: opacity .15s, transform .15s;
}
.entry-btn:active { opacity: .82; transform: scale(.98); }
.entry-btn.seeker { color: var(--primary); background: var(--primary-light); }
.entry-btn.company { color: #fff; background: var(--primary); }
@media (max-width: 768px) {
  .entry-btn { height: 33px; padding: 0 12px; font-size: 13px; border-radius: 7px; }
  .topbar-right { gap: 8px; }
}

/* ===== 身份切换入口（图标 + 下方文字，对齐 Boss 直聘） ===== */
.role-switch {
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; color: var(--text-1); padding: 0 9px; cursor: pointer; line-height: 1;
}
.role-switch.with-divider {
  border-left: 1px solid var(--line); margin-left: 2px; padding-left: 12px;
}
.role-switch svg { display: block; }
.role-switch span { font-size: 11px; color: var(--text-2); letter-spacing: .2px; }
.role-switch:hover { color: var(--primary); }
.role-switch:hover span { color: var(--primary); }

/* 身份切换弹层 */
.rs-mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 300; }
.rs-wrap {
  position: fixed; inset: 0; z-index: 301; display: flex;
  align-items: center; justify-content: center; padding: 24px;
}
.rs-card {
  background: #fff; border-radius: 16px; width: 100%; max-width: 380px;
  padding: 24px 20px 20px; text-align: center; box-shadow: 0 12px 40px rgba(0,0,0,.14);
}
.rs-ico { color: var(--primary); display: flex; justify-content: center; margin-bottom: 10px; }
.rs-ico svg { width: 30px; height: 30px; }
.rs-card h3 { font-size: 18px; letter-spacing: .2px; }
.rs-sub { color: var(--text-2); font-size: 13px; line-height: 1.75; margin: 9px 0 16px; }
.rs-sub b { color: var(--text-1); }
.rs-body { text-align: left; }
.rs-opt {
  display: block; border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 14px; margin-bottom: 10px; transition: background .15s, border-color .15s;
}
.rs-opt:hover { background: #FAFBFC; border-color: var(--primary); }
.rs-opt b { display: block; font-size: 14px; color: var(--text-1); }
.rs-opt span { display: block; font-size: 12px; color: var(--text-3); margin-top: 4px; }
.rs-card .btn { margin-top: 4px; }

@media (max-width: 768px) {
  .topbar-right .btn { display: none; }
  .role-switch { padding: 0 7px; gap: 2px; }
  .role-switch.with-divider { margin-left: 0; border-left: none; padding-left: 7px; }
  .role-switch svg { width: 20px; height: 20px; }
  .role-switch span { font-size: 10px; }
  .rs-card { max-width: none; }
}

/* ===== 简历汇总（「我要招人」入口页）===== */
.talent-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.talent-head h1 { font-size: 24px; font-weight: 800; letter-spacing: .3px; }
.talent-head .sub { color: var(--text-3); font-size: 13px; margin-top: 6px; }
.talent-tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 4px 0 14px; }
.talent-tools input {
  flex: 1; min-width: 200px; height: 40px; border: 1px solid var(--line);
  border-radius: 10px; padding: 0 14px; font-size: 14px; background: #fff; outline: none;
}
.talent-tools input:focus { border-color: var(--primary); }
.talent-tools .chips { display: flex; gap: 8px; flex-wrap: wrap; }
.tl-card {
  background: #fff; border-radius: var(--radius); padding: 16px 18px; margin-bottom: 10px;
  display: flex; gap: 14px; align-items: flex-start; cursor: pointer; transition: box-shadow .15s;
}
.tl-card:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, .06); }
.tl-av {
  width: 46px; height: 46px; border-radius: 50%; background: var(--primary-light); color: var(--primary);
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; flex-shrink: 0;
}
.tl-main { flex: 1; min-width: 0; }
.tl-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 16px; font-weight: 700; }
.tl-match { font-size: 11px; font-weight: 600; color: var(--primary); background: var(--primary-light); border-radius: 4px; padding: 2px 7px; }
.tl-meta { color: var(--text-2); font-size: 13px; margin-top: 6px; }
.tl-job { color: var(--text-3); font-size: 12px; margin-top: 5px; }
.tl-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 9px; }
.tl-tags span { font-size: 12px; color: var(--text-2); background: #F2F3F5; padding: 3px 10px; border-radius: 4px; }
.tl-acts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; max-width: 280px; }
.gate { background: #fff; border-radius: var(--radius); padding: 44px 24px; text-align: center; }
.gate h3 { font-size: 18px; font-weight: 700; margin-bottom: 10px; }
.gate p { color: var(--text-3); font-size: 13px; line-height: 1.9; margin-bottom: 20px; max-width: 460px; margin-left: auto; margin-right: auto; }
.gate .btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 768px) {
  .talent-head h1 { font-size: 21px; }
  .tl-card { flex-wrap: wrap; padding: 14px; }
  .tl-name { font-size: 15px; }
  .tl-acts { max-width: none; width: 100%; justify-content: flex-start; margin-top: 4px; }
  .talent-tools input { min-width: 0; }
  .gate { padding: 32px 16px; }
}

/* ============================================================
   企业主页（company-home.html）
   PC：左信息 + 右职位；H5：沉浸式头图 + 数据条 + 吸顶 Tab
   ============================================================ */
.m-cohome { display: none; }

/* ---------- PC 版式 ---------- */
.co-home-grid { display: grid; grid-template-columns: 336px 1fr; gap: 16px; align-items: start; }
.co-home-side { position: sticky; top: 82px; }
.co-cover {
  border-radius: 16px; padding: 22px; color: #fff; position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0A525E 0%, #0B7A80 38%, #00B6B2 76%, #25DFCA 100%);
}
.co-cover::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(320px 180px at 82% 8%, rgba(37,223,202,.45), transparent 72%),
              radial-gradient(260px 200px at 6% 100%, rgba(0,0,0,.28), transparent 70%);
}
.co-cover > * { position: relative; z-index: 2; }
.co-cover-head { display: flex; gap: 14px; align-items: flex-start; }
.co-big-logo {
  width: 58px; height: 58px; border-radius: 15px; flex-shrink: 0; display: grid; place-items: center;
  background: linear-gradient(150deg, #19E0CE, #00898C); border: 2px solid rgba(255,255,255,.85);
  font-size: 26px; font-weight: 700; box-shadow: 0 6px 18px rgba(0,60,60,.28);
}
.co-cover h1 { font-size: 19px; font-weight: 700; line-height: 1.35; }
.co-cover .c-sub { margin-top: 6px; font-size: 12px; color: rgba(255,255,255,.82); display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.co-cover .c-sub i { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.55); }
.co-cover .c-badges { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.co-cover .c-badges span {
  font-size: 10.5px; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.3);
  border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; gap: 3px;
}
.co-side-card { background: #fff; border-radius: 14px; padding: 16px; margin-top: 12px; }
.co-side-card h3 { font-size: 14px; font-weight: 700; margin-bottom: 10px; display: flex; align-items: center; gap: 7px; }
.co-side-card h3::before { content: ""; width: 3px; height: 13px; border-radius: 2px; background: linear-gradient(var(--primary), var(--primary-dark)); }
.co-side-card p { font-size: 13px; line-height: 1.85; color: var(--text-2); }
.co-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); text-align: center; margin-top: 12px; }
.co-stat-row b { display: block; font-size: 17px; }
.co-stat-row b i { font-style: normal; font-size: 11px; color: var(--text-3); }
.co-stat-row span { font-size: 11px; color: var(--text-3); }
.co-legal { margin: 0; font-size: 13px; }
.co-legal div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #F5F7FA; }
.co-legal div:last-child { border-bottom: none; }
.co-legal dt { color: var(--text-3); }
.co-legal dd { margin: 0; text-align: right; font-weight: 500; max-width: 62%; }
.co-main-head { display: flex; align-items: center; justify-content: space-between; background: #fff; border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; }
.co-main-head h2 { font-size: 16px; font-weight: 700; }
.co-main-head h2 span { color: var(--primary-dark); }
.co-main-head .more { font-size: 12px; color: var(--text-3); }
.co-main .job-card { margin-bottom: 10px; }
.co-empty { background: #fff; border-radius: 14px; padding: 36px 20px; text-align: center; color: var(--text-3); font-size: 13px; }

@media (max-width: 980px) {
  .co-home-grid { grid-template-columns: 1fr; }
  .co-home-side { position: static; }
}

/* ---------- H5 版式 ---------- */
body.ch-page { background: #E7EBF0; }
body.ch-page .pc-cohome { display: block; }
@media (max-width: 768px) {
  body.ch-page { padding-bottom: calc(74px + env(safe-area-inset-bottom)); background: #F4F6F9; }
  body.ch-page .topbar { display: none; }
  body.ch-page .pc-cohome { display: none; }
  body.ch-page .m-cohome { display: block; }
}

.m-cohome {
  max-width: 480px; margin: 0 auto; min-height: 100vh; position: relative; overflow-x: clip;
  background: #F4F6F9; color: #1B1F26;
}
.ch-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: calc(52px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top);
}
.ch-nav::before {
  content: ""; position: absolute; inset: 0; margin: 0 auto; max-width: 480px;
  background: transparent; transition: background .18s ease, box-shadow .18s ease;
}
.ch-nav.solid::before { background: #fff; box-shadow: 0 1px 0 rgba(20,32,56,.07); }
.ch-nav-inner {
  max-width: 480px; margin: 0 auto; height: 52px; display: flex; align-items: center;
  padding: 0 12px; position: relative;
}
.ch-nav-title {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  font-size: 16px; font-weight: 600; opacity: 0; transition: opacity .2s;
  max-width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ch-nav.solid .ch-nav-title { opacity: 1; }
.ch-icon-btn {
  width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  position: relative; z-index: 2; color: #fff; background: rgba(0,0,0,.16);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: .2s;
}
.ch-nav.solid .ch-icon-btn { background: transparent; color: #1B1F26; -webkit-backdrop-filter: none; backdrop-filter: none; }
.ch-nav-more { margin-left: auto; display: flex; gap: 6px; }

/* 头图 */
.ch-hero {
  position: relative; height: 216px; overflow: hidden;
  padding-top: calc(52px + env(safe-area-inset-top));
  background: linear-gradient(135deg,#0A525E 0%,#0B7A80 38%,#00B6B2 76%,#25DFCA 100%);
}
.ch-hero::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(320px 180px at 82% 8%, rgba(37,223,202,.45), transparent 72%),
              radial-gradient(260px 200px at 6% 100%, rgba(0,0,0,.28), transparent 70%);
}
.ch-hero-grid {
  position: absolute; inset: 0; opacity: .10;
  background-image: linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(120% 100% at 0% 0%,#000 20%,transparent 78%);
  mask-image: radial-gradient(120% 100% at 0% 0%,#000 20%,transparent 78%);
}
.ch-ring { position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); }
.ch-ring.a { width: 220px; height: 220px; right: -40px; top: -30px; }
.ch-ring.b { width: 340px; height: 340px; right: -90px; top: -70px; border-color: rgba(255,255,255,.12); }
.ch-hero-body { position: relative; z-index: 3; padding: 8px 16px 0; display: flex; gap: 12px; align-items: flex-start; }
.ch-logo {
  width: 62px; height: 62px; border-radius: 16px; flex-shrink: 0; display: grid; place-items: center;
  background: linear-gradient(150deg,#19E0CE,#00898C); border: 2px solid rgba(255,255,255,.85);
  box-shadow: 0 6px 18px rgba(0,60,60,.28); position: relative;
  font-size: 26px; font-weight: 700; color: #fff;
}
.ch-logo .v {
  position: absolute; right: -3px; bottom: -3px; width: 19px; height: 19px; border-radius: 50%;
  background: var(--primary); border: 2px solid #fff; display: grid; place-items: center;
}
.ch-name { color: #fff; font-size: 19px; font-weight: 700; letter-spacing: .2px; line-height: 1.3; text-shadow: 0 1px 8px rgba(0,40,45,.25); }
.ch-sub { margin-top: 6px; color: rgba(255,255,255,.82); font-size: 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ch-sub .dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.55); }
.ch-badges { display: flex; gap: 6px; margin-top: 9px; flex-wrap: wrap; }
.ch-badges span {
  font-size: 10.5px; color: #fff; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.3);
  border-radius: 4px; padding: 2px 6px; display: inline-flex; align-items: center; gap: 3px;
}

/* 数据条 */
.ch-sheet { position: relative; margin-top: -22px; border-radius: 18px 18px 0 0; background: #F4F6F9; padding: 0 0 4px; z-index: 5; }
.ch-stats {
  background: #fff; border-radius: 14px; margin: 0 12px; padding: 14px 0;
  display: grid; grid-template-columns: repeat(3,1fr); box-shadow: 0 4px 16px rgba(20,40,70,.06);
  position: relative; top: -14px; margin-bottom: -2px;
}
.ch-stat { text-align: center; position: relative; }
.ch-stat + .ch-stat::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 1px; height: 22px; background: #EFF1F4; }
.ch-stat b { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ch-stat b i { font-style: normal; font-size: 11px; font-weight: 600; color: #5C6675; margin-left: 1px; }
.ch-stat span { display: block; font-size: 11px; color: #9AA3AF; margin-top: 2px; }

/* 卡片通用 */
.ch-card { background: #fff; border-radius: 14px; margin: 10px 12px; overflow: hidden; }
.ch-card section[id], .ch-card[id] { scroll-margin-top: 108px; }
.ch-card-hd { display: flex; align-items: center; justify-content: space-between; padding: 15px 14px 0; }
.ch-card-hd h2 { margin: 0; font-size: 15.5px; font-weight: 700; display: flex; align-items: center; gap: 7px; }
.ch-card-hd h2::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: linear-gradient(#1FDCC8,#009E9D); }
.ch-card-hd .more { font-size: 12px; color: #9AA3AF; display: flex; align-items: center; gap: 2px; }
.ch-card-bd { padding: 12px 14px 14px; }

/* BOSS 横滑 */
.ch-sec-title { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 8px; }
.ch-sec-title h3 { margin: 0; font-size: 15px; font-weight: 700; }
.ch-sec-title span { font-size: 11.5px; color: #9AA3AF; }
.ch-boss-scroll {
  display: flex; gap: 10px; overflow-x: auto; padding: 12px 12px 14px;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.ch-boss-scroll::-webkit-scrollbar { display: none; }
.ch-boss {
  flex: 0 0 auto; width: 112px; background: #fff; border-radius: 12px; padding: 12px 10px;
  text-align: center; scroll-snap-align: start; box-shadow: 0 2px 10px rgba(20,40,70,.05);
  transition: transform .15s;
}
.ch-boss:active { transform: scale(.97); }
.ch-boss .ava {
  width: 44px; height: 44px; border-radius: 50%; margin: 0 auto 8px; display: grid; place-items: center;
  color: #fff; font-size: 15px; font-weight: 600; position: relative;
}
.ch-boss .ava.online::after {
  content: ""; position: absolute; right: 0; bottom: 0; width: 11px; height: 11px;
  border-radius: 50%; background: #22C55E; border: 2px solid #fff;
}
.ch-boss b { display: block; font-size: 13px; font-weight: 600; }
.ch-boss span { display: block; font-size: 11px; color: #9AA3AF; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-mini-btn {
  margin-top: 8px; height: 26px; width: 100%; border-radius: 13px; font-size: 12px; font-weight: 600;
  color: #009E9D; background: #E9FAF9; border: 1px solid rgba(0,190,189,.28);
}

/* Tab */
.ch-tabs {
  position: sticky; top: calc(52px + env(safe-area-inset-top)); z-index: 60;
  background: rgba(255,255,255,.96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid #EFF1F4; display: flex; padding: 0 4px; overflow-x: auto; scrollbar-width: none;
}
.ch-tabs::-webkit-scrollbar { display: none; }
.ch-tabs a {
  position: relative; flex: 0 0 auto; padding: 0 12px; height: 44px; display: flex; align-items: center;
  font-size: 14px; color: #5C6675; white-space: nowrap; transition: color .18s;
}
.ch-tabs a.on { color: #1B1F26; font-weight: 600; }
.ch-tabs a.on::after {
  content: ""; position: absolute; left: 50%; transform: translateX(-50%); bottom: 5px;
  width: 20px; height: 3px; border-radius: 2px; background: var(--primary);
}
.ch-tabs .n { font-size: 10.5px; color: #009E9D; background: #E9FAF9; border-radius: 8px; padding: 0 5px; margin-left: 4px; line-height: 15px; font-weight: 600; }

/* 简介 */
.ch-intro { font-size: 13.5px; line-height: 1.85; color: #3D4653; margin: 0; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; transition: .2s; }
.ch-intro.open { -webkit-line-clamp: unset; display: block; }
.ch-expand { margin-top: 8px; font-size: 12.5px; color: #009E9D; font-weight: 600; display: inline-flex; align-items: center; gap: 3px; }
.ch-expand svg { transition: transform .2s; }
.ch-expand.up svg { transform: rotate(180deg); }
.ch-kv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.ch-kv { background: #F7F9FB; border-radius: 10px; padding: 10px 11px; }
.ch-kv b { display: block; font-size: 12.5px; margin-bottom: 2px; }
.ch-kv span { font-size: 11px; color: #9AA3AF; line-height: 1.5; }
.ch-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.ch-chips span { font-size: 11.5px; color: #009E9D; background: #E9FAF9; border-radius: 11px; padding: 2px 9px; }

/* 职位 */
.ch-job { padding: 14px; border-radius: 12px; background: #fff; border: 1px solid #EFF1F4; margin-bottom: 9px; transition: .18s; }
.ch-job:last-of-type { margin-bottom: 0; }
.ch-job:active { background: #FAFCFD; border-color: rgba(0,190,189,.4); }
.ch-j-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ch-j-top h3 { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.35; }
.ch-j-top .tag-urgent { font-size: 10px; color: #FF6A2B; border: 1px solid rgba(255,106,43,.35); background: #FFF3ED; border-radius: 3px; padding: 0 4px; vertical-align: 1px; margin-left: 5px; font-weight: 600; }
.ch-sal { font-size: 15px; font-weight: 700; color: #FF6A2B; white-space: nowrap; }
.ch-j-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.ch-j-tags span { font-size: 11.5px; color: #5C6675; background: #F5F7FA; border-radius: 4px; padding: 2px 6px; }
.ch-j-foot { display: flex; align-items: center; gap: 7px; margin-top: 11px; padding-top: 10px; border-top: 1px solid #EFF1F4; }
.ch-j-foot .ava { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 10px; font-weight: 600; flex-shrink: 0; }
.ch-j-foot p { margin: 0; font-size: 11.5px; color: #9AA3AF; display: flex; align-items: center; gap: 5px; }
.ch-j-foot p b { color: #1B1F26; font-size: 12px; font-weight: 600; }
.ch-chat-btn {
  margin-left: auto; height: 28px; padding: 0 14px; border-radius: 14px; font-size: 12.5px; font-weight: 600;
  color: #fff; background: linear-gradient(135deg,#1FDCC8,#00BEBD); box-shadow: 0 3px 10px rgba(0,190,189,.28);
}
.ch-more-btn { display: block; width: 100%; height: 38px; margin-top: 12px; border-radius: 19px; font-size: 13px; color: #009E9D; font-weight: 600; background: #E9FAF9; }

/* 办公环境 */
.ch-env-scroll { display: flex; gap: 9px; overflow-x: auto; padding: 12px 14px 14px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ch-env-scroll::-webkit-scrollbar { display: none; }
.ch-env {
  flex: 0 0 auto; width: 132px; height: 92px; border-radius: 10px; position: relative;
  scroll-snap-align: start; display: grid; place-items: end start; padding: 8px; overflow: hidden;
}
.ch-env span { position: relative; z-index: 2; font-size: 10.5px; color: #fff; background: rgba(0,0,0,.3); padding: 2px 7px; border-radius: 8px; }
.ch-env::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(45deg,rgba(255,255,255,.1) 0 2px,transparent 2px 10px); }

/* 信息列表 */
.ch-rows { margin: 0; }
.ch-row { display: flex; justify-content: space-between; gap: 14px; font-size: 13px; padding: 11px 0; border-bottom: 1px solid #F5F7FA; }
.ch-row:last-child { border-bottom: none; padding-bottom: 0; }
.ch-row dt { color: #9AA3AF; flex-shrink: 0; margin: 0; }
.ch-row dd { margin: 0; text-align: right; font-weight: 500; }
.ch-row dd.ok { color: #0AA06E; }
.ch-row dd.wait { color: #C9CDD4; }

/* 相似公司 */
.ch-sim { display: flex; gap: 9px; align-items: center; padding: 11px 0; border-bottom: 1px solid #F5F7FA; }
.ch-sim:last-child { border-bottom: none; }
.ch-sim .slogo { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; color: #fff; font-size: 13px; font-weight: 700; flex-shrink: 0; }
.ch-sim b { display: block; font-size: 13px; font-weight: 600; }
.ch-sim span { font-size: 11px; color: #9AA3AF; }
.ch-sim .arrow { margin-left: auto; color: #C8D0DA; }

.ch-end { text-align: center; font-size: 11.5px; color: #B4BCC7; padding: 18px 0 6px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.ch-end::before, .ch-end::after { content: ""; width: 22px; height: 1px; background: #DDE3EA; }
.ch-foot-note { text-align: center; font-size: 10.5px; color: #BFC7D1; padding: 6px 24px 20px; line-height: 1.7; }

/* 底部固定栏 */
.ch-bottom {
  position: fixed; left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; bottom: 0; z-index: 110;
  background: rgba(255,255,255,.97); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-top: 1px solid #EFF1F4; padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
}
.ch-bottom-inner { max-width: 480px; margin: 0 auto; display: flex; align-items: center; gap: 10px; }
.ch-b-icon { width: 46px; display: flex; flex-direction: column; align-items: center; gap: 1px; color: #5C6675; font-size: 10px; flex-shrink: 0; background: transparent; border: none; padding: 0; }
.ch-b-icon:active { opacity: .6; }
.ch-b-icon.active { color: #009E9D; }
.ch-b-main {
  flex: 1; height: 44px; border-radius: 22px; color: #fff; font-size: 15px; font-weight: 600;
  background: linear-gradient(135deg,#1FDCC8,#00BEBD); box-shadow: 0 6px 16px rgba(0,190,189,.32);
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.ch-b-main:active { transform: scale(.985); }
.co-stat-row > div + div { border-left: 1px solid rgba(255,255,255,.18); }

/* ============================================================
   简历填写（resume.html）· 三屏：我的简历 / 基本信息 / 工作经历
   ============================================================ */
body.rv-page { background: #E9EDF2; }
body.rv-page .topbar { display: none; }

.rv-wrap {
  max-width: 480px; margin: 0 auto; height: 100vh; height: 100dvh;
  display: flex; flex-direction: column; background: #F5F6F7; position: relative; overflow: hidden;
}
@media (min-width: 769px) {
  .rv-wrap { max-width: 520px; height: calc(100dvh - 56px); margin: 28px auto; border-radius: 20px; box-shadow: 0 14px 44px rgba(20,40,70,.16); }
}
.rv-wrap button { font-family: inherit; border: none; background: none; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.rv-wrap input, .rv-wrap select, .rv-wrap textarea { font-family: inherit; }

/* 导航 */
.rv-nav { flex-shrink: 0; height: 56px; display: flex; align-items: center; padding: 0 12px; background: #fff; position: relative; z-index: 5; }
.rv-back { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 25px; line-height: 1; color: #1F2329; }
.rv-back:active { background: #F2F3F5; }
.rv-title { position: absolute; left: 50%; transform: translateX(-50%); font-size: 16px; font-weight: 600; color: #1F2329; }
.rv-act { margin-left: auto; height: 32px; padding: 0 2px; font-size: 13px; font-weight: 500; color: #00A9A7; position: relative; z-index: 2; }

/* 内容区 */
.rv-body { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 14px 16px 22px; display: flex; flex-direction: column; gap: 12px; }
.rv-screen { display: none; flex-direction: column; gap: 12px; }
.rv-screen.on { display: flex; }
.rv-card { background: #fff; border-radius: 14px; }

/* 完成度 */
.rv-pct { padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.rv-pct-row { display: flex; align-items: center; justify-content: space-between; }
.rv-pct-row > span { font-size: 14px; color: #4E5969; }
.rv-pct-row b { font-size: 22px; font-weight: 700; color: #00BEBC; font-variant-numeric: tabular-nums; line-height: 1; }
.rv-pct-row b i { font-style: normal; font-size: 13px; font-weight: 600; }
.rv-bar { height: 8px; border-radius: 4px; background: #E9FAF9; overflow: hidden; }
.rv-bar i { display: block; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #25DFCA, #00BEBC); transition: width .35s ease; }
.rv-pct-tip { margin: 0; font-size: 12px; color: #86909C; line-height: 1.5; }

/* 板块列表 */
.rv-list { overflow: hidden; }
.rv-item { display: flex; align-items: center; gap: 12px; min-height: 66px; padding: 10px 16px; position: relative; }
.rv-item + .rv-item::before { content: ""; position: absolute; left: 16px; right: 0; top: 0; height: 1px; background: #F5F7FA; }
.rv-item:active { background: #FAFCFD; }
.rv-ic { width: 34px; height: 34px; border-radius: 10px; background: #E9FAF9; display: grid; place-items: center; flex-shrink: 0; }
.rv-ic svg { width: 18px; height: 18px; stroke: #00A9A7; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rv-item .tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.rv-item .tx b { font-size: 15px; font-weight: 500; color: #1F2329; }
.rv-item .tx span { font-size: 12px; color: #86909C; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-item .tx span.warn { color: #FF7D00; }
.rv-item .ar { font-size: 18px; color: #C9CDD4; flex-shrink: 0; line-height: 1; }

/* 求职状态行 */
.rv-stat { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 16px; }
.rv-stat .k { font-size: 14px; color: #4E5969; flex-shrink: 0; }
.rv-stat .v { margin-left: auto; font-size: 14px; font-weight: 500; color: #1F2329; }
.rv-stat .ar { font-size: 18px; color: #C9CDD4; line-height: 1; }
.rv-note { margin: 2px 0 0; text-align: center; font-size: 11px; color: #A9AEB8; line-height: 1.6; }

/* 头像卡 */
.rv-ava-card { padding: 20px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.rv-ava { width: 76px; height: 76px; border-radius: 50%; background: #E6F9F9; display: grid; place-items: center; font-size: 28px; font-weight: 700; color: #00A9A7; }
.rv-ava-card .chg { font-size: 12px; font-weight: 500; color: #00A9A7; }

/* 表单 */
.rv-form { overflow: hidden; }
.rv-row { display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 0 16px; position: relative; }
.rv-row + .rv-row::before { content: ""; position: absolute; left: 16px; right: 0; top: 0; height: 1px; background: #F5F7FA; }
.rv-row > label { font-size: 14px; color: #4E5969; flex-shrink: 0; }
.rv-in {
  flex: 1; min-width: 0; border: none; background: none; outline: none; padding: 0;
  text-align: right; font-size: 14px; font-weight: 500; color: #1F2329;
}
.rv-in::placeholder { color: #C9CDD4; font-weight: 400; }
.rv-in.hl { color: #00A9A7; }
.rv-sel {
  flex: 1; min-width: 0; border: none; background: transparent; outline: none; padding: 0 14px 0 0;
  -webkit-appearance: none; appearance: none;
  font-size: 14px; font-weight: 500; color: #1F2329; text-align: right; text-align-last: right;
  background-image: linear-gradient(45deg, transparent 50%, #C9CDD4 50%), linear-gradient(135deg, #C9CDD4 50%, transparent 50%);
  background-position: calc(100% - 7px) 55%, calc(100% - 2px) 55%;
  background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
.rv-seg { display: flex; gap: 6px; margin-left: auto; }
.rv-seg button { height: 28px; min-width: 46px; padding: 0 12px; border-radius: 14px; background: #F2F3F5; color: #86909C; font-size: 12px; font-weight: 500; transition: .15s; }
.rv-seg button.on { background: #00BEBC; color: #fff; }
.rv-tip { margin: 0 4px; font-size: 11px; color: #A9AEB8; line-height: 1.6; }

/* 经历卡 */
.rv-exp { padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.rv-exp-hd { display: flex; align-items: center; gap: 10px; }
.rv-exp-hd .role { flex: 1; min-width: 0; border: none; background: none; outline: none; padding: 0; font-size: 16px; font-weight: 600; color: #1F2329; }
.rv-exp-hd .role::placeholder { font-weight: 500; color: #C9CDD4; }
.rv-onjob { flex-shrink: 0; font-size: 11px; font-weight: 500; color: #00A9A7; background: #E9FAF9; border-radius: 6px; padding: 3px 8px; }
.rv-exp .co { border: none; background: none; outline: none; padding: 0; font-size: 13px; color: #4E5969; width: 100%; }
.rv-exp .tm { border: none; background: none; outline: none; padding: 0; font-size: 12px; color: #86909C; width: 100%; }
.rv-exp .co::placeholder, .rv-exp .tm::placeholder { color: #C9CDD4; }
.rv-exp .sep { height: 1px; background: #F5F7FA; margin: 2px 0; }
.rv-exp .lb { font-size: 12px; color: #86909C; }
.rv-exp textarea {
  width: 100%; border: none; background: none; outline: none; resize: none; padding: 0;
  font-size: 13px; line-height: 22px; color: #4E5969; min-height: 44px;
}
.rv-exp textarea::placeholder { color: #C9CDD4; }
.rv-exp .del { align-self: flex-end; font-size: 12px; color: #C9CDD4; padding: 2px 0; }
.rv-add {
  width: 100%; height: 48px; border-radius: 14px; background: #fff; border: 1px dashed rgba(0,190,188,.45) !important;
  font-size: 13px; font-weight: 500; color: #00A9A7; display: flex; align-items: center; justify-content: center; gap: 4px;
}
.rv-sec-label { margin: 2px 2px -4px; font-size: 12px; color: #9AA3AF; }

/* 底部操作 */
.rv-foot { flex-shrink: 0; background: #fff; border-top: 1px solid #EDEEF0; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); }
.rv-foot .rv-btn {
  width: 100%; height: 46px; border-radius: 23px; background: linear-gradient(135deg, #25DFCA, #00BEBC);
  color: #fff; font-size: 15px; font-weight: 600; box-shadow: 0 6px 16px rgba(0,190,188,.28);
  display: flex; align-items: center; justify-content: center;
}
.rv-btn:active { transform: scale(.99); }

/* 弹层 */
.rv-sheet { position: fixed; inset: 0; z-index: 300; display: none; }
.rv-sheet.on { display: block; }
.rv-mask { position: absolute; inset: 0; background: rgba(18,26,38,.45); animation: rsFade .2s ease; }
@keyframes rsFade { from { opacity: 0 } to { opacity: 1 } }
.rv-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-width: 520px; margin: 0 auto;
  background: #fff; border-radius: 18px 18px 0 0; padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
  max-height: 86dvh; overflow-y: auto; animation: rsUp .24s cubic-bezier(.3,.9,.4,1);
}
@keyframes rsUp { from { transform: translateY(40%); opacity: .5 } to { transform: none; opacity: 1 } }
.rv-panel h3 { margin: 0 0 14px; font-size: 16px; font-weight: 600; color: #1F2329; text-align: center; }
.rv-panel .rv-form { background: #F7F9FB; border-radius: 12px; }
.rv-panel .rv-row + .rv-row::before { background: #EDF0F3; }
.rv-panel .rv-btn { margin-top: 16px; }

/* 预览 */
.rv-pv-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid #F2F3F5; }
.rv-pv-head .av { width: 48px; height: 48px; border-radius: 50%; background: #E6F9F9; display: grid; place-items: center; font-size: 18px; font-weight: 700; color: #00A9A7; flex-shrink: 0; }
.rv-pv-head b { display: block; font-size: 17px; color: #1F2329; }
.rv-pv-head span { font-size: 12px; color: #86909C; }
.rv-pv-sec { padding: 14px 0 0; }
.rv-pv-sec h4 { margin: 0 0 6px; font-size: 13px; font-weight: 600; color: #1F2329; display: flex; align-items: center; gap: 6px; }
.rv-pv-sec h4::before { content: ""; width: 3px; height: 12px; border-radius: 2px; background: #00BEBC; }
.rv-pv-sec p { margin: 0; font-size: 13px; line-height: 1.8; color: #4E5969; }
.rv-pv-sec .sub { font-size: 12px; color: #86909C; }
.rv-pv-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rv-pv-chips span { font-size: 11.5px; color: #00A9A7; background: #E9FAF9; border-radius: 10px; padding: 2px 9px; }

/* ============================================================
   找牛人 · 企业简历库（talents.html）· 对齐 BOSS 找牛人版式
   ============================================================ */
body.tk-page { background: #F5F6F7; }
/* 「招人才」已并入 PC 顶部导航：桌面端保留顶栏可随时切回；小屏仍隐藏（底部 tabbar 覆盖） */
@media (max-width: 768px) {
  body.tk-page .topbar { display: none; }
}

.tk-wrap { max-width: 480px; margin: 0 auto; padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
@media (min-width: 769px) {
  .tk-wrap { background: #F5F6F7; }
}
.tk-search {
  position: sticky; top: 0; z-index: 40; background: #F5F6F7;
  padding: 10px 14px 8px; display: flex; align-items: center; gap: 8px;
}
.tk-search .sbox {
  flex: 1; height: 40px; border-radius: 10px; background: #E9EDF1;
  display: flex; align-items: center; gap: 8px; padding: 0 12px;
}
.tk-search .sbox svg { width: 16px; height: 16px; stroke: #86909C; flex-shrink: 0; }
.tk-search .sbox input {
  flex: 1; min-width: 0; border: none; background: none; outline: none;
  font-size: 14px; color: #1F2329;
}
.tk-search .sbox input::placeholder { color: #86909C; }
.tk-cat {
  height: 40px; padding: 0 10px; border-radius: 10px; background: transparent;
  display: flex; align-items: center; gap: 4px; font-size: 14px; color: #1F2329;
  flex-shrink: 0; white-space: nowrap;
}
.tk-cat svg { width: 12px; height: 12px; stroke: #4E5969; transition: transform .2s; }
.tk-cat.open svg { transform: rotate(180deg); }

.tk-notice {
  margin: 4px 14px 0; background: #E7F9F5; border-radius: 12px;
  display: flex; align-items: center; gap: 10px; padding: 11px 6px 11px 14px;
}
.tk-notice p { flex: 1; min-width: 0; margin: 0; font-size: 13px; color: #0E8F7E; line-height: 1.45; }
.tk-notice button {
  flex-shrink: 0; height: 32px; padding: 0 14px; border-radius: 16px;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff;
  font-size: 13px; font-weight: 600; border: none;
}

.tk-title { display: flex; align-items: baseline; gap: 10px; padding: 18px 16px 4px; }
.tk-title h1 { margin: 0; font-size: 24px; font-weight: 800; color: #1F2329; letter-spacing: 1px; }
.tk-title span { font-size: 12px; color: #A9AEB8; }

.tk-segs { display: flex; gap: 6px; padding: 8px 14px 0; }
.tk-segs button {
  height: 30px; padding: 0 13px; border-radius: 15px; font-size: 13px;
  background: transparent; color: #4E5969; border: 1px solid transparent;
}
.tk-segs button.on { background: #fff; color: #0AA886; font-weight: 600; border-color: rgba(0,190,188,.4); }

.tk-filter {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px 6px;
}
.tk-city {
  display: flex; align-items: center; gap: 4px; font-size: 14px; color: #1F2329;
  background: none; border: none; padding: 4px 0;
}
.tk-city svg { width: 12px; height: 12px; stroke: #4E5969; }
.tk-flt {
  display: flex; align-items: center; gap: 5px; font-size: 13.5px; color: #4E5969;
  background: #fff; border-radius: 8px; height: 32px; padding: 0 12px; border: none;
}
.tk-flt svg { width: 14px; height: 14px; stroke: #4E5969; }
.tk-flt.on { color: #0AA886; font-weight: 600; }
.tk-flt.on svg { stroke: #0AA886; }

/* 牛人卡片 */
.tk-list { padding: 4px 14px 0; display: flex; flex-direction: column; gap: 10px; }
.tk-card {
  background: #fff; border-radius: 14px; padding: 15px 16px 13px;
  position: relative; transition: box-shadow .15s; cursor: pointer;
}
.tk-card:active { background: #FAFCFD; }
.tk-hd { display: flex; align-items: center; gap: 10px; }
.tk-av {
  width: 46px; height: 46px; border-radius: 50%; flex-shrink: 0;
  display: grid; place-items: center; font-size: 17px; font-weight: 700; color: #fff;
}
.tk-hd .nm { font-size: 17px; font-weight: 700; color: #1F2329; flex-shrink: 0; }
.tk-online {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 12px; color: #0AA886; font-weight: 500; white-space: nowrap;
}
.tk-online::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #22C55E; }
.tk-meta { font-size: 13px; color: #4E5969; white-space: nowrap; }
.tk-meta i { font-style: normal; color: #C9CDD4; margin: 0 5px; }
.tk-x {
  position: absolute; right: 10px; top: 10px; width: 26px; height: 26px;
  display: grid; place-items: center; color: #C9CDD4; font-size: 15px; line-height: 1;
  background: none; border: none;
}
.tk-x:hover { color: #86909C; }
.tk-line { margin-top: 9px; font-size: 13.5px; color: #2E3540; line-height: 1.55; }
.tk-line b { color: #1F2329; font-weight: 500; }
.tk-line .sal { color: #0AA886; font-weight: 600; }
.tk-cur { margin-top: 7px; font-size: 13px; color: #61666D; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tk-cur .exp {
  font-size: 11.5px; color: #61666D; background: #F2F3F5;
  border-radius: 4px; padding: 1.5px 7px;
}
.tk-intro {
  margin-top: 8px; font-size: 13px; color: #3D4653; line-height: 1.65;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tk-tags { display: flex; gap: 7px; margin-top: 10px; }
.tk-tags .t1 {
  font-size: 12px; font-weight: 600; color: #0AA886;
  border: 1px solid rgba(0,190,188,.5); border-radius: 5px; padding: 2.5px 9px; background: #F2FCFA;
}
.tk-tags .t2 { font-size: 12px; color: #86909C; background: #F2F3F5; border-radius: 5px; padding: 2.5px 9px; }
.tk-acts { display: flex; gap: 8px; margin-top: 12px; padding-top: 11px; border-top: 1px solid #F5F7FA; }
.tk-acts .btn { height: 34px; font-size: 13px; border-radius: 17px; padding: 0 14px; }
.tk-acts .grow { flex: 1; }
.tk-st { position: absolute; right: 40px; top: 14px; }

.tk-card.hide { animation: tkOut .25s ease forwards; }
@keyframes tkOut { to { transform: translateX(60%); opacity: 0; height: 0; margin: 0; padding: 0; } }

/* 空态 */
.tk-empty { text-align: center; color: #86909C; font-size: 13px; padding: 60px 20px; }

/* 悬浮发布 */
.tk-fab {
  position: fixed; z-index: 90; left: 50%; transform: translateX(-50%);
  bottom: calc(84px + env(safe-area-inset-bottom));
  height: 44px; padding: 0 20px; border-radius: 22px; border: none;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff;
  font-size: 14.5px; font-weight: 600; box-shadow: 0 8px 20px rgba(0,190,188,.4);
  display: flex; align-items: center; gap: 5px;
}
.tk-fab:active { transform: translateX(-50%) scale(.97); }
.tk-fab svg { width: 16px; height: 16px; stroke: #fff; }

/* 筛选弹层 */
.tk-sheet { position: fixed; inset: 0; z-index: 200; display: none; }
.tk-sheet.on { display: block; }
.tk-mask { position: absolute; inset: 0; background: rgba(18,26,38,.45); }
.tk-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-width: 520px; margin: 0 auto;
  background: #fff; border-radius: 18px 18px 0 0; padding: 18px 16px calc(20px + env(safe-area-inset-bottom));
}
.tk-panel h3 { margin: 0 0 12px; font-size: 15px; font-weight: 600; color: #1F2329; }
.tk-panel h3:not(:first-child) { margin-top: 16px; }
.tk-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.tk-opts button {
  height: 34px; padding: 0 15px; border-radius: 8px; font-size: 13px;
  background: #F2F3F5; color: #4E5969; border: 1px solid transparent;
}
.tk-opts button.on { color: #0AA886; background: #E9FAF9; border-color: rgba(0,190,188,.45); font-weight: 600; }
.tk-panel .done {
  width: 100%; height: 44px; margin-top: 18px; border-radius: 22px; border: none;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff; font-size: 15px; font-weight: 600;
}

/* ================================================================
   职位类别选择器（jc-）  三级：大类 / 中类 / 岗位
   ================================================================ */
.jc { position: fixed; inset: 0; z-index: 330; }
.jc[hidden] { display: none !important; }
.jc-mask { position: absolute; inset: 0; background: rgba(18, 26, 38, .45); opacity: 0; transition: opacity .22s; }
.jc.on .jc-mask { opacity: 1; }
.jc-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-width: 640px; margin: 0 auto;
  height: min(80vh, 660px); display: flex; flex-direction: column;
  background: #fff; border-radius: 18px 18px 0 0;
  padding-bottom: env(safe-area-inset-bottom);
  transform: translateY(100%); transition: transform .26s cubic-bezier(.24, .82, .3, 1);
  box-shadow: 0 -10px 34px rgba(20, 30, 45, .14);
}
.jc.on .jc-panel { transform: none; }
.jc-grab { width: 36px; height: 4px; border-radius: 2px; background: #E5E6EB; margin: 8px auto 0; }
.jc-hd { display: flex; align-items: center; gap: 8px; padding: 10px 16px 6px; }
.jc-hd b { font-size: 16px; font-weight: 600; color: #1F2329; }
.jc-sub { font-size: 11.5px; color: #A9AEB8; }
.jc-x {
  margin-left: auto; width: 30px; height: 30px; border-radius: 15px; background: transparent;
  color: #86909C; display: flex; align-items: center; justify-content: center;
}
.jc-x:active { background: #F2F3F5; }

.jc-sbar {
  display: flex; align-items: center; gap: 8px; height: 38px; margin: 4px 16px 10px;
  background: #F2F3F5; border-radius: 10px; padding: 0 10px; flex-shrink: 0;
}
.jc-si { display: flex; color: #A9AEB8; }
.jc-sbar input { flex: 1; min-width: 0; background: none; border: none; font-size: 13.5px; color: #1F2329; }
.jc-sbar input::placeholder { color: #B7BCC4; }
.jc-clr { width: 22px; height: 22px; border-radius: 11px; background: #DDE1E6; color: #fff; font-size: 14px; line-height: 1; display: flex; align-items: center; justify-content: center; }

.jc-hot {
  display: flex; gap: 8px; overflow-x: auto; padding: 0 16px 10px; flex-shrink: 0;
  scrollbar-width: none; -ms-overflow-style: none;
}
.jc-hot::-webkit-scrollbar { display: none; }
.jc-hot[hidden] { display: none; }
.jc-hchip {
  flex: 0 0 auto; height: 28px; padding: 0 12px; border-radius: 14px;
  background: #F2F3F5; color: #4E5969; font-size: 12.5px; white-space: nowrap;
}
.jc-hchip.on { background: #E9FAF9; color: #0AA886; font-weight: 600; box-shadow: inset 0 0 0 1px rgba(0, 190, 188, .4); }

.jc-main { flex: 1; min-height: 0; display: flex; border-top: 1px solid #F2F3F5; }
.jc-cols { flex: 1; min-width: 0; display: flex; min-height: 0; }
.jc-cols[hidden] { display: none; }
.jc-l1 { width: 104px; flex: 0 0 104px; overflow-y: auto; background: #FAFBFC; -webkit-overflow-scrolling: touch; }
.jc-l1i {
  position: relative; width: 100%; min-height: 46px; padding: 8px 10px 8px 12px;
  background: transparent; color: #4E5969; font-size: 13px; line-height: 1.35; text-align: left;
}
.jc-l1i.on { background: #fff; color: #0AA886; font-weight: 600; }
.jc-l1i.on::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 0 2px 2px 0; background: #00BEBC; }
.jc-l2 { flex: 1; min-width: 0; overflow-y: auto; padding: 10px 14px 14px; -webkit-overflow-scrolling: touch; }
.jc-grp + .jc-grp { margin-top: 14px; }
.jc-grp-h { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: #1F2329; margin-bottom: 8px; }
.jc-grp-h i { font-style: normal; font-size: 11px; font-weight: 400; color: #B7BCC4; }
.jc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.jc-chip {
  height: 32px; padding: 0 13px; border-radius: 6px; background: #F4F5F7; color: #4E5969;
  font-size: 12.5px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  box-shadow: inset 0 0 0 1px transparent;
}
.jc-chip.on { background: #E9FAF9; color: #0AA886; font-weight: 600; box-shadow: inset 0 0 0 1px rgba(0, 190, 188, .5); }

.jc-res { flex: 1; min-width: 0; overflow-y: auto; padding: 6px 16px 12px; }
.jc-res[hidden] { display: none; }
.jc-r { display: block; width: 100%; text-align: left; padding: 11px 10px; border-radius: 10px; background: transparent; }
.jc-r + .jc-r { border-top: 1px solid #F5F7FA; border-radius: 0; }
.jc-r b { display: block; font-size: 14px; font-weight: 500; color: #1F2329; }
.jc-r span { display: block; margin-top: 3px; font-size: 11.5px; color: #86909C; }
.jc-r.on { background: #E9FAF9; border-radius: 10px; }
.jc-r.on b { color: #0AA886; }
.jc-empty { padding: 40px 10px; text-align: center; font-size: 13px; color: #A9AEB8; }

.jc-ft {
  flex-shrink: 0; display: flex; align-items: center; gap: 12px;
  padding: 10px 16px 12px; border-top: 1px solid #EDEEF0;
}
.jc-picked {
  flex: 1; min-width: 0; max-height: 48px; overflow-y: auto; font-size: 13px; color: #1F2329;
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
}
.jc-pk { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 6px; background: #E9FAF9; color: #0AA886; font-size: 12.5px; font-weight: 600; }
.jc-pk-x { font-style: normal; font-weight: 400; cursor: pointer; color: #6FCFC6; padding: 0 1px; }
.jc-pk-path { font-size: 11.5px; color: #A9AEB8; }
.jc-ph { font-size: 13px; color: #B7BCC4; }
.jc-ok {
  flex: 0 0 auto; width: 100px; height: 38px; border-radius: 19px; color: #fff; font-size: 14px; font-weight: 600;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); box-shadow: 0 6px 16px rgba(0, 190, 188, .3);
}
.jc-ok:disabled { background: #DFE2E7; box-shadow: none; }

/* 表单里的类别入口 */
.cat-field {
  width: 100%; min-height: 46px; padding: 8px 12px; text-align: left;
  border: 1px solid #E5E6EB; border-radius: 10px; background: #fff;
  display: flex; align-items: center; gap: 8px; font-size: 14px; color: #1F2329; transition: border-color .15s;
}
.cat-field:hover { border-color: rgba(0, 190, 188, .55); }
.cat-field .ph { color: #C0C4CC; }
.cat-field .cb { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cat-field .cb b { font-size: 14px; font-weight: 600; color: #1F2329; }
.cat-field .cb span { font-size: 11.5px; color: #86909C; }
.cat-field .ar { margin-left: auto; color: #C0C4CC; font-size: 17px; flex-shrink: 0; }
.cat-hint { margin-top: 6px; font-size: 11.5px; color: #A9AEB8; }

/* 简历里的期望职位（可点选 + 已选标签） */
.rv-pick { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 16px; cursor: pointer; position: relative; }
.rv-pick > label { font-size: 14px; color: #4E5969; flex-shrink: 0; }
.rv-pick .val { margin-left: auto; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; max-width: 68%; }
.rv-pick .val .ph { font-size: 14px; font-weight: 400; color: #C9CDD4; }
.rv-pick .val .tg {
  display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
  padding: 3px 8px; border-radius: 6px; background: #E9FAF9; color: #0AA886;
  font-size: 12.5px; font-weight: 600;
}
.rv-pick .val .tg i { font-style: normal; font-weight: 400; color: #6FCFC6; }
.rv-pick .ar { color: #C9CDD4; font-size: 17px; margin-left: 4px; }

/* ================================================================
   求职中心 / 企业中心（mc-，对齐 H5 参考稿：青绿沉浸头部 + 白卡菜单组）
   ================================================================ */
.mc-page-body .topbar { display: none; }
.mc-page {
  max-width: 480px; margin: 0 auto; min-height: 100vh;
  background: var(--bg); box-shadow: 0 0 44px rgba(16, 34, 53, .08);
}
@media (max-width: 560px) { .mc-page { max-width: none; box-shadow: none; } }

.mc-hero {
  position: relative; color: #fff; padding: 14px 20px 20px;
  background: linear-gradient(168deg, #2BE3C9 0%, #00C3C0 48%, #00A9A7 100%);
}
.mc-hero .gear {
  position: absolute; top: 11px; right: 12px; width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center; color: #fff; opacity: .92;
}
/* 个人中心右上角身份切换入口（我要求职 / 我要招人）：
   占独立一行右对齐，不再悬浮，避免与企业名称重叠 */
.mc-hero .mc-switch {
  display: flex; width: max-content; margin-left: auto; margin-bottom: 13px;
  align-items: center; gap: 5px;
  height: 30px; padding: 0 11px; border-radius: 15px;
  background: rgba(255,255,255,.2); color: #fff;
  font-size: 12.5px; font-weight: 600; letter-spacing: .3px;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  transition: background .15s;
}
.mc-hero .mc-switch:active { background: rgba(255,255,255,.32); }
.mc-hero .mc-switch svg { width: 15px; height: 15px; }
.mc-hero .mc-switch.with-gear { margin-right: 42px; }
.mc-id { display: flex; align-items: center; gap: 14px; }
.mc-av, .mc-tile {
  width: 56px; height: 56px; flex-shrink: 0; background: #fff; color: #00A9A7;
  font-size: 22px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.mc-av { border-radius: 50%; }
.mc-tile { border-radius: 14px; }
.mc-name { font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; line-height: 1.35; }
.mc-name > span:first-child { word-break: break-all; }
.mc-vtag {
  font-size: 11px; font-weight: 500; color: #fff; white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, .85); border-radius: 9px; padding: 1.5px 7px;
}
.mc-sub { margin-top: 5px; font-size: 12.5px; color: rgba(255, 255, 255, .88); }
.mc-stats { display: flex; margin-top: 20px; }
.mc-stats > div { flex: 1; text-align: center; }
.mc-stats b { display: block; font-size: 20px; font-weight: 700; line-height: 1.2; }
.mc-stats span { display: block; margin-top: 3px; font-size: 12px; color: rgba(255, 255, 255, .85); }

.mc-body { padding: 12px 12px 30px; }
.mc-card { background: #fff; border-radius: 14px; margin-bottom: 10px; overflow: hidden; }

/* 我的简历卡 */
.mc-resume { display: flex; align-items: center; gap: 12px; padding: 14px 14px 12px; cursor: pointer; }
.mc-ico {
  width: 40px; height: 40px; flex-shrink: 0; border-radius: 11px;
  background: #E9FAF9; color: #00A9A7; display: flex; align-items: center; justify-content: center;
}
.mc-resume .tx { flex: 1; min-width: 0; }
.mc-resume .tx b { font-size: 15px; font-weight: 600; color: #1F2329; }
.mc-resume .tx .sub { margin-top: 2px; font-size: 11.5px; color: #A9AEB8; }
.mc-pct { font-size: 12.5px; color: #00A9A7; font-weight: 600; white-space: nowrap; }
.mc-bar { height: 6px; border-radius: 3px; background: #EEF1F4; margin: 0 14px 14px 66px; overflow: hidden; }
.mc-bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #1FDCC8, #00BEBD); transition: width .4s; }

/* 菜单行 */
.mc-row { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 0 14px; position: relative; cursor: pointer; }
.mc-row:active { background: #F7F9FA; }
.mc-row + .mc-row::before { content: ""; position: absolute; left: 54px; right: 0; top: 0; height: 1px; background: #F3F5F7; }
.mc-row .lb { flex: 1; min-width: 0; font-size: 14.5px; color: #1F2329; font-weight: 500; }
.mc-row .lb small { font-size: 12px; color: #86909C; font-weight: 400; }
.mc-row .ar { color: #C9CDD4; font-size: 16px; flex-shrink: 0; }
.mc-row > svg { color: #4E5969; flex-shrink: 0; }
.mc-row-tip { flex-shrink: 0; font-size: 11.5px; color: #A9AEB8; }
.mc-badge {
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; flex-shrink: 0;
  background: #F53F3F; color: #fff; font-size: 11px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
}

/* 职位推广卡 */
.mc-promo { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
.mc-promo .tx { flex: 1; min-width: 0; }
.mc-promo .tx b { font-size: 14.5px; font-weight: 600; color: #1F2329; }
.mc-promo .tx .sub { margin-top: 2px; font-size: 11.5px; color: #A9AEB8; }
.mc-go {
  flex-shrink: 0; height: 32px; padding: 0 16px; border: none; border-radius: 16px;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff;
  font-size: 13px; font-weight: 600; box-shadow: 0 4px 10px rgba(0, 190, 188, .28);
}
.mc-go:active { transform: scale(.96); }

/* 退出登录 */
.mc-logout {
  display: block; width: 100%; padding: 16px; border: none; background: #fff;
  color: #F53F3F; font-size: 15px; font-weight: 600; text-align: center;
}
.mc-logout:active { background: #FFF5F5; }
.mc-safe { height: env(safe-area-inset-bottom); }

/* ================================================================
   企业会员（vip- / mb-）：BOSS 式黑金会员卡 + 会员中心页
   ================================================================ */
.vip-body { padding-top: 0; }
/* BOSS 式深青绿横条会员卡：V 标 + 双行文案 + 浅金胶囊按钮 */
.vip-card {
  position: relative; display: flex; align-items: center; gap: 11px; overflow: hidden;
  margin: -26px 0 10px; padding: 13px 12px 13px 14px; border-radius: 14px;
  text-decoration: none;
  background:
    radial-gradient(110% 160% at 100% -20%, rgba(255, 199, 110, .18) 0%, rgba(255, 199, 110, 0) 55%),
    linear-gradient(115deg, #10433C 0%, #1A6155 52%, #0E362F 100%);
  box-shadow: 0 10px 22px rgba(9, 44, 39, .3), inset 0 1px 0 rgba(255, 255, 255, .1);
}
.vip-card.is-vip {
  background:
    radial-gradient(110% 160% at 100% -20%, rgba(255, 199, 110, .26) 0%, rgba(255, 199, 110, 0) 58%),
    linear-gradient(115deg, #14524A 0%, #1F7365 52%, #11423A 100%);
}
.vip-card:active { transform: scale(.992); }
.vip-v {
  width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800; font-style: italic; color: #FFD68F;
  background: rgba(255, 214, 143, .13); border: 1.5px solid rgba(255, 214, 143, .6);
  text-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}
.vip-card.is-vip .vip-v {
  color: #3E2D0E; background: linear-gradient(140deg, #FFE7BC, #E3B25C); border-color: transparent;
}
.vip-tx { flex: 1; min-width: 0; }
.vip-title {
  font-size: 15px; font-weight: 700; color: #FFF7EA; letter-spacing: .2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.vip-desc {
  margin-top: 3px; font-size: 11px; color: #FFC08C;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.vip-btn {
  flex-shrink: 0; height: 34px; padding: 0 16px; border-radius: 17px;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #FFF4E2, #FBDCB0); color: #7A5220;
  font-size: 13px; font-weight: 700; box-shadow: 0 4px 10px rgba(0, 0, 0, .18);
}
.vip-card.is-vip .vip-btn { background: linear-gradient(135deg, #FFE7BC, #E3B25C); color: #40300F; }

/* 会员中心页 */
.mb-body .topbar { display: none; }
.mb-page {
  max-width: 480px; margin: 0 auto; min-height: 100vh; padding-bottom: 92px;
  background: #F4F6F7; box-shadow: 0 0 44px rgba(16, 34, 53, .08);
}
@media (max-width: 560px) { .mb-page { max-width: none; box-shadow: none; } }
.mb-hero {
  position: relative; overflow: hidden; color: #F7E9CC; padding: 12px 16px 18px;
  background:
    radial-gradient(120% 130% at 88% -18%, #8A682C 0%, rgba(138, 104, 44, 0) 56%),
    linear-gradient(160deg, #2C2316 0%, #45351D 52%, #241B10 100%);
}
.mb-hero::after {
  content: ""; position: absolute; left: -40px; bottom: -80px; width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 210, 130, .14), rgba(255, 210, 130, 0) 68%);
}
.mb-nav { position: relative; display: flex; align-items: center; justify-content: space-between; height: 36px; }
.mb-back {
  width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
  border: none; background: transparent; color: #F7E9CC; margin-left: -6px;
}
.mb-nav-t { font-size: 14.5px; font-weight: 600; letter-spacing: .4px; }
.mb-nav-r { font-size: 12px; color: rgba(255, 226, 172, .8); text-decoration: none; }
.mb-hero-main { position: relative; display: flex; align-items: center; gap: 11px; margin-top: 10px; }
.mb-crown {
  width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; color: #3B2A0F;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(140deg, #FFE7BC, #E3B25C); box-shadow: 0 6px 16px rgba(227, 178, 92, .3);
}
.mb-crown svg { width: 22px; height: 22px; }
.mb-hero-tx { flex: 1; min-width: 0; }
.mb-hero-title { font-size: 19px; font-weight: 700; color: #FFE7BC; letter-spacing: .3px; }
.mb-hero-sub { margin-top: 3px; font-size: 12px; color: rgba(255, 231, 195, .72); }
.mb-hero-sub b { color: #FFD68F; font-size: 13px; }
.mb-hero-tag {
  flex-shrink: 0; font-size: 10.5px; font-weight: 700; letter-spacing: .5px; padding: 3px 9px; border-radius: 10px;
  border: 1px solid rgba(255, 214, 143, .34); color: rgba(255, 226, 172, .82);
}
.mb-hero-tag.on { background: linear-gradient(135deg, #FFE7BC, #E3B25C); color: #40300F; border-color: transparent; }
.mb-valid { position: relative; margin-top: 14px; }
.mb-valid-bar { height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.mb-valid-bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #FFD68F, #E3B25C); }
.mb-valid-tx { display: flex; justify-content: space-between; margin-top: 6px; font-size: 11px; color: rgba(255, 231, 195, .62); }
.mb-hero-sell { position: relative; display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 14px; }
.mb-hero-sell span { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; color: rgba(255, 231, 195, .74); }
.mb-hero-sell svg { width: 14px; height: 14px; color: #E9B961; }
.mb-quota { position: relative; display: flex; margin-top: 16px; }
.mb-quota > div { flex: 1; text-align: center; position: relative; }
.mb-quota > div + div::before {
  content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 1px; background: rgba(255, 255, 255, .12);
}
.mb-quota b { display: block; font-size: 16px; font-weight: 700; color: #FFE7BC; line-height: 1.2; }
.mb-quota span { display: block; margin-top: 3px; font-size: 11px; color: rgba(255, 231, 195, .6); }

.mb-main { padding: 12px 12px 8px; }
.mb-sec { margin-bottom: 12px; }
.mb-sec-head { display: flex; align-items: baseline; justify-content: space-between; padding: 0 2px 8px; }
.mb-sec-head h2 { margin: 0; font-size: 15px; font-weight: 700; color: #1F2329; }
.mb-sec-head span { font-size: 11px; color: #A9AEB8; }

/* 急聘：企业中心入口卡 + 职位卡按钮 + 提示弹层 */
.mc-ico.urgent { background: #FFF3E0; color: #C4841E; }
.mc-promo .tx .sub em { font-style: normal; font-size: 12.5px; font-weight: 700; color: #D98718; }
.sp-btn.urg {
  background: linear-gradient(135deg, #FFF1DA, #F8D9A6); color: #8A5C16;
  border: 1px solid #F0D6A6; font-weight: 700;
}
.sp-btn.urg-on {
  background: #FFF7EA; color: #C4841E; border: 1px solid #F3E1C4; font-weight: 600;
}
.cj-mask {
  position: fixed; inset: 0; z-index: 70; background: rgba(16, 22, 30, .46);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  animation: mbFade .16s ease;
}
.cj-sheet {
  width: 100%; max-width: 300px; background: #fff; border-radius: 16px; padding: 20px 18px 14px;
  text-align: center; animation: cjPop .2s cubic-bezier(.22, .9, .3, 1);
}
@keyframes cjPop { from { transform: scale(.92); opacity: .6; } to { transform: scale(1); opacity: 1; } }
.cj-sheet-ico {
  width: 40px; height: 40px; margin: 0 auto 10px; border-radius: 12px; color: #C4841E;
  background: linear-gradient(140deg, #FFF1DA, #FBDCB0); display: flex; align-items: center; justify-content: center;
}
.cj-sheet-ico svg { width: 21px; height: 21px; }
.cj-sheet b { display: block; font-size: 15.5px; font-weight: 700; color: #1F2329; }
.cj-sheet p { margin: 7px 0 16px; font-size: 12px; line-height: 1.6; color: #86909C; }
.cj-sheet-btns { display: flex; gap: 9px; }
.cj-btn { flex: 1; height: 40px; border: none; border-radius: 20px; font-size: 13.5px; font-weight: 600; }
.cj-btn.gray { background: #F2F4F6; color: #4E5969; }
.cj-btn.pri { background: linear-gradient(135deg, #FFE7BC, #E3B25C); color: #40300F; font-weight: 700; }

/* 本套餐权益明细 */
.mb-perks { background: #fff; border-radius: 13px; overflow: hidden; }
.mb-perk { display: flex; align-items: center; gap: 10px; padding: 11px 14px; position: relative; }
.mb-perk + .mb-perk::before { content: ""; position: absolute; left: 50px; right: 14px; top: 0; height: 1px; background: #F3F5F7; }
.mb-perk-ico {
  width: 26px; height: 26px; flex-shrink: 0; border-radius: 8px;
  background: #FDF3DE; color: #B07E2C; display: flex; align-items: center; justify-content: center;
}
.mb-perk-ico svg { width: 15px; height: 15px; }
.mb-perk-n { flex: 1; min-width: 0; font-size: 13px; color: #1F2329; }
.mb-perk-v { flex-shrink: 0; font-size: 13px; font-weight: 700; color: #8A5C16; }
.mb-perk.off .mb-perk-n { color: #A9AEB8; }
.mb-perk.off .mb-perk-v { font-weight: 500; color: #C9CDD4; }
.mb-perk.off .mb-perk-ico { background: #F2F4F6; color: #C9CDD4; }
.mb-perk-free {
  display: flex; align-items: center; gap: 5px; margin-top: 7px; padding: 0 2px;
  font-size: 10.5px; color: #A9AEB8;
}
.mb-perk-free svg { width: 12px; height: 12px; }

/* 急聘次数 + 加购 */
.mb-urgent { background: #fff; border-radius: 13px; padding: 14px; }
.mb-ug-head { display: flex; gap: 11px; }
.mb-ug-ico {
  width: 34px; height: 34px; flex-shrink: 0; border-radius: 10px;
  background: linear-gradient(140deg, #FFF1DA, #FBDCB0); color: #C4841E;
  display: flex; align-items: center; justify-content: center;
}
.mb-ug-ico svg { width: 19px; height: 19px; }
.mb-ug-tx { flex: 1; min-width: 0; }
.mb-ug-tx b { font-size: 13.5px; font-weight: 600; color: #1F2329; }
.mb-ug-tx b em { font-style: normal; font-size: 18px; font-weight: 800; color: #D98718; margin: 0 2px; }
.mb-ug-tx p { margin: 4px 0 0; font-size: 11px; line-height: 1.55; color: #A9AEB8; }
.mb-ug-addons { display: flex; gap: 8px; margin-top: 12px; }
.mb-addon {
  position: relative; flex: 1; overflow: hidden; padding: 12px 11px 10px; border-radius: 11px;
  border: 1.5px solid #F2E4CB; background: linear-gradient(160deg, #FFFDF8, #FDF6EA);
  text-align: left; cursor: pointer;
}
.mb-addon:active { transform: scale(.98); }
.mb-addon-tag {
  position: absolute; top: 0; right: 0; font-size: 9px; font-weight: 700; color: #6B4A16;
  background: linear-gradient(135deg, #FFE7BC, #E9B961); padding: 1px 6px; border-radius: 0 9px 0 7px;
}
.mb-addon-c { display: block; font-size: 13px; font-weight: 700; color: #5C421B; }
.mb-addon-p { display: block; margin-top: 4px; font-size: 17px; font-weight: 800; color: #C4841E; line-height: 1.1; }
.mb-addon-p i { font-style: normal; font-size: 10px; font-weight: 600; margin-right: 1px; }
.mb-addon-p s { margin-left: 4px; font-size: 10px; font-weight: 400; color: #C0C4CC; }
.mb-addon-per { display: block; margin-top: 2px; font-size: 10px; color: #A9AEB8; }
.mb-ug-note { display: flex; align-items: center; gap: 5px; margin-top: 10px; font-size: 10.5px; color: #A9AEB8; }
.mb-ug-note svg { width: 12px; height: 12px; }

.mb-plans { display: flex; flex-direction: column; gap: 8px; }
.mb-plan {
  position: relative; display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 13px 13px 13px 15px; border-radius: 12px; background: #fff;
  border: 1.5px solid transparent; box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
  text-align: left; cursor: pointer; transition: border-color .16s, background .16s, box-shadow .16s;
}
.mb-plan.on {
  border-color: #E3B25C;
  background: linear-gradient(120deg, #FFFDF7 0%, #FDF4E4 100%);
  box-shadow: 0 5px 16px rgba(214, 163, 78, .18);
}
.mb-plan-l { flex: 1; min-width: 0; }
.mb-plan-name { display: flex; align-items: center; gap: 6px; font-size: 14.5px; font-weight: 600; color: #1F2329; }
.mb-plan.on .mb-plan-name { color: #8A5C16; }
.mb-plan-tag {
  font-style: normal; font-size: 9.5px; font-weight: 700; line-height: 1.5;
  padding: 0 5px; border-radius: 4px; color: #00A9A7; background: #E8F7F5;
}
.mb-plan-tag.hot { color: #4A3413; background: linear-gradient(135deg, #FFE7BC, #E9B961); }
.mb-plan-sub { display: block; margin-top: 4px; font-size: 11px; color: #A9AEB8; }
.mb-plan-sub em { font-style: normal; color: #E36A2E; font-weight: 600; }
.mb-plan-r { flex-shrink: 0; text-align: right; }
.mb-plan-price { display: block; font-size: 20px; font-weight: 700; color: #1F2329; line-height: 1.15; letter-spacing: -.2px; }
.mb-plan.on .mb-plan-price { color: #A9721F; }
.mb-plan-price i { font-style: normal; font-size: 12px; font-weight: 600; margin-right: 1px; }
.mb-plan-origin { display: block; margin-top: 2px; font-size: 10.5px; color: #C0C4CC; text-decoration: line-through; }
.mb-plan-tick {
  flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; margin-left: 2px;
  border: 1.5px solid #DCDFE6; background: #fff; color: transparent;
  display: flex; align-items: center; justify-content: center;
}
.mb-plan-tick svg { width: 11px; height: 11px; stroke-width: 3; }
.mb-plan.on .mb-plan-tick { background: #E3B25C; border-color: #E3B25C; color: #fff; }

.mb-orders { background: #fff; border-radius: 13px; overflow: hidden; }
.mb-order { display: flex; align-items: center; gap: 10px; padding: 12px 13px; position: relative; }
.mb-order + .mb-order::before { content: ""; position: absolute; left: 13px; right: 13px; top: 0; height: 1px; background: #F3F5F7; }
.mb-order > div { flex: 1; min-width: 0; }
.mb-order b { display: block; font-size: 13px; font-weight: 600; color: #1F2329; }
.mb-order span { display: block; margin-top: 2px; font-size: 10.5px; color: #A9AEB8; }
.mb-order em { font-style: normal; font-size: 14px; font-weight: 700; color: #1F2329; }

.mb-note { padding: 13px 14px; background: #fff; border-radius: 13px; }
.mb-note .mb-sec-head { display: none; }
.mb-note p { margin: 0; font-size: 11px; line-height: 1.9; color: #86909C; }

.mb-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: flex; align-items: center; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  max-width: 480px; margin: 0 auto; background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(12px); border-top: 1px solid #EFF2F5;
}
.mb-bar-l { flex: 1; min-width: 0; }
.mb-bar-price { font-size: 22px; font-weight: 700; color: #A9721F; line-height: 1.1; }
.mb-bar-price i { font-style: normal; font-size: 12px; font-weight: 600; margin-right: 1px; }
.mb-bar-price small { font-size: 11px; font-weight: 400; color: #86909C; }
.mb-bar-tip { margin-top: 2px; font-size: 10.5px; color: #E36A2E; }
.mb-bar-btn {
  flex-shrink: 0; height: 42px; padding: 0 30px; border: none; border-radius: 21px;
  background: linear-gradient(135deg, #FFE7BC, #E3B25C); color: #3E2D0E;
  font-size: 14.5px; font-weight: 700; box-shadow: 0 6px 16px rgba(227, 178, 92, .34);
}
.mb-bar-btn:active { transform: scale(.97); }

/* 支付弹层 */
.mb-mask {
  position: fixed; inset: 0; z-index: 60; background: rgba(16, 22, 30, .48);
  display: flex; align-items: flex-end; justify-content: center;
  animation: mbFade .18s ease;
}
@keyframes mbFade { from { opacity: 0; } to { opacity: 1; } }
.mb-sheet {
  width: 100%; max-width: 480px; background: #fff; border-radius: 20px 20px 0 0;
  padding: 8px 18px calc(18px + env(safe-area-inset-bottom));
  animation: mbUp .24s cubic-bezier(.22, .9, .3, 1);
}
@keyframes mbUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
.mb-sheet-bar { width: 36px; height: 4px; border-radius: 2px; background: #E5E8EB; margin: 0 auto 12px; }
.mb-sheet h3 { margin: 0 0 14px; font-size: 16px; font-weight: 700; color: #1F2329; text-align: center; }
.mb-pay-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; font-size: 13.5px; color: #4E5969; }
.mb-pay-row b { color: #1F2329; font-weight: 600; }
.mb-pay-row b.cut { color: #E36A2E; }
.mb-pay-row.total { border-top: 1px solid #F3F5F7; margin-top: 4px; padding-top: 12px; }
.mb-pay-row.total span { font-weight: 600; color: #1F2329; }
.mb-pay-row.total b { font-size: 19px; font-weight: 700; color: #A9721F; }
.mb-pay-way {
  display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 11px 12px;
  border-radius: 12px; background: #F7F9FA; border: 1px solid #EBEFF2;
}
.mb-pay-way-ico {
  width: 30px; height: 30px; border-radius: 9px; background: #07C160; color: #fff;
  font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.mb-pay-way > div { flex: 1; min-width: 0; }
.mb-pay-way b { display: block; font-size: 13.5px; color: #1F2329; font-weight: 600; }
.mb-pay-way span { display: block; margin-top: 2px; font-size: 10.5px; color: #A9AEB8; }
.mb-pay-way-tick { width: 18px; height: 18px; border-radius: 50%; background: #07C160; color: #fff; display: flex; align-items: center; justify-content: center; }
.mb-pay-way-tick svg { width: 12px; height: 12px; stroke-width: 3; }
.mb-pay-btn {
  width: 100%; height: 46px; margin-top: 14px; border: none; border-radius: 23px;
  background: linear-gradient(135deg, #FFE7BC, #E3B25C); color: #3E2D0E;
  font-size: 15.5px; font-weight: 700; box-shadow: 0 8px 18px rgba(227, 178, 92, .3);
}
.mb-pay-btn:disabled { opacity: .68; }
.mb-pay-safe { display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 10px; font-size: 10.5px; color: #A9AEB8; }
.mb-pay-safe svg { width: 13px; height: 13px; }


/* ================================================================
   企业端二级页（我的职位 / 收到的简历 / 面试邀请）
   共用 sp- 头部 + 各自 cj- / cr- / iv- 卡片
   ================================================================ */
/* 企业端二级页：小屏隐藏顶栏（这些页面本身是手机版式）；PC 端由页面自行决定是否调用 renderTopbar */
@media (max-width: 768px) { .sp-body .topbar { display: none; } }
/* PC 端显示顶栏时，卡片区域高度扣掉导航，避免多出一屏滚动 */
@media (min-width: 769px) { body.sp-body.has-topbar .sp-page { min-height: calc(100vh - 60px); } }
.sp-page {
  max-width: 480px; margin: 0 auto; min-height: 100vh; position: relative;
  background: var(--bg); box-shadow: 0 0 44px rgba(16, 34, 53, .08);
  padding-bottom: calc(16px + env(safe-area-inset-bottom));
}
.sp-page.has-tabbar { padding-bottom: 110px; }
@media (max-width: 560px) { .sp-page { max-width: none; box-shadow: none; } }

.sp-hero { background: linear-gradient(162deg, #2BE3C9 0%, #00C4C1 52%, #00A9A7 100%); color: #fff; padding: 8px 16px 0; }
.sp-nav { display: flex; align-items: center; gap: 8px; height: 44px; }
.sp-back {
  width: 30px; height: 30px; margin-left: -6px; flex-shrink: 0; border: none; background: transparent;
  color: #fff; display: flex; align-items: center; justify-content: center; border-radius: 15px;
}
.sp-back:active { background: rgba(255, 255, 255, .16); }
.sp-title { font-size: 17px; font-weight: 700; letter-spacing: .2px; }
.sp-act {
  margin-left: auto; display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 11px;
  border: 1px solid rgba(255, 255, 255, .6); border-radius: 14px; background: rgba(255, 255, 255, .14);
  color: #fff; font-size: 12.5px; font-weight: 600;
}
.sp-act:active { background: rgba(255, 255, 255, .26); }
.sp-desc { padding: 2px 0 0 2px; font-size: 12px; color: rgba(255, 255, 255, .86); }
.sp-stats { display: flex; padding: 14px 0 18px; }
.sp-stats > div { flex: 1; text-align: center; position: relative; }
.sp-stats > div + div::before {
  content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 1px; background: rgba(255, 255, 255, .26);
}
.sp-stats b { display: block; font-size: 19px; font-weight: 700; line-height: 1.2; }
.sp-stats span { display: block; margin-top: 3px; font-size: 11.5px; color: rgba(255, 255, 255, .85); }

/* 吸顶筛选条 */
.sp-bar {
  position: sticky; top: 0; z-index: 30; background: #fff; padding: 0 12px;
  display: flex; align-items: center; gap: 8px; min-height: 48px;
  box-shadow: 0 4px 12px rgba(20, 30, 45, .05);
}
.sp-tabs { display: flex; gap: 18px; overflow-x: auto; flex: 1; min-width: 0; scrollbar-width: none; }
.sp-tabs::-webkit-scrollbar { display: none; }
.sp-tab {
  position: relative; flex: 0 0 auto; height: 48px; padding: 0 1px; border: none; background: none;
  font-size: 14px; color: #6B7280; white-space: nowrap;
}
.sp-tab b { font-weight: 400; }
.sp-tab.on { color: #1F2329; font-weight: 700; }
.sp-tab.on::after {
  content: ""; position: absolute; left: 50%; bottom: 8px; width: 18px; height: 3px; margin-left: -9px;
  border-radius: 2px; background: linear-gradient(90deg, #1FDCC8, #00BEBD);
}
.sp-tab i { font-style: normal; font-size: 11px; color: #A9AEB8; }
.sp-tab.on i { color: #00A9A7; font-weight: 600; }
.sp-sel {
  flex-shrink: 0; max-width: 118px; height: 28px; padding: 0 8px; border: 1px solid #E5E6EB;
  border-radius: 14px; background: #fff; color: #4E5969; font-size: 12px;
  appearance: none; -webkit-appearance: none; background-image: none;
}
.sp-sel:focus { outline: none; border-color: rgba(0, 190, 188, .6); }

.sp-list { padding: 12px 12px 0; }
.sp-empty { padding: 54px 20px; text-align: center; }
.sp-empty .ico {
  width: 62px; height: 62px; margin: 0 auto 12px; border-radius: 31px; background: #fff;
  display: flex; align-items: center; justify-content: center; color: #C9CDD4;
}
.sp-empty b { display: block; font-size: 14px; font-weight: 600; color: #4E5969; }
.sp-empty p { margin-top: 6px; font-size: 12.5px; color: #A9AEB8; line-height: 1.6; }
.sp-empty .go {
  display: inline-block; margin-top: 14px; height: 34px; padding: 0 20px; border: none; border-radius: 17px;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff; font-size: 13.5px; font-weight: 600;
  box-shadow: 0 6px 14px rgba(0, 190, 188, .28);
}

/* 通用小按钮 */
.sp-btn {
  height: 30px; padding: 0 14px; border-radius: 15px; border: 1px solid #E5E6EB; background: #fff;
  color: #4E5969; font-size: 12.5px; font-weight: 500; white-space: nowrap;
}
.sp-btn:active { background: #F5F7FA; }
.sp-btn.pri { border-color: transparent; background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff; font-weight: 600; box-shadow: 0 4px 10px rgba(0, 190, 188, .26); }
.sp-btn.gray { background: #F2F3F5; border-color: #F2F3F5; }
.sp-btn.danger { color: #F53F3F; }
.sp-btn.sm { height: 26px; padding: 0 11px; font-size: 12px; border-radius: 13px; }

/* ---------------- 我的职位 ---------------- */
.cj-fab {
  position: fixed; right: 16px; bottom: calc(106px + env(safe-area-inset-bottom)); z-index: 40;
  height: 42px; padding: 0 18px; border: none; border-radius: 21px;
  background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff;
  font-size: 13.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 5px;
  box-shadow: 0 8px 20px rgba(0, 190, 188, .36);
}
.cj-card { background: #fff; border-radius: 14px; padding: 13px 14px 11px; margin-bottom: 10px; }
.cj-card.off { opacity: .78; }
.cj-top { display: flex; align-items: center; gap: 8px; }
.cj-title {
  flex: 1; min-width: 0; font-size: 15.5px; font-weight: 600; color: #1F2329;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cj-salary { flex-shrink: 0; font-size: 15px; font-weight: 700; color: #00A9A7; letter-spacing: .2px; }
.cj-flag {
  flex-shrink: 0; font-size: 10.5px; color: #F77234; border: 1px solid #FFD3B8; background: #FFF6EF;
  border-radius: 4px; padding: 0 4px; line-height: 15px;
}
.cj-meta { margin-top: 7px; font-size: 12px; color: #86909C; display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; }
.cj-meta .dt { width: 3px; height: 3px; border-radius: 50%; background: #D9DDE3; }
.cj-tags { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.cj-tags span { font-size: 11.5px; color: #5C6570; background: #F5F7FA; border-radius: 5px; padding: 2px 7px; }
.cj-foot {
  margin-top: 11px; padding-top: 10px; border-top: 1px solid #F3F5F7;
  display: flex; align-items: center; gap: 12px;
}
.cj-kpi { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #86909C; }
.cj-kpi b { color: #1F2329; font-weight: 600; margin-left: 2px; }
.cj-kpi .hot { color: #00A9A7; }
.cj-acts { margin-left: auto; display: flex; gap: 7px; }
.cj-st { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: #00A06B; }
.cj-st i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.cj-st.off { color: #A9AEB8; }

/* ---------------- 收到的简历 ---------------- */
.cr-card { background: #fff; border-radius: 14px; padding: 13px 14px 12px; margin-bottom: 10px; }
.cr-top { display: flex; align-items: flex-start; gap: 11px; cursor: pointer; }
.cr-av {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 22px; color: #fff; font-size: 16px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; background: linear-gradient(140deg, #35DCC4, #00B3B0);
}
.cr-av.f { background: linear-gradient(140deg, #FFB08A, #FF8A65); }
.cr-av.m { background: linear-gradient(140deg, #8FBAFF, #5B90F5); }
.cr-hd { flex: 1; min-width: 0; }
.cr-name { display: flex; align-items: center; gap: 6px; font-size: 15.5px; font-weight: 600; color: #1F2329; }
.cr-name em { font-style: normal; font-size: 12px; font-weight: 400; color: #86909C; }
.cr-line { margin-top: 4px; font-size: 12px; color: #86909C; display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; }
.cr-line .dt { width: 3px; height: 3px; border-radius: 50%; background: #D9DDE3; }
.cr-pill {
  flex-shrink: 0; font-size: 11.5px; font-weight: 600; padding: 2px 9px; border-radius: 10px;
  background: #F2F3F5; color: #86909C;
}
.cr-pill.delivered { background: #EAF3FF; color: #3E7BFA; }
.cr-pill.interviewing { background: #FFF3E8; color: #F77234; }
.cr-pill.offered { background: #E9FAF9; color: #00A06B; }
.cr-pill.rejected { background: #F5F6F7; color: #A9AEB8; }
.cr-job {
  margin-top: 10px; display: flex; align-items: center; gap: 6px; padding: 7px 10px;
  background: #F7F9FA; border-radius: 8px; font-size: 12.5px; color: #4E5969;
}
.cr-job b { font-weight: 600; color: #1F2329; }
.cr-job .sm { margin-left: auto; font-size: 11.5px; color: #A9AEB8; }
.cr-skills { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 6px; }
.cr-skills span { font-size: 11.5px; color: #4E5969; background: #F5F7FA; border-radius: 5px; padding: 2px 7px; }
.cr-intro {
  margin-top: 9px; font-size: 12.5px; color: #6B7280; line-height: 1.55;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.cr-foot { margin-top: 11px; padding-top: 10px; border-top: 1px solid #F3F5F7; display: flex; align-items: center; gap: 8px; }
.cr-time { font-size: 11.5px; color: #B0B6BF; }
.cr-acts { margin-left: auto; display: flex; gap: 7px; }

/* ---------------- 面试邀请 ---------------- */
.iv-card { background: #fff; border-radius: 14px; padding: 13px 14px 12px; margin-bottom: 10px; }
.iv-top { display: flex; gap: 11px; }
.iv-date {
  width: 58px; flex-shrink: 0; border-radius: 12px; padding: 7px 0 6px; text-align: center;
  background: #E9FAF9; color: #00A9A7;
}
.iv-date b { display: block; font-size: 21px; font-weight: 700; line-height: 1.1; letter-spacing: -.3px; }
.iv-date span { display: block; margin-top: 2px; font-size: 10.5px; color: #4FBDB8; }
.iv-date.today { background: linear-gradient(150deg, #2BE3C9, #00BEBC); color: #fff; }
.iv-date.today span { color: rgba(255, 255, 255, .88); }
.iv-date.none { background: #F5F6F7; color: #A9AEB8; font-size: 12px; display: flex; align-items: center; justify-content: center; height: 58px; }
.iv-main { flex: 1; min-width: 0; }
.iv-name { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; color: #1F2329; }
.iv-name em { font-style: normal; font-size: 12px; font-weight: 400; color: #86909C; }
.iv-job { margin-top: 3px; font-size: 12px; color: #86909C; }
.iv-row { display: flex; align-items: flex-start; gap: 6px; margin-top: 6px; font-size: 12.5px; color: #4E5969; }
.iv-row span:first-child { flex-shrink: 0; color: #A9AEB8; }
.iv-row .tp {
  font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: 4px;
  background: #EAF3FF; color: #3E7BFA;
}
.iv-row .tp.video { background: #F1ECFF; color: #7C5CFC; }
.iv-row .tp.phone { background: #E9FAF9; color: #00A06B; }
.iv-note { margin-top: 8px; font-size: 12px; color: #6B7280; background: #FAFBFC; border-radius: 8px; padding: 7px 9px; line-height: 1.5; }
.iv-foot { margin-top: 11px; padding-top: 10px; border-top: 1px solid #F3F5F7; display: flex; align-items: center; gap: 7px; }
.iv-foot .sp-btn:first-child { margin-left: auto; }

/* 面试安排弹层 */
.ivs { position: fixed; inset: 0; z-index: 360; }
.ivs[hidden] { display: none !important; }
.ivs-mask { position: absolute; inset: 0; background: rgba(18, 26, 38, .45); opacity: 0; transition: opacity .2s; }
.ivs.on .ivs-mask { opacity: 1; }
.ivs-panel {
  position: absolute; left: 0; right: 0; bottom: 0; max-width: 480px; margin: 0 auto;
  background: #fff; border-radius: 18px 18px 0 0; padding-bottom: calc(12px + env(safe-area-inset-bottom));
  transform: translateY(100%); transition: transform .26s cubic-bezier(.24, .82, .3, 1);
  max-height: 86vh; overflow-y: auto;
}
.ivs.on .ivs-panel { transform: none; }
.ivs-hd { display: flex; align-items: center; padding: 14px 16px 4px; }
.ivs-hd b { font-size: 16px; font-weight: 600; color: #1F2329; }
.ivs-hd small { margin-left: 8px; font-size: 12px; color: #A9AEB8; }
.ivs-x { margin-left: auto; width: 28px; height: 28px; border: none; background: transparent; color: #86909C; border-radius: 14px; font-size: 18px; line-height: 1; }
.ivs-body { padding: 4px 16px 0; }
.ivs-label { margin: 14px 0 8px; font-size: 13px; font-weight: 600; color: #4E5969; }
.ivs-label small { font-weight: 400; color: #A9AEB8; font-size: 11.5px; margin-left: 5px; }
.ivs-quick { display: flex; flex-wrap: wrap; gap: 8px; }
.ivs-q {
  height: 32px; padding: 0 12px; border-radius: 16px; background: #F4F5F7; color: #4E5969;
  border: 1px solid transparent; font-size: 12.5px;
}
.ivs-q.on { background: #E9FAF9; color: #00A9A7; font-weight: 600; border-color: rgba(0, 190, 188, .5); }
.ivs-input {
  width: 100%; height: 42px; border: 1px solid #E5E6EB; border-radius: 10px; padding: 0 12px;
  font-size: 14px; color: #1F2329; background: #fff;
}
.ivs-input:focus { outline: none; border-color: rgba(0, 190, 188, .6); }
.ivs-seg { display: flex; gap: 8px; }
.ivs-seg button {
  flex: 1; height: 36px; border-radius: 9px; border: 1px solid #E5E6EB; background: #fff;
  font-size: 13px; color: #4E5969;
}
.ivs-seg button.on { background: #E9FAF9; border-color: rgba(0, 190, 188, .55); color: #00A9A7; font-weight: 600; }
.ivs-ft { display: flex; gap: 10px; padding: 18px 16px 6px; }
.ivs-ft button { flex: 1; height: 44px; border-radius: 22px; font-size: 15px; font-weight: 600; border: 1px solid #E5E6EB; background: #fff; color: #4E5969; }
.ivs-ft .ok { border-color: transparent; background: linear-gradient(135deg, #1FDCC8, #00BEBD); color: #fff; box-shadow: 0 8px 18px rgba(0, 190, 188, .3); }
.ivs-ft .ok:disabled { background: #DFE2E7; box-shadow: none; }

/* ================================================================
   求职期望管理页（ex-，对齐参考稿：想找什么工作? + 全职/兼职期望卡）
   ================================================================ */
.ex-body .topbar { display: none; }
.ex-page {
  max-width: 480px; margin: 0 auto; min-height: 100vh; background: #fff;
  box-shadow: 0 0 44px rgba(16, 34, 53, .08); padding-bottom: 110px;
}
@media (max-width: 560px) { .ex-page { max-width: none; box-shadow: none; } }
.ex-nav { display: flex; align-items: center; height: 52px; padding: 0 10px; }
.ex-back {
  width: 34px; height: 34px; border: none; background: transparent; color: #1F2329;
  display: flex; align-items: center; justify-content: center; border-radius: 17px;
}
.ex-back:active { background: #F2F3F5; }
.ex-wrap { padding: 6px 18px 0; }
.ex-title { font-size: 26px; font-weight: 800; color: #1F2329; letter-spacing: .3px; }
.ex-sub { margin-top: 8px; font-size: 13px; color: #86909C; }
.ex-card {
  margin-top: 18px; background: #fff; border-radius: 14px;
  box-shadow: 0 2px 14px rgba(30, 40, 60, .08); overflow: hidden;
}
.ex-hd { display: flex; align-items: baseline; padding: 15px 16px 11px; }
.ex-hd b { font-size: 16px; font-weight: 700; color: #1F2329; }
.ex-hd .cnt { margin-left: auto; font-size: 13px; color: #C0C4CC; font-weight: 600; }
.ex-hd .cnt em { font-style: normal; color: #00BEBD; font-size: 17px; margin-right: 1px; }
.ex-row { display: flex; align-items: center; min-height: 54px; padding: 0 16px; position: relative; }
.ex-row::before { content: ""; position: absolute; left: 16px; right: 0; top: 0; height: 1px; background: #F3F5F7; }
.ex-row:first-of-type::before { display: none; }
.ex-row .nm { flex: 1; min-width: 0; font-size: 15px; font-weight: 600; color: #1F2329; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ex-row .nm small { font-size: 11.5px; font-weight: 400; color: #A9AEB8; margin-left: 8px; }
.ex-del {
  flex-shrink: 0; height: 28px; padding: 0 14px; border: none; border-radius: 15px;
  background: #F5F6F7; color: #86909C; font-size: 12.5px;
}
.ex-del:active { background: #EBEDF0; }
.ex-add {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  margin: 6px 16px 14px; height: 48px; border: none; border-radius: 10px;
  background: #F8FAFB; color: #00BEBD; font-size: 14px; font-weight: 600; width: calc(100% - 32px);
}
.ex-add:active { background: #EDF7F6; }
.ex-add .plus { font-size: 16px; font-weight: 700; }
.ex-foot {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 16px calc(14px + env(safe-area-inset-bottom));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 26%);
}
.ex-foot button {
  width: 100%; max-width: 448px; display: block; margin: 0 auto; height: 50px;
  border: none; border-radius: 25px; background: linear-gradient(135deg, #17D9C4, #00B7B5);
  color: #fff; font-size: 16px; font-weight: 700; letter-spacing: 1px;
  box-shadow: 0 10px 22px rgba(0, 183, 181, .32);
}
.ex-foot button:active { transform: scale(.98); }
.ex-foot button:disabled { background: #DFE2E7; box-shadow: none; }
.ex-hint { margin-top: 26px; padding: 18px 16px; background: #F8FAFB; border-radius: 12px; font-size: 12.5px; color: #86909C; line-height: 1.7; }

/* ================================================================
   首页推荐职位 Tab 条（全部 / 最新 / 期望职位分组，选中放大+青色下划线）
   ================================================================ */
.m-head-row { align-items: center; }
.m-tabs {
  flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 16px;
  overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
}
.m-tabs::-webkit-scrollbar { display: none; }
.m-tb {
  position: relative; flex: 0 0 auto; cursor: pointer;
  font-size: 15.5px; color: #8A919C; white-space: nowrap; line-height: 1.2;
  padding-bottom: 7px;
}
.m-tb.exp { font-size: 18px; color: #4E5969; font-weight: 500; }
.m-tb.on { font-size: 20px; font-weight: 800; color: #1F2329; letter-spacing: .2px; }
.m-tb.on::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 22px; height: 3.5px;
  margin-left: -11px; border-radius: 2px; background: linear-gradient(90deg, #1FDCC8, #00BEBD);
}
.m-plus {
  width: 30px; height: 30px; border-radius: 15px; background: #F2F3F5;
  color: #4E5969; display: flex; align-items: center; justify-content: center;
}
.m-plus:active { background: #E8EAEE; }
.m-plus[hidden] { display: none !important; }

/* ================================================================
   登录三屏（lg-：身份选择 / 一键登录 / 其他方式登录，对齐参考稿）
   ================================================================ */
.lg-body { background: #fff; }
.lg-body .topbar { display: none; }
.lg-view {
  max-width: 420px; margin: 0 auto; min-height: 100vh; background: #fff;
  padding: 34px 24px 18px; display: flex; flex-direction: column;
  box-shadow: 0 0 44px rgba(16, 34, 53, .07);
}
.lg-view[hidden] { display: none !important; }
@media (max-width: 480px) { .lg-view { max-width: none; box-shadow: none; } }

.lg-brand { text-align: center; padding-top: 26px; }
.lg-logo {
  display: flex; align-items: center; justify-content: center;
  width: 74px; height: 74px; margin: 0 auto; border-radius: 19px;
  background: linear-gradient(150deg, #17D9C4, #00B7B5); color: #fff;
  font-size: 34px; font-weight: 800; box-shadow: 0 10px 24px rgba(0, 183, 181, .32);
}
.lg-name { display: block; margin-top: 12px; font-size: 15px; color: #4E5969; letter-spacing: 1px; }

.lg-title { margin-top: 44px; text-align: center; font-size: 23px; font-weight: 800; color: #1F2329; }
.lg-sub { margin-top: 10px; text-align: center; font-size: 13px; color: #A9AEB8; }

/* 身份卡 */
.lg-role {
  display: flex; align-items: center; gap: 13px; margin-top: 16px;
  padding: 16px 16px; border: 1.5px solid #E5E6EB; border-radius: 14px;
  background: #fff; cursor: pointer; transition: border-color .16s, background .16s;
}
.lg-role.on { border-color: #00BEBD; background: #F3FBFA; }
.lg-r-ico {
  width: 42px; height: 42px; flex-shrink: 0; border-radius: 12px;
  background: #E9FAF9; color: #00BEBD; font-size: 17px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.lg-r-ico.gray { background: #F2F3F5; color: #6B7280; }
.lg-role.on .lg-r-ico.gray { background: #E9FAF9; color: #00BEBD; }
.lg-r-tx { flex: 1; min-width: 0; }
.lg-r-tx b { display: block; font-size: 16.5px; font-weight: 700; color: #1F2329; }
.lg-r-tx small { display: block; margin-top: 4px; font-size: 12px; color: #A9AEB8; }
.lg-radio {
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%;
  border: 1.6px solid #D5D9E0; background: #fff; position: relative;
}
.lg-role.on .lg-radio { border-color: #00BEBD; }
.lg-role.on .lg-radio::after {
  content: ""; position: absolute; inset: 2.6px; border-radius: 50%;
  background: linear-gradient(135deg, #17D9C4, #00B7B5);
}

/* 大主按钮 */
.lg-main-btn {
  display: block; width: 100%; height: 52px; margin-top: 30px;
  border: none; border-radius: 26px; background: linear-gradient(135deg, #17D9C4, #00B7B5);
  color: #fff; font-size: 16.5px; font-weight: 700; letter-spacing: 1px;
  box-shadow: 0 10px 22px rgba(0, 183, 181, .3);
}
.lg-main-btn:active { transform: scale(.985); }
.lg-main-btn:disabled { background: #C4EFEB; box-shadow: none; }

.lg-other { display: block; margin-top: 18px; text-align: center; font-size: 14.5px; font-weight: 600; color: #4E5969; cursor: pointer; }
.lg-other:active { color: #1F2329; }

.lg-phone { margin-top: 52px; text-align: center; font-size: 34px; font-weight: 800; color: #1F2329; letter-spacing: 1px; }

/* 协议勾选 */
.lg-agree { display: flex; align-items: flex-start; gap: 8px; margin-top: 26px; cursor: pointer; }
.lg-agree input { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; accent-color: #00BEBD; }
.lg-agree span { font-size: 11.5px; color: #A9AEB8; line-height: 1.7; }
.lg-agree a { color: #00A9A7; }

/* 页脚链接 */
.lg-foot { margin-top: auto; padding-top: 34px; display: flex; justify-content: center; gap: 26px; }
.lg-foot a { font-size: 12.5px; color: #B7BCC4; cursor: pointer; }
.lg-foot a:active { color: #86909C; }

/* ---------- 屏3 ---------- */
.lg-nav { display: flex; align-items: center; gap: 8px; margin: 0 -4px; }
.lg-back { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; color: #1F2329; border-radius: 16px; }
.lg-back:active { background: #F2F3F5; }
.lg-nav b { font-size: 16px; color: #00A9A7; }
.lg-h1 { margin-top: 22px; font-size: 27px; font-weight: 800; color: #1F2329; }
.lg-sub2 { margin-top: 8px; font-size: 13px; color: #A9AEB8; }

.lg-tabs { display: flex; gap: 22px; margin-top: 22px; border-bottom: 1px solid #F2F3F5; }
.lg-tabs a { position: relative; padding: 6px 1px 11px; font-size: 15px; color: #86909C; cursor: pointer; }
.lg-tabs a.on { font-size: 16.5px; font-weight: 700; color: #1F2329; }
.lg-tabs a.on::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 20px; height: 3px;
  margin-left: -10px; border-radius: 2px; background: linear-gradient(90deg, #1FDCC8, #00BEBD);
}

.lg-cur { display: flex; align-items: center; margin-top: 16px; font-size: 13px; color: #6B7280; }
.lg-cur b { font-weight: 600; color: #1F2329; }
.lg-cur a { margin-left: auto; font-size: 13px; color: #00A9A7; cursor: pointer; }

.lg-in {
  display: flex; align-items: center; gap: 10px; margin-top: 14px;
  background: #F5F6F8; border-radius: 12px; padding: 0 14px; height: 54px;
  border: 1.5px solid transparent; transition: border-color .15s;
}
.lg-in[hidden] { display: none !important; }
.lg-in:focus-within { border-color: rgba(0, 190, 188, .55); background: #F8FBFB; }
.lg-86 { flex-shrink: 0; display: flex; align-items: center; gap: 4px; font-size: 15px; font-weight: 600; color: #1F2329; }
.lg-in i { width: 1px; height: 18px; background: #DDDFE4; }
.lg-in input { flex: 1; min-width: 0; border: none; background: none; font-size: 15px; color: #1F2329; }
.lg-in input::placeholder { color: #B7BCC4; }
.lg-in input:focus { outline: none; }
.lg-resend { flex-shrink: 0; font-size: 13px; color: #00A9A7; cursor: pointer; }

.lg-help { display: inline-block; margin-top: 12px; font-size: 12.5px; color: #86909C; cursor: pointer; }
.lg-help:active { color: #00A9A7; }
.lg-view .lg-main-btn { margin-top: 24px; }
.lg-view #paneCode .lg-main-btn, .lg-view #panePwd .lg-main-btn { margin-top: 26px; }
.lg-reg-hint { margin-top: 14px; text-align: center; font-size: 12px; color: #B7BCC4; }

/* ================================================================
   求职中心 / 企业中心补齐页
   协议 ag- · 客服 hp- · 设置 st- · 收藏 fv- · 访客 vs- · 子账号 sa- · 统计 dt-
   ================================================================ */
/* ---------- 用户协议 / 隐私政策 ---------- */
.ag-body { background: #F7F9FA; }
.ag-page { background: #F7F9FA; }
.ag-hero { padding-bottom: 20px; }
.ag-main { padding: 12px 12px 0; }
.ag-card {
  background: #fff; border-radius: 14px; padding: 18px 16px 8px;
  box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
}
.ag-h { margin: 18px 0 8px; font-size: 14.5px; font-weight: 700; color: #1F2329; }
.ag-h:first-child { margin-top: 0; }
.ag-p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.9; color: #4E5969; }
.ag-p:last-child { margin-bottom: 12px; }
.ag-foot {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  margin: 14px 4px 0; padding-bottom: calc(24px + env(safe-area-inset-bottom));
  font-size: 11.5px; color: #A9AEB8;
}
.ag-foot a { color: #00A9A7; font-size: 12px; text-decoration: none; }

/* ---------- 联系客服 / 意见反馈 ---------- */
.hp-hero-tx { padding: 4px 0 18px; }
.hp-hero-b { font-size: 19px; font-weight: 700; letter-spacing: .2px; }
.hp-hero-s { margin-top: 5px; font-size: 12px; color: rgba(255, 255, 255, .86); }
.hp-main { padding: 12px 12px 0; }
.hp-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.hp-q {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  padding: 13px 14px; border: none; border-radius: 14px; background: #fff; text-align: left;
  box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
}
.hp-q:active { background: #F7F9FA; }
.hp-q .ico {
  width: 30px; height: 30px; border-radius: 9px; color: #00A9A7;
  background: linear-gradient(140deg, #E7FBF8, #D5F5F2);
  display: flex; align-items: center; justify-content: center;
}
.hp-q .ico svg { width: 17px; height: 17px; }
.hp-q b { font-size: 12px; font-weight: 400; color: #86909C; }
.hp-q em { font-style: normal; font-size: 14px; font-weight: 700; color: #1F2329; }
.hp-card {
  background: #fff; border-radius: 14px; overflow: hidden; margin-bottom: 10px;
  box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
}
.hp-row {
  display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 0 14px;
  position: relative; font-size: 13px; color: #4E5969;
}
.hp-row + .hp-row::before { content: ""; position: absolute; left: 14px; right: 0; top: 0; height: 1px; background: #F3F5F7; }
.hp-row em { flex: 1; min-width: 0; font-style: normal; font-size: 13px; color: #1F2329; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hp-row .ar { flex-shrink: 0; font-size: 12px; color: #00A9A7; }
.hp-h { margin: 16px 4px 8px; font-size: 13.5px; font-weight: 700; color: #1F2329; }
.hp-q-item + .hp-q-item { border-top: 1px solid #F3F5F7; }
.hp-q-title {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 14px;
  border: none; background: none; text-align: left; font-size: 13.5px; color: #1F2329; line-height: 1.5;
}
.hp-q-title span { flex: 1; }
.hp-q-title i { flex-shrink: 0; font-style: normal; font-size: 16px; color: #C9CDD4; transition: transform .2s; }
.hp-q-body { display: none; padding: 0 14px 14px; font-size: 12.5px; line-height: 1.85; color: #6B7280; }
.hp-q-item.on .hp-q-body { display: block; }
.hp-q-item.on .hp-q-title i { transform: rotate(45deg); color: #00A9A7; }
.hp-fb { padding: 14px; }
.hp-types { display: flex; flex-wrap: wrap; gap: 8px; }
.hp-type {
  height: 29px; padding: 0 12px; border-radius: 15px; border: 1px solid #E5E6EB;
  background: #fff; font-size: 12px; color: #4E5969;
}
.hp-type.on { border-color: rgba(0, 169, 167, .5); background: #EAF8F7; color: #00A9A7; font-weight: 600; }
.hp-ta {
  width: 100%; min-height: 108px; margin-top: 12px; padding: 10px 12px; border: 1px solid #EDEFF2;
  border-radius: 10px; font-size: 13px; line-height: 1.7; color: #1F2329; background: #FAFBFC;
  resize: none; font-family: inherit;
}
.hp-ta:focus, .hp-in:focus { outline: none; border-color: rgba(0, 190, 188, .6); background: #fff; }
.hp-in {
  width: 100%; height: 42px; margin-top: 10px; padding: 0 12px; border: 1px solid #EDEFF2;
  border-radius: 10px; font-size: 13px; background: #FAFBFC; font-family: inherit;
}
.hp-submit {
  width: 100%; height: 44px; margin-top: 12px; border: none; border-radius: 22px;
  background: linear-gradient(135deg, #2BE3C9, #00A9A7); color: #fff; font-size: 15px; font-weight: 700;
  box-shadow: 0 6px 16px rgba(0, 190, 189, .26);
}
.hp-submit:disabled { opacity: .6; box-shadow: none; }
.hp-fb-tip { margin-top: 9px; text-align: center; font-size: 11.5px; color: #A9AEB8; }
.hp-safe { height: calc(26px + env(safe-area-inset-bottom)); }

/* ---------- 联系我们 PC 版（左：联系方式 / 右：常见问题 + 意见反馈） ---------- */
.hp-hero-kicker { display: none; }
/* 服务时间卡仅 PC 左栏展示，移动端保持原版式 */
.hp-hours { display: none; }

@media (min-width: 769px) {
  body.hp-body { background: #F4F6F8; }
  body.hp-body .sp-page {
    max-width: none; box-shadow: none; background: transparent;
    min-height: 0; padding-bottom: 0;
  }
  /* 顶部横幅：全宽渐变，内容居中 1160 */
  body.hp-body .hp-hero { padding: 0; }
  body.hp-body .sp-nav { display: none; }
  body.hp-body .hp-hero-tx { max-width: 1160px; margin: 0 auto; padding: 54px 20px 48px; }
  body.hp-body .hp-hero-kicker {
    display: inline-block; margin-bottom: 14px; padding: 4px 12px; border-radius: 12px;
    background: rgba(255, 255, 255, .18); font-size: 13px; font-weight: 600; letter-spacing: .4px;
  }
  body.hp-body .hp-hero-b { font-size: 34px; letter-spacing: .5px; }
  body.hp-body .hp-hero-s { margin-top: 12px; font-size: 15px; }
  /* 主体两栏 */
  body.hp-body .hp-main { max-width: 1160px; margin: 0 auto; padding: 30px 20px 70px; }
  body.hp-body .hp-grid {
    display: grid; grid-template-columns: 366px minmax(0, 1fr); gap: 26px; align-items: start;
  }
  body.hp-body .hp-card {
    margin-bottom: 16px; border-radius: 12px; border: 1px solid #EEF1F4;
    box-shadow: 0 1px 2px rgba(16, 34, 53, .04);
  }
  body.hp-body .hp-quick { gap: 14px; margin-bottom: 16px; }
  body.hp-body .hp-q {
    padding: 18px 18px; border-radius: 12px; border: 1px solid #EEF1F4;
    transition: border-color .18s, box-shadow .18s, transform .18s;
  }
  body.hp-body .hp-q:hover { border-color: rgba(0, 190, 188, .45); box-shadow: 0 6px 18px rgba(16, 34, 53, .07); transform: translateY(-1px); }
  body.hp-body .hp-q .ico { width: 38px; height: 38px; border-radius: 11px; }
  body.hp-body .hp-q .ico svg { width: 20px; height: 20px; }
  body.hp-body .hp-q b { font-size: 13px; }
  body.hp-body .hp-q em { font-size: 16.5px; white-space: nowrap; }
  body.hp-body .hp-row { min-height: 58px; padding: 0 18px; font-size: 13.5px; }
  /* 办公地址等长内容允许换行，不再单行截断 */
  body.hp-body .hp-row em { font-size: 13.5px; white-space: normal; text-align: right; line-height: 1.55; }
  body.hp-body .hp-row + .hp-row::before { left: 18px; }
  body.hp-body .hp-hours { display: block; padding: 18px; font-size: 13.5px; color: #4E5969; line-height: 1.8; }
  body.hp-body .hp-hours-t { font-size: 14px; font-weight: 700; color: #1F2329; margin-bottom: 6px; }
  body.hp-body .hp-hours-sub { margin-top: 8px; font-size: 12px; color: #A9AEB8; line-height: 1.7; }
  body.hp-body .hp-h { margin: 0 0 12px; font-size: 17px; letter-spacing: .2px; }
  body.hp-body .hp-content > .hp-h ~ .hp-h { margin-top: 30px; }
  body.hp-body .hp-q-title { padding: 18px 20px; font-size: 14.5px; }
  body.hp-body .hp-q-body { padding: 0 20px 18px; font-size: 13.5px; }
  body.hp-body .hp-fb { padding: 22px; }
  body.hp-body .hp-types { gap: 10px; }
  body.hp-body .hp-type { height: 32px; padding: 0 14px; font-size: 12.5px; border-radius: 16px; cursor: pointer; }
  body.hp-body .hp-type:hover { border-color: rgba(0, 190, 188, .45); }
  body.hp-body .hp-ta { min-height: 132px; margin-top: 14px; font-size: 13.5px; }
  body.hp-body .hp-in { height: 44px; margin-top: 12px; }
  body.hp-body .hp-submit {
    width: auto; min-width: 168px; height: 44px; margin-top: 16px; padding: 0 34px;
    border-radius: 10px; font-size: 15px; cursor: pointer;
  }
  body.hp-body .hp-submit:hover { filter: brightness(1.03); }
  body.hp-body .hp-fb-tip { margin-top: 12px; text-align: left; font-size: 12px; }
  body.hp-body .hp-safe { display: none; }
}

/* ---------- 设置 ---------- */
.st-hero { padding-bottom: 0; }
.st-id { display: flex; align-items: center; gap: 12px; padding: 2px 0 18px; }
.st-av {
  width: 48px; height: 48px; flex-shrink: 0; border-radius: 24px;
  background: rgba(255, 255, 255, .24); border: 1px solid rgba(255, 255, 255, .5);
  display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; color: #fff;
}
.st-id-tx { flex: 1; min-width: 0; }
.st-id-tx b { display: block; font-size: 17px; font-weight: 700; }
.st-id-tx span { display: block; margin-top: 4px; font-size: 12px; color: rgba(255, 255, 255, .85); }
.st-edit {
  flex-shrink: 0; font-size: 11.5px; padding: 4px 10px; border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, .54); background: rgba(255, 255, 255, .14); color: #fff;
}
.st-main { padding: 12px 12px 0; }
.st-h { margin: 14px 4px 8px; font-size: 12.5px; font-weight: 500; color: #86909C; }
.st-h:first-child { margin-top: 4px; }
.st-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 1px 3px rgba(16, 34, 53, .05); }
.st-row {
  display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 14px; position: relative;
  font-size: 14px; color: #1F2329;
}
.st-row + .st-row::before { content: ""; position: absolute; left: 44px; right: 0; top: 0; height: 1px; background: #F3F5F7; }
.st-row:active { background: #F7F9FA; }
.st-ico { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 20px; color: #4E5969; }
.st-ico svg { width: 20px; height: 20px; }
.st-row .lb { flex: 1; min-width: 0; font-size: 14px; color: #1F2329; }
.st-sub { display: block; margin-top: 3px; font-style: normal; font-size: 11.5px; color: #A9AEB8; }
.st-tip { flex-shrink: 0; font-size: 12px; color: #A9AEB8; }
.st-row .ar { flex-shrink: 0; color: #C9CDD4; font-size: 16px; }
.st-row-col { flex-direction: column; align-items: stretch; padding: 13px 14px; }
.st-row-top { display: flex; align-items: center; gap: 10px; }
.st-seg { display: flex; gap: 3px; margin-top: 11px; padding: 3px; border-radius: 10px; background: #F2F4F6; }
.st-seg button {
  flex: 1; height: 32px; border: none; border-radius: 8px; background: none;
  font-size: 12.5px; color: #4E5969;
}
.st-seg button.on { background: #fff; color: #00A9A7; font-weight: 600; box-shadow: 0 1px 3px rgba(16, 34, 53, .1); }
.st-desc { margin-top: 9px; font-size: 11.5px; line-height: 1.65; color: #A9AEB8; }
.st-sw {
  position: relative; flex-shrink: 0; width: 44px; height: 26px; border: none; border-radius: 13px;
  background: #E5E6EB; transition: background .18s;
}
.st-sw::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 11px;
  background: #fff; box-shadow: 0 1px 3px rgba(16, 34, 53, .2); transition: left .18s;
}
.st-sw.on { background: #00BEBD; }
.st-sw.on::after { left: 20px; }
.st-logout {
  width: 100%; height: 46px; margin-top: 22px; border: none; border-radius: 23px;
  background: #fff; color: #F53F3F; font-size: 15px; font-weight: 600;
  box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
}
.st-logout:active { background: #FFF5F4; }
.st-safe { height: calc(30px + env(safe-area-inset-bottom)); }

/* 通用底部弹层（设置 / 子账号共用） */
.st-mask, .sa-mask {
  position: fixed; inset: 0; z-index: 90; background: rgba(16, 24, 38, .45);
  opacity: 0; pointer-events: none; transition: opacity .2s;
}
.st-mask.open, .sa-mask.open { opacity: 1; pointer-events: auto; }
.st-sheet, .sa-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 91; max-width: 480px; margin: 0 auto;
  background: #fff; border-radius: 18px 18px 0 0; padding-bottom: env(safe-area-inset-bottom);
  transform: translateY(102%); transition: transform .24s ease;
  box-shadow: 0 -12px 30px rgba(16, 24, 38, .16);
}
.st-sheet.open, .sa-sheet.open { transform: translateY(0); }
.st-sheet-top, .sa-sheet-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 16px 6px; font-size: 15px; font-weight: 700; color: #1F2329;
}
.st-sheet-top button, .sa-sheet-top button { border: none; background: none; font-size: 13.5px; color: #86909C; }
.st-sheet-body, .sa-sheet-body { padding: 4px 16px 22px; }
.st-field, .sa-field { display: block; margin-top: 12px; }
.st-field > span, .sa-field > span { display: block; font-size: 12.5px; color: #86909C; }
.st-field input, .sa-field input {
  width: 100%; height: 44px; margin-top: 6px; padding: 0 12px; border: 1px solid #E5E6EB;
  border-radius: 10px; font-size: 14px; color: #1F2329; font-family: inherit;
}
.st-field input:focus, .sa-field input:focus { outline: none; border-color: rgba(0, 190, 188, .6); }
.st-primary, .sa-primary {
  width: 100%; height: 46px; margin-top: 18px; border: none; border-radius: 23px;
  background: linear-gradient(135deg, #2BE3C9, #00A9A7); color: #fff; font-size: 15px; font-weight: 700;
}
.st-primary:disabled, .sa-primary:disabled { opacity: .6; }
.st-sheet-tip, .sa-sheet-tip { margin-top: 10px; text-align: center; font-size: 11.5px; color: #A9AEB8; }
/* 换绑手机号 / 微信绑定 */
.st-cur-row {
  display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 11px 12px;
  background: #F7F8FA; border-radius: 10px; font-size: 12.5px; color: #86909C;
}
.st-cur-row b { font-size: 14px; color: #1F2329; margin-left: auto; }
.st-field-code { position: relative; }
.st-field-code input { padding-right: 96px; }
.st-code-btn {
  position: absolute; right: 8px; bottom: 8px; height: 28px; padding: 0 10px;
  border: none; border-radius: 14px; background: rgba(0, 169, 167, .1);
  color: #00A9A7; font-size: 12px; font-weight: 600;
}
.st-code-btn:disabled { color: #A9AEB8; background: #F2F3F5; }
.st-ghost {
  width: 100%; height: 44px; margin-top: 12px; border: 1px solid rgba(245, 63, 63, .4);
  border-radius: 22px; background: none; color: #F53F3F; font-size: 14px; font-weight: 600;
}
.st-ghost:disabled { opacity: .5; }
.st-tip-off { color: #A9AEB8; }
.wx-cur {
  display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 14px 12px;
  background: #F7F8FA; border-radius: 12px;
}
.wx-av {
  flex: none; width: 48px; height: 48px; border-radius: 12px; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #2BE3C9, #00A9A7); color: #fff; font-size: 20px; font-weight: 700;
}
.wx-cur-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wx-cur-tx b { font-size: 14.5px; color: #1F2329; }
.wx-cur-tx span { font-size: 11.5px; color: #A9AEB8; }

/* ---------- 收藏的职位 ---------- */
.fv-main { padding: 12px 12px 0; }
.fv-card {
  background: #fff; border-radius: 14px; padding: 13px 14px; margin-bottom: 10px;
  box-shadow: 0 1px 3px rgba(16, 34, 53, .05); transition: opacity .18s;
}
.fv-card:active { background: #FAFBFC; }
.fv-top { display: flex; align-items: center; gap: 6px; }
.fv-title { font-size: 16px; font-weight: 700; color: #1F2329; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fv-tag { flex-shrink: 0; font-size: 10.5px; padding: 1px 5px; border-radius: 4px; background: #FFECE8; color: #F53F3F; }
.fv-tag.direct { background: #EAF8F7; color: #00A9A7; }
.fv-sal { margin-left: auto; flex-shrink: 0; font-size: 16px; font-weight: 700; color: #00A9A7; }
.fv-co { margin-top: 7px; font-size: 12.5px; color: #86909C; }
.fv-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.fv-tags span { font-size: 11px; color: #6B7280; background: #F5F7F9; border-radius: 4px; padding: 2px 6px; }
.fv-foot { display: flex; align-items: center; gap: 8px; margin-top: 11px; padding-top: 10px; border-top: 1px solid #F3F5F7; }
.fv-loc { flex-shrink: 0; font-size: 11.5px; color: #86909C; }
.fv-hr { flex: 1; min-width: 0; font-size: 11.5px; color: #A9AEB8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fv-del { flex-shrink: 0; border: none; background: #F5F7F9; color: #6B7280; font-size: 11.5px; border-radius: 12px; padding: 5px 10px; }
.fv-go {
  margin-top: 20px; height: 40px; padding: 0 24px; border: none; border-radius: 20px;
  background: linear-gradient(135deg, #2BE3C9, #00A9A7); color: #fff; font-size: 14px; font-weight: 600;
}
.fv-safe { height: calc(24px + env(safe-area-inset-bottom)); }

/* ---------- 谁看过我 ---------- */
.vs-stats { display: flex; padding: 12px 0 4px; }
.vs-stats > div { flex: 1; text-align: center; position: relative; }
.vs-stats > div + div::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 1px; background: rgba(255, 255, 255, .26); }
.vs-stats b { display: block; font-size: 20px; font-weight: 700; line-height: 1.2; }
.vs-stats span { display: block; margin-top: 3px; font-size: 11.5px; color: rgba(255, 255, 255, .85); }
.vs-tip { padding: 10px 2px 16px; font-size: 11.5px; line-height: 1.5; color: rgba(255, 255, 255, .82); }
.vs-main { padding: 12px 12px 0; }
.vs-card {
  display: flex; gap: 11px; align-items: flex-start; padding: 13px 14px; margin-bottom: 10px;
  background: #fff; border-radius: 14px; box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
}
.vs-card:active { background: #FAFBFC; }
.vs-logo {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; font-size: 17px; font-weight: 700;
  color: #00A9A7; background: linear-gradient(140deg, #E7FBF8, #D5F5F2);
  display: flex; align-items: center; justify-content: center;
}
.vs-tx { flex: 1; min-width: 0; }
.vs-name { display: flex; align-items: center; gap: 6px; font-size: 14.5px; font-weight: 600; color: #1F2329; }
.vs-vtag { flex-shrink: 0; font-size: 10px; color: #00A9A7; border: 1px solid rgba(0, 169, 167, .34); border-radius: 4px; padding: 0 4px; }
.vs-sub { margin-top: 4px; font-size: 11.5px; color: #86909C; }
.vs-jobs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.vs-jobs span { font-size: 11px; color: #4E5969; background: #F5F7F9; border-radius: 4px; padding: 2px 6px; }
.vs-right { flex-shrink: 0; text-align: right; }
.vs-time { display: block; font-size: 11.5px; color: #A9AEB8; }
.vs-count { display: block; margin-top: 5px; font-size: 10.5px; color: #C9CDD4; }
.vs-note { margin: 16px 8px 0; text-align: center; font-size: 11.5px; line-height: 1.6; color: #A9AEB8; }
.vs-go {
  margin-top: 20px; height: 40px; padding: 0 24px; border: none; border-radius: 20px;
  background: linear-gradient(135deg, #2BE3C9, #00A9A7); color: #fff; font-size: 14px; font-weight: 600;
}
.vs-safe { height: calc(24px + env(safe-area-inset-bottom)); }

/* ---------- 子账号管理 ---------- */
.sa-main { padding: 12px 12px 0; }
.sa-card { background: #fff; border-radius: 14px; overflow: hidden; margin-bottom: 10px; box-shadow: 0 1px 3px rgba(16, 34, 53, .05); }
.sa-owner { display: flex; align-items: center; gap: 11px; padding: 14px; }
.sa-av {
  width: 42px; height: 42px; flex-shrink: 0; border-radius: 21px; font-size: 16px; font-weight: 700; color: #fff;
  background: linear-gradient(140deg, #2BE3C9, #00A9A7);
  display: flex; align-items: center; justify-content: center;
}
.sa-av.owner { background: linear-gradient(140deg, #FFE7BC, #E9B961); color: #4A3413; }
.sa-av.off { background: #C9CDD4; }
.sa-tx { flex: 1; min-width: 0; }
.sa-name { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 14.5px; font-weight: 600; color: #1F2329; }
.sa-role { font-size: 10.5px; font-weight: 400; color: #00A9A7; background: #EAF8F7; border-radius: 4px; padding: 1px 5px; }
.sa-role.admin { color: #B07E2C; background: #FDF3DE; }
.sa-role.owner { color: #4A3413; background: #FFE7BC; }
.sa-off { font-size: 10.5px; font-weight: 400; color: #F53F3F; background: #FFECE8; border-radius: 4px; padding: 1px 5px; }
.sa-sub { margin-top: 4px; font-size: 11.5px; color: #86909C; }
.sa-tip { flex-shrink: 0; font-size: 11px; color: #C9CDD4; }
.sa-item { display: flex; align-items: center; gap: 11px; padding: 13px 14px; position: relative; }
.sa-item + .sa-item::before { content: ""; position: absolute; left: 58px; right: 0; top: 0; height: 1px; background: #F3F5F7; }
.sa-item:active { background: #F7F9FA; }
.sa-item .ar { flex-shrink: 0; color: #C9CDD4; font-size: 16px; }
.sa-h { margin: 12px 4px 8px; font-size: 12.5px; font-weight: 500; color: #86909C; }
.sa-empty { padding: 24px 16px; }
.sa-empty b { font-size: 14px; font-weight: 600; color: #4E5969; }
.sa-empty p { margin-top: 6px; font-size: 12.5px; line-height: 1.7; color: #A9AEB8; }
.sa-note { background: #fff; border-radius: 14px; padding: 14px 16px; box-shadow: 0 1px 3px rgba(16, 34, 53, .05); }
.sa-note > b { font-size: 13px; color: #1F2329; }
.sa-roles-list { margin-top: 8px; }
.sa-roles-list > div { display: flex; gap: 12px; padding: 6px 0; font-size: 12px; color: #4E5969; }
.sa-roles-list em { flex: 1; font-style: normal; font-size: 11.5px; color: #A9AEB8; text-align: right; }
.sa-field-col > span { margin-bottom: 8px; }
.sa-roles { display: flex; gap: 8px; }
.sa-roles button {
  flex: 1; height: 36px; border: 1px solid #E5E6EB; border-radius: 10px; background: #fff;
  font-size: 13px; color: #4E5969;
}
.sa-roles button.on { border-color: rgba(0, 169, 167, .55); background: #EAF8F7; color: #00A9A7; font-weight: 600; }
.sa-hint { margin-top: 8px; font-size: 11.5px; color: #A9AEB8; }
.sa-line {
  width: 100%; height: 48px; margin-top: 10px; border: none; border-radius: 12px;
  background: #F7F9FA; font-size: 14px; color: #1F2329;
}
.sa-line.danger { color: #F53F3F; background: #FFF5F4; }
.sa-safe { height: calc(26px + env(safe-area-inset-bottom)); }

/* ---------- 数据统计 ---------- */
.dt-main { padding: 12px 12px 0; }
.dt-kpi {
  display: grid; grid-template-columns: 1fr 1fr; background: #fff; border-radius: 14px;
  margin-bottom: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(16, 34, 53, .05);
}
.dt-kpi > div { padding: 15px 12px; text-align: center; position: relative; }
.dt-kpi > div:nth-child(odd)::after { content: ""; position: absolute; right: 0; top: 16px; bottom: 16px; width: 1px; background: #F3F5F7; }
.dt-kpi > div:nth-child(-n+2)::before { content: ""; position: absolute; left: 16px; right: 16px; bottom: 0; height: 1px; background: #F3F5F7; }
.dt-kpi b { display: block; font-size: 20px; font-weight: 700; color: #1F2329; line-height: 1.2; }
.dt-kpi span { display: block; margin-top: 4px; font-size: 11.5px; color: #86909C; }
.dt-card { background: #fff; border-radius: 14px; padding: 14px; margin-bottom: 10px; box-shadow: 0 1px 3px rgba(16, 34, 53, .05); }
.dt-card-h { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.dt-card-h b { font-size: 14px; font-weight: 700; color: #1F2329; }
.dt-card-h span { font-size: 11.5px; color: #A9AEB8; }
.dt-legend { display: flex; gap: 14px; font-size: 11px; color: #86909C; }
.dt-legend i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px; }
.dt-legend i.v { background: linear-gradient(180deg, #4FE8D6, #00BEBD); }
.dt-legend i.a { background: linear-gradient(180deg, #FFB86B, #FF8A1E); }
.dt-chart { margin-top: 12px; }
.dt-bars { display: flex; align-items: flex-end; gap: 6px; height: 132px; margin-top: 12px; }
.dt-bar-col { flex: 1; height: 100%; display: flex; flex-direction: column; align-items: center; }
.dt-bar-pair { flex: 1; width: 100%; display: flex; align-items: flex-end; gap: 3px; }
.dt-bar { flex: 1; min-height: 3px; border-radius: 3px 3px 0 0; }
.dt-bar.v { background: linear-gradient(180deg, #4FE8D6, #00BEBD); }
.dt-bar.a { background: linear-gradient(180deg, #FFB86B, #FF8A1E); }
.dt-bar-lb { margin-top: 6px; font-size: 10px; color: #A9AEB8; }
.dt-fun-row { display: flex; align-items: center; gap: 8px; margin-top: 13px; }
.dt-fun-n { flex-shrink: 0; width: 62px; font-size: 12px; color: #4E5969; }
.dt-fun-track { flex: 1; height: 10px; border-radius: 5px; background: #F2F4F6; overflow: hidden; }
.dt-fun-fill { display: block; height: 100%; border-radius: 5px; }
.dt-fun-fill.v { background: #2BD9C8; }
.dt-fun-fill.a { background: #FF9A2E; }
.dt-fun-fill.i { background: #F5C144; }
.dt-fun-fill.o { background: #00B42A; }
.dt-fun-c { flex-shrink: 0; width: 56px; text-align: right; }
.dt-fun-c b { font-size: 13px; font-weight: 600; color: #1F2329; }
.dt-fun-c em { display: block; font-style: normal; font-size: 10.5px; color: #A9AEB8; }
.dt-flow-tip { margin-top: 13px; padding: 9px 11px; border-radius: 8px; background: #F7F9FA; font-size: 11.5px; line-height: 1.7; color: #86909C; }
.dt-flow-tip b { color: #1F2329; }
.dt-stack { display: flex; height: 10px; margin-top: 14px; border-radius: 5px; overflow: hidden; background: #F2F4F6; }
.dt-stack i { display: block; height: 100%; }
.dt-legend-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 14px; margin-top: 13px; }
.dt-legend-grid > div { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #6B7280; }
.dt-legend-grid i { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0; }
.dt-legend-grid b { margin-left: auto; font-size: 13px; color: #1F2329; }
.dt-job { display: flex; align-items: center; gap: 10px; padding: 12px 0; position: relative; }
.dt-job + .dt-job::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: #F3F5F7; }
.dt-job-i {
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px; background: #F2F4F6; color: #86909C;
  font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.dt-job-i.top { background: #EAF8F7; color: #00A9A7; }
.dt-job-tx { flex: 1; min-width: 0; }
.dt-job-t { display: flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 600; color: #1F2329; }
.dt-urg { flex-shrink: 0; font-size: 10px; font-weight: 400; color: #F53F3F; background: #FFECE8; border-radius: 3px; padding: 0 4px; }
.dt-off { flex-shrink: 0; font-size: 10px; font-weight: 400; color: #86909C; background: #F2F4F6; border-radius: 3px; padding: 0 4px; }
.dt-job-s { margin-top: 4px; font-size: 11.5px; color: #A9AEB8; }
.dt-job-c { flex-shrink: 0; text-align: right; }
.dt-job-c b { font-size: 13.5px; font-weight: 700; color: #00A9A7; }
.dt-job-c span { display: block; font-size: 10px; color: #A9AEB8; }
.dt-empty { padding: 22px 0; text-align: center; font-size: 12.5px; color: #A9AEB8; }
.dt-note { margin: 12px 8px 0; text-align: center; font-size: 11px; line-height: 1.6; color: #A9AEB8; }
.dt-safe { height: calc(24px + env(safe-area-inset-bottom)); }

/* ---------- 运营后台：协议与内容编辑 ---------- */
.doc-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.doc-tabs button {
  height: 34px; padding: 0 18px; border: 1px solid #E5E6EB; border-radius: 17px;
  background: #fff; font-size: 13px; color: #4E5969;
}
.doc-tabs button.on { border-color: rgba(0, 169, 167, .45); background: #EAF8F7; color: #00A9A7; font-weight: 600; }
.doc-lb { display: block; margin: 14px 0 6px; font-size: 12.5px; color: #4E5969; }
.doc-lb span { font-size: 11px; color: #A9AEB8; }
.doc-in {
  width: 100%; height: 42px; padding: 0 12px; border: 1px solid #E5E6EB; border-radius: 8px;
  font-size: 13px; color: #1F2329; font-family: inherit; background: #fff;
}
.doc-in:focus { outline: none; border-color: rgba(0, 190, 188, .6); }
.doc-ta {
  width: 100%; min-height: 380px; padding: 12px; border: 1px solid #E5E6EB; border-radius: 10px;
  font-size: 13px; line-height: 1.85; color: #1F2329; font-family: inherit; resize: vertical;
  background: #FCFDFD;
}
.doc-ta:focus { outline: none; border-color: rgba(0, 190, 188, .6); background: #fff; }
.doc-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 12px; flex-wrap: wrap; }
.doc-foot span { font-size: 11.5px; color: #A9AEB8; }
.doc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.doc-grid label { display: block; font-size: 12.5px; color: #4E5969; }
.doc-grid .doc-in { margin-top: 6px; }
@media (max-width: 900px) { .doc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .doc-grid { grid-template-columns: 1fr; } }

/* ===== 身份切换引导弹窗（缺简历 / 缺企业资料） ===== */
.rm-mask {
  position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center;
  padding: 20px; background: rgba(17, 24, 39, .45); animation: rmFade .16s ease;
}
.rm-card {
  width: 100%; max-width: 390px; max-height: calc(100vh - 40px); overflow-y: auto;
  background: #fff; border-radius: 20px; padding: 24px 22px 18px;
  box-shadow: 0 24px 64px rgba(17, 24, 39, .22); animation: rmPop .2s cubic-bezier(.2, .9, .3, 1.2);
}
.rm-ico {
  width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
}
.rm-ico.resume { background: #EAF8F8; color: #0AA9A9; }
.rm-ico.company { background: #EEF3FF; color: #3B6FE0; }
.rm-card h3 { margin: 0 0 8px; font-size: 17px; color: #1F2329; font-weight: 600; }
.rm-card p { margin: 0 0 16px; font-size: 13px; line-height: 1.7; color: #5A6472; }
.rm-field { display: block; margin-bottom: 11px; font-size: 12.5px; color: #4E5969; }
.rm-field em { font-style: normal; color: #F5455C; margin-left: 2px; }
.rm-field input, .rm-field select {
  display: block; width: 100%; height: 42px; margin-top: 6px; padding: 0 12px;
  border: 1px solid #E5E6EB; border-radius: 10px; background: #fff;
  font-size: 13.5px; color: #1F2329; font-family: inherit;
}
.rm-field input:focus, .rm-field select:focus { outline: none; border-color: rgba(0, 190, 188, .65); }
.rm-btns { display: flex; gap: 10px; margin-top: 18px; }
.rm-btns > * { flex: 1; height: 44px; border-radius: 12px; font-size: 14px; font-weight: 600; }
.rm-cancel {
  border: 1px solid #E5E6EB; background: #fff; color: #5A6472; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.rm-ok {
  border: none; background: linear-gradient(135deg, #10C6C0, #06A8A4); color: #fff;
  cursor: pointer; display: flex; align-items: center; justify-content: center; text-decoration: none;
  box-shadow: 0 8px 20px rgba(10, 190, 189, .28);
}
.rm-ok:hover { filter: brightness(1.03); }
.rm-ok:disabled { opacity: .7; cursor: default; }
@keyframes rmFade { from { opacity: 0; } }
@keyframes rmPop { from { opacity: 0; transform: translateY(12px) scale(.97); } }

/* ===== 简历引导（分步完善 onboard.html） ===== */
.ob-body { background: #fff; }
@media (min-width: 769px) { .ob-body { background: var(--bg); } }
.ob-page {
  max-width: 560px; margin: 0 auto; min-height: 100vh; background: #fff;
  display: flex; flex-direction: column; position: relative;
}
@media (min-width: 769px) {
  .ob-page { box-shadow: 0 0 0 1px var(--line); }
}
.ob-head { position: sticky; top: 0; z-index: 20; background: #fff; padding: 6px 18px 0; }
.ob-head-top { display: flex; align-items: center; height: 46px; }
.ob-back {
  width: 34px; height: 34px; border-radius: 50%; background: #F5F6F7; color: #1F2329;
  display: flex; align-items: center; justify-content: center; font-size: 19px; line-height: 1;
}
.ob-back:active { background: #EBEDF0; }
.ob-step-txt { margin-left: 10px; font-size: 13px; font-weight: 700; color: var(--text-3); letter-spacing: .4px; }
.ob-step-txt b { color: var(--primary); font-size: 15px; }
.ob-skip { margin-left: auto; background: none; color: var(--text-3); font-size: 13.5px; padding: 8px 2px; }
.ob-skip:active { color: var(--text-2); }
.ob-bars { display: flex; gap: 6px; padding: 2px 0 14px; }
.ob-bars i { flex: 1; height: 4px; border-radius: 2px; background: #EDEEF0; transition: background .25s; }
.ob-bars i.on { background: var(--primary); }

.ob-main { flex: 1; padding: 8px 20px 118px; }
.ob-title { font-size: 25px; font-weight: 800; color: #1F2329; letter-spacing: .2px; line-height: 1.35; }
.ob-title em { font-style: normal; color: var(--primary); }
.ob-sub { margin-top: 9px; font-size: 13px; color: var(--text-3); line-height: 1.65; }

.ob-field { margin-top: 24px; }
.ob-field:first-of-type { margin-top: 22px; }
.ob-label { display: flex; align-items: baseline; gap: 6px; font-size: 14px; font-weight: 700; color: #1F2329; margin-bottom: 11px; }
.ob-label .req { color: var(--danger); font-weight: 700; }
.ob-label small { font-size: 12px; font-weight: 400; color: #A9AEB8; }
.ob-in, .ob-sel {
  width: 100%; height: 50px; border-radius: 12px; background: #F7F8FA;
  padding: 0 14px; font-size: 15px; color: #1F2329; border: 1px solid transparent;
  transition: border-color .15s, background .15s;
}
.ob-in::placeholder { color: #B4B9C2; }
.ob-in:focus { background: #fff; border-color: var(--primary); }
.ob-sel { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, #A9AEB8 50%), linear-gradient(135deg, #A9AEB8 50%, transparent 50%); background-position: calc(100% - 19px) 22px, calc(100% - 14px) 22px; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.ob-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ob-chip {
  min-height: 40px; padding: 0 16px; border-radius: 20px; background: #F7F8FA;
  color: #4E5969; font-size: 14px; display: inline-flex; align-items: center;
  transition: background .15s, color .15s, box-shadow .15s;
}
.ob-chip:active { opacity: .85; }
.ob-chip.on { background: var(--primary-light); color: var(--primary-dark); font-weight: 700; box-shadow: inset 0 0 0 1px var(--primary); }
.ob-pick {
  display: flex; align-items: center; gap: 10px; min-height: 50px; border-radius: 12px;
  background: #F7F8FA; padding: 8px 14px;
}
.ob-pick .val { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ob-pick .val .ph { color: #B4B9C2; font-size: 15px; }
.ob-pick .tg {
  display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
  background: #E6F9F9; color: var(--primary-dark); font-size: 13px; font-weight: 600;
  padding: 5px 9px; border-radius: 8px;
}
.ob-pick .tg i { font-style: normal; color: #9AA3AE; font-size: 14px; padding: 0 1px; }
.ob-pick .ar { color: #C9CDD4; font-size: 18px; }
.ob-row2 { display: flex; gap: 10px; }
.ob-row2 > * { flex: 1; min-width: 0; }
.ob-tip { margin-top: 10px; font-size: 12px; color: #A9AEB8; line-height: 1.6; display: flex; gap: 5px; }
.ob-tip svg { flex: 0 0 13px; margin-top: 1px; }
.ob-line { margin: 26px 0 0; height: 1px; background: #F2F3F5; }
.ob-textarea {
  width: 100%; min-height: 96px; border-radius: 12px; background: #F7F8FA;
  padding: 13px 14px; font-size: 15px; line-height: 1.6; color: #1F2329; resize: none;
  border: 1px solid transparent;
}
.ob-textarea:focus { background: #fff; border-color: var(--primary); }
.ob-skip-mini { margin-top: 14px; text-align: center; }
.ob-skip-mini button { background: none; color: var(--text-3); font-size: 13.5px; text-decoration: underline; text-underline-offset: 3px; }

.ob-foot {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  padding: 12px 20px calc(14px + env(safe-area-inset-bottom));
  background: linear-gradient(180deg, rgba(255,255,255,.55) 0%, #fff 38%);
}
@media (min-width: 769px) { .ob-foot { max-width: 560px; margin: 0 auto; } }
.ob-btn {
  width: 100%; height: 50px; border-radius: 14px; background: var(--primary); color: #fff;
  font-size: 16px; font-weight: 700; letter-spacing: .5px; transition: opacity .15s;
}
.ob-btn:active { opacity: .88; }
.ob-btn[disabled] { opacity: .45; }
.ob-btn.ghost { background: #F5F6F7; color: #4E5969; font-weight: 600; }
.ob-foot-row { display: flex; gap: 12px; }
.ob-foot-row .ob-btn { flex: 1; }

/* 完成页 */
.ob-done { padding: 34px 4px 0; }
.ob-done-ic {
  width: 66px; height: 66px; border-radius: 50%; margin: 0 auto 18px;
  background: var(--primary-light); color: var(--primary); font-size: 30px;
  display: flex; align-items: center; justify-content: center;
}
.ob-done h2 { text-align: center; font-size: 23px; font-weight: 800; }
.ob-done .d-sub { margin-top: 10px; text-align: center; font-size: 13.5px; color: var(--text-3); line-height: 1.7; }
.ob-pct-card { margin-top: 24px; border-radius: 16px; background: #F7F8FA; padding: 16px; }
.ob-pct-row { display: flex; align-items: baseline; font-size: 13px; color: var(--text-2); }
.ob-pct-row b { margin-left: auto; font-size: 21px; color: var(--primary); font-weight: 800; }
.ob-pct-row b i { font-style: normal; font-size: 12px; margin-left: 1px; }
.ob-pct-bar { margin-top: 10px; height: 7px; border-radius: 4px; background: #E8EAED; overflow: hidden; }
.ob-pct-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #00BEBC, #4BD5D0); transition: width .5s ease; }
.ob-next-tip { margin-top: 12px; font-size: 12.5px; color: var(--text-3); line-height: 1.7; }
.ob-done-btns { margin-top: 26px; display: flex; flex-direction: column; gap: 12px; }

/* 个人中心 / 简历页：分步完善入口 */
.mc-fix {
  flex: 0 0 auto; margin-right: 8px; padding: 5px 10px; border-radius: 12px;
  background: var(--primary-light); color: var(--primary-dark);
  font-size: 11.5px; font-weight: 700; white-space: nowrap;
}
.rv-obcta {
  display: flex; align-items: center; gap: 10px; padding: 13px 16px; cursor: pointer;
  background: linear-gradient(96deg, #E6F9F9 0%, #F3FCFC 100%);
  box-shadow: inset 0 0 0 1px #CFF1F1;
}
.rv-obcta .tx { flex: 1; min-width: 0; }
.rv-obcta .tx b { display: block; font-size: 14px; font-weight: 700; color: #1F2329; }
.rv-obcta .tx span { display: block; margin-top: 3px; font-size: 11.5px; color: #6B7280; }
.rv-obcta .go {
  flex: 0 0 auto; padding: 7px 13px; border-radius: 14px; background: var(--primary);
  color: #fff; font-size: 12.5px; font-weight: 700;
}

.mc-quick {
  display: flex; align-items: center; gap: 8px; margin: 0 14px 13px;
  padding: 10px 12px; border-radius: 10px; background: var(--primary-light);
}
.mc-quick span { flex: 1; min-width: 0; font-size: 11.5px; color: #3C7A78; line-height: 1.5; }
.mc-quick b { flex: 0 0 auto; font-size: 12.5px; font-weight: 700; color: var(--primary-dark); }

/* ===== 表单填写稳定性（固定页面，避免「乱动」）===== */
/* 1) iOS / 微信内 WKWebView：聚焦字号 < 16px 的输入框会自动放大整页，看着像页面乱跳。
      统一把可输入控件提到 16px，从源头消除聚焦缩放。 */
@supports (-webkit-touch-callout: none) {
  input, select, textarea { font-size: 16px !important; }
  input::placeholder, textarea::placeholder { font-size: 16px; }
}
/* 2) 键盘弹出时，固定底部操作栏会被顶到内容中间 → 输入期间隐藏，失焦即恢复。
      只影响移动端；底栏是 fixed 的那些页面。 */
@media (max-width: 768px) {
  html.kb-open .ob-foot,
  html.kb-open .detail-foot,
  html.kb-open .m-foot,
  html.kb-open .tabbar,
  html.kb-open .cw-tabbar,
  html.kb-open .ch-bottom,
  html.kb-open .mb-bar,
  html.kb-open .cp-foot { display: none !important; }
  html.kb-open .ob-main { padding-bottom: 46px; }
}
/* 3) 用动态视口高度，避免移动端地址栏收放导致整页高度跳变 */
.ob-page { min-height: 100vh; min-height: 100dvh; }
/* 4) 胶囊选项选中态不再改字重（字重变化会改宽度、导致换行和上下跳动），改用底色 + 描边强调 */
.ob-chip { font-weight: 500; }
.ob-chip.on { font-weight: 500; }
/* 5) 选中时的按下反馈不触发重排 */
.ob-chip, .ob-pick, .ob-btn { -webkit-tap-highlight-color: transparent; }

/* ===== 视口锁定：页面尺寸固定，禁止人为缩放 ===== */
/* 双指捏合 / 双击放大 / 聚焦自动放大，全部从根上禁掉。
   用 clip 而不是 hidden——clip 不建立滚动容器，吸顶导航（position: sticky）不受影响。 */
html, body {
  width: 100%; max-width: 100%;
  overflow-x: clip;
  touch-action: pan-x pan-y;          /* 保留正常滚动，禁用捏合与双击缩放 */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
/* 表单控件单独放开点按（消除 300ms 延迟），同时不允许缩放 */
input, textarea, select, button, label { touch-action: manipulation; }
/* 图片、视频等替换元素永不撑破容器 */
img, video, canvas, iframe { max-width: 100%; }
