/* ============================================================
   35优聘 · 全局样式（现代商务风 v2.0）
   设计理念：稳重蓝色调 + 适度留白 + 现代圆角与微阴影
   保留原有 CSS 变量名与选择器，仅更新视觉表现
   ============================================================ */

:root {
  /* 主色：明亮专业蓝（替代原深蓝 #0F2B4C） */
  --primary: #2563EB;
  /* 强调色：与主色统一的深蓝（替代原琥珀金 #D69E2E） */
  --accent: #2563EB;
  --accent-dark: #1D4ED8;
  --accent-light: #EFF6FF;
  /* 背景：更柔和的蓝灰（替代原冷灰 #F4F6F8） */
  --bg: #F8FAFC;
  --card: #FFFFFF;
  /* 文字色：与原值保持一致，符合阅读习惯 */
  --text: #0F172A;
  --text-secondary: #475569;
  --text-muted: #94A3B8;
  --border: #E2E8F0;
  --danger: #DC2626;
  --success: #16A34A;
  /* 圆角：稍微收紧（更现代商务） */
  --radius: 10px;
  --radius-sm: 8px;
  --radius-pill: 20px;
  /* 阴影：带蓝色调的柔和投影（替代原纯黑投影） */
  --shadow: 0 1px 3px rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.02);
  --shadow-hover: 0 4px 16px rgba(37, 99, 235, 0.08);
  --shadow-card: 0 1px 3px rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.02);
  --header-height: 64px;
  --header-height-mobile: 56px;
  --max-width: 1200px;
}

/* 基础重置 */
* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 16px; font-weight: 400; line-height: 1.6;
  color: var(--text); background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body { min-height: 100vh; }
a { color: var(--accent); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--accent-dark); }
h1, h2, h3, h4, h5, h6, p { margin: 0; }
h1 { font-size: 28px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
h2 { font-size: 22px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
h3 { font-size: 18px; font-weight: 600; line-height: 1.4; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }

/* ============================================================ 工具类 */
.flex { display: flex; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.gap-4 { gap: 4px; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.gap-24 { gap: 24px; }
.mt-8 { margin-top: 8px; }
.mt-12 { margin-top: 12px; }
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }
.mb-8 { margin-bottom: 8px; }
.mb-12 { margin-bottom: 12px; }
.mb-16 { margin-bottom: 16px; }
.mb-24 { margin-bottom: 24px; }
.text-center { text-align: center; }
.text-secondary { color: var(--text-secondary); }
.text-muted { color: var(--text-muted); }
.text-danger { color: var(--danger); }
.text-accent { color: var(--accent); }
.text-primary { color: var(--primary); }
.text-sm { font-size: 14px; }
.text-xs { font-size: 12px; }
.text-lg { font-size: 18px; }
.text-xl { font-size: 20px; }
.text-2xl { font-size: 24px; }
.text-3xl { font-size: 30px; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.w-full { width: 100%; }
.flex-1 { flex: 1; }
.flex-wrap { flex-wrap: wrap; }
.hidden { display: none; }
.cursor-pointer { cursor: pointer; }
.relative { position: relative; }

/* ============================================================ 按钮 */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 22px; border: none; border-radius: var(--radius-sm);
  font-size: 15px; font-weight: 500; cursor: pointer;
  transition: all 0.2s ease; text-decoration: none; white-space: nowrap;
}
.btn-primary {
  background: var(--primary); color: #fff;
}
.btn-primary:hover {
  background: var(--accent-dark); color: #fff;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
}
.btn-accent {
  background: var(--accent); color: #fff;
}
.btn-accent:hover {
  background: var(--accent-dark); color: #fff;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
}
.btn-outline {
  background: transparent; color: var(--text-secondary);
  border: 1px solid var(--border);
}
.btn-outline:hover {
  border-color: var(--primary); color: var(--primary);
  background: var(--accent-light);
}
.btn-ghost {
  background: transparent; color: var(--text-secondary); border: none;
}
.btn-ghost:hover { background: var(--bg); color: var(--text); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { opacity: 0.9; }
.btn-sm { padding: 6px 14px; font-size: 13px; }
.btn-lg { padding: 14px 28px; font-size: 16px; }
.btn-block { display: flex; width: 100%; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ============================================================ 页眉 */
.header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--header-height);
  background: #fff; color: var(--text);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.02);
}
.header.scrolled {
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}
.header-inner {
  max-width: var(--max-width); margin: 0 auto;
  height: 100%; padding: 0 20px;
  display: flex; align-items: center; justify-content: space-between;
}
.logo {
  display: flex; align-items: center; gap: 8px;
  font-size: 20px; font-weight: 700; color: var(--text);
  cursor: pointer;
}
.logo-icon {
  width: 32px; height: 32px; border-radius: var(--radius-sm);
  background: linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2);
}
.logo-text { color: var(--text); }
.nav-links { display: flex; align-items: center; gap: 4px; }
.nav-link {
  color: var(--text-secondary); font-size: 15px; font-weight: 500;
  padding: 8px 14px; border-radius: var(--radius-sm);
  display: flex; align-items: center; gap: 6px;
  transition: all 0.2s;
}
.nav-link:hover {
  color: var(--primary); background: var(--accent-light);
}
.nav-link.router-link-active {
  color: var(--primary); background: var(--accent-light);
  font-weight: 600;
}
.header-actions { display: flex; align-items: center; gap: 8px; }
.user-menu { position: relative; }
.user-trigger {
  display: flex; align-items: center; gap: 8px; cursor: pointer;
  color: var(--text); font-size: 14px; font-weight: 500;
  padding: 6px 10px; border-radius: var(--radius-sm);
  transition: background 0.2s;
}
.user-trigger:hover { background: var(--bg); }
.dropdown {
  position: absolute; top: calc(100% + 8px); right: 0;
  min-width: 180px; background: var(--card);
  border-radius: var(--radius-sm);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  border: 1px solid var(--border);
  padding: 6px; display: none; z-index: 100;
}
.dropdown.open { display: block; }
.dropdown-item {
  padding: 10px 14px; font-size: 14px; color: var(--text);
  display: flex; align-items: center; gap: 8px;
  cursor: pointer; border-radius: 6px;
  transition: background 0.15s;
}
.dropdown-item:hover { background: var(--bg); }
.mobile-menu-btn {
  display: none; background: none; border: none; color: var(--text);
  padding: 8px;
}
.mobile-menu {
  position: fixed; top: var(--header-height); left: 0; right: 0;
  background: var(--card); border-bottom: 1px solid var(--border);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
  padding: 8px 0; display: none; z-index: 999;
}
.mobile-menu.open { display: block; }
.mobile-menu-item {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 20px; color: var(--text);
  font-size: 15px; border-bottom: 1px solid var(--border);
}
.mobile-menu-item:last-child { border-bottom: none; }
.mobile-menu-item:hover { background: var(--bg); }

/* ============================================================ 主内容 */
.main {
  max-width: var(--max-width); margin: 0 auto;
  padding: 24px 20px; min-height: 100vh;
}
.main.main-full {
  max-width: 100%;
  padding-left: 0; padding-right: 0;
}
.page-title {
  margin-bottom: 24px; color: var(--text);
}
.page-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  transition: box-shadow 0.2s;
}

/* ============================================================ 搜索栏 */
.search-bar { margin-bottom: 24px; }
.search-row {
  display: flex; gap: 12px; align-items: center; margin-bottom: 12px;
}
.search-box {
  flex: 1; display: flex; align-items: center;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: all 0.2s;
}
/* 拆为两行的搜索栏（用于企业人才搜索页） */
.search-box-2rows {
  display: flex; flex-direction: column;
  align-items: stretch;
  padding: 12px;
  gap: 10px;
  overflow: visible;
}
.search-box-2rows .search-box-row {
  display: flex; align-items: center;
  flex-wrap: wrap; gap: 8px;
}
.search-box-2rows .search-box-grow {
  flex: 1; min-width: 220px;
}
.search-box-2rows .el-checkbox {
  margin-right: 0;
}
.work-nature-checkbox-group {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.work-nature-checkbox-group .el-checkbox {
  margin-right: 0;
}
.search-box:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.search-input {
  flex: 1; border: none; padding: 14px 18px; font-size: 15px; outline: none;
  background: transparent; color: var(--text);
  min-width: 0;
}
.search-input::placeholder { color: var(--text-muted); }
.search-btn {
  padding: 10px 28px; color: #fff;
  border: none; font-size: 14px; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  flex-shrink: 0;
  border-radius: 32px;
  background: linear-gradient(135deg, var(--primary) 0%, #6366f1 100%);
  box-shadow: 0 4px 20px rgba(37, 99, 235, 0.35);
  transition: transform 0.25s, box-shadow 0.25s;
}
.search-btn:hover {
  background: linear-gradient(135deg, var(--accent-dark) 0%, #4f46e5 100%);
  box-shadow: 0 8px 28px rgba(37, 99, 235, 0.45);
  transform: translateY(-2px);
}
.search-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 12px rgba(37, 99, 235, 0.3);
}
.search-include-contacted {
  margin-left: 8px !important;
  padding: 0 12px;
  flex-shrink: 0;
  font-size: 14px;
  color: var(--text-secondary);
}
/* 职位/模板选择列表（纵向展开，单选风格） */
.boss-job-list, .boss-greeting-list {
  max-height: 220px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 8px;
  padding: 4px 0;
}
.boss-job-item, .boss-greeting-item {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; cursor: pointer;
  border: 2px solid #e2e8f0; border-radius: 10px;
  font-size: 14px; color: #475569; line-height: 1.5;
  background: #f8fafc;
  transition: all 0.2s ease;
  position: relative;
}
.boss-job-item:hover, .boss-greeting-item:hover {
  border-color: #93c5fd; background: #eff6ff;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.1);
}
/* 单选指示圆圈 */
.boss-job-item::before, .boss-greeting-item::before {
  content: '';
  width: 18px; height: 18px;
  border: 2px solid #cbd5e1; border-radius: 50%;
  flex-shrink: 0;
  transition: all 0.2s ease;
  background: #fff;
}
/* 选中态 */
.boss-job-item.active, .boss-greeting-item.active {
  border-color: var(--primary);
  background: rgba(37, 99, 235, 0.06);
  color: var(--primary); font-weight: 600;
  box-shadow: 0 2px 12px rgba(37, 99, 235, 0.15);
}
.boss-job-item.active::before, .boss-greeting-item.active::before {
  border-color: var(--primary);
  background: var(--primary);
  box-shadow: inset 0 0 0 3px #fff;
}
.boss-job-item i[data-lucide], .boss-greeting-item i[data-lucide] {
  display: none;
}
/* 弹窗内提示文字 */
.boss-dialog-hint {
  font-size: 13px; color: #94a3b8; margin-bottom: 14px;
  padding: 8px 12px; background: #f1f5f9; border-radius: 8px;
}
/* 标签后面的数量标记 */
.boss-label-count {
  font-size: 12px; font-weight: 400; color: #94a3b8;
  background: #f1f5f9; padding: 1px 8px; border-radius: 10px; margin-left: 4px;
}
.reset-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 10px 18px; background: var(--bg); color: var(--text-secondary);
  border: 1px solid var(--border);
  font-size: 13px; font-weight: 500; cursor: pointer;
  border-radius: var(--radius-sm);
  transition: all 0.2s;
  flex-shrink: 0;
}
.reset-btn:hover { background: var(--accent-light); color: var(--primary); border-color: var(--primary); }
/* 当前职位选择器 */
.current-job-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; margin-bottom: 12px;
  background: linear-gradient(135deg, #eff6ff, #f0f9ff);
  border: 2px solid #bfdbfe; border-radius: 10px;
  cursor: pointer; transition: all 0.2s ease;
}
.current-job-bar:hover { border-color: var(--primary); box-shadow: 0 2px 8px rgba(37, 99, 235, 0.12); }
.current-job-name { font-size: 14px; font-weight: 600; color: var(--primary); }
.current-job-placeholder { font-size: 14px; color: #94a3b8; }
/* 首页交流群二维码 - 嵌入 hero 右下角 */
.hero-group-qr {
  position: absolute;
  right: 40px;
  bottom: 100px;
  z-index: 2;
  display: flex;
  gap: 0;
  align-items: flex-end;
}
.hero-group-qr-item {
  text-align: center;
  padding: 0 20px;
}
.hero-group-qr-item + .hero-group-qr-item {
  border-left: 1px solid rgba(255,255,255,0.15);
}
.hero-group-qr-label {
  font-size: 17px;
  font-weight: 700;
  color: rgba(255,255,255,0.85);
  letter-spacing: 2px;
  margin-bottom: 11px;
  white-space: nowrap;
}
.hero-group-qr-img {
  width: 150px; height: 150px;
  object-fit: contain;
  border-radius: 8px;
  background: rgba(255,255,255,0.95);
  padding: 7px;
  display: block;
  box-shadow: 0 6px 24px rgba(0,0,0,0.2);
}
/* 待确认行高亮 */
.el-table .row-pending { background: #fffbeb !important; }
.el-table .row-pending:hover > td { background: #fef3c7 !important; }
/* 侧边栏红点徽章 */
.badge-dot {
  position: absolute; top: -4px; right: -4px;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: #ef4444; color: #fff;
  border-radius: 9px; font-size: 11px; font-weight: 600;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 2px #fff;
  animation: badge-pulse 2s ease-in-out infinite;
}
@keyframes badge-pulse {
  0%, 100% { box-shadow: 0 0 0 2px #fff; }
  50% { box-shadow: 0 0 0 2px #fff, 0 0 8px rgba(239, 68, 68, 0.6); }
}
/* 企业邀请卡片 */
.invite-card {
  background: #fff; border: 2px solid #e2e8f0; border-radius: 12px;
  padding: 20px 24px; transition: all 0.2s ease;
}
.invite-card:hover { border-color: #93c5fd; box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1); }
.invite-card-expired { opacity: 0.6; background: #f8fafc; }
.filter-row {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
}
.filter-select {
  padding: 10px 14px; border: 1px solid var(--border);
  border-radius: var(--radius-sm); background: var(--card);
  font-size: 14px; color: var(--text-secondary); outline: none;
  transition: all 0.2s;
  width: 120px;
  box-sizing: border-box;
}
.filter-select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* ============================================================ 标签 */
.tag {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius: 6px;
  font-size: 12px; font-weight: 500;
  background: var(--bg); color: var(--text-secondary);
}
.tag-primary { background: var(--accent-light); color: var(--primary); }
.tag-accent { background: var(--accent-light); color: var(--primary); }
.tag-urgent { background: #FEE2E2; color: #DC2626; }
.tag-success { background: #DCFCE7; color: #16A34A; }
.tag-warning { background: #FEF3C7; color: #D97706; }
.tag-danger { background: #FEE2E2; color: #DC2626; }
.tag-contacted { background: #FEF3C7; color: #B45309; }
.tag-unsuitable { background: #E5E7EB; color: #4B5563; }
.tag-gray { background: #F3F4F6; color: #6B7280; }
/* 人才库 tab 计数 */
.talent-tab-count {
  display: inline-block;
  min-width: 18px;
  height: 18px;
  line-height: 18px;
  padding: 0 5px;
  margin-left: 4px;
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  background: #E5E7EB;
  color: #6B7280;
  border-radius: 9px;
}
.talent-tab.active .talent-tab-count {
  background: var(--primary);
  color: #fff;
}
/* 人才卡片求职意向 */
.seeker-intention { margin-top: 8px; padding: 10px 12px; background: #F8FAFC; border-radius: 6px; }
.seeker-intention-line { font-size: 14px; color: var(--text-secondary); line-height: 1.8; }
.talent-unsuitable-reason { margin-top: 8px; padding: 6px 10px; background: #FEF2F2; border-radius: 4px; font-size: 13px; }

/* ============================================================ 卡片 */
.card-list { display: flex; flex-direction: column; gap: 12px; }
.job-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  cursor: pointer; transition: all 0.2s;
}
.job-card:hover {
  border-color: #93C5FD;
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.08);
  transform: translateY(-1px);
}
.job-card-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 12px;
}
.job-card-title {
  font-size: 17px; font-weight: 600; color: var(--text);
  margin-bottom: 4px;
}
.job-card-company {
  font-size: 14px; color: var(--text-secondary);
}
.job-card-salary {
  font-size: 18px; font-weight: 700; color: var(--primary);
  white-space: nowrap;
}
.job-card-meta {
  display: flex; flex-wrap: wrap; gap: 6px 16px;
  font-size: 13px; color: var(--text-secondary);
  margin-top: 10px;
}
.job-card-meta-item {
  display: flex; align-items: center; gap: 4px;
}
.job-card-actions {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 12px; padding-top: 12px;
  border-top: 1px dashed var(--border);
}
/* 发布职位表单 - 地图容器 */
.job-map-container {
  width: 100%;
  height: 320px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg);
  position: relative;
  overflow: hidden;
}
.job-map-container .amap-container,
.job-map-container .BMap_mask {
  width: 100% !important;
  height: 100% !important;
}
.job-map-placeholder {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 8px;
  color: var(--text-muted);
  font-size: 13px;
  pointer-events: none;
}
.job-map-placeholder i { opacity: 0.4; }
.job-card-tags {
  display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px;
}

/* ============================================================ 空状态 */
.empty-state {
  text-align: center; padding: 48px 20px;
  color: var(--text-muted);
}
.empty-state-icon {
  font-size: 48px; margin-bottom: 12px; opacity: 0.4;
}
.empty-state-text { font-size: 14px; }

/* ============================================================ 详情页 */
.detail-page { padding: 0; }
.detail-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px; margin-bottom: 20px; padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.detail-header-main { flex: 1; min-width: 0; }
.detail-header h1 { font-size: 26px; font-weight: 700; margin-bottom: 12px; }
.detail-salary {
  font-size: 22px; font-weight: 700; color: var(--primary);
  flex-shrink: 0;
}
.detail-meta {
  display: flex; flex-wrap: wrap; gap: 6px 20px;
  font-size: 14px; color: var(--text-secondary); margin-bottom: 24px;
}
.detail-meta-item { display: flex; align-items: center; gap: 6px; }
.detail-section { margin-bottom: 24px; }
.detail-section h3 { margin-bottom: 12px; }
.detail-section p {
  color: var(--text-secondary); line-height: 1.7; white-space: pre-line;
}
.detail-actions { margin-top: 32px; display: flex; gap: 12px; }

/* ============================================================ 登录页（保留原有深色对比设计，配色换为蓝色） */
.login-page {
  display: flex; min-height: 100vh;
  background: var(--primary); color: #fff;
}
.login-left {
  flex: 1; display: flex; flex-direction: column; justify-content: center;
  padding: 80px;
  background: linear-gradient(135deg, #1E40AF 0%, #2563EB 100%);
  position: relative;
  overflow: hidden;
}
.login-left::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.08) 0%, transparent 50%);
  pointer-events: none;
}
.login-brand {
  display: flex; align-items: center; gap: 18px; margin-bottom: 48px;
  font-size: 56px; font-weight: 800; position: relative; z-index: 1;
  letter-spacing: -0.02em;
}
.login-brand .logo-icon {
  width: 76px; height: 76px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 32px;
  border-radius: 14px;
}
.login-brand .logo-text {
  color: #fff;
}
.login-slogan {
  font-size: 48px; font-weight: 800; line-height: 1.2; margin-bottom: 20px;
  letter-spacing: -0.02em; position: relative; z-index: 1;
}
.login-slogan-desc {
  font-size: 17px; line-height: 1.7;
  color: rgba(255,255,255,0.85); margin-bottom: 40px; max-width: 480px;
  position: relative; z-index: 1;
}
.login-features {
  display: flex; flex-direction: column; gap: 14px;
  position: relative; z-index: 1;
}
.login-features li {
  display: flex; align-items: center; gap: 12px;
  font-size: 15px; color: rgba(255,255,255,0.95);
  list-style: none;
}
.login-features li i {
  color: #fff;
  width: 32px; height: 32px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.login-right {
  width: 460px; flex-shrink: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 56px 72px; background: var(--card); color: var(--text);
}
.login-tabs {
  display: flex; gap: 8px; margin-bottom: 28px;
  background: var(--bg); padding: 4px; border-radius: var(--radius-sm);
}
.login-tab {
  flex: 1; padding: 12px; border: none;
  background: transparent; border-radius: 6px;
  font-size: 15px; font-weight: 500; color: var(--text-secondary);
  cursor: pointer; transition: all 0.2s;
}
.login-tab.active {
  background: var(--card); color: var(--primary);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
.login-form h2 { margin-bottom: 8px; font-size: 24px; }
.login-form p { color: var(--text-secondary); margin-bottom: 28px; font-size: 14px; }
.login-card { width: 100%; }
.form-footer {
  text-align: center; font-size: 14px;
  color: var(--text-secondary); margin-top: 24px;
}
.form-footer a { color: var(--primary); font-weight: 500; }
.form-footer a:hover { color: var(--accent-dark); text-decoration: underline; }

/* ============================================================ 会话面板 */
.page-messages {
  height: calc(100vh - var(--header-height) - 48px);
  display: flex;
  flex-direction: column;
}
.conversation-layout {
  display: flex; flex: 1; min-height: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.conversation-sidebar {
  width: 320px; flex-shrink: 0;
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
}
.conversation-sidebar h2 {
  padding: 18px 20px; font-size: 16px; font-weight: 600;
  border-bottom: 1px solid var(--border); color: var(--text);
}
.conv-search-box {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-bottom: 1px solid var(--border);
  background: var(--bg);
}
.conv-search-input {
  flex: 1; border: none; outline: none; background: transparent;
  font-size: 13px; color: var(--text); padding: 4px 0;
}
.conv-search-input::placeholder { color: var(--text-muted); }
.conv-search-clear {
  border: none; background: transparent; cursor: pointer;
  padding: 2px; display: flex; align-items: center;
  color: var(--text-muted);
}
.conv-search-clear:hover { color: var(--text); }
.conversation-list { flex: 1; overflow-y: auto; }
.conversation-item {
  padding: 14px 18px; border-bottom: 1px solid var(--border);
  cursor: pointer; position: relative; transition: all 0.2s;
}
.conversation-item:hover { background: var(--bg); }
.conversation-item.active {
  background: var(--accent-light);
  border-left: 3px solid var(--primary);
  padding-left: 15px;
}
.conversation-item.unread { background: var(--accent-light); }
.conv-item-main {
  display: flex; align-items: flex-start; gap: 10px;
}
.conv-avatar { flex-shrink: 0; }
.conv-avatar .avatar-img {
  width: 40px; height: 40px; border-radius: 50%; object-fit: cover;
}
.conv-item-info { flex: 1; min-width: 0; }
.conv-header-row {
  display: flex; align-items: center;
  margin-bottom: 4px;
}
.conv-name {
  font-weight: 600; font-size: 15px; color: var(--text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  flex-shrink: 0; max-width: 90px;
}
.conv-job-inline {
  color: var(--text); font-size: 13px; margin-left: 4px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  flex: 1; min-width: 0;
}
.conv-delete-btn {
  opacity: 0.7; background: none; border: none; color: var(--danger);
  cursor: pointer; padding: 2px 4px; border-radius: 4px;
  transition: opacity 0.2s, background 0.2s; flex-shrink: 0;
  display: inline-flex; align-items: center;
}
.conv-delete-btn:hover { opacity: 1; background: #fef0f0; }
.conv-time { font-size: 12px; color: var(--text-muted); flex-shrink: 0; margin-left: auto; }
.conv-sub-row {
  font-size: 13px; color: var(--text-secondary);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.conv-company { color: var(--text-secondary); }
.conv-position { color: var(--text-muted); margin-left: 2px; }
.conv-job-title { color: var(--primary); font-weight: 500; }

/* ============================================================ 表单 */
.form-group { margin-bottom: 18px; }
.form-label {
  display: block; font-size: 14px; font-weight: 500;
  color: var(--text); margin-bottom: 8px;
}
.form-input, .form-select, .form-textarea {
  width: 100%; padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm); background: var(--card);
  font-size: 15px; color: var(--text); outline: none;
  transition: all 0.2s;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.form-textarea { min-height: 100px; resize: vertical; }
.form-error {
  font-size: 13px; color: var(--danger); margin-top: 6px;
}
.form-hint {
  font-size: 13px; color: var(--text-muted); margin-top: 6px;
}

/* ============================================================ Hero（首页） */
.home-hero {
  text-align: center; padding: 60px 20px 40px;
  background: linear-gradient(180deg, #fff 0%, var(--bg) 100%);
  border-radius: var(--radius); margin-bottom: 32px;
  position: relative; overflow: hidden;
}
.home-hero::before {
  content: ''; position: absolute;
  top: 0; left: 50%; transform: translateX(-50%);
  width: 600px; height: 300px;
  background: radial-gradient(ellipse, rgba(37, 99, 235, 0.06) 0%, transparent 60%);
  pointer-events: none;
}
.hero-title {
  font-size: 44px; font-weight: 700; margin-bottom: 16px;
  color: var(--text); position: relative; letter-spacing: -0.02em;
}
.hero-subtitle {
  font-size: 17px; color: var(--text-secondary);
  max-width: 560px; margin: 0 auto 32px; position: relative;
}
.hero-search {
  display: flex; max-width: 560px; margin: 0 auto 16px;
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); overflow: hidden;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  position: relative;
}
.hero-search-input {
  flex: 1; border: none; padding: 14px 18px;
  font-size: 15px; outline: none; background: transparent;
  color: var(--text);
}
.hero-search-btn {
  padding: 0 32px; background: var(--primary); color: #fff;
  border: none; font-size: 15px; font-weight: 500; cursor: pointer;
}
.hero-search-btn:hover { background: var(--accent-dark); }
.hero-tags {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 8px; font-size: 13px; color: var(--text-muted);
  position: relative;
}
.hero-tags a {
  padding: 4px 12px; background: var(--card);
  border: 1px solid var(--border); border-radius: var(--radius-pill);
  color: var(--text-secondary); font-size: 13px;
  transition: all 0.2s;
}
.hero-tags a:hover {
  border-color: var(--primary); color: var(--primary);
  background: var(--accent-light);
}
.hero-brand {
  display: flex; justify-content: center; margin-bottom: 32px;
  position: relative;
}
.hero-brand .logo-icon {
  width: 56px; height: 56px; font-size: 22px;
  border-radius: var(--radius);
}
.scroll-hint {
  position: absolute; bottom: 24px; left: 50%;
  transform: translateX(-50%);
  color: var(--text-muted); font-size: 13px;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}

/* ============================================================ 区块标题 */
.section-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 20px;
}
.section-header h2 { font-size: 22px; font-weight: 700; }
.section-header .more {
  font-size: 14px; color: var(--text-secondary);
}
.section-header .more:hover { color: var(--primary); }

/* ============================================================ 网格 */
.grid { display: grid; gap: 12px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

/* ============================================================ 统计卡片 */
.stats-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
  margin-bottom: 24px;
}
.stat-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 18px;
  text-align: center;
}
.stat-value {
  font-size: 28px; font-weight: 700; color: var(--primary);
  margin-bottom: 4px;
}
.stat-label { font-size: 13px; color: var(--text-secondary); }

/* ============================================================ 个人中心 */
.center-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 20px; margin-bottom: 16px;
}
.center-card-title {
  font-size: 16px; font-weight: 600; margin-bottom: 16px;
  display: flex; justify-content: space-between; align-items: center;
}
.center-list { display: flex; flex-direction: column; gap: 12px; }
.center-list-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 14px; background: var(--bg); border-radius: var(--radius-sm);
  transition: background 0.2s;
}
.center-list-item:hover { background: var(--accent-light); }

/* ============================================================ 企业布局 */
.company-layout {
  display: flex; gap: 24px; min-height: calc(100vh - var(--header-height) - 48px);
}
.company-sidebar {
  width: 220px; flex-shrink: 0;
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 12px;
  position: sticky; top: calc(var(--header-height) + 24px);
  height: fit-content;
}
.company-sidebar-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: var(--radius-sm);
  color: var(--text-secondary); font-size: 14px; font-weight: 500;
  cursor: pointer; transition: all 0.2s;
  margin-bottom: 2px;
}
.company-sidebar-item:hover {
  background: var(--bg); color: var(--text);
}
.company-sidebar-item.router-link-active {
  background: var(--accent-light); color: var(--primary);
  font-weight: 600;
}
.company-main { flex: 1; min-width: 0; }

/* ============================================================ 徽章/未读数 */
.badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 6px;
  background: var(--danger); color: #fff;
  font-size: 11px; font-weight: 600; border-radius: 9px;
}

/* ============================================================ 分页 */
.pagination {
  display: flex; justify-content: center; align-items: center;
  gap: 8px; margin-top: 24px;
}
.pagination button {
  padding: 8px 14px; border: 1px solid var(--border);
  background: var(--card); border-radius: var(--radius-sm);
  font-size: 14px; color: var(--text-secondary);
  cursor: pointer; transition: all 0.2s;
}
.pagination button:hover:not(:disabled) {
  border-color: var(--primary); color: var(--primary);
}
.pagination button.active {
  background: var(--primary); color: #fff; border-color: var(--primary);
}
.pagination button:disabled { opacity: 0.5; cursor: not-allowed; }

/* ============================================================ Toast */
.toast {
  position: fixed; top: 80px; left: 50%; transform: translateX(-50%);
  padding: 12px 24px; background: var(--text); color: #fff;
  border-radius: var(--radius-sm); font-size: 14px; z-index: 2000;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
}
.toast.success { background: var(--success); }
.toast.error { background: var(--danger); }
.toast.warning { background: #D97706; }

/* ============================================================ Loading */
.loading {
  display: flex; justify-content: center; align-items: center;
  padding: 32px; color: var(--text-muted);
}
.loading-spinner {
  width: 24px; height: 24px;
  border: 2px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ============================================================ 响应式 */
@media (max-width: 767px) {
  :root {
    --header-height: 56px;
  }
  .nav-links { display: none; }
  .mobile-menu-btn { display: block; }
  .header-actions .btn:not(.mobile-menu-btn) { display: none; }
  .header-actions .user-trigger { display: none; }

  .main { padding: 16px; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .stats-row { grid-template-columns: repeat(2, 1fr); }

  .login-page { flex-direction: column; }
  .login-left { padding: 40px 24px; }
  .login-slogan { font-size: 32px; }
  .login-right { width: 100%; padding: 32px 24px; }

  .hero-title { font-size: 32px; }
  .hero-subtitle { font-size: 15px; }

  .company-layout { flex-direction: column; }
  .company-sidebar {
    width: 100%; position: static;
    display: flex; overflow-x: auto;
  }
  .company-sidebar-item { white-space: nowrap; }

  .conversation-layout { flex-direction: column; }
  .conversation-sidebar { width: 100%; height: 240px; }

  .detail-header { flex-direction: column; }
  .detail-salary { font-size: 20px; }
}

/* ============================================================ 滚动条 */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: #CBD5E1; border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background: #94A3B8; }

/* ============================================================ 过渡动画 */
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.2s;
}
.fade-enter-from, .fade-leave-to {
  opacity: 0;
}

/* ============================================================
   首页 Landing Page（现代商务风）
   ============================================================ */
.landing-page { background: var(--bg); }

.hero-section {
  position: relative;
  min-height: 92vh;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(150deg, #0A1628 0%, #122D5E 25%, #1E3A8A 50%, #2563EB 80%, #3B82F6 100%);
  overflow: hidden;
  color: #fff;
  text-align: center;
}
.hero-overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 25%, rgba(255,255,255,0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 75%, rgba(96,165,250,0.12) 0%, transparent 50%),
    linear-gradient(180deg, rgba(15,23,42,0) 40%, rgba(15,23,42,0.35) 100%);
  pointer-events: none;
}
/* 鼠标轨迹气泡 */
.hero-trail-container {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}
.trail-bubble {
  position: absolute;
  border-radius: 50%;
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,1) 0%, rgba(255,255,255,0.15) 12%, transparent 30%),
    radial-gradient(circle at 50% 50%, transparent 0%, rgba(255,255,255,0.05) 65%, rgba(147,197,253,0.12) 80%, transparent 100%);
  box-shadow:
    inset 0 -3px 6px rgba(255,255,255,0.25),
    inset 0 3px 6px rgba(255,255,255,0.1),
    0 0 10px rgba(255,255,255,0.15);
  animation: trailRise 1.2s ease-out forwards;
  pointer-events: none;
}
@keyframes trailRise {
  0%   { transform: translate(0, 0) scale(1); opacity: 1; }
  100% { transform: translate(var(--tx, 0), var(--ty, -80px)) scale(0.3); opacity: 0; }
}
/* 水泡动画 */
.hero-bubbles {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}
.hero-bubble {
  position: absolute;
  bottom: -80px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.1) 15%, transparent 35%),
    radial-gradient(circle at 50% 50%, transparent 0%, rgba(255,255,255,0.03) 60%, rgba(147,197,253,0.08) 78%, transparent 100%);
  box-shadow:
    inset 0 -4px 10px rgba(255,255,255,0.15),
    inset 0 4px 10px rgba(255,255,255,0.06),
    0 0 15px rgba(255,255,255,0.06);
  animation: bubbleRise linear infinite;
}
.hero-bubble:nth-child(1)  { left: 3%;  width: 112px; height: 112px; animation-duration: 12s; animation-delay: 0s; }
.hero-bubble:nth-child(2)  { left: 10%; width: 64px;  height: 64px;  animation-duration: 9s;  animation-delay: 2s; }
.hero-bubble:nth-child(3)  { left: 18%; width: 144px; height: 144px; animation-duration: 14s; animation-delay: 4s; }
.hero-bubble:nth-child(4)  { left: 26%; width: 88px;  height: 88px;  animation-duration: 10s; animation-delay: 1s; }
.hero-bubble:nth-child(5)  { left: 34%; width: 56px;  height: 56px;  animation-duration: 8s;  animation-delay: 5s; }
.hero-bubble:nth-child(6)  { left: 42%; width: 128px; height: 128px; animation-duration: 13s; animation-delay: 2.5s; }
.hero-bubble:nth-child(7)  { left: 50%; width: 80px;  height: 80px;  animation-duration: 10s; animation-delay: 0.5s; }
.hero-bubble:nth-child(8)  { left: 57%; width: 104px; height: 104px; animation-duration: 11s; animation-delay: 4.5s; }
.hero-bubble:nth-child(9)  { left: 64%; width: 136px; height: 136px; animation-duration: 15s; animation-delay: 1.5s; }
.hero-bubble:nth-child(10) { left: 72%; width: 60px;  height: 60px;  animation-duration: 9s;  animation-delay: 5.5s; }
.hero-bubble:nth-child(11) { left: 79%; width: 96px;  height: 96px;  animation-duration: 11s; animation-delay: 2s; }
.hero-bubble:nth-child(12) { left: 86%; width: 120px; height: 120px; animation-duration: 12s; animation-delay: 3s; }
.hero-bubble:nth-child(13) { left: 92%; width: 72px;  height: 72px;  animation-duration: 9s;  animation-delay: 0.8s; }
.hero-bubble:nth-child(14) { left: 97%; width: 88px;  height: 88px;  animation-duration: 11s; animation-delay: 3.5s; }
.hero-bubble:nth-child(15) { left: 6%;  width: 48px;  height: 48px;  animation-duration: 7.5s; animation-delay: 6s; }
.hero-bubble:nth-child(16) { left: 23%; width: 76px;  height: 76px;  animation-duration: 10s; animation-delay: 2.8s; }
.hero-bubble:nth-child(17) { left: 47%; width: 152px; height: 152px; animation-duration: 16s; animation-delay: 0.6s; }
.hero-bubble:nth-child(18) { left: 68%; width: 68px;  height: 68px;  animation-duration: 8.5s; animation-delay: 4.8s; }
.hero-bubble:nth-child(19) { left: 82%; width: 140px; height: 140px; animation-duration: 14s; animation-delay: 1.2s; }
.hero-bubble:nth-child(20) { left: 15%; width: 52px;  height: 52px;  animation-duration: 7s;  animation-delay: 5.2s; }

@keyframes bubbleRise {
  0%   { transform: translateY(0) scale(1); opacity: 0; }
  5%   { opacity: 1; }
  90%  { opacity: 0.6; }
  100% { transform: translateY(calc(-92vh - 80px)) scale(0.6); opacity: 0; }
}
.hero-content {
  position: relative; z-index: 2;
  max-width: 760px; padding: 0 24px;
}
.hero-brand {
  display: inline-flex; align-items: center; gap: 16px;
  font-size: 90px; font-weight: 800;
  padding: 0; margin-bottom: 24px;
  background: none;
  border: none;
  border-radius: 0;
  backdrop-filter: none;
  text-shadow: 0 4px 30px rgba(0,0,0,0.2);
}
.hero-brand-title {
  font-size: 90px; font-weight: 800; color: #fff;
  letter-spacing: -0.03em; line-height: 1;
  margin-bottom: 24px;
  text-shadow: 0 4px 30px rgba(0,0,0,0.2);
  background: linear-gradient(135deg, #ffffff 0%, #DBEAFE 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-brand .logo-icon {
  width: 100px; height: 100px;
  font-size: 56px; font-weight: 800;
  background: rgba(255,255,255,0.95);
  color: var(--primary);
  border-radius: 18px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.18);
}
.hero-brand .logo-text { color: #fff; letter-spacing: 0.02em; }
.hero-section .hero-title {
  font-size: 60px; font-weight: 800; color: #fff;
  letter-spacing: -0.02em; line-height: 1.1;
  margin-bottom: 20px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.15);
}
.hero-section .hero-subtitle {
  font-size: 19px; color: rgba(255,255,255,0.88);
  max-width: 560px; margin: 0 auto 40px;
  line-height: 1.6;
}
.hero-actions {
  display: flex; gap: 14px; justify-content: center;
  flex-wrap: wrap;
}
.hero-actions .btn {
  padding: 14px 32px; font-size: 16px; font-weight: 600;
  border-radius: var(--radius-sm);
}
/* 首页 hero 主按钮：统一白底蓝字 */
.hero-actions .btn-hero-primary {
  background: #fff; color: var(--primary);
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  border: 1px solid #fff;
}
.hero-actions .btn-hero-primary:hover {
  background: #F8FAFC; color: var(--accent-dark);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}
.hero-scroll-hint {
  position: absolute; bottom: 32px; left: 50%;
  transform: translateX(-50%);
  font-size: 13px; color: rgba(255,255,255,0.7);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  z-index: 2;
}
.hero-scroll-hint span {
  display: block; width: 22px; height: 36px;
  border: 2px solid rgba(255,255,255,0.5); border-radius: 12px;
  position: relative;
}
.hero-scroll-hint span::after {
  content: ''; position: absolute;
  top: 6px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 8px;
  background: #fff; border-radius: 2px;
  animation: scrollWheel 1.6s ease-in-out infinite;
}
@keyframes scrollWheel {
  0% { opacity: 0; transform: translate(-50%, 0); }
  40% { opacity: 1; }
  80% { opacity: 0; transform: translate(-50%, 14px); }
  100% { opacity: 0; }
}

/* 预览区 */
.preview-section {
  max-width: var(--max-width); margin: 0 auto;
  padding: 64px 20px 80px;
}
.preview-section .section-header {
  flex-direction: column; align-items: center; text-align: center;
  margin-bottom: 36px;
}
.preview-section .section-header h2 {
  font-size: 30px; font-weight: 700; color: var(--text);
  letter-spacing: -0.01em;
}
.preview-section .section-header p {
  font-size: 15px; color: var(--text-secondary); margin-top: 8px;
}
.preview-section .job-list {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px;
}
.preview-section .job-card {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px;
}
.preview-section .job-card-main { flex: 1; min-width: 0; }
.preview-section .job-card-header {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px;
}
.preview-section .job-title {
  font-size: 17px; font-weight: 600; color: var(--text);
  margin: 0;
}
.preview-section .job-card-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px;
  font-size: 13px; color: var(--text-secondary);
}
.preview-section .job-card-meta i {
  vertical-align: -2px; color: var(--text-muted);
}
.preview-section .job-card-meta .dot { color: var(--text-muted); }
.preview-section .job-card-tags { margin-top: 10px; }
.preview-footer {
  text-align: center; margin-top: 40px;
}

/* ============================================================
   注册页
   ============================================================ */
.register-page {
  position: relative;
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #1E40AF 0%, #2563EB 60%, #3B82F6 100%);
  padding: 32px 20px;
  overflow: hidden;
}
/* 背景气泡动画 */
.register-bg-bubbles {
  position: absolute; inset: 0;
  margin: 0; padding: 0;
  list-style: none; overflow: hidden;
  z-index: 0; pointer-events: none;
}
.register-bg-bubbles li {
  position: absolute;
  bottom: -160px;
  width: 40px; height: 40px;
  background: rgba(255,255,255,0.12);
  border-radius: 50%;
  animation: registerBubbleRise 18s infinite ease-in;
  animation-delay: var(--delay, 0s);
}
.register-bg-bubbles li:nth-child(1)  { left: 10%; width: 80px; height: 80px; --delay: 0s;   animation-duration: 22s; }
.register-bg-bubbles li:nth-child(2)  { left: 22%; width: 30px; height: 30px; --delay: 2s;   animation-duration: 16s; }
.register-bg-bubbles li:nth-child(3)  { left: 35%; width: 50px; height: 50px; --delay: 4s;   animation-duration: 26s; }
.register-bg-bubbles li:nth-child(4)  { left: 48%; width: 20px; height: 20px; --delay: 1s;   animation-duration: 14s; }
.register-bg-bubbles li:nth-child(5)  { left: 58%; width: 60px; height: 60px; --delay: 6s;   animation-duration: 24s; }
.register-bg-bubbles li:nth-child(6)  { left: 68%; width: 25px; height: 25px; --delay: 3s;   animation-duration: 18s; }
.register-bg-bubbles li:nth-child(7)  { left: 78%; width: 45px; height: 45px; --delay: 7s;   animation-duration: 20s; }
.register-bg-bubbles li:nth-child(8)  { left: 86%; width: 35px; height: 35px; --delay: 5s;   animation-duration: 17s; }
.register-bg-bubbles li:nth-child(9)  { left: 92%; width: 70px; height: 70px; --delay: 9s;   animation-duration: 28s; }
.register-bg-bubbles li:nth-child(10) { left: 4%;  width: 28px; height: 28px; --delay: 8s;   animation-duration: 19s; }
@keyframes registerBubbleRise {
  0%   { transform: translateY(0) scale(1); opacity: 0; }
  10%  { opacity: 0.8; }
  100% { transform: translateY(-110vh) scale(1.3); opacity: 0; }
}
/* 顶部链接 */
.register-top-actions {
  position: absolute;
  top: 24px; left: 24px; right: 24px;
  display: flex; justify-content: space-between;
  z-index: 5;
}
.register-back-home {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 8px 14px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 999px;
  color: #fff; font-size: 13px; font-weight: 500;
  text-decoration: none;
  transition: all 0.2s;
}
.register-back-home:hover {
  background: rgba(255,255,255,0.25);
  color: #fff;
  transform: translateY(-1px);
}
.register-card {
  position: relative; z-index: 2;
  display: flex; max-width: 1080px; width: 100%;
  background: var(--card);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(15,23,42,0.25);
}
.register-hero {
  flex: 1; padding: 56px 48px;
  background: linear-gradient(135deg, #1E40AF 0%, #2563EB 100%);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.register-hero::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.10) 0%, transparent 50%);
}
/* 登录页 slogan 恢复靠左 */
.register-hero.login-hero {
  justify-content: flex-start;
}
.register-hero.login-hero .register-hero-content {
  text-align: left;
  width: 100%;
}
.register-hero.login-hero .register-brand {
  display: flex;
}
.register-hero-content {
  position: relative; z-index: 1;
  text-align: center;
}
.register-brand {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 66px; font-weight: 700; margin-bottom: 32px;
}
.register-logo-icon {
  width: 100px; height: 100px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 38px; font-weight: 700;
}
.register-logo-text { color: #fff; }
.register-hero h2 {
  font-size: 36px; font-weight: 800;
  color: #fff; margin-bottom: 14px;
  letter-spacing: -0.02em;
}
.register-hero p {
  font-size: 16px; color: rgba(255,255,255,0.85);
  margin-bottom: 32px; line-height: 1.6;
}

/* ============================================================
   平台 Slogan（首页 / 登录页 / 注册页通用，分两行超大字号）
   字号为当前页面最大，高于 logo 与各标题
   ============================================================ */
.platform-slogan {
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0,0,0,0.18);
  margin: 0 0 24px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.platform-slogan .slogan-line-1 {
  font-size: 76px;
  letter-spacing: 0.04em;
  background: linear-gradient(135deg, #ffffff 0%, #Fde68a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.platform-slogan .slogan-line-2 {
  font-size: 52px;
  color: rgba(255,255,255,0.96);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.platform-slogan .slogan-line-3 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 40px;
  font-size: 40px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.1em;
  margin-top: 14px;
  text-shadow: 0 2px 16px rgba(0,0,0,0.2);
  border: 3px solid rgba(255,255,255,0.85);
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(6px);
  box-shadow: 0 4px 24px rgba(0,0,0,0.12), inset 0 0 20px rgba(255,255,255,0.06);
}
/* 登录页/注册页第二行字号缩小，保证一行不换行 */
.register-hero .platform-slogan .slogan-line-2 {
  font-size: 30px;
}
/* 首页 hero 内 slogan 跟随内容居中 */
.hero-section .platform-slogan {
  margin-bottom: 36px;
}
/* 登录页 slogan 靠左显示，下方多空两行 */
.register-hero.login-hero .platform-slogan {
  align-items: flex-start;
  margin-bottom: 72px;
}

/* ============================================================
   注册须知弹窗（滚动解锁 + localStorage 记忆 + 双端定位）
   ============================================================ */
.notice-mask {
  position: fixed; inset: 0;
  background: rgba(15,23,42,0.62);
  backdrop-filter: blur(4px);
  z-index: 3000;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.notice-modal {
  width: 100%; max-width: 560px;
  max-height: 86vh;
  background: #fff;
  border-radius: 16px;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,0.28);
  animation: noticeIn 0.28s ease;
}
@keyframes noticeIn {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.notice-header {
  padding: 20px 24px 14px;
  border-bottom: 1px solid var(--border, #e5e7eb);
  text-align: center;
  flex-shrink: 0;
}
.notice-header .notice-logo {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 22px; font-weight: 800; color: var(--primary, #2563EB);
}
.notice-header .notice-logo .notice-logo-icon {
  width: 36px; height: 36px;
  background: var(--primary, #2563EB); color: #fff;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800;
}
.notice-header .notice-title {
  margin-top: 10px;
  font-size: 15px; font-weight: 600; color: var(--text, #1f2937);
}
.notice-header .notice-subtitle {
  margin-top: 4px;
  font-size: 12px; color: var(--text-secondary, #6b7280);
}
.notice-body {
  padding: 18px 24px 8px;
  overflow-y: auto;
  flex: 1;
  font-size: 14px; line-height: 1.75; color: var(--text, #1f2937);
}
.notice-body h3 {
  font-size: 15px; font-weight: 700; margin: 18px 0 8px;
  color: var(--primary, #2563EB);
}
.notice-body h3:first-child { margin-top: 0; }
.notice-body p { margin: 6px 0; }
.notice-body ul { margin: 6px 0 6px 18px; padding: 0; }
.notice-body li { margin: 4px 0; }
.notice-body strong { color: #1f2937; }
.notice-body .notice-divider {
  border: none; border-top: 1px dashed #e5e7eb;
  margin: 18px 0;
}
.notice-body .notice-tag {
  display: inline-block;
  font-size: 11px; font-weight: 600;
  padding: 1px 6px; border-radius: 4px;
  background: #FEF3C7; color: #92400E;
  margin-left: 4px; vertical-align: middle;
}
.notice-footer {
  padding: 14px 24px 18px;
  border-top: 1px solid var(--border, #e5e7eb);
  flex-shrink: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.notice-scroll-tip {
  font-size: 12px; color: #9ca3af; text-align: center;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.notice-scroll-tip.unlocked { color: #10b981; }
.notice-btns {
  display: flex; gap: 12px;
}
.notice-btns .btn {
  flex: 1; padding: 11px 16px; font-size: 15px; font-weight: 600;
  border-radius: 10px; border: none; cursor: pointer;
  transition: all 0.2s;
}
.notice-btns .btn-decline {
  background: #f3f4f6; color: #6b7280;
}
.notice-btns .btn-decline:hover { background: #e5e7eb; }
.notice-btns .btn-agree {
  background: var(--primary, #2563EB); color: #fff;
}
.notice-btns .btn-agree:disabled {
  background: #cbd5e1; color: #fff; cursor: not-allowed;
}
.notice-btns .btn-agree:not(:disabled):hover {
  background: var(--accent-dark, #1E40AF); transform: translateY(-1px);
}
/* 须知勾选框（注册按钮下方常驻） */
.notice-agree-check {
  display: flex; align-items: center; justify-content: center;
  gap: 6px; margin-top: 12px;
  font-size: 13px; color: var(--text-secondary, #6b7280);
}
.notice-agree-check a {
  color: var(--primary, #2563EB); cursor: pointer;
  text-decoration: underline;
}
.notice-agree-check input {
  width: 14px; height: 14px; cursor: pointer;
}

/* 注册表单区 */
.register-form {
  width: 440px; flex-shrink: 0;
  padding: 40px 40px;
  overflow-y: auto; max-height: calc(100vh - 64px);
}
.register-form-header {
  margin-bottom: 24px;
}
.register-form-header h3 {
  font-size: 24px; font-weight: 700; color: var(--text);
  margin-bottom: 6px;
}
.register-form-header p {
  font-size: 14px; color: var(--text-secondary);
}

/* 用户类型切换卡片 */
.user-type-tabs {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.user-type-tab {
  padding: 14px 12px;
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  text-align: center; cursor: pointer;
  transition: all 0.2s;
  background: var(--card);
}
.user-type-tab:hover {
  border-color: #93C5FD;
  background: var(--accent-light);
}
.user-type-tab.active {
  border-color: var(--primary);
  background: var(--accent-light);
  box-shadow: 0 2px 8px rgba(37,99,235,0.12);
}
.user-type-title {
  display: block; font-size: 15px; font-weight: 600;
  color: var(--text); margin-bottom: 2px;
}
.user-type-tab.active .user-type-title { color: var(--primary); }
.user-type-desc {
  display: block; font-size: 12px; color: var(--text-muted);
}
.user-type-tab.active .user-type-desc { color: var(--accent-dark); }

/* 滑块验证码 */
.slider-captcha {
  width: 100%; max-width: 360px;
  user-select: none;
}
.slider-bg {
  position: relative; width: 100%; height: 180px;
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: var(--radius-sm); overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,0.06);
}
.slider-piece {
  position: absolute; left: 0; top: 0;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  box-shadow: 0 2px 8px rgba(15,23,42,0.25);
  border-radius: 4px;
}
.slider-track {
  position: relative; margin-top: 12px;
  height: 40px; background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  overflow: hidden;
  touch-action: none;
}
.slider-tip {
  position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; color: var(--text-muted);
  pointer-events: none;
  transition: color 0.2s;
}
.slider-tip.success { color: var(--success); font-weight: 600; }
.slider-btn {
  position: absolute; top: 2px; left: 0;
  width: 36px; height: 36px;
  background: var(--card); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(15,23,42,0.15);
  cursor: pointer; color: var(--text-secondary); font-size: 16px;
  transition: background 0.2s, color 0.2s;
  touch-action: none;
}
.slider-btn:hover { background: var(--primary); color: #fff; }
.slider-btn.verified { background: var(--success); color: #fff; cursor: default; }
.slider-btn.loading { opacity: 0.7; cursor: wait; }

/* ============================================================
   消息详情区
   ============================================================ */
.conversation-detail {
  flex: 1; display: flex; flex-direction: column;
  min-width: 0; background: var(--card);
}
.conversation-detail .detail-header {
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 12px;
  background: var(--card);
}
.conversation-detail .detail-header h3 {
  font-size: 16px; font-weight: 600; color: var(--text);
}
.detail-header-info { flex: 1; min-width: 0; }
.detail-title-row {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  margin-bottom: 4px;
}
.detail-name {
  font-size: 16px; font-weight: 600; color: var(--text);
}
.detail-company {
  font-size: 13px; color: var(--text-secondary);
}
.detail-position {
  font-size: 13px; color: var(--text); font-weight: 500;
}
.detail-job {
  font-size: 13px; color: var(--primary); font-weight: 500;
}
.detail-sub-row {
  font-size: 13px;
}
.detail-job-link {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--primary); cursor: pointer;
  font-size: 13px; font-weight: 500;
  transition: color 0.2s;
}
.detail-job-link:hover { color: var(--accent-dark); text-decoration: underline; }
.back-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; background: var(--bg);
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  font-size: 13px; color: var(--text-secondary); cursor: pointer;
  transition: all 0.2s;
}
.back-btn:hover {
  background: var(--accent-light); color: var(--primary);
  border-color: var(--primary);
}
.message-history {
  flex: 1; overflow-y: auto; padding: 20px;
  background: var(--bg);
}
.message-item {
  display: flex; margin-bottom: 12px;
}
.message-item.self { justify-content: flex-end; }
.message-bubble {
  max-width: 70%; padding: 12px 16px;
  border-radius: 12px; background: var(--card);
  border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(15,23,42,0.04);
}
.message-item.self .message-bubble {
  background: var(--primary); color: #fff;
  border-color: var(--primary);
}
.message-content {
  font-size: 14px; line-height: 1.6;
  word-break: break-word;
}
.message-meta {
  font-size: 11px; color: var(--text-muted);
  margin-top: 6px; text-align: right;
  display: flex; align-items: center; justify-content: flex-end; gap: 8px;
}
.message-item.self .message-meta { color: rgba(255,255,255,0.8); }
.message-read-status { color: var(--text-muted); }
.message-read-status.read { color: var(--success, #10b981); font-weight: 500; }
.message-item.self .message-read-status { color: rgba(255,255,255,0.7); }
.message-item.self .message-read-status.read { color: rgba(255,255,255,0.95); }
/* 系统消息（交换联系方式结果等）：居中展示 */
.message-item.system {
  justify-content: center;
}
.message-system-content {
  max-width: 90%;
  text-align: center;
  padding: 12px 0;
}
.system-msg-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, var(--border), transparent);
  margin-bottom: 12px;
}
.system-msg-body {
  font-size: 13px;
  line-height: 1.8;
  color: var(--text-secondary);
  white-space: pre-line;
  background: var(--bg-dark, #f1f5f9);
  display: inline-block;
  padding: 10px 20px;
  border-radius: 10px;
}
.message-item.system .system-msg-body {
  text-align: left;
  min-width: 200px;
}
.system-msg-time {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 6px;
}
.system-msg-action {
  margin-top: 8px;
}
.sys-action-btn {
  display: inline-block;
  padding: 4px 16px;
  font-size: 12px;
  color: #fff;
  background: #3b82f6;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}
.sys-action-btn:hover {
  background: #2563eb;
}
.message-actions {
  display: flex; gap: 8px; margin-top: 8px;
}
.message-item.self .message-actions { justify-content: flex-end; }
.system-readonly-tip {
  padding: 14px 20px;
  border-top: 1px solid var(--border);
  background: var(--card);
  color: var(--text-muted);
  font-size: 13px;
  text-align: center;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.message-input-area {
  display: flex; gap: 8px; padding: 14px 20px;
  border-top: 1px solid var(--border);
  background: var(--card);
  align-items: center;
}
.template-btn { flex-shrink: 0; }
.message-input {
  flex: 1; padding: 10px 14px;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  font-size: 14px; outline: none; transition: all 0.2s;
  background: var(--card); color: var(--text);
}
.message-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}
.conversation-empty {
  flex: 1; display: flex; align-items: center; justify-content: center;
  background: var(--bg);
}
.conv-badge {
  position: absolute; top: 12px; right: 16px;
  min-width: 20px; height: 20px; padding: 0 6px;
  background: var(--danger); color: #fff;
  font-size: 11px; font-weight: 600;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}
.conv-subtitle {
  font-size: 12px; color: var(--text-muted);
  margin-top: 2px;
}

/* ============================================================
   简历详情
   ============================================================ */
.resume-detail { position: relative; padding: 8px 4px; }
.resume-watermark {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%) rotate(-25deg);
  font-size: 36px; font-weight: 700;
  color: rgba(37,99,235,0.08);
  pointer-events: none; white-space: nowrap;
  z-index: 0;
}
.resume-section {
  position: relative; z-index: 1;
  margin-bottom: 24px; padding: 16px;
  background: var(--bg); border-radius: var(--radius-sm);
}
.resume-section h4 {
  font-size: 15px; font-weight: 600; color: var(--text);
  margin-bottom: 12px; padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.resume-section p { font-size: 13px; color: var(--text-secondary); margin-bottom: 6px; }
.resume-item {
  padding: 12px 0; border-bottom: 1px dashed var(--border);
}
.resume-item:last-child { border-bottom: none; }
.resume-item-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 8px;
}
.resume-item-title {
  font-size: 14px; font-weight: 600; color: var(--text);
}
.resume-item-time {
  font-size: 12px; color: var(--text-muted);
}
.resume-item-desc {
  font-size: 13px; color: var(--text-secondary);
  line-height: 1.6; margin-top: 6px;
}

/* ============================================================
   通用元素：dot / loading-state / avatar / job-card-main
   ============================================================ */
.dot {
  display: inline-block; margin: 0 4px;
  color: var(--text-muted);
}
.loading-state {
  text-align: center; padding: 32px 20px;
  color: var(--text-muted); font-size: 14px;
}
.avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  background: linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%);
  color: #fff; font-size: 15px; font-weight: 600;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(37,99,235,0.18);
}
.avatar-sm { width: 32px; height: 32px; font-size: 13px; }
.avatar-system {
  background: linear-gradient(135deg, #7C3AED 0%, #6D28D9 100%);
  box-shadow: 0 2px 6px rgba(124, 58, 237, 0.25);
}
.avatar-lg { width: 56px; height: 56px; font-size: 20px; }

.job-card-main { flex: 1; min-width: 0; }
.job-title {
  font-size: 17px; font-weight: 600; color: var(--text);
  margin: 0;
}
.loading-state { color: var(--text-muted); }

/* ============================================================
   企业职位管理页：政策说明卡 + 按类型分组
   ============================================================ */
.job-policy { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.policy-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); overflow: hidden;
}
.policy-card.policy-basic { border-color: #FBBF24; }
.policy-card.policy-premium { border-color: #34D399; }
.policy-card-head {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 16px; cursor: pointer; user-select: none;
  transition: background 0.2s;
}
.policy-card-head:hover { background: var(--bg); }
.policy-title { font-size: 14px; font-weight: 600; color: var(--text); }
.policy-card-body {
  padding: 4px 16px 14px 16px;
  font-size: 13px; line-height: 1.9; color: var(--text-secondary);
}
.policy-card-body b { color: var(--primary); font-weight: 600; }
.job-group-head {
  display: flex; align-items: center; gap: 6px;
  font-size: 14px; font-weight: 700; color: var(--text);
  margin: 18px 0 10px 0;
}
.job-group-head i { color: var(--primary); }
/* 发布类型选择弹层 */
.job-type-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.job-type-card {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 16px; cursor: pointer; transition: all 0.2s;
}
.job-type-card:hover {
  border-color: var(--primary); box-shadow: 0 4px 16px rgba(37,99,235,0.08);
  transform: translateY(-2px);
}
.job-type-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px;
}
.job-type-price { font-size: 15px; font-weight: 700; color: var(--primary); }
.job-type-desc {
  font-size: 13px; line-height: 1.9; color: var(--text-secondary);
  margin-bottom: 14px; min-height: 90px;
}
.btn-block { width: 100%; }
@media (max-width: 560px) {
  .job-type-picker { grid-template-columns: 1fr; }
}

/* ============================================================
   Tab Bar
   ============================================================ */
.tab-bar {
  display: flex; gap: 4px;
  background: var(--card); padding: 4px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  overflow-x: auto;
}
.tab-item {
  padding: 9px 18px; border: none;
  background: transparent; color: var(--text-secondary);
  font-size: 14px; font-weight: 500; cursor: pointer;
  border-radius: 6px; transition: all 0.2s;
  white-space: nowrap;
}
.tab-item:hover { background: var(--bg); color: var(--text); }
.tab-item.active {
  background: var(--primary); color: #fff;
  font-weight: 600;
  box-shadow: 0 1px 4px rgba(37,99,235,0.3);
}

/* ============================================================
   页面容器
   ============================================================ */
.page-container { width: 100%; }

/* ============================================================
   个人中心 / 求职者卡片
   ============================================================ */
.seeker-card {
  display: flex; align-items: flex-start; gap: 16px;
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 20px 22px;
  margin-bottom: 12px;
  transition: all 0.2s;
}
.seeker-card:hover {
  border-color: #93C5FD;
  box-shadow: 0 4px 16px rgba(37,99,235,0.06);
}
.seeker-main { flex: 1; min-width: 0; }
.seeker-header {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px; flex-wrap: wrap;
}
.seeker-name {
  font-size: 17px; font-weight: 600; color: var(--text);
}
.seeker-exp { font-size: 13px; }
.seeker-meta {
  display: flex; flex-wrap: wrap; gap: 8px 14px;
  font-size: 14px; color: var(--text-secondary);
  margin-bottom: 10px;
}
.seeker-intentions {
  font-size: 14px; color: var(--text-secondary);
  padding: 10px 14px; background: var(--bg);
  border-radius: var(--radius-sm); margin-bottom: 10px;
  word-break: break-word; overflow-wrap: break-word;
}
.seeker-latest-job {
  font-size: 14px; color: var(--text);
  padding: 10px 16px; margin-bottom: 12px;
  background: linear-gradient(90deg, #EFF6FF 0%, #F0F9FF 100%);
  border: 1px solid #BFDBFE;
  border-left: 3px solid var(--primary);
  border-radius: var(--radius-sm);
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
}
.latest-job-label {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 500;
}
.latest-job-loc {
  color: var(--text);
  font-weight: 500;
}
.latest-job-industry {
  color: var(--primary);
  font-weight: 500;
}
.latest-job-company {
  font-weight: 600; color: var(--text);
}
.latest-job-sep {
  color: var(--text-muted);
  margin: 0 2px;
}
.latest-job-title {
  color: var(--text-secondary);
  font-weight: 500;
}
.seeker-summary {
  font-size: 14px; color: var(--text-secondary);
  line-height: 1.7;
  word-break: break-word; overflow-wrap: break-word;
}
.seeker-actions {
  display: flex; gap: 8px; flex-shrink: 0;
  flex-wrap: wrap; align-items: center;
  justify-content: flex-end;
  max-width: 280px;
}
.seeker-actions .btn-sm {
  white-space: nowrap;
  padding: 8px 14px;
  font-size: 13px;
  flex: 0 1 auto;
  min-width: 0;
}

/* ============================================================
   简历编辑表单（ProfilePage）
   ============================================================ */
.profile-section-title {
  font-size: 16px; font-weight: 600; color: var(--text);
  margin: 24px 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--accent-light);
  display: flex; align-items: center; gap: 8px;
}
.experience-list { display: flex; flex-direction: column; gap: 12px; }
.experience-card {
  position: relative;
  background: var(--bg); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  transition: all 0.2s;
  overflow: hidden;
}
.experience-card:hover {
  border-color: #93C5FD;
  background: var(--card);
}
.experience-card.is-collapsed {
  background: var(--card);
}
.experience-card-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 20px;
  cursor: pointer;
  transition: background 0.15s;
  border-bottom: 1px solid transparent;
}
.experience-card.is-collapsed .experience-card-header {
  border-bottom-color: transparent;
}
.experience-card:not(.is-collapsed) .experience-card-header {
  border-bottom-color: var(--border);
  background: var(--bg);
}
.experience-card-header:hover {
  background: var(--accent-light);
}
.experience-card-summary {
  display: flex; align-items: center; gap: 12px;
  flex: 1; min-width: 0;
}
.experience-card-index {
  flex-shrink: 0;
  font-size: 12px; font-weight: 600;
  color: var(--primary);
  background: var(--accent-light);
  padding: 3px 10px;
  border-radius: 12px;
}
.experience-card-title {
  font-size: 14px; font-weight: 500;
  color: var(--text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.experience-card-actions {
  display: flex; align-items: center; gap: 12px;
  flex-shrink: 0;
}
.experience-card-body {
  padding: 20px;
}
.experience-remove {
  padding: 4px 12px;
  background: var(--danger); color: #fff;
  border: none; border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 500;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all 0.2s;
}
.experience-remove:hover { opacity: 0.85; transform: scale(1.05); }
.experience-toggle {
  padding: 4px 8px;
  background: transparent;
  color: var(--text-muted);
  border: none;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
  transition: color 0.2s;
}
.experience-toggle:hover { color: var(--primary); }
.section-header {
  display: flex; justify-content: space-between; align-items: center;
  margin: 24px 0 12px 0;
}
.section-header .profile-section-title {
  margin: 0;
}
.page-header-bar {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 20px;
}
.page-header-bar .page-title {
  margin: 0;
}
.btn-back {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 8px 16px;
  font-size: 13px; font-weight: 500;
}
.form-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.autocomplete-group { position: relative; }
.autocomplete-list {
  position: absolute; top: 100%; left: 0; right: 0;
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: 0 4px 16px rgba(15,23,42,0.08);
  max-height: 200px; overflow-y: auto;
  z-index: 10;
}
.autocomplete-item {
  padding: 8px 12px; font-size: 13px; color: var(--text);
  cursor: pointer; transition: background 0.15s;
}
.autocomplete-item:hover { background: var(--accent-light); color: var(--primary); }
.work-nature-horizontal {
  display: flex; gap: 20px; flex-wrap: wrap;
  padding: 12px 0;
}
.inline-checkbox {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 14px; color: var(--text); cursor: pointer;
}
.inline-checkbox input[type="checkbox"] {
  width: 16px; height: 16px;
  accent-color: var(--primary); cursor: pointer;
}
.save-resume-btn {
  margin-top: 24px; font-size: 16px;
  padding: 14px 28px;
}

/* ============================================================
   隐私保护开关（ProfilePage 专用）
   ============================================================ */
.privacy-card {
  display: flex; flex-direction: column; gap: 0;
  background: var(--bg); border: 1px solid var(--border);
  border-radius: var(--radius-sm); overflow: hidden;
}
.privacy-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  transition: background 0.15s;
}
.privacy-item:last-child { border-bottom: none; }
.privacy-item:hover { background: rgba(37,99,235,0.02); }
.privacy-info { flex: 1; padding-right: 16px; }
.privacy-name {
  font-size: 14px; font-weight: 600; color: var(--text);
  margin-bottom: 4px;
}
.privacy-desc {
  font-size: 12px; color: var(--text-muted);
  line-height: 1.5;
}
.privacy-switch {
  position: relative; display: inline-block;
  width: 44px; height: 24px; flex-shrink: 0;
}
.privacy-switch input {
  opacity: 0; width: 0; height: 0;
  position: absolute;
}
.privacy-slider {
  position: absolute; cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background: var(--text-muted);
  border-radius: 24px;
  transition: background 0.25s;
}
.privacy-slider::before {
  content: ''; position: absolute;
  width: 18px; height: 18px;
  left: 3px; bottom: 3px;
  background: #fff; border-radius: 50%;
  transition: transform 0.25s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.privacy-switch input:checked + .privacy-slider {
  background: var(--primary);
}
.privacy-switch input:checked + .privacy-slider::before {
  transform: translateX(20px);
}
.privacy-switch input:disabled + .privacy-slider {
  opacity: 0.5; cursor: not-allowed;
}

/* ============================================================
   企业页面
   ============================================================ */
.page-company { width: 100%; }
.page-company .tab-bar { margin-bottom: 20px; }

/* 企业资料填写页 */
.company-form-page,
.cert-page {
  max-width: 720px; margin: 0 auto;
}

/* ============================================================
   响应式补全
   ============================================================ */
@media (max-width: 767px) {
  .hero-section { min-height: 80vh; }
  .hero-brand { font-size: 52px; gap: 10px; }
  .hero-brand .logo-icon { width: 60px; height: 60px; font-size: 34px; border-radius: 12px; }
  .hero-brand-title { font-size: 52px; }
  .hero-section .hero-title { font-size: 28px; }
  .hero-section .hero-subtitle { font-size: 15px; }
  .hero-actions .btn { width: 100%; max-width: 280px; }

  .preview-section { padding: 40px 16px; }
  .preview-section .job-list { grid-template-columns: 1fr; }

  .register-card { flex-direction: column; max-width: 100%; }
  .register-hero { padding: 32px 24px; }
  .register-form { width: 100%; padding: 28px 20px; max-height: none; }

  /* 移动端 slogan 字号适配 */
  .platform-slogan .slogan-line-1 { font-size: 38px; }
  .platform-slogan .slogan-line-2 { font-size: 22px; }
  .platform-slogan .slogan-line-3 { font-size: 26px; margin-top: 10px; padding: 7px 24px; border-width: 2px; }
  .register-hero .platform-slogan .slogan-line-2 { font-size: 18px; }
  .platform-slogan { gap: 4px; margin-bottom: 20px; }
  .register-hero.login-hero .platform-slogan { margin-bottom: 20px; }
  /* 移动端须知弹窗撑满 */
  .notice-modal { max-width: 100%; max-height: 92vh; border-radius: 12px; }
  .notice-body { padding: 14px 18px 4px; font-size: 13px; }
  .notice-footer { padding: 12px 18px 16px; }

  .login-page { flex-direction: column; }
  .login-left { padding: 40px 24px; }
  .login-brand { font-size: 38px; margin-bottom: 24px; gap: 12px; }
  .login-brand .logo-icon { width: 54px; height: 54px; font-size: 24px; border-radius: 10px; }
  .login-slogan { font-size: 28px; }
  .login-right { width: 100%; padding: 32px 24px; }

  .message-bubble { max-width: 85%; }

  .form-row { grid-template-columns: 1fr; }

  .tab-bar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .tab-item { padding: 8px 14px; font-size: 13px; }

  .seeker-card { flex-direction: column; }
  .seeker-actions { width: 100%; }
}

/* ============================================================
   列表页 / 详情页 / 表单页 通用补充
   ============================================================ */
.page-jobs,
.page-job-detail,
.page-job-form,
.page-company-info,
.page-company-public,
.page-admin,
.page-seeker-center { width: 100%; }

.page-header {
  margin-bottom: 24px;
}
.page-header h1 {
  font-size: 28px; font-weight: 700;
  margin-bottom: 8px; color: var(--text);
}
.page-header p {
  font-size: 15px; color: var(--text-secondary);
}

/* 搜索栏补充 */
.search-bar { margin-bottom: 24px; }
.filter-nature {
  display: inline-flex; gap: 12px; align-items: center;
}
.search-include-contacted {
  display: inline-flex; align-items: center;
  font-size: 13px; color: var(--text-secondary);
}

/* 分页栏 */
.pagination-bar {
  display: flex; justify-content: center; align-items: center;
  gap: 12px; margin-top: 24px;
}
.pagination-bar button {
  padding: 8px 16px; border: 1px solid var(--border);
  background: var(--card); color: var(--text-secondary);
  border-radius: var(--radius-sm); font-size: 14px;
  cursor: pointer; transition: all 0.2s;
}
.pagination-bar button:hover:not(:disabled) {
  border-color: var(--primary); color: var(--primary);
  background: var(--accent-light);
}
.pagination-bar button:disabled { opacity: 0.5; cursor: not-allowed; }
.page-info {
  font-size: 14px; color: var(--text-secondary);
  padding: 0 8px;
}

/* 详情卡片 */
.detail-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
  margin-top: 16px;
}
.detail-card .detail-header {
  align-items: flex-start;
}
.company-link {
  color: var(--primary); font-weight: 500;
  margin-left: 6px;
}
.company-link:hover { color: var(--accent-dark); text-decoration: underline; }
.company-public-logo {
  border: 1px solid var(--border);
}
/* 企业公开页在招职位列表 */
.company-public-job-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.company-public-job-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: background 0.15s;
}
.company-public-job-item:hover {
  background: var(--bg-hover, #f8fafc);
}
.company-public-job-item:last-child {
  border-bottom: none;
}
.company-public-job-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.company-public-job-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.company-public-job-salary {
  font-size: 14px;
  font-weight: 600;
  color: #F59E0B;
  flex-shrink: 0;
}
.company-public-job-meta {
  font-size: 13px;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 2px;
}
/* 会话详情企业名称链接 */
.detail-company-link,
.conv-company-link {
  cursor: pointer;
  transition: color 0.15s;
}
.detail-company-link:hover,
.conv-company-link:hover {
  color: var(--primary);
  text-decoration: underline;
}
.job-card-time {
  font-size: 12px; color: var(--text-muted);
  margin-top: 4px; font-weight: 400;
}

/* 模态框 */
.modal {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(15,23,42,0.45);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  backdrop-filter: blur(4px);
}
.modal-content {
  background: var(--card); border-radius: var(--radius);
  padding: 28px; max-width: 480px; width: 100%;
  position: relative;
  box-shadow: 0 20px 60px rgba(15,23,42,0.25);
  animation: modalIn 0.2s ease-out;
}
.modal-content.modal-sm { max-width: 360px; }
@keyframes modalIn {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.modal-content h3 {
  font-size: 18px; font-weight: 600;
  margin-bottom: 16px; color: var(--text);
}
.modal-content p {
  font-size: 14px; color: var(--text-secondary);
  margin-bottom: 16px;
}
.modal-actions {
  display: flex; gap: 8px; margin-top: 16px;
}
.modal-close {
  position: absolute; top: 12px; right: 12px;
  width: 32px; height: 32px;
  background: var(--bg); border: none;
  border-radius: 50%; color: var(--text-muted);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all 0.2s;
}
.modal-close:hover {
  background: var(--danger); color: #fff;
}

/* 复选框组 */
.checkbox-group { display: flex; flex-direction: column; gap: 8px; }
.checkbox-group label {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--text); cursor: pointer;
}
.checkbox-group input[type="checkbox"] {
  width: 16px; height: 16px; accent-color: var(--primary); cursor: pointer;
}
.checkbox-group-inline {
  display: flex; gap: 16px; flex-wrap: wrap;
}

/* 表单卡片 */
.form-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 24px;
  margin-top: 12px;
}
.form-actions {
  display: flex; gap: 12px; margin-top: 24px;
  flex-wrap: wrap;
}
.form-textarea-lg { min-height: 140px; }

/* 输入错误状态 */
.input-error {
  border-color: var(--danger) !important;
  box-shadow: 0 0 0 3px rgba(220,38,38,0.1) !important;
}
.input-error-text {
  font-size: 13px; color: var(--danger);
  margin-top: 6px; padding: 8px 12px;
  background: #FEE2E2; border-radius: var(--radius-sm);
  border: 1px solid #FCA5A5;
}
.input-hint {
  font-size: 12px; color: var(--text-muted);
  margin-top: 4px;
}

/* 求职意向卡片 */
.intention-card {
  position: relative; padding: 16px;
  background: var(--bg); border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 12px;
}
.intention-card:hover {
  border-color: #93C5FD; background: var(--card);
}
.intention-title {
  font-size: 13px; font-weight: 600;
  color: var(--primary); margin-bottom: 12px;
  padding-bottom: 8px; border-bottom: 1px dashed var(--border);
}

/* 请求列表（简历请求） */
.request-item {
  display: flex; align-items: flex-start; gap: 16px;
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 16px 18px;
  margin-bottom: 12px;
  transition: all 0.2s;
}
.request-item:hover {
  border-color: #93C5FD;
  box-shadow: 0 4px 16px rgba(37,99,235,0.06);
}
.request-main { flex: 1; min-width: 0; }
.request-header {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 8px; flex-wrap: wrap;
}
.request-name {
  font-size: 15px; font-weight: 600; color: var(--text);
}
.request-meta {
  display: flex; flex-wrap: wrap; gap: 6px 12px;
  font-size: 13px; color: var(--text-secondary);
  margin-bottom: 6px;
}
.request-job {
  font-size: 13px; color: var(--text-secondary);
  display: flex; align-items: center; gap: 4px;
}
.request-time {
  font-size: 12px; color: var(--text-muted);
  display: flex; align-items: center; gap: 4px;
  margin-top: 4px;
}

/* 状态标签变体 */
.status-0 { background: var(--bg); color: var(--text-muted); }
.status-1 { background: #FEF3C7; color: #D97706; }
.status-2 { background: #DCFCE7; color: #16A34A; }
.status-3 { background: #FEE2E2; color: #DC2626; }
.status-4 { background: #F1F5F9; color: var(--text-secondary); }
.status-5 { background: #FEE2E2; color: #DC2626; }

/* 发起方标签 */
.initiator-seeker { background: var(--accent-light); color: var(--primary); }
.initiator-company { background: #DCFCE7; color: #16A34A; }

.tag-outline {
  background: transparent; color: var(--text-muted);
  border: 1px solid var(--border);
}

/* Element Plus 组件视觉调优 */
.el-button--primary {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}
.el-button--primary:hover {
  background-color: var(--accent-dark) !important;
  border-color: var(--accent-dark) !important;
}
.el-tag.el-tag--primary {
  background-color: var(--accent-light) !important;
  color: var(--primary) !important;
  border-color: rgba(37,99,235,0.2) !important;
}
.el-tabs__item.is-active { color: var(--primary) !important; }
.el-tabs__active-bar { background-color: var(--primary) !important; }
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-radio__input.is-checked .el-checkbox__inner,
.el-switch.is-checked .el-switch__core {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
}
.el-checkbox__label { color: var(--text); }
.el-input__wrapper.is-focus {
  box-shadow: 0 0 0 1px var(--primary) inset !important;
}
.el-pagination.is-background .el-pager li:not(.is-disabled).is-active {
  background-color: var(--primary) !important;
  color: #fff !important;
}

/* ============================================================
   补充：缺失样式补全（按 UI 设计规范检查）
   ============================================================ */

/* 职位列表网格（独立规则，不依赖 .preview-section 父级） */
.job-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (max-width: 767px) {
  .job-list { grid-template-columns: 1fr; }
}

/* 个人简历页最外层容器 */
.page-profile { width: 100%; }

/* 简历表单禁用态（年龄不满 35 岁） */
.form-disabled {
  position: relative;
  opacity: 0.6;
  pointer-events: none;
  filter: grayscale(0.3);
}
.form-disabled::after {
  content: '需年满 35 岁才能编辑简历';
  position: absolute; top: 16px; left: 50%;
  transform: translateX(-50%);
  padding: 8px 16px;
  background: #FEF3C7; color: #D97706;
  border: 1px solid #FDE68A;
  border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 500;
  pointer-events: auto; z-index: 5;
  white-space: nowrap;
}

/* 移动端消息页：选中会话后隐藏列表 */
@media (max-width: 767px) {
  .conversation-layout.mobile-detail .conversation-sidebar { display: none; }
  .conversation-layout.mobile-detail .conversation-detail { flex: 1; }
}

/* 对方消息样式（明确控制） */
.message-item.other { justify-content: flex-start; }

/* 简历防打印/防复制保护 */
.resume-detail-protected {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.resume-detail-protected img {
  pointer-events: none;
  -webkit-user-drag: none;
  user-drag: none;
}
@media print {
  .resume-detail-protected { display: none !important; }
  .resume-view-page { display: none !important; }
  body::after { content: '简历内容受保护，禁止打印'; display: block; text-align: center; padding: 40px; font-size: 16px; color: #999; }
}
.resume-detail-protected::after {
  content: '保护内容 · 禁止下载';
  position: absolute; top: 8px; right: 8px;
  padding: 4px 10px;
  background: rgba(220, 38, 38, 0.08);
  color: var(--danger);
  font-size: 11px; font-weight: 500;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(220, 38, 38, 0.15);
  pointer-events: none;
}

/* 企业中心 Tab 内容容器 */
.tab-content {
  padding: 20px 0;
  width: 100%;
}

/* ============================================================
   商务按钮组（替代 Tab Bar，更商务大气）
   ============================================================ */
.action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.action-card {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 8px; padding: 18px 12px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer; transition: all 0.2s;
  min-height: 88px;
}
.action-card i {
  width: 22px; height: 22px;
  color: var(--text-secondary);
  transition: color 0.2s;
}
.action-card span {
  font-size: 13px; font-weight: 500;
  color: var(--text-secondary);
  text-align: center;
  transition: color 0.2s;
}
.action-card:hover {
  border-color: #93C5FD;
  background: var(--accent-light);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37,99,235,0.08);
}
.action-card:hover i,
.action-card:hover span {
  color: var(--primary);
}
.action-card.active {
  background: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 4px 12px rgba(37,99,235,0.25);
}
.action-card.active i,
.action-card.active span {
  color: #fff;
}
@media (max-width: 767px) {
  .action-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .action-card { padding: 14px 8px; min-height: 76px; }
  .action-card i { width: 18px; height: 18px; }
  .action-card span { font-size: 12px; }
}

/* ============================================================
   统计区块（个人/企业中心首页）
   ============================================================ */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.stat-block {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 20px 16px;
  text-align: center;
  position: relative;
}
.stat-block .stat-icon {
  width: 28px; height: 28px;
  color: var(--primary);
  margin-bottom: 8px;
  background: var(--accent-light);
  border-radius: var(--radius-sm);
  padding: 6px;
}
.stat-block .stat-value {
  font-size: 26px; font-weight: 700;
  color: var(--primary);
  line-height: 1.2;
}
.stat-block .stat-label {
  font-size: 13px; color: var(--text-secondary);
  margin-top: 4px;
}
@media (max-width: 767px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   留言建议编辑器
   ============================================================ */
.feedback-editor {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--card);
}
.feedback-editor:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}
.feedback-textarea {
  border: none; border-radius: 0;
  padding: 14px 16px; min-height: 160px;
  resize: vertical; outline: none;
  font-family: inherit;
  background: transparent;
}
.feedback-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px;
  border-top: 1px solid var(--border);
  background: var(--bg);
}
.feedback-counter {
  font-size: 12px; color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.feedback-images {
  display: flex; flex-wrap: wrap; gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--border);
  background: var(--card);
}
.feedback-image-item {
  position: relative;
  width: 80px; height: 80px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border);
}
.feedback-image-item img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.feedback-image-remove {
  position: absolute; top: 4px; right: 4px;
  width: 20px; height: 20px;
  background: rgba(15,23,42,0.7);
  color: #fff;
  border: none; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0;
  transition: background 0.2s;
}
.feedback-image-remove:hover {
  background: var(--danger);
}

/* 留言历史列表 */
.feedback-history-list {
  max-height: 60vh; overflow-y: auto;
  display: flex; flex-direction: column; gap: 12px;
  padding: 4px;
}
.feedback-history-item {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
}
.feedback-history-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 8px;
}
.feedback-history-time {
  font-size: 12px; color: var(--text-muted);
}
.feedback-history-content {
  font-size: 14px; color: var(--text);
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}
.feedback-history-images {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 8px;
}
.feedback-history-images img {
  width: 80px; height: 80px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  cursor: pointer;
  transition: transform 0.2s;
}
.feedback-history-images img:hover {
  transform: scale(1.05);
}
.feedback-reply {
  margin-top: 10px; padding: 10px 12px;
  background: var(--accent-light);
  border-left: 3px solid var(--primary);
  border-radius: var(--radius-sm);
}
.feedback-reply-label {
  font-size: 12px; font-weight: 600;
  color: var(--primary); margin-bottom: 4px;
}
.feedback-reply-content {
  font-size: 13px; color: var(--text);
  line-height: 1.6;
  white-space: pre-wrap;
}

/* ============================================================
   Boss 风格职位卡片（JobListPage 四行布局）
   ============================================================ */
.boss-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 18px;
  cursor: pointer;
  transition: box-shadow .2s, transform .2s;
}
.boss-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-1px);
}
.boss-card-block-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--bg);
  color: var(--text-muted);
  cursor: pointer;
  /* 始终显示，不依赖鼠标悬浮 */
  opacity: 1;
  transition: color .15s, border-color .15s;
  z-index: 2;
}
.boss-card-block-btn:hover {
  color: var(--danger);
  border-color: var(--danger);
}
.boss-card-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}
.boss-card-row1 { align-items: center; }
.boss-card-title-wrap {
  display: flex; align-items: center; gap: 8px;
  min-width: 0; flex: 1;
}
.boss-card-title {
  font-size: 16px; font-weight: 600;
  color: var(--text);
  margin: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 100%;
}
.boss-tag-nature {
  flex-shrink: 0;
  font-size: 12px; color: var(--primary);
  background: var(--accent-light);
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.boss-tag-match {
  flex-shrink: 0;
  font-size: 12px; color: #fff;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.match-tag {
  font-size: 12px; color: #fff;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
  flex-shrink: 0;
}
.boss-card-salary {
  font-size: 15px; font-weight: 600;
  color: #F59E0B;
  white-space: nowrap;
  /* 右侧留出拉黑按钮空间（按钮 28px + right 12px），避免遮挡薪资 */
  padding-right: 40px;
}
.boss-card-row2 {
  font-size: 13px; color: var(--text-secondary);
}
.boss-card-company {
  font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.boss-card-scale {
  flex-shrink: 0;
  font-size: 12px; color: var(--text-muted);
  background: #F1F5F9;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
}
.boss-card-row3 {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 6px;
}
.boss-tag {
  font-size: 12px; color: var(--text-secondary);
  background: #F1F5F9;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.boss-card-row4 {
  font-size: 12px; color: var(--text-muted);
  margin-top: 2px;
}
.boss-card-publisher {
  display: flex; align-items: center; gap: 6px;
  min-width: 0;
}
.boss-publisher-avatar {
  width: 24px; height: 24px;
  border-radius: 50%;
  object-fit: cover;
  background: #E2E8F0;
  flex-shrink: 0;
}
.boss-publisher-name {
  font-size: 13px; color: var(--text-secondary);
  white-space: nowrap;
}
.boss-publisher-position {
  font-size: 12px; color: var(--text-muted);
  white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.boss-card-location {
  display: flex; align-items: center; gap: 3px;
  flex-shrink: 0;
  color: var(--text-muted);
}
.boss-card-location span {
  white-space: nowrap;
}

/* Boss 风格职位详情页 */
.boss-detail-card {
  padding: 24px;
}
.boss-detail-top {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}
.boss-detail-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 8px 0;
}
.boss-detail-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  margin: 0;
  line-height: 1.3;
  flex: 1;
  min-width: 0;
}
.boss-detail-salary {
  font-size: 18px;
  font-weight: 600;
  color: #F59E0B;
}
.boss-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 20px;
  font-size: 13px;
  color: var(--text-secondary);
}
.boss-detail-meta-item {
  display: flex; align-items: center; gap: 4px;
}
.boss-detail-publisher {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #F8FAFC;
  border-radius: var(--radius-sm);
  margin-bottom: 20px;
}
.boss-publisher-avatar-lg {
  width: 48px; height: 48px;
  border-radius: 50%;
  object-fit: cover;
  background: #E2E8F0;
  flex-shrink: 0;
}
.boss-publisher-info {
  min-width: 0;
}
.boss-publisher-name-lg {
  font-size: 15px; font-weight: 600;
  color: var(--text);
  margin-bottom: 2px;
}
.boss-publisher-position-lg {
  font-size: 13px; color: var(--text-secondary);
}
.boss-detail-section {
  margin-bottom: 20px;
}
.boss-detail-section h3 {
  font-size: 15px; font-weight: 600;
  color: var(--text);
  margin: 0 0 10px 0;
  padding-left: 10px;
  border-left: 3px solid var(--primary);
}
/* 未登录职位详情登录提示卡片 */
.boss-detail-login-tip {
  margin: 24px 0;
  padding: 32px 24px;
  background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%);
  border: 1px dashed #93C5FD;
  border-radius: 12px;
  text-align: center;
}
.boss-detail-login-tip .login-tip-icon {
  width: 64px; height: 64px;
  margin: 0 auto 12px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #2563EB;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.15);
}
.boss-detail-login-tip h3 {
  font-size: 16px; font-weight: 600;
  color: #1E40AF;
  margin: 0 0 8px 0;
  border: none; padding: 0;
}
.boss-detail-login-tip p {
  font-size: 13px;
  color: #475569;
  margin: 0 0 16px 0;
  line-height: 1.6;
}
.boss-detail-content {
  font-size: 14px; color: var(--text);
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-word;
}
.boss-detail-tags {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.boss-detail-map {
  width: 100%;
  height: 280px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #F1F5F9;
  margin-bottom: 8px;
}
.boss-detail-address {
  font-size: 13px; color: var(--text-secondary);
  display: flex; align-items: center; gap: 4px;
}
.boss-detail-footer {
  padding-top: 16px;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 10px;
}
.boss-detail-action {
  flex: 1;
}
.boss-contact-options-modal {
  position: relative;
  min-width: 360px;
  max-width: 90vw;
}
.boss-contact-tip {
  font-size: 13px; color: var(--text-muted);
  margin: 4px 0 16px 0;
}
.boss-contact-options {
  display: flex; flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}
.boss-contact-option {
  display: flex; flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
  color: var(--text);
  cursor: pointer;
  transition: all .2s;
  text-align: left;
}
.boss-contact-option:hover:not(:disabled) {
  border-color: var(--primary);
  background: var(--accent-light);
}
.boss-contact-option:disabled {
  opacity: 0.5; cursor: not-allowed;
}
.boss-contact-option-title {
  font-size: 15px; font-weight: 600;
  color: var(--text);
}
.boss-contact-option-desc {
  font-size: 12px; color: var(--text-muted);
}
.boss-contact-checkbox {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--text-secondary);
  cursor: pointer;
  padding: 8px 0;
}
.boss-contact-checkbox input {
  cursor: pointer;
}

/* ============================================================ 简历在线查看页（新标签页） */
.resume-view-page {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  padding: 32px 24px 80px;
  user-select: none;
  -webkit-user-select: none;
}
.resume-view-page * {
  -webkit-touch-callout: none;
}
.resume-view-watermark {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background-repeat: repeat;
  background-position: 0 0;
  pointer-events: none;
  z-index: 3;
}
.resume-view-header {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 16px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--border);
  position: relative; z-index: 2;
}
.resume-view-tip {
  font-size: 13px;
  color: var(--text-muted);
  display: inline-flex; align-items: center; gap: 4px;
}
.resume-view-error {
  text-align: center;
  padding: 60px 20px;
  position: relative; z-index: 2;
}
.resume-view-error-icon {
  color: var(--danger);
  margin-bottom: 12px;
}
.resume-view-error h3 {
  font-size: 16px;
  color: var(--text);
  margin-bottom: 16px;
}
.resume-view-content {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 32px;
  position: relative; z-index: 2;
  box-shadow: var(--shadow);
}
.resume-view-name {
  font-size: 26px; font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}
.resume-view-meta {
  display: flex; flex-wrap: wrap; gap: 6px 16px;
  font-size: 14px;
  color: var(--text-secondary);
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.resume-view-meta span {
  display: inline-flex; align-items: center; gap: 4px;
}
.resume-view-section {
  margin-bottom: 24px;
}
.resume-view-section h3 {
  font-size: 16px; font-weight: 600;
  color: var(--text);
  margin-bottom: 10px;
  padding-left: 10px;
  border-left: 3px solid var(--primary);
}
.resume-view-section p {
  font-size: 14px;
  color: var(--text);
  line-height: 1.7;
  margin: 0 0 4px;
}
.resume-view-text {
  font-size: 14px;
  color: var(--text);
  line-height: 1.8;
}
.resume-view-text h4 {
  font-size: 14px; font-weight: 600;
  color: var(--text-secondary);
  margin: 12px 0 8px;
}
.resume-view-item {
  padding: 10px 12px;
  background: var(--bg);
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
}
.resume-view-item-header {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 6px;
  margin-bottom: 4px;
  font-size: 13px;
  color: var(--text-secondary);
}
.resume-view-item p {
  font-size: 13px;
  line-height: 1.6;
}
.resume-view-contact {
  background: var(--accent-light);
  padding: 16px;
  border-radius: var(--radius-sm);
  border: 1px solid #BFDBFE;
}
.resume-view-contact p {
  display: flex; align-items: center; gap: 6px;
  font-size: 14px;
  color: var(--text);
  margin-bottom: 4px;
}
.resume-view-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px dashed var(--border);
  text-align: center;
}
.resume-view-footer p {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.resume-view-warn {
  color: var(--danger) !important;
  font-weight: 500;
}
/* 简历查看页 - 联系方式申请/购买按钮 */
.resume-view-contact-actions {
  margin-top: 20px;
  padding: 20px;
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  text-align: center;
}
.resume-view-contact-tip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 13px;
  color: #64748b;
}
.resume-view-contact-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.contact-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.contact-action-btn:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}
.contact-action-primary {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  color: #fff;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}
.contact-action-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(37, 99, 235, 0.35);
}
.contact-action-gold {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.25);
}
.contact-action-gold:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(245, 158, 11, 0.35);
}
.contact-action-disabled {
  background: #e2e8f0;
  color: #64748b;
  cursor: not-allowed;
}
/* 简历预览页 */
.page-resume-preview {
  max-width: 920px;
}
.resume-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px 16px;
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.resume-preview-completeness {
  flex: 1;
  text-align: center;
  font-size: 14px;
}
/* 简历文档主体 */
.rp-doc {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.rp-doc-header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 32px 36px;
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  color: #fff;
}
.rp-doc-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rp-doc-avatar i { color: #fff; }
.rp-doc-header-main {
  flex: 1;
  min-width: 0;
}
.rp-doc-name {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 8px;
  color: #fff;
}
.rp-doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  align-items: center;
}
.rp-doc-meta span {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.rp-doc-meta2 {
  display: flex;
  gap: 6px;
  font-size: 13px;
  color: rgba(255,255,255,0.75);
  margin-top: 6px;
}
.rp-doc-header-side {
  text-align: right;
  flex-shrink: 0;
}
.rp-doc-header-side p {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: rgba(255,255,255,0.9);
  margin-bottom: 4px;
  justify-content: flex-end;
}
.rp-doc-body {
  padding: 28px 36px 36px;
}
.rp-doc-block {
  display: flex;
  gap: 16px;
  margin-bottom: 28px;
}
.rp-doc-block:last-child { margin-bottom: 0; }
.rp-doc-block-bar {
  width: 4px;
  border-radius: 2px;
  background: linear-gradient(180deg, #2563eb 0%, #60a5fa 100%);
  flex-shrink: 0;
}
.rp-doc-block-content {
  flex: 1;
  min-width: 0;
}
.rp-doc-block-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 14px;
}
.rp-doc-text {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.8;
  white-space: pre-wrap;
}
/* 求职意向 */
.rp-doc-intentions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.rp-doc-intention-item {
  padding: 12px 16px;
  background: #f8fafc;
  border-radius: var(--radius-sm);
}
.rp-doc-tag-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}
.rp-doc-tag-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.rp-doc-tag-salary {
  font-size: 14px;
  font-weight: 600;
  color: #2563eb;
}
.rp-doc-tag-cities {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: var(--text-secondary);
}
/* 经历列表 */
.rp-doc-exp-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.rp-doc-exp-item {
  display: flex;
  gap: 14px;
}
.rp-doc-exp-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #2563eb;
  margin-top: 6px;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(37,99,235,0.12);
}
.rp-doc-exp-body {
  flex: 1;
  min-width: 0;
}
.rp-doc-exp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}
.rp-doc-exp-company {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
}
.rp-doc-exp-date {
  font-size: 13px;
  color: var(--text-muted);
  white-space: nowrap;
}
.rp-doc-exp-sub {
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}
/* 证书标签 */
.rp-doc-cert-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rp-doc-cert-tag {
  display: inline-block;
  padding: 6px 14px;
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 20px;
  font-size: 13px;
  color: #0369a1;
}
@media (max-width: 768px) {
  .rp-doc-header { flex-direction: column; text-align: center; padding: 24px 20px; }
  .rp-doc-header-side { text-align: center; }
  .rp-doc-header-side p { justify-content: center; }
  .rp-doc-body { padding: 20px 16px; }
  .resume-preview-toolbar { flex-wrap: wrap; }
  .rp-doc-exp-head { flex-direction: column; align-items: flex-start; gap: 2px; }
  /* 简历查看页移动端适配 */
  .resume-view-page { padding: 16px 12px 60px; }
  .resume-view-header { flex-wrap: wrap; gap: 8px; }
  .resume-view-tip { display: none; }
  .resume-view-contact-actions { padding: 16px 12px; }
  .resume-view-contact-btns { flex-direction: column; gap: 8px; }
  .contact-action-btn { width: 100%; }
}
/* 屏蔽企业-添加搜索区 */
.block-add-section {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 16px;
  margin-bottom: 16px;
}
.block-add-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 10px;
}
.block-add-search {
  display: flex;
  gap: 8px;
}
.block-add-search .form-input {
  flex: 1;
}
.block-search-results {
  margin-top: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  max-height: 240px;
  overflow-y: auto;
}
.block-search-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
}
.block-search-item:last-child { border-bottom: none; }
/* 职位详情页屏蔽按钮 */
.boss-detail-block-btn {
  margin-top: 8px;
  color: var(--text-secondary);
}
/* 会话详情头部屏蔽按钮 */
.detail-block-btn {
  white-space: nowrap;
  flex-shrink: 0;
}
/* 会话详情头部查看简历按钮 */
.detail-resume-btn {
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  font-size: 13px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.detail-resume-btn:hover {
  opacity: 0.9;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3);
}

/* ============================================================ 人才储备库页面 */
.talent-library-page {
  width: 100%;
}
.talent-tabs {
  display: flex; gap: 4px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}
.talent-tab {
  padding: 8px 16px;
  font-size: 14px;
  color: var(--text-secondary);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
}
.talent-tab:hover {
  color: var(--primary);
}
.talent-tab.active {
  color: var(--primary);
  border-bottom-color: var(--primary);
  font-weight: 500;
}

/* 统计卡片 */
.talent-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.talent-stat-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 18px;
  display: flex; flex-direction: column;
  gap: 4px;
  transition: all 0.2s;
}
.talent-stat-card:hover {
  border-color: #93C5FD;
  box-shadow: 0 4px 12px rgba(37,99,235,0.06);
}
.talent-stat-num {
  font-size: 24px; font-weight: 700;
  color: var(--primary);
  line-height: 1.2;
}
.talent-stat-label {
  font-size: 13px;
  color: var(--text-secondary);
}

/* 标签栏 */
.talent-tag-bar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 14px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.talent-tag-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
  align-items: center;
  flex: 1; min-width: 0;
}
.talent-tag-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 12px;
  font-size: 13px;
  color: var(--text-secondary);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: all 0.15s;
  user-select: none;
}
.talent-tag-chip:hover {
  border-color: var(--primary);
  color: var(--primary);
}
.talent-tag-chip.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.talent-tag-chip.active .talent-tag-dot {
  /* 颜色点在 active 时仍保留原色 */
}
.talent-tag-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.talent-tag-edit {
  display: inline-flex; align-items: center;
  margin-left: 2px;
  opacity: 0.55;
  cursor: pointer;
  transition: opacity 0.15s;
}
.talent-tag-edit:hover { opacity: 1; }

/* 新建标签按钮（白字+圆润） */
.talent-new-tag-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 16px;
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  background: var(--primary);
  border: none;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.talent-new-tag-btn:hover {
  background: var(--accent-dark);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
  transform: translateY(-1px);
}

/* 卡片上的标签 chip 区 */
.talent-card-tags {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 8px;
  align-items: center;
}
.talent-card-tag-chip {
  display: inline-flex; align-items: center;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  background: var(--primary);
  border: 1px solid var(--primary);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: all 0.15s;
  user-select: none;
}
.talent-card-tag-chip:hover {
  opacity: 0.85;
}
.talent-add-tag-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  background: var(--bg);
  border: 1px dashed var(--border);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: all 0.15s;
  margin-left: auto;
}
.talent-add-tag-btn:hover {
  color: var(--primary);
  border-color: var(--primary);
  border-style: solid;
  background: var(--accent-light);
}

/* 标签 popover 内容 */
.talent-popover-tags {
  padding: 4px 0;
}
.talent-popover-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 10px 0;
  padding: 0 4px;
}
.talent-popover-empty {
  font-size: 13px;
  color: var(--text-muted);
  text-align: center;
  padding: 16px 0;
}
.talent-popover-item {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  font-size: 13px;
  color: var(--text);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.15s;
}
.talent-popover-item:hover {
  background: var(--bg);
}
.talent-popover-item.active {
  color: var(--primary);
  background: var(--accent-light);
  font-weight: 500;
}
.talent-popover-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.talent-popover-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 批量操作栏 */
.talent-batch-bar {
  display: flex; align-items: center; gap: 12px;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: var(--radius);
  padding: 14px 20px;
  margin-bottom: 12px;
}
.talent-batch-info {
  font-size: 14px; font-weight: 600;
  color: var(--primary);
  margin-right: auto;
}
.talent-batch-bar .btn-sm {
  padding: 8px 18px;
  font-size: 14px;
}

/* 列表表头 */
.talent-list-header {
  display: grid;
  grid-template-columns: 40px 1fr 120px 110px;
  gap: 16px;
  padding: 14px 22px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-bottom: none;
  border-radius: var(--radius) var(--radius) 0 0;
  font-size: 14px;
  color: var(--text-secondary);
  font-weight: 500;
  align-items: center;
}
.talent-list-header .talent-check {
  justify-content: center;
  white-space: nowrap;
}
.talent-list-header .talent-col-name {
  text-align: left;
}
.talent-list-header .talent-col-meta,
.talent-list-header .talent-col-actions {
  text-align: center;
  justify-self: center;
}
.talent-check {
  display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer;
  user-select: none;
  font-size: 13px;
  color: var(--text-secondary);
  white-space: nowrap;
}
.talent-check input { cursor: pointer; }
.talent-col-name {
  font-weight: 500;
  color: var(--text-secondary);
}
.talent-col-meta {
  color: var(--text-secondary);
  font-size: 13px;
  white-space: nowrap;
  text-align: center;
}
.talent-col-actions {
  text-align: center;
}

/* 人才卡片：覆盖 .seeker-card 的 flex，改用 grid 与表头对齐 */
.talent-card {
  display: grid;
  grid-template-columns: 40px 1fr 120px 110px;
  gap: 16px;
  align-items: center;
  padding: 18px 22px;
  border-radius: 0;
  border-top: none;
}
.talent-card:first-of-type {
  border-top: 1px solid var(--border);
  border-radius: var(--radius) var(--radius) 0 0;
}
.talent-card:last-of-type {
  border-radius: 0 0 var(--radius) var(--radius);
}
.talent-card .talent-check {
  align-self: center;
  justify-content: center;
}
.talent-card-main {
  min-width: 0;
}
.talent-card-main .seeker-header {
  margin-bottom: 6px;
}
.talent-tags {
  display: flex; flex-wrap: wrap; gap: 4px;
  margin-top: 4px;
}
.talent-tags .el-tag {
  border: none;
  font-size: 13px;
  height: 24px; line-height: 22px;
  padding: 0 10px;
  border-radius: var(--radius-pill);
}
.talent-tags-empty {
  margin-top: 4px;
}
.talent-card .talent-col-meta {
  font-size: 13px;
  color: var(--text-secondary);
  min-width: 0;
  text-align: center;
  justify-self: center;
}
.talent-card .talent-col-meta div {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-card .talent-col-actions {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  justify-self: center;
}
.talent-menu-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 6px;
}
/* 操作按钮：蓝底白字（去掉 plain 的浅色效果） */
.talent-card .talent-col-actions .el-button--primary {
  color: #fff;
}

/* 人才卡片操作按钮组 */
.talent-action-group {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.talent-action-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.talent-action-btn:hover {
  color: var(--primary);
  border-color: var(--primary);
  background: var(--accent-light);
}
.talent-action-btn.talent-action-primary {
  color: #fff;
  background: var(--primary);
  border-color: var(--primary);
}
.talent-action-btn.talent-action-primary:hover {
  background: var(--accent-dark);
  border-color: var(--accent-dark);
  color: #fff;
}
.talent-action-btn.talent-action-more {
  padding: 6px 10px;
}
.talent-action-btn.talent-action-more:hover {
  color: var(--primary);
  border-color: var(--primary);
  background: var(--accent-light);
}

/* 人才卡片姓名链接（点击查看简历） */
.seeker-name-link {
  cursor: pointer;
  color: var(--text);
  font-weight: 600;
  transition: color 0.15s;
}
.seeker-name-link:hover {
  color: var(--primary);
  text-decoration: underline;
}

/* 分页 */
.talent-pagination {
  display: flex; justify-content: center;
  margin-top: 16px;
}

/* ============================================================ 资质认证多步流程 */
.cert-steps {
  display: flex; align-items: center;
  margin-bottom: 24px;
  padding: 16px 8px;
}
.cert-step {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  cursor: pointer; user-select: none;
  flex-shrink: 0;
}
.cert-step-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600;
  background: var(--bg);
  border: 2px solid var(--border);
  color: var(--text-muted);
  transition: all 0.2s;
}
.cert-step-label {
  font-size: 12px;
  color: var(--text-muted);
  white-space: nowrap;
}
.cert-step.active .cert-step-num {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.cert-step.active .cert-step-label {
  color: var(--primary);
  font-weight: 600;
}
.cert-step.done .cert-step-num {
  background: var(--success);
  border-color: var(--success);
  color: #fff;
}
.cert-step.done .cert-step-label {
  color: var(--success);
}
.cert-step-line {
  flex: 1; height: 2px;
  background: var(--border);
  margin: 0 8px;
  margin-bottom: 20px;
  transition: background 0.2s;
}
.cert-step-line.done {
  background: var(--success);
}
.cert-step-panel {
  padding: 20px;
  background: var(--bg);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}
.cert-step-title {
  font-size: 15px; font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
}
.cert-step-desc {
  font-size: 12px; color: var(--text-muted);
  margin-bottom: 16px;
}
.cert-upload-row {
  display: flex; align-items: center; gap: 12px;
  flex-wrap: wrap;
}
.cert-file-input {
  font-size: 13px; flex: 1; min-width: 200px;
}
.cert-uploaded-info {
  display: flex; align-items: center; gap: 12px;
  margin-top: 16px;
  padding: 12px;
  background: var(--card);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.cert-thumb {
  width: 64px; height: 64px;
  object-fit: cover;
  border-radius: 6px;
  border: 1px solid var(--border);
  flex-shrink: 0;
}
.cert-uploaded-text p {
  font-size: 13px; color: var(--text);
  margin: 0;
}
.cert-uploaded-hint {
  font-size: 12px !important;
  color: var(--text-muted) !important;
  margin-top: 4px !important;
}
.cert-form-grid {
  display: grid; grid-template-columns: 1fr; gap: 14px;
  margin-top: 16px;
}
.cert-label {
  display: block; font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}
.cert-input {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 13px;
  box-sizing: border-box;
}
.cert-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
.cert-warn-box {
  margin-top: 12px;
  padding: 10px 14px;
  background: #FEF2F2;
  border: 1px solid #FECACA;
  border-radius: 6px;
  color: #DC2626;
  font-size: 13px;
}
.cert-step-nav {
  display: flex; justify-content: space-between;
  margin-top: 20px;
  gap: 12px;
}
.cert-step-nav .btn + .btn { margin-left: 0; }
.cert-submit-area {
  margin-top: 20px;
  padding: 16px;
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  border-radius: 8px;
}
.cert-submit-tip {
  font-size: 13px; color: var(--primary);
  text-align: center;
  margin-bottom: 12px;
}

/* 移动端适配 */
@media (max-width: 767px) {
  .boss-card { padding: 14px; }
  .boss-card-title { font-size: 15px; }
  .boss-card-salary { font-size: 14px; }
  .boss-detail-card { padding: 16px; }
  .boss-detail-title { font-size: 18px; }
  .boss-detail-salary { font-size: 16px; }
  .boss-detail-meta { gap: 10px; font-size: 12px; }
  .boss-detail-map { height: 200px; }
  .boss-contact-options-modal { min-width: 280px; }
  .message-toolbar { flex-wrap: wrap; gap: 6px; }
}

/* ============================================================
   会话工具栏（投递简历/交换联系方式/拒绝）
   ============================================================ */
.message-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--border);
  background: #FAFBFC;
  flex-wrap: wrap;
}
.message-toolbar .btn {
  font-size: 12px;
  padding: 4px 10px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.message-toolbar .btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
/* 工具栏按钮加大样式 */
.message-toolbar .toolbar-btn {
  font-size: 14px;
  padding: 10px 20px;
  border-radius: 10px;
  font-weight: 500;
  border: 1px solid transparent;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  line-height: 1.2;
}
.message-toolbar .toolbar-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.message-toolbar .toolbar-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
/* 主操作按钮（投递简历 / 交换联系方式） */
.message-toolbar .toolbar-btn-primary {
  background: #fff;
  color: var(--primary, #2C7BE5);
  border-color: var(--primary, #2C7BE5);
}
.message-toolbar .toolbar-btn-primary:hover:not(:disabled) {
  background: var(--primary, #2C7BE5);
  color: #fff;
  border-color: var(--primary, #2C7BE5);
}
.message-toolbar .toolbar-btn-primary:disabled {
  background: #F5F7FA;
  color: #909399;
  border-color: #DCDFE6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
/* 拒绝按钮：醒目的红色描边 */
.message-toolbar .toolbar-btn-reject {
  background: #fff;
  color: #e74c3c;
  border-color: #e74c3c;
}
.message-toolbar .toolbar-btn-reject:hover {
  background: #e74c3c;
  color: #fff;
  border-color: #e74c3c;
}

/* 姓名展示设置（隐私保护弹窗内） */
.privacy-item-block {
  flex-direction: column;
  align-items: stretch !important;
  gap: 8px;
}
.privacy-form-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.privacy-select {
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  background: var(--card);
  outline: none;
  min-width: 140px;
}
.privacy-select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}

/* 标签输入（职位发布表单） */
.tag-input-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding: 6px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--card);
  min-height: 40px;
}
.tag-input-wrap:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}
.tag-input-wrap .tag-input {
  flex: 1;
  min-width: 120px;
  border: none;
  background: transparent;
  padding: 4px 6px;
  box-shadow: none;
  height: auto;
}
.tag-input-wrap .tag-input:focus {
  box-shadow: none;
}
.tag-removable {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--accent-light);
  color: var(--primary);
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  font-size: 12px;
}
.tag-remove {
  border: none;
  background: transparent;
  color: var(--primary);
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 0;
  margin: 0;
}
.tag-remove:hover {
  color: var(--danger);
}

/* ============================================================ 账号设置页 */
.page-account-settings {
  max-width: 720px;
  margin: 0 auto;
}
.page-account-settings .form-card {
  margin-top: 0;
  margin-bottom: 20px;
}
.account-avatar-row {
  display: flex;
  align-items: center;
  gap: 20px;
}
.account-avatar {
  flex-shrink: 0;
}
.account-avatar .avatar-img.avatar-lg,
.account-avatar .avatar.avatar-lg {
  width: 72px;
  height: 72px;
  font-size: 26px;
  border-radius: 50%;
  object-fit: cover;
  background: linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%);
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.18);
}
.account-avatar-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.account-avatar-actions .btn {
  margin-bottom: 2px;
}

/* ============================================================
   广告位组件 AdBanner
   ============================================================ */
.ad-banner {
  position: relative;
  width: 100%;
  margin: 12px 0;
  border-radius: 8px;
  overflow: hidden;
  background: #f5f5f5;
}
.ad-banner-link {
  display: block;
  width: 100%;
  text-decoration: none;
}
.ad-banner-no-link {
  cursor: default;
}
.ad-banner-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 90px;
  object-fit: cover;
  border-radius: 8px;
}
.ad-banner-platform {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 10px 12px;
  border-radius: 8px;
  background: linear-gradient(135deg, #f0f7ff 0%, #e8f4ff 100%);
  color: #666;
  font-size: 14px;
}
.ad-banner-platform-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: var(--primary, #2563eb);
}
.ad-banner-baidu .ad-banner-platform-tag {
  background: #2932e1;
}
.ad-banner-gdt .ad-banner-platform-tag {
  background: #00a0e9;
}
.ad-banner-platform-id {
  font-family: monospace;
  font-size: 12px;
  color: #999;
}
/* 第三方 SDK 失败时的占位标签/ID */
.ad-sdk-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: #999;
}
.ad-sdk-id {
  font-family: monospace;
  font-size: 12px;
  color: #999;
}
.ad-banner-dots {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 2;
}
.ad-banner-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: background 0.2s;
}
.ad-banner-dot.active {
  background: var(--primary, #2563eb);
}

.ad-banner {
  position: relative;
}
/* 高流量横幅：顶部/底部视窗悬浮（居中，宽度与页面主区域一致） */
.ad-banner-fixed-top,
.ad-banner-fixed-bottom {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: var(--max-width);
  z-index: 999;
  margin: 0;
  border-radius: 0;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}
.ad-banner-fixed-top {
  top: var(--header-height, 64px);
}
.ad-banner-fixed-bottom {
  bottom: 0;
  box-shadow: 0 -2px 8px rgba(15, 23, 42, 0.08);
}
/* 职位详情右侧悬浮广告位 */
.ad-banner-fixed-right {
  position: fixed;
  top: calc(var(--header-height, 64px) + 20px);
  right: 16px;
  width: 160px;
  height: 600px;
  z-index: 999;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}
.ad-banner-fixed-right .ad-banner-track,
.ad-banner-fixed-right .ad-banner-link,
.ad-banner-fixed-right .ad-banner-no-link {
  height: 100%;
}
.ad-banner-fixed-right .ad-banner-img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  border-radius: 8px;
}
.ad-banner-fixed-right .ad-banner-platform {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 10px;
}
/* 固定横幅内的图片高度限制，避免遮挡过多内容 */
.ad-banner-fixed-top .ad-banner-img,
.ad-banner-fixed-bottom .ad-banner-img {
  max-height: 80px;
}
.ad-banner-fixed-top .ad-banner-platform,
.ad-banner-fixed-bottom .ad-banner-platform {
  min-height: 40px;
  padding: 8px 12px;
}
/* 顶部/底部固定横幅内容限宽居中，避免桌面端 20:3 比例过高 */
.ad-banner-fixed-top .ad-banner-track,
.ad-banner-fixed-bottom .ad-banner-track {
  max-width: 728px;
  margin: 0 auto;
}
/* 管理中心横幅 / 个人中心卡片：统一尺寸，兼容自建/百度，避免偏大 */
.ad-banner.ad-slot-company_center_banner .ad-banner-track,
.ad-banner.ad-slot-seeker_center_card .ad-banner-track {
  max-width: 728px;
  margin: 0 auto;
}
.ad-banner.ad-slot-company_center_banner .ad-banner-img,
.ad-banner.ad-slot-seeker_center_card .ad-banner-img {
  max-height: 90px;
}
.ad-banner.ad-slot-company_center_banner .ad-banner-platform,
.ad-banner.ad-slot-seeker_center_card .ad-banner-platform {
  min-height: 40px;
  padding: 8px 12px;
}
@media (max-width: 1200px) {
  .ad-banner-fixed-right { display: none; }
}
@media (max-width: 768px) {
  .ad-banner-fixed-top { top: var(--header-height-mobile, 56px); }
  .ad-banner-fixed-top .ad-banner-img,
  .ad-banner-fixed-bottom .ad-banner-img { max-height: 64px; }
}

/* 广告角标（左上角） */
.ad-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 10;
  font-size: 11px;
  line-height: 1;
  padding: 3px 6px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  pointer-events: none;
}

/* 广告关闭按钮（右上角） */
.ad-close-btn {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 11;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.ad-close-btn:hover {
  background: rgba(0, 0, 0, 0.7);
}
.ad-close-btn > i {
  display: inline-flex;
  pointer-events: none;
}

/* 信息流广告
   固定高度横幅：整行铺开，高固定 120px（明显矮于人才/职位卡片 150~220px，不抢视觉）。
   图片用 object-fit:cover 裁切填充，与比例无关，任意原图都不会把占位撑高。 */
.ad-feed-item {
  position: relative;
  width: 100%;
  height: 120px;
  margin: 0 auto;
  border-radius: 12px;
  border: 1px dashed var(--border, #e5e7eb);
  background: #fafafa;
  overflow: hidden;
  transition: box-shadow 0.2s;
}
.ad-feed-item:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}
.ad-feed-link {
  display: block;
  width: 100%;
  height: 100%;
}
.ad-feed-no-link {
  cursor: default;
}
.ad-feed-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ad-feed-platform {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  overflow: hidden;
  gap: 8px;
  color: var(--text-muted);
  font-size: 13px;
}
.ad-feed-platform-tag {
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 11px;
  color: #fff;
  background: #999;
}
.ad-feed-baidu .ad-feed-platform-tag { background: #2932e1; }
.ad-feed-gdt .ad-feed-platform-tag { background: #00a0e9; }
.ad-feed-platform-id {
  font-family: monospace;
  color: var(--text-muted);
}

/* 双列布局中，信息流广告占满整行 */
.job-list > .ad-feed-item,
.preview-section .job-list > .ad-feed-item {
  grid-column: 1 / -1;
}

@media (max-width: 768px) {
  .ad-banner-img {
    max-height: 76px;
  }
  .ad-banner-platform {
    min-height: 48px;
    font-size: 12px;
  }
}

/* ============================================================
   举报模块样式
   ============================================================ */

/* 职位详情页收藏按钮（放在举报按钮右侧） */
.boss-detail-fav-btn {
  white-space: nowrap;
  flex-shrink: 0;
}
.boss-detail-fav-btn.active {
  color: #F59E0B;
  border-color: #F59E0B;
  background: #FFFBEB;
}
.boss-detail-fav-btn.active:hover {
  color: #D97706;
  border-color: #D97706;
  background: #FEF3C7;
}

/* 职位详情页举报按钮 */
.boss-detail-report-btn {
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  font-size: 13px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.boss-detail-report-btn:hover {
  color: #ef4444;
  border-color: #ef4444;
  background: #fef2f2;
}

/* 会话详情头部举报按钮 */
.detail-report-btn {
  white-space: nowrap;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  font-size: 13px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.detail-report-btn:hover {
  color: #ef4444;
  border-color: #ef4444;
  background: #fef2f2;
}

/* 举报弹窗 */
.report-modal {
  max-width: 520px;
  width: 90vw;
}
.report-modal h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 16px;
}

/* 举报类型列表（单列）*/
.report-type-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
/* 兼容旧样式 report-type-grid */
.report-type-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.report-type-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 14px;
  color: var(--text);
  transition: all 0.15s;
  user-select: none;
}
.report-type-item:hover {
  border-color: var(--primary);
  background: var(--accent-light);
}
.report-type-item input[type="radio"] {
  cursor: pointer;
  accent-color: var(--primary);
}
.report-type-item:has(input:checked) {
  border-color: var(--primary);
  background: var(--accent-light);
  font-weight: 500;
}

/* 举报描述文本域 */
.report-textarea {
  width: 100%;
  min-height: 100px;
  resize: vertical;
  margin-bottom: 16px;
}

/* 举报文件上传区 */
.report-file-area {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: 13px;
}
.report-file-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.report-file-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  max-width: 200px;
}
.report-file-thumb {
  width: 32px;
  height: 32px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}
.report-file-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--accent-light);
  color: var(--primary);
  border-radius: 4px;
  flex-shrink: 0;
}
.report-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 120px;
}
.report-file-remove {
  border: none;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  padding: 2px;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.report-file-remove:hover {
  color: var(--danger);
}

/* 举报证据上传槽位（3个独立选框）*/
.report-file-slots {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin-bottom: 16px;
}
.report-file-slot {
  width: 100%;
}
.report-file-slot .report-file-item {
  max-width: 100%;
}
.report-file-pick {
  width: 100%;
  justify-content: center;
  cursor: pointer;
  padding: 8px 12px;
  border-style: dashed;
}

/* 举报操作按钮区 */
.report-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 8px;
}

/* 菜单红点徽标 */
.menu-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: #ef4444;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.3);
}

/* 筛选标签条 */
.filter-bar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.filter-chip {
  padding: 6px 16px;
  font-size: 13px;
  color: var(--text-secondary);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: all 0.15s;
  user-select: none;
}
.filter-chip:hover {
  border-color: var(--primary);
  color: var(--primary);
}
.filter-chip-active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}

/* 举报列表 */
.report-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 举报卡片 */
.report-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 20px;
  cursor: pointer;
  transition: all 0.15s;
}
.report-card:hover {
  border-color: #93c5fd;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.06);
}
.report-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.report-type-tag {
  display: inline-block;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 500;
  color: var(--primary);
  background: var(--accent-light);
  border-radius: var(--radius-pill);
}
.report-status {
  font-size: 13px;
  font-weight: 500;
}
.report-card-body {
  margin-bottom: 8px;
}
.report-card-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.report-card-desc {
  font-size: 14px;
  color: var(--text);
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.report-appeal-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 12px;
  color: #22c55e;
}
.report-punish {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 12px;
  color: #ef4444;
}
.report-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.report-time {
  font-size: 12px;
  color: var(--text-muted);
}

/* 举报详情弹窗 */
.report-detail-modal {
  max-width: 640px;
  width: 90vw;
  max-height: 85vh;
  overflow-y: auto;
}
.report-detail-modal h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 20px;
}
.report-detail-section {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.report-detail-section:last-child {
  border-bottom: none;
}
.report-detail-section .label {
  font-size: 13px;
  color: var(--text-secondary);
  font-weight: 500;
  margin-bottom: 6px;
}
.report-detail-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 8px;
}
.report-detail-row .label {
  flex-shrink: 0;
  width: 90px;
  font-size: 13px;
  color: var(--text-secondary);
}
.report-detail-row .value {
  font-size: 14px;
  color: var(--text);
}
.report-detail-desc {
  font-size: 14px;
  color: var(--text);
  line-height: 1.6;
  margin: 4px 0 0 0;
}
.report-evidence-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.report-evidence-item a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  color: var(--primary);
  text-decoration: none;
  transition: all 0.15s;
}
.report-evidence-item a:hover {
  border-color: var(--primary);
  background: var(--accent-light);
}
.report-detail-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

/* 会话证据弹窗 */
.report-conv-modal {
  max-width: 600px;
  width: 90vw;
  max-height: 80vh;
  overflow-y: auto;
}
.conv-evidence-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 16px;
}
.conv-evidence-msg {
  padding: 12px 16px;
  background: var(--bg);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.conv-evidence-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 12px;
}
.conv-evidence-side {
  font-weight: 600;
  color: var(--primary);
}
.conv-evidence-type {
  padding: 1px 8px;
  background: var(--accent-light);
  border-radius: var(--radius-pill);
  color: var(--primary);
}
.conv-evidence-time {
  color: var(--text-muted);
  margin-left: auto;
}
.conv-evidence-content {
  font-size: 14px;
  color: var(--text);
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

/* 举报强提醒弹窗 */
.report-alert-modal {
  max-width: 420px;
  width: 90vw;
}
.report-alert-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  background: #fef2f2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ef4444;
}
.report-alert-text {
  text-align: center;
  font-size: 15px;
  color: var(--text);
  margin-bottom: 20px;
  line-height: 1.6;
}
.report-alert-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
}

@media (max-width: 768px) {
  .report-type-grid {
    grid-template-columns: 1fr;
  }
  .report-detail-row {
    flex-direction: column;
    gap: 4px;
  }
  .report-detail-row .label {
    width: auto;
  }
}

/* ============================================================
   关于我们页
   ============================================================ */
.about-page {
  min-height: calc(100vh - 64px);
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  padding: 32px 16px 64px;
}
.about-container {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 32px rgba(15,23,42,0.08);
  overflow: hidden;
  position: relative;
}
.about-back-btn {
  position: absolute;
  top: 20px; left: 20px;
  z-index: 2;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: rgba(255,255,255,0.9);
  color: #475569;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s;
}
.about-back-btn:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #1e293b;
}

/* 封面区 */
.about-hero {
  background: linear-gradient(135deg, #1E40AF 0%, #2563EB 60%, #3B82F6 100%);
  padding: 64px 48px 48px;
  text-align: center;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.about-hero::before {
  content: ''; position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 50% 30%, rgba(255,255,255,0.10) 0%, transparent 70%);
}
.about-brand {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 24px;
  position: relative; z-index: 1;
}
.about-brand-icon {
  width: 60px; height: 60px;
  background: rgba(255,255,255,0.2);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; font-weight: 800;
}
.about-brand-text {
  font-size: 40px; font-weight: 800;
  letter-spacing: 0.04em;
  text-shadow: 0 2px 16px rgba(0,0,0,0.2);
}
.about-title {
  font-size: 38px; font-weight: 800;
  margin: 0 0 20px;
  line-height: 1.5;
  position: relative; z-index: 1;
}
.about-intro {
  font-size: 18px;
  margin: 0 0 12px;
  position: relative; z-index: 1;
}
.about-intro-sub {
  font-size: 15px;
  line-height: 1.8;
  color: rgba(255,255,255,0.85);
  margin: 0;
  position: relative; z-index: 1;
}

/* 正文 */
.about-body {
  padding: 48px 48px 56px;
}
.about-lead {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1e293b !important;
  margin-bottom: 20px !important;
}
.about-section {
  margin-bottom: 48px;
}
.about-section:last-of-type {
  margin-bottom: 40px;
}
.about-section-title {
  font-size: 24px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 24px;
  padding-left: 16px;
  border-left: 4px solid #2563EB;
  line-height: 1.4;
}
.about-body p {
  font-size: 16px;
  line-height: 2;
  color: #334155;
  margin: 0 0 16px;
}
.about-body p strong {
  color: #1e293b;
  font-weight: 600;
}
.about-highlight {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #1E40AF !important;
  padding: 12px 20px;
  background: #eff6ff;
  border-radius: 8px;
  border-left: 3px solid #2563EB;
  margin: 20px 0 !important;
}

/* 引言区块 */
.about-quote {
  margin: 40px 0;
  padding: 32px 40px;
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border-radius: 12px;
  border-left: 4px solid #6366f1;
  position: relative;
}
.about-quote::before {
  content: '"';
  position: absolute;
  top: 0; left: 16px;
  font-size: 72px;
  font-family: Georgia, serif;
  color: #c7d2fe;
  line-height: 1;
}
.about-quote-text {
  font-size: 18px !important;
  line-height: 1.8 !important;
  color: #475569 !important;
  font-style: italic;
  margin: 0 0 12px !important;
  padding-left: 32px;
}
.about-quote-author {
  font-size: 14px !important;
  color: #94a3b8 !important;
  margin: 0 !important;
  text-align: right;
}

/* 结尾区 */
.about-closing {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid #e2e8f0;
  text-align: center;
}
.about-closing p {
  color: #475569 !important;
}
.about-closing-final {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1E40AF !important;
  margin-top: 20px !important;
}

/* 首页文章链接 */
.hero-article-link {
  margin-top: 20px;
  text-align: right;
}
.hero-article-link a {
  font-size: 14px;
  color: rgba(255,255,255,0.8);
  text-decoration: none;
  border-bottom: 1px dashed rgba(255,255,255,0.4);
  padding-bottom: 2px;
  transition: all 0.2s;
}
.hero-article-link a:hover {
  color: #fff;
  border-bottom-color: rgba(255,255,255,0.8);
}
/* 登录页左侧 hero 文章链接（距 slogan 下方空4行） */
.login-hero-link {
  margin-top: 96px;
  text-align: right;
}
.login-hero-link a {
  font-size: 14px;
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  border-bottom: 1px dashed rgba(255,255,255,0.4);
  padding-bottom: 2px;
  transition: all 0.2s;
}
.login-hero-link a:hover {
  color: #fff;
  border-bottom-color: rgba(255,255,255,0.8);
}

/* 移动端 */
@media (max-width: 768px) {
  .about-hero { padding: 48px 24px 32px; }
  .about-body { padding: 32px 20px 40px; }
  .about-title { font-size: 26px; }
  .about-brand-text { font-size: 30px; }
  .about-brand-icon { width: 46px; height: 46px; font-size: 20px; }
  .about-intro { font-size: 15px; }
  .about-intro-sub { font-size: 13px; }
  .about-section-title { font-size: 19px; }
  .about-body p { font-size: 15px; line-height: 1.9; }
  .about-lead { font-size: 16px !important; }
  .about-highlight { font-size: 15px !important; padding: 10px 14px; }
  .about-quote { padding: 24px 20px; }
  .about-quote-text { font-size: 16px !important; padding-left: 24px; }
  .about-quote::before { font-size: 56px; left: 8px; }
  .about-closing-final { font-size: 16px !important; }
  .login-hero-link { text-align: right; margin-top: 48px; }
}


/* ========== ���浯�� ========== */
.announcement-body {
  max-height: 60vh;
  overflow-y: auto;
  line-height: 1.8;
  font-size: 14px;
  color: #303133;
  word-break: break-word;
}
.announcement-body img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
  margin: 8px auto;
}
.announcement-body a {
  color: #2563eb;
  text-decoration: underline;
}
.announcement-body h1, .announcement-body h2, .announcement-body h3 {
  margin: 12px 0 8px;
  line-height: 1.4;
}
.announcement-body p { margin: 6px 0; }
.announcement-body ul, .announcement-body ol { padding-left: 22px; margin: 6px 0; }
.announcement-body blockquote {
  border-left: 3px solid #d0d7de;
  padding-left: 12px;
  color: #57606a;
  margin: 8px 0;
}
.announcement-body code {
  background: #f6f8fa;
  padding: 2px 5px;
  border-radius: 4px;
  font-size: 13px;
}
.announcement-body pre {
  background: #f6f8fa;
  padding: 12px;
  border-radius: 6px;
  overflow-x: auto;
}
.announcement-body table {
  border-collapse: collapse;
  width: 100%;
  margin: 8px 0;
}
.announcement-body th, .announcement-body td {
  border: 1px solid #e5e7eb;
  padding: 6px 10px;
}


/* ============================================================
   Account page (paid module): amount tier / pay channel / record tabs
   ============================================================ */
.mini-tab {
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all 0.2s;
}
.mini-tab:hover { color: var(--primary); }
.mini-tab-active {
  color: var(--primary);
  border-bottom-color: var(--primary);
  font-weight: 600;
}
.amount-btn {
  min-width: 96px;
  padding: 12px 18px;
  font-size: 15px;
  font-weight: 600;
  color: var(--text-secondary);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: all 0.2s;
}
.amount-btn:hover { border-color: #93C5FD; color: var(--primary); }
.amount-btn-active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}
.pay-btn {
  min-width: 88px;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: all 0.2s;
}
.pay-btn:hover { border-color: #93C5FD; color: var(--primary); }
.pay-btn-active {
  background: var(--accent-light);
  border-color: var(--primary);
  color: var(--primary);
  font-weight: 600;
}


/* ============================================================
   忘记密码页（免登录三步式：验证账号 -> 短信验证 -> 设置新密码）
   ============================================================ */
.forgot-steps {
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 26px;
}
.forgot-step { display: flex; align-items: center; gap: 8px; }
.forgot-step-num {
  width: 26px; height: 26px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600; flex-shrink: 0;
  background: var(--bg); color: var(--text-secondary);
  border: 1px solid var(--border);
  transition: all 0.2s;
}
.forgot-step-label { font-size: 13px; color: var(--text-secondary); white-space: nowrap; }
.forgot-step.current .forgot-step-num {
  background: var(--primary); border-color: var(--primary); color: #fff;
}
.forgot-step.current .forgot-step-label { color: var(--primary); font-weight: 600; }
.forgot-step.done .forgot-step-num {
  background: var(--accent-light); border-color: var(--primary); color: var(--primary);
}
.forgot-step-line {
  width: 32px; height: 2px; background: var(--border); margin: 0 10px;
}
.forgot-step-line.done { background: var(--primary); }
.forgot-actions { display: flex; gap: 12px; }
.forgot-actions .btn { flex: 1; }
.forgot-tip {
  font-size: 12px; color: var(--text-secondary);
  line-height: 1.7; margin-top: 10px;
}
.forgot-phone-mask {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; background: var(--bg);
  border-radius: var(--radius-sm); font-size: 14px;
  color: var(--text-secondary); margin-bottom: 18px;
}
.forgot-phone-mask .phone { font-weight: 600; color: var(--text); letter-spacing: 1px; }
.forgot-success { text-align: center; padding: 40px 0 8px; }
.forgot-success-icon {
  width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 16px;
  display: flex; align-items: center; justify-content: center;
  background: #ECFDF5; color: #059669;
}
@media (max-width: 768px) {
  .forgot-step-label { display: none; }
  .forgot-step-line { width: 20px; margin: 0 6px; }
}
