/* public/css/style.css - Offer引力网站样式 */
:root {
  --primary: #4F6BFF;
  --primary-dark: #3B52E0;
  --accent: #7B5CFF;
  --gradient: linear-gradient(135deg, #4F6BFF 0%, #7B5CFF 100%);
  --gradient-soft: linear-gradient(135deg, #6C86FF 0%, #9B7BFF 100%);
  --text: #1A1A2E;
  --text-light: #666;
  --text-muted: #999;
  --bg: #F5F6FA;
  --card: #ffffff;
  --border: #F0F2F8;
  --radius: 20px;
  --shadow-sm: 0 2px 8px rgba(23, 43, 99, 0.06);
  --shadow-md: 0 6px 24px rgba(23, 43, 99, 0.08);
  --shadow-lg: 0 14px 40px rgba(23, 43, 99, 0.12);
  --shadow-primary: 0 8px 24px rgba(79, 107, 255, 0.28);
  --ring: 0 0 0 3px rgba(79, 107, 255, 0.16);
}

/* 平滑滚动（v120：已移除全局 html{scroll-behavior:smooth} —— 夸克/UC 系浏览器
   自带的滚轮平滑层会与该规则打架，滚动上滑时整页 ±20px 回弹抖动；
   站内需要动画的滚动均在 JS 里显式传 behavior:'smooth'，不受影响） */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif);
  font-variant-numeric: tabular-nums;
  background:
    radial-gradient(1200px 500px at 85% -100px, rgba(123, 92, 255, 0.06), transparent 60%),
    radial-gradient(900px 420px at -5% 10%, rgba(79, 107, 255, 0.05), transparent 55%),
    var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* 顶部导航 */
.navbar {
  background: rgba(255,255,255,0.82);
  backdrop-filter: saturate(180%) blur(16px);
  -webkit-backdrop-filter: saturate(180%) blur(16px);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 12px rgba(23,43,99,0.04);
}
.nav-inner {
  max-width: 1600px;
  margin: 0 auto;
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
}
.logo-mark {
  height: 40px;
  width: auto;
  display: block;
}
.logo-text {
  background: var(--gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.nav-links {
  display: flex;
  gap: 24px;
}
.nav-link {
  color: var(--text-light);
  text-decoration: none;
  font-size: 15px;
  transition: color 0.2s;
}
.nav-link:hover {
  color: var(--primary);
}

/* 校园学习工具下拉菜单 */
.nav-dropdown {
  position: relative;
}
.nav-dropdown-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  padding: 0;
}
.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 180px;
  background: var(--card-bg, #fff);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  padding: 6px;
  z-index: 100;
}
.nav-dropdown-item {
  display: block;
  padding: 10px 14px;
  font-size: 14px;
  color: var(--text);
  cursor: pointer;
  border-radius: 6px;
  white-space: nowrap;
}
.nav-dropdown-item:hover {
  background: #F0F3FF;
  color: var(--primary);
}

/* 页面切换 */
.page {
  display: none;
}
.page.active {
  display: block;
}

/* 品牌区 */
.hero {
  background: linear-gradient(135deg, #4F6BFF 0%, #6C5CFF 55%, #7B5CFF 100%);
  color: #fff;
  padding: 84px 24px 104px;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  top: -140px;
  right: -120px;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%);
  border-radius: 50%;
  animation: heroFloat 8s ease-in-out infinite;
}
.hero::after {
  content: '';
  position: absolute;
  bottom: -100px;
  left: -90px;
  width: 360px;
  height: 360px;
  background: radial-gradient(circle, rgba(255,255,255,0.12), transparent 70%);
  border-radius: 50%;
  animation: heroFloat 10s ease-in-out infinite reverse;
}
.hero-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}
@keyframes heroFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-24px, 18px) scale(1.08); }
}
.hero-badge {
  display: inline-block;
  background: rgba(255,255,255,0.18);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.25);
  padding: 8px 22px;
  border-radius: 30px;
  font-size: 14px;
  margin-bottom: 24px;
  letter-spacing: 0.5px;
}
.hero-title {
  font-size: 64px;
  font-weight: 800;
  letter-spacing: 2px;
  margin-bottom: 16px;
  text-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.hero-title-accent {
  margin-left: 8px;
}
.hero-subtitle {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 12px;
  opacity: 0.95;
}
.hero-desc {
  font-size: 16px;
  opacity: 0.9;
  margin-bottom: 40px;
}
.hero-stats {
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-bottom: 40px;
}
.stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.stat-num {
  font-size: 36px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.stat-label {
  font-size: 14px;
  opacity: 0.85;
  margin-top: 4px;
}
.hero-cta {
  display: inline-block;
  background: #fff;
  color: var(--primary);
  padding: 14px 44px;
  border-radius: 40px;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}
.hero-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.25);
}

/* 工具区 */
.tools-section {
  max-width: 1600px;
  margin: 0 auto;
  padding: 60px 24px;
}
.section-title {
  font-size: 36px;
  font-weight: 800;
  text-align: center;
  margin-bottom: 8px;
  letter-spacing: 0.5px;
}
.section-sub {
  text-align: center;
  color: var(--text-muted);
  margin-bottom: 40px;
  font-size: 16px;
}
.tools-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}
.tool-card {
  background: var(--card);
  border-radius: var(--radius);
  padding: 28px 24px;
  cursor: pointer;
  position: relative;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
  overflow: hidden;
}
.tool-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(79,107,255,0.04), transparent 60%);
  opacity: 0;
  transition: opacity 0.25s;
  pointer-events: none;
}
.tool-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  border-color: rgba(79,107,255,0.25);
}
.tool-card:hover::after {
  opacity: 1;
}
.tool-num {
  position: absolute;
  top: 20px;
  right: 24px;
  font-size: 40px;
  font-weight: 800;
  color: #F0F2F8;
}
.tool-icon {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.tool-name {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.tag-hot {
  font-size: 11px;
  color: #FF5C5C;
  background: #FFF0F0;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}
.tag-soon {
  font-size: 11px;
  color: #999;
  background: #F0F0F0;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
  margin-left: 6px;
}
/* 置灰工具卡（二期功能预览） */
.tool-card-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.tool-card-disabled:hover {
  transform: none;
  box-shadow: none;
}
.tool-users {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 8px;
  min-height: 20px;
}
.tool-desc {
  font-size: 14px;
  color: var(--text-light);
  line-height: 1.5;
}

/* ===== 行动引导区（求职起点） ===== */
.action-guide-section {
  max-width: 1600px;
  margin: 0 auto;
  padding: 24px 24px 0;
}
.action-guide-inner {
  max-width: 1080px;
  margin: 0 auto;
}
.action-guide {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 26px 28px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-md);
  background: linear-gradient(120deg, #EEF1FF 0%, #FFFFFF 60%);
}
.action-guide.tone-progress {
  background: linear-gradient(120deg, #FFF4E8 0%, #FFFFFF 60%);
}
.action-guide.tone-profile {
  background: linear-gradient(120deg, #E8F9F0 0%, #FFFFFF 60%);
}
.action-guide-icon {
  font-size: 44px;
  flex-shrink: 0;
}
.action-guide-main {
  flex: 1;
  min-width: 0;
}
.action-guide-tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: var(--primary);
  background: rgba(79, 107, 255, 0.1);
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.tone-progress .action-guide-tag { color: #E8862E; background: rgba(232, 134, 46, 0.12); }
.tone-profile .action-guide-tag { color: #00B578; background: rgba(0, 181, 120, 0.12); }
.action-guide-title {
  font-size: 22px;
  font-weight: 800;
  color: #1a1a2e;
  margin-bottom: 6px;
}
.action-guide-desc {
  font-size: 14px;
  color: var(--text-light);
  line-height: 1.5;
}
.action-guide-btn {
  flex-shrink: 0;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 14px 22px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--shadow-primary);
  transition: transform 0.2s, background 0.2s;
  white-space: nowrap;
}
.action-guide-btn:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
}

/* ===== 工具分组（手风琴折叠） ===== */
.tool-group {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  margin-bottom: 18px;
}
.tool-group-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 18px 24px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s;
}
.tool-group-head:hover {
  background: #F7F8FF;
}
.tool-group.tool-group-hover:hover {
  border-color: rgba(109, 112, 199, 0.45);
}
.tool-step-badge {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: var(--gradient);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0;
}
.tool-group-final .tool-step-badge {
  background: linear-gradient(135deg, #FFB020 0%, #FF8F1F 100%);
}
.tool-group-head-left {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tool-group-title {
  font-size: 18px;
  font-weight: 800;
  color: #1a1a2e;
}
.tool-group-sub {
  font-size: 13px;
  color: var(--text-muted);
}
.tool-group-arrow {
  font-size: 18px;
  color: var(--text-muted);
  transition: transform 0.25s;
}
.tool-group-arrow.open {
  transform: rotate(180deg);
}
.tool-group-pin {
  font-size: 15px;
  color: var(--text-muted);
  opacity: 0.4;
  transition: opacity 0.2s, transform 0.2s;
  flex-shrink: 0;
  line-height: 1;
}
.tool-group-pin.pinned {
  opacity: 1;
  transform: scale(1.15);
  filter: none;
}
.tool-group-pin.pinned::after {
  content: '已固定';
  font-size: 11px;
  color: var(--primary);
  margin-left: 4px;
  font-weight: 600;
}
.tool-group-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.24s cubic-bezier(0.4, 0, 0.2, 1);
}
.tool-group-body > .tool-group-body-inner {
  overflow: hidden;
  min-height: 0;
}
.tool-group-body.open {
  grid-template-rows: 1fr;
}
.tool-group-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
  padding: 4px 24px 24px;
}
.tool-group-grid .tool-card {
  padding: 22px 20px;
}

/* 次级工具栏（第三层快捷条，随主工具栏同开同收） */
.tool-subtools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 24px 16px;
  padding: 12px 0 0;
  border-top: 1px dashed var(--border);
}
.tool-subtool {
  font-size: 12px;
  color: var(--text-muted);
  background: #F7F8FF;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 5px 14px;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
  white-space: nowrap;
}
.tool-subtool:hover {
  color: var(--primary);
  border-color: var(--primary);
  background: #fff;
}

/* 第5步收官组：琥珀色差异化强调 */
.tool-group-final {
  border-color: #F0C674;
  background: linear-gradient(180deg, #FFF9EF 0%, var(--card) 100%);
}
.tool-group-final .tool-group-title {
  color: #B8860B;
}

/* ===== 职业画像测评 ===== */
.career-quiz {
  max-width: 640px;
  margin: 0 auto;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 32px 28px;
}
.career-progress {
  height: 6px;
  background: var(--border);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 22px;
}
.career-progress-bar {
  height: 100%;
  background: var(--primary);
  border-radius: 999px;
  transition: width 0.3s ease;
}
.career-q-num {
  font-size: 13px;
  color: var(--text-muted);
  font-weight: 600;
  margin-bottom: 12px;
}
.career-q-title {
  font-size: 22px;
  font-weight: 800;
  color: #1a1a2e;
  margin-bottom: 20px;
  line-height: 1.4;
}
.career-opts {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.career-opt {
  text-align: left;
  padding: 16px 18px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: #fff;
  font-size: 16px;
  color: #333;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.2s;
}
.career-opt:hover {
  border-color: var(--primary);
  background: #F6F8FF;
  transform: translateX(4px);
}
.career-result {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.career-result-icon {
  font-size: 64px;
  margin-bottom: 16px;
}
.career-result-advice {
  font-size: 16px;
  color: var(--text-light);
  line-height: 1.6;
  margin: 16px 0 24px;
}
.career-result-tools {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}
.career-result-tools-title {
  font-size: 14px;
  color: var(--text-muted);
  font-weight: 600;
}
.career-rec-tool {
  padding: 13px 24px;
  border: 1.5px solid var(--primary);
  border-radius: 12px;
  background: #fff;
  color: var(--primary);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.career-rec-tool:hover {
  background: var(--primary);
  color: #fff;
}
.career-result-actions {
  margin-top: 8px;
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ===== 职业画像测评 v2（霍兰德 RIASEC + 大五） ===== */
.career-quiz-v2 {
  max-width: 720px;
}
.career-q-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  gap: 10px;
}
.career-q-phase {
  font-size: 12px;
  color: var(--primary);
  background: rgba(109, 112, 199, 0.1);
  padding: 3px 10px;
  border-radius: 999px;
  font-weight: 600;
  white-space: nowrap;
}
.career-likert {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}
.career-likert-opt {
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  padding: 14px 18px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: #fff;
  font-size: 15px;
  color: #333;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.15s;
}
.career-likert-opt:hover {
  border-color: var(--primary);
  background: #F6F8FF;
  transform: translateX(3px);
}
.career-likert-opt.active {
  border-color: var(--primary);
  background: #EEF0FF;
  color: var(--primary);
  font-weight: 600;
}
.career-likert-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid var(--border);
  flex-shrink: 0;
  transition: all 0.2s;
}
.career-likert-opt.active .career-likert-dot {
  border-color: var(--primary);
  background: var(--primary);
  box-shadow: inset 0 0 0 2px #fff;
}
.career-q-nav {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.career-result-v2 {
  max-width: 760px;
  text-align: left;
}
.career-result-head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
  text-align: left;
}
.career-result-head .career-result-icon {
  font-size: 60px;
  margin-bottom: 0;
  flex-shrink: 0;
}
.career-result-head-text {
  flex: 1;
}
.career-code-badge {
  display: inline-block;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #fff;
  background: linear-gradient(135deg, #6d70c7, #8b5cf6);
  padding: 5px 14px;
  border-radius: 10px;
  margin-bottom: 4px;
}
.career-panel {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 20px 22px;
  margin-bottom: 16px;
}
.career-panel-title {
  font-size: 16px;
  font-weight: 800;
  color: #1a1a2e;
  margin-bottom: 16px;
}
.career-radar-wrap {
  display: flex;
  justify-content: center;
}
.career-radar-svg {
  width: 100%;
  max-width: 380px;
  height: auto;
}
.career-radar-label {
  font-size: 13px;
  fill: var(--text-light);
  font-weight: 600;
}
.career-bars {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.career-bar-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.career-bar-label {
  width: 96px;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  flex-shrink: 0;
  white-space: nowrap;
}
.career-bar-track {
  flex: 1;
  height: 10px;
  background: var(--border);
  border-radius: 999px;
  overflow: hidden;
}
.career-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.6s ease;
}
.career-bar-val {
  width: 52px;
  text-align: right;
  font-size: 14px;
  font-weight: 700;
  color: #1a1a2e;
}
.career-bar-level {
  display: inline-block;
  margin-left: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  background: var(--border);
  padding: 1px 6px;
  border-radius: 999px;
}
.career-match-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.career-match-tag {
  font-size: 14px;
  font-weight: 600;
  color: var(--primary);
  background: rgba(109, 112, 199, 0.1);
  border: 1px solid rgba(109, 112, 199, 0.3);
  padding: 7px 14px;
  border-radius: 999px;
}
.big5-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.big5-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  background: #F8F9FC;
  border-radius: 10px;
}
.big5-name {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a2e;
}
.big5-desc {
  font-size: 13px;
  color: var(--text-light);
}
.career-ai-sub {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a2e;
  margin: 14px 0 6px;
}
.career-history-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.career-history-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #F8F9FC;
  border-radius: 10px;
  font-size: 14px;
}
.career-history-item.latest {
  background: #EEF0FF;
  border: 1px solid rgba(109, 112, 199, 0.3);
}
.career-history-code {
  font-weight: 800;
  letter-spacing: 1px;
  color: var(--primary);
}
.career-history-time {
  color: var(--text-muted);
  font-size: 13px;
}
.career-history-now {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: var(--primary);
  background: #fff;
  padding: 2px 8px;
  border-radius: 999px;
}
.career-disclaimer {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.6;
  background: #F8F9FC;
  border-left: 3px solid var(--border);
  padding: 12px 14px;
  border-radius: 8px;
  margin-bottom: 16px;
}
@media (max-width: 600px) {
  .big5-list { grid-template-columns: 1fr; }
  .career-result-head { flex-direction: column; align-items: flex-start; gap: 10px; }
  .career-bar-label { width: 72px; font-size: 13px; }
}

/* 工作台绿色「从这里开始」标签 + 空状态提示 */
.tag-start {
  display: inline-block;
  font-size: 10px;
  color: #00B578;
  background: #E8F9F0;
  padding: 2px 7px;
  border-radius: 999px;
  font-weight: 600;
  margin-left: 0;
  white-space: nowrap;
  line-height: 1.5;
  letter-spacing: 0.2px;
}
.dash-metric-tip {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 8px;
  line-height: 1.6;
  letter-spacing: 0.2px;
}
.dash-metric-tip a {
  display: block;
  font-size: 11px;
  color: var(--primary);
  cursor: pointer;
  font-weight: 600;
  white-space: nowrap;
  line-height: 1.6;
  letter-spacing: 0.2px;
}



/* 关于 */
.about-section {
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 24px 60px;
}
.about-card {
  background: var(--card);
  border-radius: var(--radius);
  padding: 40px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.05);
}
.about-card p {
  font-size: 16px;
  color: var(--text-light);
  margin-bottom: 16px;
  line-height: 1.8;
}
.about-author {
  text-align: right;
  color: var(--text-muted);
}

/* 页脚 */
.footer {
  text-align: center;
  padding: 40px;
  color: #ccc;
  font-size: 14px;
}

/* ========== 工具页面通用样式 ========== */
/* v126.1 全局精简：返回按钮已删除，顶部留白由 40px 收为 24px，内容向上吸附 */
.tool-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 24px 80px;
}
.tool-page-header {
  text-align: center;
  margin-bottom: 32px;
}
.tool-page-title {
  font-size: 36px;
  font-weight: 700;
  margin-bottom: 8px;
}
.tool-page-desc {
  color: var(--text-muted);
}
/* v126.1：.back-btn 已随「返回上一页」按钮一并废除（元素不再渲染，样式清除防残留） */

.panel {
  background: var(--card);
  border-radius: var(--radius);
  padding: 28px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border);
  transition: box-shadow 0.25s;
}
.panel-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 16px;
}
.panel-label {
  font-size: 14px;
  color: var(--text-light);
  margin-bottom: 8px;
  font-weight: 600;
}
.sample-link {
  font-size: 13px;
  color: var(--primary);
  cursor: pointer;
  font-weight: 500;
  white-space: nowrap;
  margin-left: 8px;
  user-select: none;
}
.sample-link:hover {
  text-decoration: underline;
}
textarea.input, input.input, select.input {
  width: 100%;
  padding: 14px 16px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  font-size: 15px;
  font-family: inherit;
  background: #F8F9FC;
  resize: vertical;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
textarea.input:focus, input.input:focus, select.input:focus {
  outline: none;
  border-color: var(--primary);
  background: #fff;
  box-shadow: var(--ring);
}
.btn {
  display: inline-block;
  padding: 14px 32px;
  border: none;
  border-radius: 40px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s;
  font-family: inherit;
  letter-spacing: 0.3px;
}
.btn:hover {
  transform: translateY(-2px);
}
.btn:active {
  transform: translateY(0);
}
.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.btn-primary {
  background: var(--gradient);
  color: #fff;
  box-shadow: var(--shadow-primary);
}
.btn-primary:hover {
  box-shadow: 0 12px 32px rgba(79, 107, 255, 0.38);
}
.btn-outline {
  background: #fff;
  color: var(--primary);
  border: 2px solid var(--primary);
}
.btn-outline:hover {
  background: #F5F7FF;
  box-shadow: var(--shadow-sm);
}
.btn-block {
  width: 100%;
}
.btn-sm {
  padding: 8px 16px;
  font-size: 13px;
}

.result-box {
  background: #F8F9FC;
  border-radius: 12px;
  padding: 20px;
  font-size: 15px;
  line-height: 1.8;
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 500px;
  overflow-y: auto;
}

.option-group {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.option-item {
  padding: 12px 20px;
  border: 2px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.2s;
}
.option-item.active {
  border-color: var(--primary);
  background: #F0F3FF;
  color: var(--primary);
  font-weight: 600;
}

.spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  margin-right: 8px;
  vertical-align: middle;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

.error-box {
  background: #FFF0F0;
  color: #FF5C5C;
  padding: 16px;
  border-radius: 12px;
  font-size: 14px;
  margin-top: 12px;
}

.tip-box {
  background: #FFF8E8;
  color: #8B6914;
  padding: 16px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.7;
  margin-top: 16px;
}

.demo-banner {
  background: linear-gradient(135deg, #FFF3E0 0%, #FFE0B2 100%);
  color: #E65100;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 16px;
  border-left: 4px solid #FF9800;
}

/* 统计条 */
.stats-strip {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}
.stat-mini {
  flex: 1;
  background: var(--card);
  border-radius: 16px;
  padding: 16px 0;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
}
.stat-mini-num {
  font-size: 28px;
  font-weight: 800;
  color: var(--text);
}
.stat-mini-label {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}

/* 真实岗位列表 */
.job-filter-row {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
}
.job-filter-row .input { flex: 1; }
.job-source-tip {
  font-size: 12px;
  color: var(--text-muted);
  background: #F0F4FF;
  border-radius: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
  line-height: 1.6;
}
.realjob-list { display: flex; flex-direction: column; gap: 12px; }
.realjob-item {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.realjob-item:hover { border-color: var(--primary); box-shadow: 0 4px 14px rgba(79,107,255,0.10); }
.realjob-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.realjob-title { font-size: 16px; font-weight: 700; color: var(--text); }
.realjob-meta { font-size: 13px; color: var(--text-light); margin-top: 4px; }
.realjob-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
}
.realjob-src {
  font-size: 12px;
  color: var(--text-muted);
  background: #F8F9FC;
  padding: 3px 10px;
  border-radius: 6px;
}
.badge-remote {
  font-size: 11px;
  color: #00B578;
  background: #E8F9F1;
  padding: 2px 8px;
  border-radius: 10px;
  flex-shrink: 0;
}

/* 分段切换 tab */
.seg-tabs {
  display: flex;
  background: #F0F2F8;
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 20px;
}
.seg-tab {
  flex: 1;
  text-align: center;
  padding: 10px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  transition: all 0.2s;
}
.seg-tab.active {
  background: var(--card);
  color: var(--primary);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

/* 央企入口 */
.soe-item {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 10px;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.soe-item:hover { border-color: var(--primary); box-shadow: 0 4px 14px rgba(79,107,255,0.08); }
.soe-item:last-child { margin-bottom: 0; }
.empty-box {
  text-align: center;
  color: var(--text-muted);
  padding: 30px;
  font-size: 14px;
}


/* 表格 */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.data-table th {
  background: #F8F9FC;
  padding: 12px;
  text-align: left;
  font-weight: 600;
  color: var(--text-light);
}
.data-table td {
  padding: 12px;
  border-bottom: 1px solid var(--border);
}
.data-table tr:hover td {
  background: #FAFBFF;
}

/* 简历模板预览 */
.resume-sheet {
  max-width: 100%;
  min-height: 400px;
}
.resume-header {
  padding: 36px 32px;
  text-align: center;
}
.resume-name {
  font-size: 32px;
  font-weight: 800;
  margin-bottom: 8px;
}
.resume-contact {
  font-size: 14px;
  color: #999;
}
.resume-body {
  padding: 28px 32px;
}
.resume-section {
  margin-bottom: 24px;
}
.resume-section-title {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid;
}
.resume-section-body {
  font-size: 14px;
  line-height: 1.8;
  white-space: pre-wrap;
  color: #333;
}

/* 打印样式：导出PDF时只打印简历 */
@media print {
  body * {
    visibility: hidden;
  }
  #resume-sheet, #resume-sheet * {
    visibility: visible;
  }
  #resume-sheet {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
  }
}

/* 响应式 */
@media (max-width: 600px) {
  .hero-title { font-size: 48px; }
  .hero-stats { gap: 30px; }
  .stat-num { font-size: 28px; }
  .tools-grid { grid-template-columns: 1fr; }
  .tool-card { padding: 20px 16px; }
  .tool-desc { font-size: 13px; }
  .action-guide { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px 20px; }
  .action-guide-btn { width: 100%; text-align: center; }
  .tool-group-grid { grid-template-columns: 1fr 1fr; padding: 4px 16px 16px; }
  .tool-group-head { padding: 18px 16px; }
  .gwy-entry-grid { grid-template-columns: 1fr; }
  .feature-section { flex-direction: column; gap: 20px; }
  .feature-head { flex: none; }
  .job-filter-grid { grid-template-columns: 1fr 1fr; }
  .iv-duo { grid-template-columns: 1fr; }
  .step-arrow { display: none; }
  .func-grid { grid-template-columns: 1fr 1fr; }
}

/* ========== 用户登录 ========== */
.nav-user { display: flex; align-items: center; }
.btn-login {
  background: var(--gradient);
  color: #fff;
  border: none;
  padding: 9px 20px;
  border-radius: 30px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.2s;
  font-family: inherit;
}
.btn-login:hover { transform: translateY(-1px); }
.user-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 4px 12px 4px 4px;
  border-radius: 30px;
  background: #F0F3FF;
  transition: background 0.2s;
}
.user-chip:hover { background: #E4E9FF; }
.user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #ddd;
  object-fit: cover;
}
.user-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  max-width: 80px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 弹窗 */
.modal-mask {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
  padding: 20px;
}
.modal-card {
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  width: 100%;
  max-width: 360px;
  position: relative;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.modal-close {
  position: absolute;
  top: 16px;
  right: 20px;
  font-size: 28px;
  color: #ccc;
  cursor: pointer;
  line-height: 1;
}
.modal-close:hover { color: #666; }
.modal-title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--text);
}
.modal-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 20px;
}
.qr-box {
  width: 220px;
  height: 220px;
  margin: 0 auto 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #F8F9FC;
  border-radius: 12px;
  overflow: hidden;
}
.qr-img {
  width: 220px;
  height: 220px;
  display: block;
}
.qr-img-wrap { width: 220px; height: 220px; }
.qr-loading-text { font-size: 13px; color: var(--text-muted); margin-top: 12px; }
.qr-error { font-size: 13px; color: #FF5C5C; line-height: 1.6; padding: 0 16px; }
.qr-tip { font-size: 13px; color: var(--text-muted); margin-bottom: 8px; }
.spinner-dark {
  border: 2px solid #E4E9FF;
  border-top-color: var(--primary);
}

/* ========== 登录/注册卡片（账号密码 + 图形验证码，微信备选） ========== */
.auth-card {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #E5E7EB;
  padding: 28px 28px 24px;
  width: 100%;
  max-width: 400px;
  position: relative;
  text-align: left;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
}
.auth-card .modal-close {
  top: 14px;
  right: 16px;
  font-size: 22px;
}

/* Tab */
.auth-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 20px;
  border-bottom: 1px solid #F0F1F3;
}
.auth-tab {
  flex: 1;
  text-align: center;
  padding: 12px 0 10px;
  font-size: 16px;
  font-weight: 600;
  color: #6B7280;
  cursor: pointer;
  position: relative;
  transition: color 0.2s;
  user-select: none;
}
.auth-tab:hover { color: #374151; }
.auth-tab.active {
  color: var(--primary);
}
.auth-tab.active::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -1px;
  width: 32px;
  height: 3px;
  border-radius: 2px;
  background: var(--primary);
}

/* 表单字段 */
.auth-field { margin-bottom: 16px; }
.auth-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #374151;
  margin-bottom: 6px;
}
.auth-input {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  font-size: 14px;
  color: var(--text);
  background: #fff;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
  font-family: inherit;
}
.auth-input::placeholder { color: #9CA3AF; }
.auth-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(79, 107, 255, 0.12);
}

/* 密码框 + 小眼睛 */
.auth-pwd-wrap { position: relative; }
.auth-pwd-input { padding-right: 46px; }
.auth-eye {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 17px;
  line-height: 1;
  color: #9CA3AF;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}
.auth-eye:hover { color: #6B7280; }

/* 图形验证码 */
.auth-captcha-row {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.auth-captcha-input { flex: 1; }
.auth-captcha-img {
  width: 120px;
  height: 44px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
  background: #F8F9FC;
}
.auth-captcha-refresh {
  margin-top: 6px;
  font-size: 12px;
  color: #9CA3AF;
}
.auth-captcha-refresh a { color: var(--primary); text-decoration: none; }
.auth-captcha-refresh a:hover { text-decoration: underline; }

/* 协议勾选 */
.auth-agree { margin-bottom: 16px; }
.auth-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
  font-size: 12px;
  color: #6B7280;
  line-height: 1.6;
  user-select: none;
}
.auth-checkbox input { display: none; }
.auth-checkbox-box {
  width: 16px;
  height: 16px;
  border: 1px solid #D1D5DB;
  border-radius: 4px;
  flex-shrink: 0;
  margin-top: 1px;
  position: relative;
  background: #fff;
  transition: background 0.2s, border-color 0.2s;
}
.auth-checkbox input:checked + .auth-checkbox-box {
  background: var(--primary);
  border-color: var(--primary);
}
.auth-checkbox input:checked + .auth-checkbox-box::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 5px;
  height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.auth-agree-text a { color: var(--primary); text-decoration: none; }
.auth-agree-text a:hover { text-decoration: underline; }

/* 提交按钮 */
.auth-submit {
  width: 100%;
  height: 44px;
  border: none;
  border-radius: 8px;
  background: var(--gradient);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: 2px;
  transition: opacity 0.2s, transform 0.2s;
  font-family: inherit;
}
.auth-submit:hover { opacity: 0.92; }
.auth-submit:active { transform: translateY(1px); }
.auth-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 分割线 + 微信登录 */
.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0 16px;
  font-size: 12px;
  color: #9CA3AF;
}
.auth-divider::before,
.auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #E5E7EB;
}
.auth-oauth { display: flex; justify-content: center; }
.auth-wechat {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding: 0 22px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #374151;
  transition: background 0.2s, border-color 0.2s;
  font-family: inherit;
}
.auth-wechat:hover { background: #F6FFF9; border-color: #07C160; }

/* 提示信息 */
.auth-tip {
  min-height: 18px;
  margin-top: 12px;
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
  color: #6B7280;
}
.auth-tip.error { color: #FF5C5C; }
.auth-tip.success { color: #07C160; }

/* 协议弹层 */
.auth-agreement-mask {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 300;
  padding: 20px;
}
.auth-agreement-box {
  background: #fff;
  border-radius: 12px;
  max-width: 480px;
  width: 100%;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
}
.auth-agreement-head {
  padding: 18px 20px;
  border-bottom: 1px solid #F0F1F3;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.auth-agreement-title { font-size: 16px; font-weight: 700; color: var(--text); }
.auth-agreement-close {
  border: none;
  background: transparent;
  font-size: 22px;
  color: #9CA3AF;
  cursor: pointer;
  line-height: 1;
}
.auth-agreement-body {
  padding: 18px 20px;
  overflow-y: auto;
  font-size: 13px;
  color: #4B5563;
  line-height: 1.8;
}
.auth-agreement-body h3 { font-size: 14px; margin: 12px 0 6px; color: var(--text); }

/* 移动端适配 */
@media (max-width: 600px) {
  .auth-card {
    padding: 24px 20px 20px;
    border-radius: 12px;
    max-width: 100%;
  }
  .auth-submit { height: 48px; }
  .auth-input { height: 46px; }
  .auth-captcha-img { width: 110px; }
}

/* ========== AI写论文：功能 + 流程 ========== */
.func-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.func-item {
  background: #F8F9FC;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.func-item:hover { border-color: var(--primary); box-shadow: 0 4px 12px rgba(79,107,255,0.10); }
.func-ico { font-size: 22px; }
.func-item b { font-size: 14px; color: var(--text); }
.func-item small { font-size: 12px; color: var(--text-muted); line-height: 1.5; }
.step-flow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.step {
  flex: 1;
  min-width: 110px;
  text-align: center;
  background: #F8F9FC;
  border-radius: 10px;
  padding: 14px 8px;
}
.step-num { font-size: 20px; font-weight: 800; color: var(--primary); }
.step-name { font-size: 13px; font-weight: 700; color: var(--text); margin-top: 4px; }
.step-desc { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.step-arrow { color: #ccc; font-size: 18px; flex-shrink: 0; }

/* ========== AI笔面试 ========== */
.iv-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
.iv-duo-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 22px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
}
.iv-duo-ico { font-size: 30px; margin-bottom: 10px; }
.iv-duo-title { font-size: 18px; font-weight: 700; margin-bottom: 6px; }
.iv-duo-desc { font-size: 13px; color: var(--text-light); line-height: 1.6; margin-bottom: 10px; }
.iv-duo-badge {
  display: inline-block;
  font-size: 12px;
  color: var(--primary);
  background: #F0F3FF;
  padding: 5px 12px;
  border-radius: 8px;
  font-weight: 600;
}

/* ========== 笔试真题表 ========== */
.exam-tag-list { display: flex; gap: 8px; flex-wrap: wrap; }
.exam-tag {
  font-size: 13px;
  color: var(--text-light);
  background: #F8F9FC;
  border: 1px solid var(--border);
  padding: 5px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s;
  user-select: none;
}
.exam-tag:hover { border-color: var(--primary); color: var(--primary); }
.exam-tag.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.exam-table th, .exam-table td { white-space: nowrap; }
.exam-table td { font-size: 13px; }
.exam-file-ico { margin-right: 4px; }
.exam-page-info {
  padding: 12px 16px;
  font-size: 12px;
  color: var(--text-muted);
  text-align: right;
  border-top: 1px solid var(--border);
  background: #FAFBFF;
}
/* v126.10：笔试真题标准 B 端分页栏（浅灰底/圆角 8px/响应式换行） */
.ex-pager {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  background: #F9FAFB;
  border-radius: 8px;
  padding: 12px;
  font-size: 13px; color: #4B5563;
  text-align: left;
}
.ex-pg-total { white-space: nowrap; color: #4B5563; }
.ex-pg-total b { color: #111827; font-weight: 700; }
.ex-pg-size { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; color: #4B5563; }
.ex-pg-size select {
  border: 1px solid #E5E7EB; border-radius: 6px; padding: 4px 8px;
  font-size: 13px; color: #111827; background: #fff; cursor: pointer; font-family: inherit;
}
.ex-pg-size select:focus { outline: none; border-color: #8B5CF6; }
.ex-pg-nav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ex-pg-btn {
  min-width: 32px; height: 32px; padding: 0 10px;
  background: #fff; border: 1px solid #E5E7EB; border-radius: 6px;
  color: #4B5563; font-size: 13px; font-weight: 600; font-family: inherit;
  cursor: pointer; white-space: nowrap;
  transition: all .15s ease;
}
.ex-pg-btn:hover:not(:disabled) {
  border-color: #8B5CF6; color: #8B5CF6;
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.18);
}
.ex-pg-btn.active {
  background: #8B5CF6; border-color: #8B5CF6; color: #fff; cursor: default;
  box-shadow: 0 3px 10px rgba(139, 92, 246, 0.35);
}
.ex-pg-btn:disabled { opacity: 0.4; cursor: not-allowed; box-shadow: none; }
.ex-pg-ellipsis { color: #9CA3AF; padding: 0 2px; }
.ex-pg-jump { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; color: #4B5563; }
.ex-pg-jump input {
  width: 50px; height: 32px; text-align: center;
  border: 1px solid #E5E7EB; border-radius: 6px;
  font-size: 13px; color: #111827; font-family: inherit;
  -moz-appearance: textfield;
}
.ex-pg-jump input::-webkit-outer-spin-button,
.ex-pg-jump input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ex-pg-jump input:focus { outline: none; border-color: #8B5CF6; }
@media (max-width: 720px) {
  .ex-pager { flex-direction: column; align-items: stretch; gap: 10px; }
  .ex-pg-total, .ex-pg-size, .ex-pg-jump { justify-content: center; }
  .ex-pg-nav { justify-content: center; }
}

/* ========== 投递进展表 ========== */
.table-scroll { overflow-x: auto; }
.history-table th, .history-table td { white-space: nowrap; }
.history-table td { font-size: 13px; }
.cell-edit { cursor: text; }
.cell-edit:hover { background: #F0F4FF; }

/* ========== AI找工作：渠道 + 岗位表格 ========== */
.tool-page-wide { max-width: 1680px; }
.channel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.channel-item {
  background: #F8F9FC;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.channel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00B578;
  margin-bottom: 6px;
}
.channel-name { font-size: 14px; font-weight: 600; color: var(--text); }
.channel-type { font-size: 11px; color: var(--text-muted); }
.channel-clickable { cursor: pointer; transition: all 0.2s; }
.channel-clickable:hover {
  border-color: var(--primary);
  background: #F0F3FF;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(79, 107, 255, 0.12);
}

.job-filter-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.4fr auto;
  gap: 10px;
  margin-bottom: 14px;
}
/* ========== 岗位数据表（对标求职方舟：全量展示 + 质感高级感） ========== */
.job-table-wrap {
  overflow-x: auto;
  border: 1px solid #E6EAF3;
  border-radius: 14px;
  background: linear-gradient(180deg, #FDFDFF, #FBFCFE);
  box-shadow: 0 1px 2px rgba(16, 24, 64, 0.04), 0 10px 28px -14px rgba(16, 24, 64, 0.14);
}
.job-table th, .job-table td { white-space: normal; }
/* 主岗位表：宽度 100% 自适应容器，所有列同时可见，绝不横向滚动 */
.job-table.jt-main { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: auto; }
.jt-main thead th {
  position: sticky; top: 0; z-index: 2;
  background: linear-gradient(180deg, #F8FAFF 0%, #EFF3FC 100%);
  border-bottom: 1px solid #E0E6F4;
  padding: 10px 7px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.4px; color: #5A647D;
  white-space: nowrap;
}
.jt-main .th-sort { cursor: pointer; user-select: none; transition: color 0.15s; }
.jt-main .th-sort:hover { color: var(--primary); }
.jt-main tbody td {
  padding: 9px 7px;
  border-bottom: 1px solid #EEF1F8;
  font-size: 13px;
  vertical-align: middle;
  color: #3D4356;
  transition: background 0.15s ease;
}
.jt-main tbody tr:last-child td { border-bottom: none; }
/* 斑马纹 + 悬停 + 选中三态 */
.jt-main tbody tr:nth-child(even) td { background: rgba(247, 249, 255, 0.65); }
.jt-main tbody tr:hover td { background: #F0F4FF; }
.jt-main tbody tr.row-selected td { background: #E9EFFF; }
.jt-main tbody tr.row-selected td:first-child { box-shadow: inset 3px 0 0 var(--primary); }
/* 单元格通用换行能力 */
.jt-main td { word-break: break-word; line-height: 1.5; }
/* 日期：等宽数字，紧凑 */
.jt-td-date { white-space: nowrap; color: #98A1B3; font-variant-numeric: tabular-nums; }
/* 公司：logo + 全称换行 + 性质标签 */
.jt-td-company { min-width: 100px; max-width: 205px; }
.jt-company { display: flex; align-items: flex-start; gap: 8px; }
.jt-logo {
  width: 22px; height: 22px; border-radius: 6px; flex: none; margin-top: 1px;
  box-shadow: 0 1px 3px rgba(16, 24, 64, 0.18); background: #fff;
}
.jt-company-main { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.jt-company-name { font-weight: 700; color: var(--text); font-size: 13px; line-height: 1.45; word-break: break-word; transition: color 0.15s; }
.jt-td-company:hover .jt-company-name { color: var(--primary); }
/* 行业 / 规模（合并列，两段信息一行呈现，超长自动换行） */
.jt-td-indscale { min-width: 66px; max-width: 150px; }
.jt-muted { color: #7A8299; font-size: 12.5px; line-height: 1.55; word-break: break-word; }
/* 信用列 */
.jt-td-credit { white-space: nowrap; }
.credit-num { font-weight: 800; font-size: 12.5px; font-variant-numeric: tabular-nums; }
/* 职位：全称换行，蓝色链接 */
.jt-td-title { min-width: 92px; max-width: 255px; }
.jt-title-link {
  color: var(--primary); font-weight: 600; font-size: 13px;
  line-height: 1.5; word-break: break-word;
  text-decoration: none; border-radius: 6px; transition: color 0.15s;
}
.jt-title-link i { font-style: normal; font-size: 11px; margin-left: 3px; opacity: 0.5; transition: transform 0.15s, opacity 0.15s; }
.jt-title-link:hover { color: #2B44D4; text-decoration: underline; text-underline-offset: 3px; }
.jt-title-link:hover i { transform: translate(2px, -2px); opacity: 1; }
.jt-title-plain { color: var(--text); line-height: 1.5; word-break: break-word; }
/* 城市 / 学历 / 届别：胶囊徽章（长城市名自动换行，不撑宽表格） */
.jt-chip {
  display: inline-block; padding: 2px 9px; border-radius: 10px;
  font-size: 12px; line-height: 1.6; white-space: normal; word-break: break-word;
  color: #475069; background: #F1F4FA; border: 1px solid #E4E9F4;
}
/* ===== v168：表格底部数据来源说明压成一行小字（原先是两三行的长段落） ===== */
.jt-tip-1line {
  margin-top: 10px; font-size: 12px; color: #98A1B3; line-height: 1.6;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* ===== v168：本页无数据时的提示行（避免 tbody 空白导致「表格消失」的观感） ===== */
.jt-empty-row {
  text-align: center !important; padding: 28px 12px !important;
  color: #98A1B3; font-size: 13px; background: #FAFBFE;
}
.jt-chip-plain { color: #8A93A8; }
/* ===== v167 ★修复：学历 / 届别列强制单行 =====
 * 原凶在这：上面的 .jt-chip 是 white-space:normal + word-break:break-word，
 * 而这两列实际可用宽度不足 50px → 「专科」「27届」被折断成 2~3 行竖向显示。
 * 处理方式：列加宽到足够容纳，并在 td 与胶囊两级同时 nowrap（双保险，杜绝任何继承兜底翻的是 revert）。 */
/* 仅桌面表格形态生效：≤760px 是「一行变一张卡片」的移动端布局，那里由 vitality 卡片规则全权接管，
   若在这里锁死 62px 宽会把手机端的值区挤没，故用断点隔离。 */
@media (min-width: 761px) {
  .jt-main td.jt-td-degree, .jt-main td.jt-td-batch { white-space: nowrap !important; }
  .jt-main td.jt-td-degree { width: 62px; min-width: 62px; max-width: 62px; }
  .jt-main td.jt-td-batch  { width: 66px; min-width: 66px; max-width: 66px; }
  .jt-main td.jt-td-degree .jt-chip, .jt-main td.jt-td-batch .jt-chip {
    display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap !important; word-break: keep-all !important; overflow-wrap: normal !important;
    vertical-align: middle;
  }
}
.jt-chip-blue { color: var(--primary); background: #EEF2FF; border-color: #DCE4FF; font-weight: 600; }
.jt-dim { color: #C2C9D8; }
/* 专业：完整展示，多行自动换行 */
.jt-td-major { min-width: 84px; max-width: 245px; }
.jt-major { font-size: 12px; color: #7A8299; line-height: 1.65; word-break: break-word; }
/* 薪资 */
.jt-td-salary { white-space: nowrap; }
.jt-salary { color: #FA5151; font-weight: 700; font-size: 13px; font-variant-numeric: tabular-nums; }
/* 骨架屏加载态 */
.jt-loading tbody td { border-bottom: none; background: transparent !important; }
.jt-loading tbody tr:hover td { background: transparent; }
.sk {
  display: inline-block; width: 90%; height: 12px; border-radius: 6px;
  background: linear-gradient(90deg, #EDF1F9 25%, #F8FAFE 45%, #EDF1F9 65%);
  background-size: 200% 100%;
  animation: skShimmer 1.2s ease-in-out infinite;
}
.sk-box { width: 14px; height: 14px; border-radius: 4px; }
@keyframes skShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.jt-loading-tip {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px; color: #7A8299; font-size: 13px;
}
.jt-mini-spinner {
  width: 14px; height: 14px; flex: none;
  border: 2px solid #D8E0F0; border-top-color: var(--primary);
  border-radius: 50%; animation: spin 0.6s linear infinite;
}
/* 企业性质标签（升级为胶囊） */
.prop-tag {
  display: inline-block;
  font-size: 11px;
  padding: 1.5px 8px;
  border-radius: 999px;
  border: 1px solid;
  font-weight: 600;
  letter-spacing: 0.5px;
  white-space: nowrap;
  line-height: 1.6;
}
/* 中屏（≤1180px 笔记本）：收紧内边距与次要字号，保证 12 列全部同时可见、零横向滚动 */
@media (max-width: 1180px) {
  .jt-main thead th { padding: 9px 5px; font-size: 11.5px; letter-spacing: 0.2px; }
  .jt-main tbody td { padding: 8px 5px; font-size: 12.5px; }
  .jt-logo { width: 18px; height: 18px; border-radius: 5px; }
  .jt-chip { padding: 1px 6px; font-size: 11.5px; }
  .jt-td-company { max-width: 165px; }
  .jt-td-title { max-width: 200px; }
  .jt-td-major { max-width: 200px; }
  .jt-td-indscale { max-width: 120px; }
  .jt-salary { font-size: 12.5px; }
  .prop-tag { font-size: 10px; padding: 1px 6px; }
}
/* 移动端：表格 → 卡片堆叠（data-label 映射字段名，内容完整展示） */
@media (max-width: 760px) {
  .job-table-wrap.jt-loading, .job-table-wrap {
    overflow-x: visible; border: none; border-radius: 0;
    background: transparent; box-shadow: none;
  }
  .job-table.jt-main { min-width: 0; display: block; }
  .jt-main thead { display: none; }
  .jt-main tbody { display: block; }
  .jt-main tbody tr {
    display: block;
    background: #fff;
    border: 1px solid #E6EAF3;
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(16, 24, 64, 0.06);
    padding: 4px 14px;
    margin-bottom: 10px;
    transition: box-shadow 0.15s, border-color 0.15s;
  }
  .jt-main tbody tr:hover td { background: transparent; }
  .jt-main tbody tr.row-selected { border-color: var(--primary); box-shadow: 0 4px 16px rgba(79, 107, 255, 0.18); }
  .jt-main tbody tr.row-selected td { background: transparent; }
  .jt-main tbody tr.row-selected td:first-child { box-shadow: none; }
  .jt-main tbody td {
    display: flex; align-items: flex-start; gap: 10px;
    border-bottom: 1px dashed #EEF1F8;
    padding: 8px 0;
    background: transparent !important;
    height: auto; white-space: normal; overflow: visible; text-overflow: clip;
  }
  .jt-main tbody td:last-child { border-bottom: none; }
  .jt-main tbody td::before {
    content: attr(data-label);
    flex: none; width: 62px;
    font-size: 11px; font-weight: 600; color: #98A1B3;
    padding-top: 2px; letter-spacing: 1px;
  }
  .jt-td-check::before { display: none; }
  .jt-td-check { padding: 10px 0 6px; }
  .jt-td-check input { transform: scale(1.15); }
  .jt-td-company, .jt-td-title, .jt-td-major, .jt-td-ind, .jt-td-city { max-width: none; min-width: 0; }
  /* 移动端卡片内恢复完整展示（桌面端省略 + 悬停全文，移动端直接看全） */
  .jt-td-title .jt-title-link, .jt-td-title .jt-title-plain,
  .jt-td-major .jt-major, .jt-td-company .jt-company-name,
  .jt-td-city .jt-chip { white-space: normal; overflow: visible; text-overflow: clip; display: inline; }
}

/* ========== 首页分区块介绍 ========== */
#home-detail {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 24px 60px;
}
.feature-section {
  display: flex;
  gap: 40px;
  padding: 48px 0;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.feature-section:last-child { border-bottom: none; }
.feature-head {
  flex: 0 0 320px;
}
.feature-tag {
  display: inline-block;
  font-size: 13px;
  color: var(--primary);
  background: #F0F3FF;
  padding: 4px 12px;
  border-radius: 6px;
  font-weight: 600;
  margin-bottom: 12px;
}
.feature-title {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 8px;
  line-height: 1.4;
}
.feature-sub {
  font-size: 14px;
  color: var(--text-muted);
  line-height: 1.6;
}
.feature-body {
  flex: 1;
}
.feature-points {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.feature-point {
  font-size: 13px;
  color: var(--text-light);
  background: #F8F9FC;
  border: 1px solid var(--border);
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 500;
}
.feature-desc {
  font-size: 15px;
  color: var(--text-light);
  line-height: 1.8;
  margin-bottom: 12px;
}
.feature-author {
  text-align: right;
  color: var(--text-muted);
  font-size: 14px;
  margin: 16px 0;
}
.feature-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.feature-mini {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px;
  cursor: pointer;
  transition: all 0.2s;
}
.feature-mini:hover {
  border-color: var(--primary);
  box-shadow: 0 6px 18px rgba(79,107,255,0.12);
  transform: translateY(-2px);
}
.feature-mini-tag {
  font-size: 12px;
  color: var(--primary);
  font-weight: 600;
  margin-bottom: 8px;
}
.feature-mini-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 10px;
}
.feature-mini-points {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.feature-mini-points span {
  font-size: 11px;
  color: var(--text-muted);
  background: #F8F9FC;
  padding: 3px 8px;
  border-radius: 4px;
}

/* 页脚 */
.footer-links {
  display: flex;
  gap: 24px;
  justify-content: center;
  margin-bottom: 16px;
}
.footer-links a {
  color: var(--text-light);
  text-decoration: none;
  font-size: 14px;
}
.footer-links a:hover { color: var(--primary); }
.footer-copy {
  margin-top: 8px;
  color: #ddd;
  font-size: 12px;
}

/* 个人中心 */
.profile-head {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #F8F9FC;
  border-radius: 12px;
  margin-bottom: 20px;
  text-align: left;
}
.profile-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #ddd;
  object-fit: cover;
}
.profile-nickname { font-size: 18px; font-weight: 700; color: var(--text); }
.profile-openid { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.profile-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 12px;
  text-align: left;
}
.profile-label { font-size: 14px; color: var(--text-light); font-weight: 600; }
.profile-value { font-size: 14px; color: var(--primary); }
#phone-input { text-align: left; }

/* ========== 表格增强：斑马纹 + 悬停高亮 + 状态徽章 ========== */
.data-table tbody tr:nth-child(even) {
  background: #FAFBFE;
}
.data-table tbody tr:hover {
  background: #F0F3FF;
  transition: background 0.15s;
}
.data-table th[data-sort] {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.data-table th[data-sort]:hover {
  color: var(--primary);
}
.status-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.tag-hot {
  display: inline-block;
  background: #FF5C5C;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
}

/* ========== v126.12 收藏面板折叠 ========== */
.fav-fold-head { cursor: pointer; user-select: none; border-radius: 8px; }
.fav-fold-head:hover .fav-fold-title { color: var(--primary); }
.fav-fold-title { display: inline-flex; align-items: center; gap: 8px; transition: color 0.15s ease; }
.fav-fold-count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: #F1EDFF; color: var(--primary); font-size: 12px; font-weight: 700; line-height: 1; }
.fav-fold-arrow { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 6px; background: #F1EDFF; color: var(--primary); font-size: 12px; line-height: 1; }

/* ========== 回到顶部按钮 ========== */
.back-top-btn {
  position: fixed;
  right: 28px;
  bottom: 28px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--gradient);
  color: #fff;
  border: none;
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(79, 107, 255, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  z-index: 90;
}
.back-top-btn.show {
  opacity: 1;
  visibility: visible;
}
.back-top-btn:hover {
  transform: translateY(-2px);
}

/* ========== 响应式：筛选器小屏适配 ========== */
@media (max-width: 760px) {
  .job-filter-grid {
    grid-template-columns: 1fr;
  }
}

/* ========== Excel 级表格 ========== */
.excel-scroll {
  max-height: 620px;
  overflow: auto;
  position: relative;
}
.excel-table {
  border-collapse: separate;
  border-spacing: 0;
}
/* 冻结表头 */
.excel-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #F0F3FA;
  border-bottom: 2px solid #DDE3F0;
  box-shadow: 0 1px 0 rgba(0,0,0,0.03);
  font-size: 13px;
  white-space: nowrap;
  cursor: default;
}
/* 首列/末列冻结 */
.excel-table th.sticky-col,
.excel-table td.sticky-col {
  position: sticky;
  background: #fff;
  z-index: 3;
}
.excel-table th.sticky-col {
  background: #F0F3FA;
  z-index: 6;
}
.excel-table th.sticky-col:first-child,
.excel-table td.sticky-col:first-child {
  left: 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.05);
}
.excel-table th.sticky-col:last-child,
.excel-table td.sticky-col:last-child {
  right: 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.05);
}
.excel-table td {
  border-bottom: 1px solid #EEF1F7;
  border-right: 1px solid #F2F4F9;
  font-size: 13px;
}
.sort-arrow {
  color: var(--primary);
  font-size: 11px;
  margin-left: 2px;
}
.excel-table th[data-sort] {
  cursor: pointer;
  user-select: none;
}
.excel-table th[data-sort]:hover {
  background: #E6EBF7;
}
/* 双击编辑 */
.cell-edit {
  cursor: text;
  min-height: 20px;
  line-height: 1.5;
}
.cell-edit.editable:hover {
  background: #F5F7FF;
  outline: 1px dashed #C6D0F0;
  border-radius: 3px;
}
.inline-input {
  border: 1px solid var(--primary);
  border-radius: 4px;
  padding: 3px 6px;
  font-size: 13px;
  outline: none;
  font-family: inherit;
  box-shadow: 0 0 0 2px rgba(79,107,255,0.15);
}
/* 工具栏 */
.table-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.table-toolbar-left { display: flex; align-items: center; }
.table-toolbar-right { display: flex; gap: 8px; }
/* 列设置面板 */
.col-picker {
  margin-top: 10px;
  padding: 12px;
  background: #F8FAFF;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.col-toggle {
  padding: 4px 8px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  user-select: none;
}
/* 快捷筛选 chips */
.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}
.filter-chip {
  display: inline-block;
  padding: 4px 12px;
  font-size: 12px;
  border-radius: 14px;
  background: #F2F4F9;
  color: var(--text-light);
  cursor: pointer;
  transition: all 0.15s;
  user-select: none;
  border: 1px solid transparent;
}
.filter-chip:hover { background: #E8ECF7; }
.filter-chip.active {
  background: var(--primary);
  color: #fff;
  font-weight: 600;
}
.tag-mini {
  display: inline-block;
  padding: 2px 7px;
  margin: 1px 2px 1px 0;
  font-size: 11px;
  border-radius: 4px;
  background: #EEF1F8;
  color: #6B7390;
  white-space: nowrap;
}
/* 表格底部信息栏 */
.table-footer {
  padding: 10px 16px;
  font-size: 12px;
  color: var(--text-muted);
  border-top: 1px solid var(--border);
  background: #FAFBFE;
  text-align: right;
}

/* ========== 求职工作台 Dashboard ========== */
.dashboard-section {
  padding: 30px 0 10px;
}
.dashboard-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
}
.dash-header {
  text-align: center;
  margin-bottom: 20px;
}
.dash-cards {
  display: grid;
  grid-template-columns: 1.1fr 1.4fr 1.1fr;
  gap: 16px;
}
.dash-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.dash-card-title {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 14px;
  color: #333;
}
.dash-metric-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.dash-metric {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 14px 8px;
  border-radius: 10px;
  background: #F8FAFF;
  cursor: pointer;
  transition: transform 0.15s;
}
.dash-metric:hover {
  transform: translateY(-2px);
}
.dash-metric-num {
  font-size: 30px;
  font-weight: 800;
  line-height: 1;
}
.dash-metric-label {
  font-size: 12px;
  color: var(--text-light);
  margin-top: 6px;
  line-height: 1.4;
}
/* 流水线 */
.pipeline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 4px 0;
}
.pipeline-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  cursor: pointer;
  min-width: 0;
}
.pipeline-dot {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  background: #EEF1F8;
  color: #999;
  border: 2px solid #E2E7F2;
  transition: all 0.2s;
}
.pipeline-step.done .pipeline-dot {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 3px 10px rgba(79,107,255,0.3);
}
.pipeline-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  font-size: 12px;
  font-weight: 600;
  margin-top: 8px;
  color: #555;
  line-height: 1.4;
  white-space: nowrap;
}
.pipeline-desc {
  font-size: 10px;
  color: #aaa;
  margin-top: 4px;
  text-align: center;
  max-width: 68px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.5;
  letter-spacing: 0.2px;
}
.pipeline-line {
  flex: 0 0 20px;
  height: 2px;
  background: #E2E7F2;
  margin-top: 19px;
}
.pipeline-step.done ~ .pipeline-line,
.pipeline-line.done {
  background: var(--primary);
}
/* 即将截止 */
.dash-deadline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid #F0F2F8;
  cursor: pointer;
}
.dash-deadline:last-of-type {
  border-bottom: none;
}
.dash-deadline:hover {
  background: #FAFBFF;
}
.dash-deadline-company {
  font-size: 14px;
  font-weight: 600;
  color: #333;
}
.dash-deadline-date {
  font-size: 12px;
  color: #999;
  margin-top: 2px;
}
.dash-deadline-badge {
  font-size: 12px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 12px;
  white-space: nowrap;
}
.dash-empty {
  color: #ccc;
  font-size: 13px;
  text-align: center;
  padding: 20px 0;
}
/* 收藏条 */
.dash-fav-bar {
  margin-top: 16px;
  background: #fff;
  border: 1px dashed var(--border);
  border-radius: 12px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.dash-fav-chip {
  display: inline-block;
  padding: 3px 12px;
  font-size: 12px;
  border-radius: 14px;
  background: #FFF7E6;
  color: #D48806;
  cursor: pointer;
  border: 1px solid #FFE0A3;
}
/* 响应式 */
@media (max-width: 900px) {
  .dash-cards {
    grid-template-columns: 1fr;
  }
}

/* ========== 截止日历时间轴 ========== */
.timeline {
  position: relative;
  padding-left: 0;
}
.timeline-group {
  margin-bottom: 18px;
}
.timeline-date {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.timeline-date-text {
  font-size: 15px;
  font-weight: 700;
  color: #333;
}
.timeline-date-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 10px;
}
.timeline-items {
  border-left: 2px solid #E8ECF5;
  margin-left: 6px;
  padding-left: 16px;
}
.timeline-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  margin-bottom: 8px;
  background: #FAFBFF;
  border-radius: 10px;
  border: 1px solid #F0F2F8;
  cursor: pointer;
  transition: all 0.15s;
  position: relative;
}
.timeline-item:hover {
  background: #F0F4FF;
  border-color: #D8E2FF;
  transform: translateX(2px);
}
.timeline-item-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  position: absolute;
  left: -21px;
  top: 50%;
  transform: translateY(-50%);
  box-shadow: 0 0 0 3px #fff;
}
.timeline-item-body {
  flex: 1;
  min-width: 0;
}
.timeline-item-company {
  font-size: 15px;
  font-weight: 700;
  color: #333;
}
.timeline-item-industry {
  font-size: 11px;
  color: #999;
  font-weight: 400;
  margin-left: 6px;
}
.timeline-item-meta {
  font-size: 12px;
  color: var(--text-light);
  margin-top: 3px;
}

/* ========== 我的求职清单（收藏）========== */
.fav-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #F0F2F8;
  flex-wrap: wrap;
}
.fav-item:last-child {
  border-bottom: none;
}
.fav-item-main {
  flex: 1;
  min-width: 180px;
}
.fav-item-company {
  font-size: 15px;
  font-weight: 700;
  color: #333;
}
.fav-item-meta {
  font-size: 12px;
  color: var(--text-light);
  margin-top: 4px;
}
.fav-item-actions {
  display: flex;
  align-items: center;
}

/* ========== 移动端底部导航 Tab ========== */
.mobile-tabbar {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 60px;
  background: rgba(255,255,255,0.94);
  backdrop-filter: saturate(180%) blur(16px);
  -webkit-backdrop-filter: saturate(180%) blur(16px);
  border-top: 1px solid var(--border);
  box-shadow: 0 -2px 16px rgba(23,43,99,0.08);
  z-index: 150;
  padding-bottom: env(safe-area-inset-bottom);
}
.mtab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  cursor: pointer;
  color: var(--text-muted);
  transition: color 0.2s;
  user-select: none;
  position: relative;
}
.mtab-icon {
  font-size: 20px;
  line-height: 1;
  transition: transform 0.2s;
}
.mtab-label {
  font-size: 11px;
  font-weight: 600;
}
.mtab.active {
  color: var(--primary);
}
.mtab.active .mtab-icon {
  transform: translateY(-1px) scale(1.08);
}
.mtab-center .mtab-icon {
  font-size: 22px;
}
/* 桌面端隐藏，移动端显示（v197：断点 768→1023，与 workbench.css 侧栏隐藏同档——全站唯一底部导航） */
@media (max-width: 1023px) {
  .mobile-tabbar {
    display: flex;
  }
  body {
    padding-bottom: 60px;
  }
  /* 回到顶部按钮上移，避免被 tabbar 遮挡 */
  .back-top-btn {
    bottom: 80px;
  }
}
/* v197：触摸设备按压态（替代 hover 悬浮）+ 44px 最小触控区 */
@media (hover: none) {
  .mtab { -webkit-tap-highlight-color: transparent; }
  .mtab:active { color: var(--primary); }
  .mtab:active .mtab-icon { transform: scale(0.88); }
}


/* ========== AI找工作：方向研判卡片 ========== */
.ai-an-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.ai-an-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 26px;
  line-height: 1.2;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
}
.ai-an-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.ai-an-card b {
  font-size: 14px;
  color: var(--text);
}
.ai-an-card span {
  font-size: 13px;
  color: var(--text-light);
  line-height: 1.6;
  font-weight: 400;
}
.ai-an-empty {
  opacity: 0.55;
  border-style: dashed;
}
/* 移动端：四卡 2×2 对称（等宽等高），桌面端保持一行四卡 */
@media (max-width: 900px) {
  .ai-an-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 430px) {
  .ai-an-grid { gap: 8px; }
  .ai-an-card { padding: 12px 10px; gap: 4px; }
  .ai-an-card b { font-size: 13px; }
  .ai-an-card span { font-size: 12px; }
}

/* ========== 快捷筛选 chips ========== */
.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.chip {
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 13px;
  background: #F0F2F8;
  color: var(--text-light);
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.2s;
  user-select: none;
}
.chip:hover {
  color: var(--primary);
  border-color: var(--primary);
  background: #fff;
}
.chip.active {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.chip-reset {
  background: transparent;
  color: var(--text-muted);
}

/* ========== v126.2 筛选区（极简重构：搜索 + 热门分类 + 高级筛选面板 + 已选条件栏） ========== */
.jf2 {
  margin-bottom: 14px;
}
/* 第一部分：搜索框 + 高级筛选按钮 */
.jf2-top {
  display: flex;
  gap: 12px;
  align-items: stretch;
}
.jf2-search {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
}
.jf2-search-ico {
  position: absolute;
  left: 14px;
  color: var(--text-muted);
  pointer-events: none;
  flex: none;
}
.jf2-search-input {
  width: 100%;
  height: 46px;
  padding: 0 16px 0 42px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  font-size: 14.5px;
  color: var(--text);
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.jf2-search-input::placeholder { color: var(--text-muted); }
.jf2-search-input:focus {
  border-color: #7C3AED;
  box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.13), 0 6px 18px rgba(124, 58, 237, 0.10);
}
/* 第二部分：热招分类（平铺 + 自动换行，间距 12px） */
.jf2-hot {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 12px;
}
.jf2-hot-label {
  flex: none;
  font-size: 13px;
  color: var(--text-muted);
  line-height: 32px;
}
.jf2-hot-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.jf2-tag {
  height: 32px;
  padding: 0 14px;
  border: none;
  border-radius: 999px;
  background: #F3F4F6;
  color: #4B5563;
  font-size: 13px;
  font-weight: 500;
  font-family: inherit;
  line-height: 32px;
  cursor: pointer;
  transition: all 0.18s;
}
.jf2-tag.jf2-tag-hot:hover {
  background: #E9E4F8;
  color: #7C3AED;
}
.jf2-tag.jf2-tag-hot.active {
  background: linear-gradient(135deg, #7C3AED, #9F67FF);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 2px 10px rgba(124, 58, 237, 0.32);
}

/* ===== v126.51 高级筛选栏（五控件统一外观：38px 高 / 8px 圆角 / #F9FAFB 浅灰底 / 黑色 ▼ 箭头） ===== */
.fbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.fsel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  height: 38px;
  padding: 0 12px;
  border-radius: 8px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  cursor: pointer;
  min-width: 132px;
  user-select: none;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.fsel:hover,
.fsel.active,
.fsel.fsel-active {
  border-color: #7C3AED;
  background: #FBF9FF;
}
.fsel-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
}
.fsel-arrow {
  flex: none;
  font-size: 10px;
  color: #111827;
  line-height: 1;
  transition: transform 0.18s ease;
}
.fsel.active .fsel-arrow { transform: rotate(180deg); }
.fsel input {
  border: none;
  outline: none;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  width: 96px;
  padding: 0;
  font-family: inherit;
  cursor: text;
}
.fsel input::placeholder { color: #6B7280; font-weight: 600; }
/* 统一下拉面板 */
.fsel-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 80;
  min-width: 100%;
  width: max-content;
  max-width: 320px;
  max-height: 264px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.14);
  padding: 6px;
  display: none;
}
.fsel-panel.active { display: block; }
.fsel-opt {
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 13px;
  color: var(--text);
  cursor: pointer;
  white-space: nowrap;
}
.fsel-opt:hover { background: #F5F3FF; color: #6D28D9; }
.fsel-opt.active { background: #F5F3FF; color: #6D28D9; font-weight: 700; }
.fsel-empty { padding: 10px; font-size: 12px; color: var(--text-muted); white-space: nowrap; }
.fsel-panel-major { width: 264px; max-height: 296px; }
/* 意向城市级联面板（v126.52 重构：480px / 左省 160px 固定 + 右市 calc(100%-160px) 竖排 / 行高 40px） */
/* 【第一部分】面板容器与左右宽度 */
.city-panel {
  width: 480px;
  max-width: min(92vw, 480px);
  padding: 0;
  overflow: hidden;
  max-height: none;
}
.city-main {
  display: flex;
  height: 280px;
}
.province-list {
  width: 160px;
  flex: none;
  box-sizing: border-box;
  overflow-y: auto;
  border-right: 1px solid #F3F4F6;
  padding: 0 12px;
}
.city-list {
  width: calc(100% - 160px);
  flex: none;
  box-sizing: border-box;
  display: flex;          /* 【第三部分】右市必须纵向排列 */
  flex-direction: column;
  overflow-y: auto;
  padding: 4px 8px;
}
/* 【第二部分】省份行：强制单行 + 垂直居中（防「内蒙古自治区」挤成两行） */
.province-item {
  display: flex;
  align-items: center;
  white-space: nowrap;
  height: 40px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 13px;
  cursor: pointer;
  color: var(--text);
}
.province-item:hover { background: #F5F3FF; }
.province-item.cur { background: #F5F3FF; color: #6D28D9; font-weight: 700; }
/* 【第三部分】城市行：每行一城 + 40px 高 + 悬停浅灰背景 */
.city-item {
  display: flex;
  align-items: center;
  white-space: nowrap;
  height: 40px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 13px;
  cursor: pointer;
  color: var(--text);
}
.city-item:hover { background: #F5F3FF; }
/* 【第四部分】Checkbox 间距：margin-right 严格 8px，与文字垂直居中、紧凑对齐 */
.province-item .checkbox,
.city-item .checkbox {
  margin: 0;
  margin-right: 8px;
  flex: none;
  accent-color: #7C3AED;
  cursor: pointer;
}
.fcity-head {
  font-size: 12px;
  color: var(--text-muted);
  padding: 2px 4px 6px;
  flex: none;
}
.fcity-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  border-top: 1px solid #F3F4F6;
  background: #FAFAFB;
}
.fcity-count { font-size: 12px; color: var(--text-muted); }
.fcity-foot-btns { display: flex; gap: 8px; }
.fcity-btn {
  height: 30px;
  padding: 0 16px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid #E5E7EB;
  background: #fff;
  color: var(--text);
  font-family: inherit;
  cursor: pointer;
  transition: all 0.15s;
}
.fcity-btn:hover { border-color: #7C3AED; color: #6D28D9; }
.fcity-ok {
  background: linear-gradient(135deg, #7C3AED, #4F6BFF);
  border: none;
  color: #fff;
}
.fcity-ok:hover { color: #fff; opacity: 0.92; }
@media (max-width: 640px) {
  .fbar { gap: 8px; }
  .fsel { min-width: calc(50% - 4px); flex: 1 1 calc(50% - 4px); }
  .city-panel { width: 92vw; left: 50%; transform: translateX(-50%); }
}

/* 岗位表头部（当前栏目联动） */
.realjob-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.realjob-title {
  font-size: 16px;
  font-weight: 800;
  color: #1a1a2e;
}
.realjob-badge {
  font-size: 12px;
  color: var(--text-muted);
  background: #F0F2F8;
  padding: 3px 10px;
  border-radius: 999px;
}

/* 公务员栏目：官方招录公告 + 公众号推文 */
.gwy-section {
  margin-bottom: 18px;
}
.gwy-section:last-child {
  margin-bottom: 0;
}
.gwy-section-title {
  font-size: 14px;
  font-weight: 800;
  color: #1a1a2e;
  margin-bottom: 10px;
  padding-left: 10px;
  border-left: 3px solid var(--primary);
}
.gwy-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gwy-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.gwy-item:hover {
  border-color: rgba(0, 181, 120, 0.45);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.gwy-item-main {
  flex: 1;
  min-width: 0;
}
.gwy-item-title {
  font-size: 15px;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1.5;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.gwy-item-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  color: var(--text-muted);
}
.gwy-acc {
  color: #00B578;
  font-weight: 600;
}
.gwy-kw {
  background: #F0F2F8;
  padding: 2px 8px;
  border-radius: 999px;
}
.gwy-item-go {
  flex-shrink: 0;
  font-size: 13px;
  color: var(--primary);
  font-weight: 600;
  white-space: nowrap;
}

/* 公务员报名入口导航卡片 */
.gwy-entry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 10px;
}
.gwy-entry-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 13px 15px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.gwy-entry-card:hover {
  border-color: rgba(79, 107, 255, 0.45);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.gwy-entry-name {
  font-size: 14px;
  font-weight: 800;
  color: #1a1a2e;
  padding-right: 44px;
  background: none;
}
.gwy-entry-desc {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.5;
}
.gwy-entry-tag {
  position: absolute;
  top: 11px;
  right: 11px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  color: #fff;
}
/* 注意：类名不能用 sk/gk 等单简写——.sk 是全站骨架屏类（width:90%;height:12px 渐变条），
   曾导致省考标签被渲染成蓝色骨架条（2026-09-28 线上 bug 根因），统一用 gwy-tag-* 前缀 */
.gwy-entry-tag.gwy-tag-gk { background: #D20000; }
.gwy-entry-tag.gwy-tag-sk { background: #4F6BFF; }

/* arkz 表格「今天」绿色高亮（更新列） */
.akz-today { color: #00A870; font-weight: 700; }
.akz-today::before { content: '●'; font-size: 8px; margin-right: 4px; vertical-align: 2px; }

/* ========== 名企大厂栏目：牛客网校招企业 + 校招日程时间线 ========== */
.nc-schedule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}
.nc-sched-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 15px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.nc-sched-card:hover {
  border-color: rgba(79, 107, 255, 0.5);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.nc-sched-body {
  flex: 1;
  min-width: 0;
}
.nc-sched-name {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1.4;
  margin-bottom: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nc-sched-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}
.nc-batch {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #4F6BFF, #7C5CFF);
  padding: 2px 8px;
  border-radius: 999px;
}
.nc-ws {
  font-size: 12px;
  color: #D20000;
  font-weight: 600;
}
.nc-sched-city {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.4;
}
.nc-sched-go {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--primary);
  font-weight: 600;
  white-space: nowrap;
}

.nc-company-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.nc-company-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 15px 18px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.nc-company-card:hover {
  border-color: rgba(0, 181, 120, 0.45);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.nc-company-body {
  flex: 1;
  min-width: 0;
}
.nc-company-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 5px;
}
.nc-company-name {
  font-size: 15px;
  font-weight: 800;
  color: #1a1a2e;
}
.nc-scale {
  font-size: 11px;
  font-weight: 600;
  color: #B8860B;
  background: #FFF7E0;
  padding: 2px 8px;
  border-radius: 999px;
}
.nc-company-sub {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 7px;
}
.nc-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 6px;
}
.nc-tag {
  font-size: 11px;
  color: #4F6BFF;
  background: #EEF1FF;
  padding: 2px 8px;
  border-radius: 999px;
}
.nc-city {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.4;
}
.nc-company-go {
  flex-shrink: 0;
  font-size: 13px;
  color: var(--primary);
  font-weight: 600;
  white-space: nowrap;
}
.nc-logo {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--border);
}
.nc-logo-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #4F6BFF, #7C5CFF);
}

/* ========== 社招栏目：中国公共招聘网（人社部）岗位卡片 ========== */
.mohrss-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mohrss-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 15px 18px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.mohrss-card:hover {
  border-color: rgba(255, 143, 31, 0.5);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.mohrss-body {
  flex: 1;
  min-width: 0;
}
.mohrss-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 5px;
}
.mohrss-title {
  font-size: 15px;
  font-weight: 800;
  color: #1a1a2e;
}
.mohrss-cat {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
}
.mohrss-company {
  font-size: 13px;
  color: var(--text-light);
  margin-bottom: 6px;
}
.mohrss-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 6px;
}
.mohrss-salary {
  color: #FF5C5C;
  font-weight: 700;
  font-size: 13px;
}
.mohrss-org {
  color: #7C5CFF;
  font-weight: 600;
}
.mohrss-desc {
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.5;
  margin-bottom: 4px;
}
.mohrss-contact {
  font-size: 12px;
  color: #B8860B;
}
.mohrss-go {
  flex-shrink: 0;
  font-size: 13px;
  color: var(--primary);
  font-weight: 600;
  white-space: nowrap;
}

/* v126.2：多维筛选栏（城市/学历/专业/薪资/届别/性质输入框）已并入顶部筛选区，样式删除 */

/* ========== 平台源开关行 ========== */
.src-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
  background: #F8F9FC;
  border-radius: 12px;
  margin-bottom: 14px;
}
.src-item {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 5px 10px 5px 6px;
}
.src-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.src-name {
  font-size: 12px;
  color: var(--text);
  white-space: nowrap;
}
/* toggle 开关 */
.switch {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 18px;
  flex-shrink: 0;
}
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
.switch .slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #D5D9E4;
  border-radius: 18px;
  transition: background 0.2s;
}
.switch .slider::before {
  content: '';
  position: absolute;
  height: 14px;
  width: 14px;
  left: 2px;
  top: 2px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.switch input:checked + .slider {
  background: var(--primary);
}
.switch input:checked + .slider::before {
  transform: translateX(16px);
}

/* ========== 表格排序表头 ========== */
.th-sort {
  cursor: pointer;
  user-select: none;
}
.th-sort:hover {
  color: var(--primary);
}

/* ========== 底部 AI 提示条 ========== */
.job-hintbar {
  margin-top: 14px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #F0F3FF 0%, #F5F0FF 100%);
  border: 1px solid #E0E5FF;
  border-radius: 12px;
  font-size: 13px;
  color: var(--text-light);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.job-hintbar b { color: var(--primary); }

/* ========== 实习汇总表：顶部工具卡片行 ========== */
.intern-tools {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
@media (max-width: 900px) {
  .intern-tools { grid-template-columns: repeat(2, 1fr); }
}
.intern-tool-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.intern-tool-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--primary);
}
.intern-tool-card .itc-icon {
  font-size: 24px;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #F0F3FF, #F5F0FF);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.intern-tool-card .itc-body {
  flex: 1;
  min-width: 0;
}
.intern-tool-card .itc-body b {
  display: block;
  font-size: 13px;
  color: var(--text);
}
.intern-tool-card .itc-body span {
  display: block;
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.intern-tool-card .itc-go {
  font-size: 11px;
  color: var(--primary);
  white-space: nowrap;
}

/* ===== AI找工作 深度复刻原站布局（顶栏统计/编号研判卡/方向标签/热门chips/渠道开关/机器人Hero） ===== */

/* 顶栏统计条 */
.job-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px 18px;
  margin-bottom: 14px;
}
.job-topbar-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.job-logo {
  width: 42px; height: 42px; border-radius: 12px;
  display: block; flex: 0 0 auto; object-fit: cover;
}
.job-topbar-title { font-size: 16px; font-weight: 800; color: var(--text); }
.job-topbar-sub { font-size: 12px; color: var(--text-muted); margin-top: 1px; }
.job-topbar-stats { display: flex; gap: 22px; flex-wrap: wrap; }
.jts-item { text-align: right; }
.jts-label { font-size: 12px; color: var(--text-muted); display: block; margin-bottom: 2px; }
.jts-item b {
  font-size: 17px; font-weight: 800; color: var(--text);
  font-variant-numeric: tabular-nums; letter-spacing: 0.5px;
  /* v126.50：固定最小宽度 + 右对齐 + 禁换行——数字滚动/增长时外层容器不发生宽度抖动 */
  display: inline-block; min-width: 6ch; text-align: right; white-space: nowrap;
}
/* v126.50：「累计帮助求职者」旁边的绿色小字备注（+N） */
.jts-plus { font-size: 11px; font-weight: 700; font-style: normal; color: #10B981; margin-left: 1px; letter-spacing: 0; }

/* Offer引力 研判面板 */

/* 渠道行紧凑化（对齐原站小胶囊） */
.chsw {
  flex: 1 1 138px;
  min-width: 138px;
  padding: 5px 8px;
  gap: 6px;
}
.chsw-logo { width: 26px; height: 26px; border-radius: 7px; font-size: 12px; }
.chsw-name { font-size: 12px; }
.chsw .switch { transform: scale(0.85); }

/* 信用进度条（渐变填充 + 内凹质感） */
.credit-bar-wrap { display: flex; align-items: center; gap: 6px; }
.credit-bar {
  width: 52px;
  height: 7px;
  background: #EAEFF8;
  border-radius: 4px;
  overflow: hidden;
  flex: none;
  box-shadow: inset 0 1px 2px rgba(16, 24, 64, 0.08);
}
.credit-bar i { display: block; height: 100%; border-radius: 4px; }

/* 个人设置弹窗 */
.pset-mask {
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: rgba(10, 13, 24, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.pset-card {
  position: relative;
  width: min(720px, 100%);
  max-height: 88vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 16px;
  padding: 22px 24px;
}
.pset-close {
  position: absolute;
  top: 14px;
  right: 18px;
  font-size: 22px;
  color: var(--text-muted);
  cursor: pointer;
  line-height: 1;
}
.pset-close:hover { color: var(--primary); }
.pset-title { font-size: 18px; font-weight: 800; color: var(--text); margin-bottom: 16px; }
.pset-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.pset-item label {
  display: block;
  font-size: 13px;
  color: var(--text-light);
  margin-bottom: 6px;
  font-weight: 600;
}
.pset-item .input { width: 100%; }
.pset-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.pset-chip {
  padding: 7px 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 13px;
  color: var(--text);
  cursor: pointer;
  transition: all .15s;
  user-select: none;
}
.pset-chip:hover { border-color: var(--primary); color: var(--primary); }
.pset-chip.active { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 600; }
.pset-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}
@media (max-width: 640px) {
  .pset-grid { grid-template-columns: 1fr; }
}


/* 岗位表分页器（质感按钮） */
.job-pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 12px;
  font-size: 13px;
  color: var(--text-light);
}
.job-pager .pager-size select {
  border: 1px solid #E4E9F4;
  border-radius: 8px;
  padding: 4px 8px;
  font-size: 13px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 64, 0.05);
  cursor: pointer;
}
.job-pager .pager-nav { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.pager-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid #E4E9F4;
  border-radius: 8px;
  background: #fff;
  color: #475069;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s ease;
  box-shadow: 0 1px 2px rgba(16, 24, 64, 0.05);
}
.pager-btn:hover:not(:disabled) {
  border-color: var(--primary); color: var(--primary);
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(79, 107, 255, 0.18);
}
.pager-btn.active {
  background: linear-gradient(135deg, #5F7BFF, var(--primary));
  border-color: transparent; color: #fff; cursor: default;
  box-shadow: 0 4px 10px rgba(79, 107, 255, 0.35);
}
.pager-btn:disabled { opacity: 0.35; cursor: not-allowed; box-shadow: none; }
.pager-ellipsis { color: #98A1B3; padding: 0 2px; }

/* 事业单位招聘页 */
.soe-tabs { display: flex; gap: 8px; margin-bottom: 4px; }
.soe-tab {
  padding: 9px 20px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  transition: all .15s;
}
.soe-tab.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.wx-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 4px; }
.wx-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wx-name { font-size: 15px; font-weight: 700; color: var(--text); }
.wx-type {
  align-self: flex-start;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 6px;
  background: #F0F3FF;
  color: #4F6BFF;
}
.wx-type.official { background: #FFF4E8; color: #FF8F1F; }
.wx-desc { font-size: 12px; color: var(--text-muted); line-height: 1.6; min-height: 38px; }
.wx-card .btn { align-self: flex-start; }
@media (max-width: 900px) { .wx-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .wx-grid { grid-template-columns: 1fr; } }

/* 央企名录 + 省市县官方入口 */
.soe-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.soe-chip {
  padding: 8px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  font-size: 13px;
  color: var(--text);
  text-decoration: none;
  transition: all .15s;
}
.soe-chip:hover { border-color: var(--primary); color: var(--primary); background: #F5F7FF; }
.gov-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 4px; }
.gov-item {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
}
.gov-name { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.gov-links { display: flex; flex-direction: column; gap: 6px; }
.gov-links a { font-size: 12px; color: var(--primary); text-decoration: none; }
.gov-links a:hover { text-decoration: underline; }
@media (max-width: 900px) { .gov-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .gov-grid { grid-template-columns: 1fr; } }



.ark-panel-head {
  display: flex; justify-content: space-between; align-items: center;
  gap: 10px; flex-wrap: wrap; margin-bottom: 12px;
}
.ark-panel-title { font-size: 17px; font-weight: 800; color: var(--text); }
.ark-panel-actions { display: flex; gap: 8px; align-items: center; }
.ark-monitor-btn {
  border: 1px solid #4F6BFF; color: #4F6BFF; background: #F0F3FF;
  border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 600;
  cursor: pointer; transition: all .2s;
}
.ark-monitor-btn:hover { background: #4F6BFF; color: #fff; }
.ark-fs-btn {
  width: 32px; height: 32px; border-radius: 8px;
  border: 1px solid var(--border); background: #fff; cursor: pointer;
  color: var(--text-muted); font-size: 14px; line-height: 1;
}
.ark-fs-btn:hover { color: var(--primary); border-color: var(--primary); }

/* v126.4：编号研判卡片已升级为紧凑图标卡（.ark-cmp-card），旧编号徽章样式删除 */

/* ================= v126.4 分析简历结果卡片（自动研判 · 极致压缩） ================= */
/* 卡片整体紧凑化：内边距 16px 20px，去除多余垂直间距 */
.panel.ark-panel.ark-compact { padding: 16px 20px; }
.ark-compact .ark-panel-head { margin-bottom: 10px; gap: 8px; }
.ark-panel-title-wrap { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ark-compact .ark-panel-title { font-size: 16px; }
/* 已自动读取状态标签（极小 · 浅绿） */
.ark-src-tag {
  display: inline-flex; align-items: center;
  font-size: 12px; font-weight: 600; color: #059669;
  background: #ECFDF5; border: 1px solid #A7F3D0;
  border-radius: 999px; padding: 2px 10px; white-space: nowrap;
}
/* 监控按钮缩小版 */
.ark-monitor-btn.ark-monitor-sm {
  padding: 5px 12px; font-size: 12px; border-radius: 999px;
}
/* 紧凑研判卡：横向 4 列并排、单行描述截断、小图标 */
.ai-an-grid.ai-an-grid-compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.ai-an-card.ark-cmp-card {
  flex-direction: row; align-items: flex-start; gap: 10px; text-align: left;
  padding: 12px 16px; border-radius: 10px;
  border: 1px solid #E5E7EB; box-shadow: none;
  background: #fff;
}
.ai-an-card.ark-cmp-card:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(139, 92, 246, 0.10); }
.ark-cmp-num {
  flex: none; width: 26px; height: 26px; border-radius: 8px;
  color: #fff; font-size: 13px;
  display: flex; align-items: center; justify-content: center;
}
.ark-cmp-body { min-width: 0; }
.ark-cmp-body b { display: block; font-size: 13px; color: #111827; margin-top: 0; }
.ai-an-card.ark-cmp-card .ark-cmp-body span {
  display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis;
  font-size: 12px; color: #6B7280; line-height: 1.5; margin-top: 3px;
}
/* v126.6：AI 建议独立 Banner（浅紫底、Flex 左右对齐、悬停发光按钮、移动端纵排） */
.ark-advice-banner {
  margin-top: 16px;
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px; flex-wrap: nowrap;
  background: #F5F3FF;
  padding: 16px 24px; border-radius: 8px;
  border: 1px solid #EDE9FE;
}
.ark-advice-text {
  display: flex; align-items: center; gap: 10px;
  min-width: 0; flex: 1 1 auto;
  font-size: 14px; color: #4B5563; line-height: 1.6; font-weight: 500;
}
.ark-advice-ico {
  flex: none; width: 30px; height: 30px; border-radius: 8px;
  background: rgba(139, 92, 246, 0.12);
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; line-height: 1;
}
.ark-advice-btn {
  flex: none; height: 36px; padding: 0 20px;
  border: none; border-radius: 6px;
  background: linear-gradient(135deg, #8B5CF6, #6D28D9);
  color: #fff; font-size: 13px; font-weight: 700; font-family: inherit;
  cursor: pointer; white-space: nowrap;
  box-shadow: 0 2px 6px rgba(109, 40, 217, 0.18);
  transition: transform .18s ease, box-shadow .18s ease;
}
.ark-advice-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(139, 92, 246, 0.45);
}
.ark-advice-btn:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(109, 40, 217, 0.25); }
@media (max-width: 640px) {
  .ark-advice-banner { flex-direction: column; align-items: stretch; gap: 12px; padding: 14px 16px; }
  .ark-advice-text { flex-wrap: wrap; }
  .ark-advice-btn { width: 100%; }
}
/* 无简历引导行（优雅单行 + 小按钮） */
.ark-empty-guide {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 14px 16px; border: 1.5px dashed #DDD6FE; border-radius: 10px;
  background: #FDFCFF; font-size: 13px; color: #6B7280; line-height: 1.6;
}
.ark-guide-btn {
  border: none; background: linear-gradient(135deg, #8B5CF6, #7C3AED);
  color: #fff; font-size: 13px; font-weight: 600; font-family: inherit;
  border-radius: 999px; padding: 5px 14px; cursor: pointer; white-space: nowrap;
  transition: opacity .15s;
}
.ark-guide-btn:hover { opacity: 0.88; }
/* 自动研判加载行（紧凑） */
.ark-an-loading {
  display: flex; align-items: center; gap: 10px;
  padding: 18px 16px; font-size: 13px; color: #6B7280;
}
.ark-an-loading .spinner { width: 18px; height: 18px; }
/* 移动端：紧凑卡 2×2 */
@media (max-width: 900px) {
  .ai-an-grid.ai-an-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 热门筛选 chips（多彩） */
.chip.tone-1 { background: #F0F3FF; color: #4F6BFF; border-color: #DCE3FF; }
.chip.tone-2 { background: #F5F0FF; color: #7C5CFF; border-color: #E4DAFF; }
.chip.tone-3 { background: #FFF4E8; color: #FF8F1F; border-color: #FFE3C2; }
.chip.tone-4 { background: #E8F8F2; color: #00B578; border-color: #C5EEDD; }
.chip.tone-1.active, .chip.tone-2.active, .chip.tone-3.active, .chip.tone-4.active {
  background: var(--primary); color: #fff; border-color: var(--primary);
}

/* 渠道开关卡片行 */
.chsw-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-bottom: 14px; }
.chsw {
  min-width: 0;
  display: flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--border);
  border-radius: 12px; padding: 8px 10px;
}
.chsw-logo {
  flex: none; width: 34px; height: 34px; border-radius: 9px;
  color: #fff; font-weight: 800; font-size: 15px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background: #fff; border: 1px solid #EEF1F8;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.16);
}
.chsw-logo-img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.chsw-logo-fb { width: 100%; height: 100%; align-items: center; justify-content: center; }
.chsw-logo svg {
  display: block; width: 100%; height: 100%;
  border-radius: inherit;
}
.chsw-txt { min-width: 0; }
.chsw-name { font-size: 13px; font-weight: 700; color: var(--text); cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chsw-name:hover { color: var(--primary); }
.chsw-sub { font-size: 11px; color: var(--text-muted); margin-top: 1px; }
.chsw .switch { margin-left: auto; flex: none; }

/* ============ v126.8 投递追踪：确认弹窗 + 自动记录表 ============ */
/* 三层结构确认弹窗（420px：标题/说明/操作） */
.tk-modal-mask {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(17, 24, 39, 0.45);
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.tk-modal {
  width: 420px; max-width: 100%; background: #fff;
  border-radius: 8px; box-shadow: 0 12px 40px rgba(17, 24, 39, 0.22);
  overflow: hidden; animation: tkIn .18s ease;
}
@keyframes tkIn { from { transform: translateY(8px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
.tk-m-head { padding: 20px 24px 12px; font-size: 16px; font-weight: 600; color: #111827; background: #fff; }
.tk-m-body { padding: 16px 24px; background: #F8F9FC; border-top: 1px solid #E5E7EB; border-bottom: 1px solid #E5E7EB; }
.tk-m-job { font-size: 14px; font-weight: 600; color: #111827; margin-bottom: 6px; }
.tk-m-tip { font-size: 14px; color: #4B5563; line-height: 1.5; }
.tk-m-foot { padding: 12px 24px; background: #fff; display: flex; justify-content: flex-end; gap: 12px; }
.tk-btn-ghost {
  height: 36px; padding: 0 18px; background: #fff;
  border: 1px solid #D1D5DB; color: #4B5563; border-radius: 6px;
  font-size: 14px; font-family: inherit; cursor: pointer; transition: background .15s;
}
.tk-btn-ghost:hover { background: #F3F4F6; }
.tk-btn-primary {
  height: 36px; padding: 0 20px; background: #8B5CF6; border: none;
  color: #fff; border-radius: 6px; font-size: 14px; font-weight: 600; font-family: inherit;
  cursor: pointer; transition: background .15s, box-shadow .18s, transform .18s;
}
.tk-btn-primary:hover { background: #7C3AED; box-shadow: 0 4px 16px rgba(139, 92, 246, 0.45); transform: translateY(-1px); }

@media (max-width: 720px) {
  .job-topbar-stats { width: 100%; justify-content: space-between; gap: 10px; }
  .jts-item { text-align: left; }
  .chsw { min-width: calc(50% - 4px); }
}

/* ============ 简历魔改：左右分栏 + 版本对比（对标求职方舟） ============ */
.resume-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: start;
}
.resume-input-area {
  min-height: 420px;
  resize: vertical;
  font-size: 14px;
  line-height: 1.7;
}
.resume-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}
.resume-tab {
  flex: 1;
  text-align: center;
  padding: 10px 6px;
  border: 2px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  transition: all 0.2s;
}
.resume-tab small {
  font-size: 11px;
  font-weight: 400;
  color: var(--text-muted);
}
.resume-tab.active {
  border-color: var(--primary);
  background: #F0F3FF;
  color: var(--primary);
}
.resume-tab.active small {
  color: var(--primary);
}
.resume-empty-hint {
  color: var(--text-muted);
  font-size: 13px;
  padding: 24px;
  text-align: center;
  background: #F8F9FC;
  border-radius: 12px;
}
.resume-diff-box {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  max-height: 500px;
  overflow-y: auto;
  font-size: 14px;
  line-height: 1.8;
}
.diff-line {
  padding: 3px 8px;
  border-radius: 6px;
  white-space: pre-wrap;
  word-break: break-all;
}
.diff-line.diff-add {
  background: #E8F9F1;
  color: #0A7A4A;
}
.diff-mark {
  display: inline-block;
  color: #00B578;
  font-weight: 700;
  margin-right: 6px;
}
.diff-legend {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--border);
}
.diff-add-mark {
  color: #00B578;
  font-weight: 700;
}
.diff-legend-keep {
  color: var(--text-light);
}
/* v126.34：合作高校滚动墙（univ-*）已随模块下线删除（含跑马灯动画/徽标/媒体查询共约 50 行） */

@media (max-width: 900px) {
  .resume-split { grid-template-columns: 1fr; }
}

/* ============ 简历魔改AI：AI技术岗强化 ============ */
.ai-focus-toggle {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 12px;
  padding: 10px 12px;
  background: #7B5CFF10;
  border: 1px solid #7B5CFF33;
  border-radius: 10px;
  cursor: pointer;
  user-select: none;
}
.ai-focus-toggle input[type="checkbox"] {
  margin-top: 3px;
  width: 16px;
  height: 16px;
  accent-color: #7B5CFF;
  cursor: pointer;
  flex-shrink: 0;
}
.ai-focus-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ai-focus-text b {
  font-size: 14px;
  color: #7B5CFF;
}
.ai-focus-text small {
  font-size: 12px;
  color: var(--text-light, #888);
  line-height: 1.5;
}
.ai-focus-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  color: #7B5CFF;
  background: #7B5CFF14;
  border: 1px solid #7B5CFF33;
  padding: 2px 8px;
  border-radius: 6px;
  white-space: nowrap;
}
.ai-focus-badge.general {
  color: #8C8C8C;
  background: #8C8C8C14;
  border-color: #8C8C8C33;
}

/* ============ 五百强名企库 ============ */
.fortune-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.fortune-card {
  display: flex;
  align-items: stretch;
  background: var(--card-bg, #fff);
  border: 1px solid var(--border, #eee);
  border-radius: 14px;
  padding: 16px;
  gap: 16px;
  transition: box-shadow .2s ease, transform .2s ease;
}
.fortune-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  transform: translateY(-2px);
}
.fortune-card-rank {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #F5A623, #FF8F1F);
  border-radius: 10px;
  letter-spacing: -0.5px;
}
.fortune-card-body {
  flex: 1;
  min-width: 0;
}
.fortune-card-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}
.fortune-card-company {
  font-size: 18px;
  font-weight: 800;
  color: var(--text, #1a1a2e);
}
.fortune-card-salary {
  font-size: 16px;
  font-weight: 700;
  color: #FF5C5C;
  white-space: nowrap;
}
.fortune-card-position {
  font-size: 15px;
  font-weight: 600;
  color: var(--primary, #4F6BFF);
  margin: 4px 0 6px;
}
.fortune-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 13px;
  color: var(--text-light, #888);
  margin-bottom: 8px;
}
.fortune-level-badge {
  color: #7B5CFF;
  background: #7B5CFF14;
  border: 1px solid #7B5CFF33;
  padding: 1px 8px;
  border-radius: 6px;
  font-weight: 600;
}
.fortune-card-duty {
  font-size: 13px;
  color: var(--text-light, #888);
  line-height: 1.6;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fortune-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.fortune-card-actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-width: 88px;
}
.fortune-card-actions .btn {
  white-space: nowrap;
}
@media (max-width: 720px) {
  .fortune-card { flex-wrap: wrap; }
  .fortune-card-rank { min-width: 44px; font-size: 16px; }
  .fortune-card-actions { flex-direction: row; min-width: 100%; }
}



/* ===== 在线简历模板：Tab + 模板库 + 教程 ===== */
.tpl-tabs { display: flex; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.tpl-tab {
  padding: 10px 20px; border-radius: 12px; border: 1px solid var(--border);
  background: #fff; color: var(--text-light); font-size: 14px; font-weight: 600; cursor: pointer;
  transition: all .2s;
}
.tpl-tab:hover { border-color: var(--primary); color: var(--primary); }
.tpl-tab.active { background: var(--primary); color: #fff; border-color: var(--primary); }

.tpl-lib-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; flex-wrap: wrap; }
.tpl-lib-tip { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.tpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
.tpl-card { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: #fff; transition: box-shadow .2s, transform .2s; }
.tpl-card:hover { box-shadow: 0 8px 24px rgba(23,43,99,.10); transform: translateY(-2px); }
.tpl-card-preview { height: 230px; overflow: hidden; cursor: pointer; background: #f5f6fa; display: flex; align-items: center; justify-content: center; }
.tpl-card-preview img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.tpl-noimg { color: #ccc; font-size: 13px; }
.tpl-card-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 12px; }
.tpl-card-name { font-size: 13px; font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.tpl-empty { grid-column: 1 / -1; text-align: center; color: #ccc; padding: 40px; }

.tut-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.tut-cat { padding: 6px 16px; border-radius: 20px; border: 1px solid var(--border); background: #fff; color: var(--text-light); font-size: 13px; cursor: pointer; transition: all .2s; }
.tut-cat:hover { border-color: var(--primary); color: var(--primary); }
.tut-cat.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.tut-list { display: flex; flex-direction: column; gap: 10px; }
.tut-item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.tut-icon { font-size: 24px; }
.tut-body { flex: 1; }
.tut-name { font-size: 14px; font-weight: 600; color: var(--text); }
.tut-meta { font-size: 12px; color: var(--text-muted); margin-top: 2px; }

.tpl-modal { position: fixed; inset: 0; z-index: 999; display: none; align-items: center; justify-content: center; }
.tpl-modal-mask { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.tpl-modal-body { position: relative; background: #fff; border-radius: 16px; padding: 24px; max-width: 480px; width: calc(100% - 40px); max-height: 88vh; overflow: auto; box-shadow: 0 20px 60px rgba(0,0,0,.3); }

/* ===== 简历工作台 ===== */
.rw-wrap { display: grid; grid-template-columns: 190px 1fr 320px; gap: 16px; align-items: start; }
.rw-side { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 14px 12px; position: sticky; top: 76px; overflow: hidden; }
.rw-side-title { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 10px; }
.rw-vcard { border: 1px solid var(--border); border-radius: 10px; padding: 9px 10px; margin-bottom: 8px; cursor: pointer; transition: all .2s; position: relative; }
.rw-vcard:hover { border-color: var(--primary); }
.rw-vcard.active { background: var(--primary); border-color: var(--primary); }
.rw-vcard.active .rw-vname { color: #fff; }
.rw-vcard.active .rw-vmeta { color: rgba(255,255,255,.75); }
.rw-vcard.active .rw-vops { color: rgba(255,255,255,.75); }
.rw-vname { font-size: 13px; font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rw-vmeta { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.rw-vops { font-size: 11px; color: var(--text-muted); margin-top: 4px; cursor: pointer; opacity: 0; transition: opacity .2s; }
.rw-vcard:hover .rw-vops { opacity: 1; }
.rw-vops span:hover { text-decoration: underline; }
.rw-newbtn { width: 100%; border-style: dashed; }
.rw-main { min-width: 0; }
.rw-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; align-items: center; }
.rw-inline { width: auto; padding: 7px 10px; font-size: 13px; }
.rw-jdbar { background: #fff; border: 1px solid var(--primary); border-radius: 12px; padding: 12px; margin-bottom: 12px; }
.rw-preview { padding: 0; }
.rw-preview .resume-sheet { min-height: 500px; }
.rw-edit { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 14px; position: sticky; top: 76px; }
.rw-edit-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.rw-edit-title { font-size: 13px; font-weight: 700; color: var(--text); }
.rw-editor { width: 100%; min-height: 420px; font-size: 13px; line-height: 1.7; resize: vertical; }
.rw-edit-tips { font-size: 11px; color: var(--text-muted); margin-top: 8px; }
@media (max-width: 1080px) {
  .rw-wrap { grid-template-columns: 1fr; }
  .rw-side, .rw-edit { position: static; }
  .rw-editor { min-height: 260px; }
}

/* ===== 简历上传引导 + 岗位标签 ===== */
.rw-upload {
  margin: 18px; padding: 34px 20px; border: 2px dashed #C7CCF5; border-radius: 16px;
  text-align: center; cursor: pointer; background: #FAFBFF; transition: all .2s;
}
.rw-upload:hover, .rw-upload.drag { border-color: var(--primary); background: #F3F5FF; transform: scale(1.01); }
.rw-up-icon { font-size: 34px; margin-bottom: 6px; }
.rw-up-title { font-size: 16px; font-weight: 700; color: var(--text); }
.rw-up-sub { font-size: 12px; color: var(--text-muted); margin-top: 6px; }
.rw-or { text-align: center; font-size: 12px; color: var(--text-muted); padding: 14px 0 12px; }
.rw-jobbar { display: flex; gap: 8px; margin-bottom: 12px; }
.rw-jobtags { display: flex; flex-wrap: wrap; gap: 8px; }
.rw-jobtag {
  font-size: 12px; color: var(--text-light); background: #fff; border: 1px solid var(--border);
  padding: 5px 12px; border-radius: 8px; cursor: pointer; transition: all .15s;
}
.rw-jobtag:hover { border-color: var(--primary); color: var(--primary); background: #F3F5FF; }

/* ===== 简历工作台 v2：结构化编辑 + 标准简历渲染 ===== */
.rw2 { grid-template-columns: 170px 1fr 360px; }
.rw-navitem {
  display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-radius: 10px;
  cursor: pointer; font-size: 13px; color: var(--text-light); transition: all .15s; margin-bottom: 2px;
}
.rw-navitem:hover { background: #F3F5FF; color: var(--primary); }
.rw-navitem.active { background: var(--primary); color: #fff; }
.rw-navitem.active .rw-navicon { filter: none; }
.rw-navicon { font-size: 15px; }
.rw-theme-box { margin: 14px 0 10px; }
.rw-colors { display: flex; flex-wrap: wrap; gap: 6px; }
.rw-color { width: 22px; height: 22px; border-radius: 50%; cursor: pointer; border: 2px solid #fff; box-shadow: 0 0 0 1px #E3E6EF; transition: transform .15s; }
.rw-color:hover { transform: scale(1.15); }
.rw-color.on { box-shadow: 0 0 0 2px var(--primary); }

.rwf-label { font-size: 12px; color: var(--text-muted); margin: 10px 0 4px; }
.rwf-card { border: 1px solid var(--border); border-radius: 12px; padding: 12px; margin-bottom: 14px; background: #FAFBFD; }
.rwf-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.rwf-card-no { width: 20px; height: 20px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 12px; display: flex; align-items: center; justify-content: center; }
.rwf-card-ops { display: flex; gap: 10px; font-size: 13px; color: var(--text-muted); }
.rwf-card-ops span { cursor: pointer; }
.rwf-card-ops span:hover { color: var(--primary); }
.rwf-add { width: 100%; border-style: dashed; }

/* 标准简历渲染（参照方舟示例样式） */
.rs-page { padding: 28px 30px; background: #fff; font-size: 13px; color: #23283A; line-height: 1.75; }
.rs-head { padding-bottom: 14px; border-bottom: 2px solid #EEF0F6; margin-bottom: 6px; }
.rs-name { font-size: 26px; font-weight: 800; line-height: 1.2; }
.rs-intent { font-size: 14px; font-weight: 600; margin-top: 2px; }
.rs-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.rs-tag { font-size: 12px; padding: 3px 10px; border-radius: 6px; }
.rs-sec { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; padding-bottom: 8px; border-bottom: 1px solid #EEF0F6; }
.rs-bar { width: 4px; height: 17px; border-radius: 2px; display: inline-block; }
.rs-title { font-size: 15px; font-weight: 800; color: #1A1A2E; }
.rs-ul { margin: 6px 0 10px; padding-left: 18px; }
.rs-ul li { margin-bottom: 5px; }
.rs-ul li b { font-weight: 700; }
.rs-line { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px; }
.rs-time { color: #8A90A3; font-size: 12px; white-space: nowrap; }
.rs-dot { color: #B0B5C5; margin: 0 6px; }
.rs-quote { padding: 12px 14px; border-radius: 8px; border-left: 3px solid rgba(59,91,219,.5); }
.rs-ul .rs-ul { margin: 2px 0 6px; }
.rs-ul .rs-ul li { color: #444B5C; }
/* 简历照片（上传解析自动提取，编辑/导出全程保留） */
.rs-head { position: relative; }
.rs-photo {
  position: absolute; right: 0; top: 0; width: 76px; height: 102px;
  object-fit: cover; border-radius: 6px; border: 1px solid #E3E6EF; background: #F6F7FB;
}
.rs-head.has-photo { padding-right: 92px; }
@media (max-width: 600px) { .rs-head.has-photo { padding-right: 0; } .rs-photo { position: static; display: block; margin: 0 auto 8px; } }

/* ===== 专用打印容器：只输出简历本体（无页眉页脚/站点元素/空白页） ===== */
#print-root { display: none; }
@media print {
  @page { size: A4; margin: 0; }
  html, body { background: #fff !important; }
  body > *:not(#print-root) { display: none !important; }
  #print-root { display: block !important; }
  #print-root .rs-page {
    box-shadow: none !important; margin: 0 !important; width: 100% !important;
    min-height: auto !important; border-radius: 0 !important;
  }
  #print-root .rs-photo { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.tpl-upgrade-tip {
  background: linear-gradient(135deg, #EEEDFE, #F3F5FF); border: 1px solid #CECBF6;
  border-radius: 12px; padding: 12px 18px; font-size: 13px; color: #3C3489; margin-bottom: 16px;
}
.rw-slider-row { display: flex; align-items: center; gap: 8px; margin: 8px 0; font-size: 12px; color: var(--text-muted); }
.rw-slider-row span { width: 62px; flex: 0 0 auto; line-height: 1.3; }
.rw-slider-row input[type="range"] { flex: 1; min-width: 0; width: 100%; accent-color: var(--primary); height: 4px; }
.rw-slider-row b { width: 42px; text-align: right; color: var(--text); font-size: 12px; flex: 0 0 auto; }
.rw-eye { margin-left: auto; font-size: 12px; opacity: .7; cursor: pointer; padding: 2px; }
.rw-eye:hover { opacity: 1; }
.rw-eye.off { opacity: .45; }
.rw-navitem.hid { opacity: .5; }

/* ===== 模式Tab + 视觉简历卡片墙 ===== */
.rw-modes { display: flex; justify-content: center; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.rw-mode {
  padding: 11px 26px; border-radius: 24px; border: 1px solid var(--border);
  background: #fff; color: var(--text-light); font-size: 14px; font-weight: 600; cursor: pointer; transition: all .2s;
}
.rw-mode:hover { border-color: var(--primary); color: var(--primary); }
.rw-mode.active { background: var(--primary); color: #fff; border-color: var(--primary); box-shadow: 0 4px 14px rgba(79,107,255,.25); }
.rw-banner {
  background: linear-gradient(135deg, #7B68EE, #6C5CE7); color: #fff; text-align: center;
  padding: 10px 16px; border-radius: 10px; font-size: 13px; font-weight: 600; margin-bottom: 18px;
}
.rw-wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px; }
.rw-wallcard {
  background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden;
  cursor: pointer; transition: box-shadow .2s, transform .2s; position: relative;
}
.rw-wallcard:hover { box-shadow: 0 10px 30px rgba(23,43,99,.14); transform: translateY(-3px); }
.rw-wallcard.new { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-style: dashed; border-width: 2px; color: var(--text-muted); }
.rw-wallcard.new:hover { color: var(--primary); border-color: var(--primary); }
.rw-plus { font-size: 40px; color: var(--primary); margin-bottom: 10px; }
.rw-wallname { font-size: 14px; font-weight: 600; color: var(--text); padding: 10px 14px 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rw-wallsub { font-size: 12px; color: var(--text-muted); padding: 4px 14px 14px; text-align: center; }
.rw-wallfoot { display: flex; justify-content: space-between; align-items: center; padding: 4px 14px 12px; font-size: 12px; color: var(--text-muted); }
.rw-menudot { cursor: pointer; font-size: 16px; padding: 0 6px; border-radius: 6px; }
.rw-menudot:hover { background: #F0F2F8; color: var(--text); }
.rw-thumb { height: 300px; overflow: hidden; background: #F0F2F8; position: relative; }
.rw-thumb-scale { width: 760px; transform: scale(0.29); transform-origin: top left; pointer-events: none; }
.rw-thumb-scale .rs-page { min-height: 1030px; }
.rw-cardmenu {
  position: fixed; z-index: 1000; background: #fff; border-radius: 10px; box-shadow: 0 8px 30px rgba(0,0,0,.18);
  padding: 6px; min-width: 140px;
}
.rw-cardmenu div { padding: 9px 14px; font-size: 13px; color: var(--text); cursor: pointer; border-radius: 8px; }
.rw-cardmenu div:hover { background: #F3F5FF; }

/* ===== 版本过滤Tab + 紧凑版本卡 + 折叠面板 ===== */
.rw-vtabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 8px; }
.rw-vtab { font-size: 11px; padding: 3px 9px; border-radius: 12px; cursor: pointer; color: var(--text-muted); background: #F0F2F8; transition: all .15s; }
.rw-vtab:hover { color: var(--primary); }
.rw-vtab.active { background: var(--primary); color: #fff; }
.rw-vcard { border: 1px solid var(--border); border-radius: 8px; padding: 7px 9px; margin-bottom: 6px; cursor: pointer; transition: all .15s; }
.rw-vcard:hover { border-color: var(--primary); }
.rw-vcard.active { background: var(--primary); border-color: var(--primary); }
.rw-vcard.active .rw-vname { color: #fff; }
.rw-vcard.active .rw-vmeta { color: rgba(255,255,255,.75); }
.rw-vname { font-size: 12px; font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rw-vmeta { font-size: 11px; color: var(--text-muted); margin-top: 1px; }
.rw-vempty { font-size: 12px; color: #bbb; text-align: center; padding: 14px 0; }
.rw-fold-head {
  display: flex; justify-content: space-between; align-items: center; font-size: 13px; font-weight: 600;
  color: var(--text); cursor: pointer; padding: 6px 0; user-select: none;
}
.rw-fold-head:hover { color: var(--primary); }
.rw-fold-body { padding-bottom: 6px; }

/* ===== 方舟汇总表（对标求职方舟四板块表格） ===== */
.ak-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 4px 0 12px; }
.ak-stat { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 14px; text-align: center; box-shadow: 0 1px 4px rgba(16,24,40,.04); }
.ak-stat b { display: block; font-size: 26px; font-weight: 800; line-height: 1.25; font-variant-numeric: tabular-nums; }
.ak-stat span { font-size: 12px; color: var(--text-muted); }

.ak-toolbar { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.ak-search-row { display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.ak-search { flex: 1; min-width: 220px; }
.ak-chiprow { display: flex; align-items: flex-start; gap: 6px; flex-wrap: wrap; margin-bottom: 7px; }
.ak-chiprow-label { font-size: 12px; color: var(--text-muted); line-height: 26px; flex-shrink: 0; margin-right: 2px; }
.ak-chip { display: inline-block; padding: 3px 13px; border-radius: 999px; font-size: 12px; color: var(--text); background: #F2F4F7; border: 1px solid transparent; cursor: pointer; white-space: nowrap; transition: all .15s; }
.ak-chip:hover { color: var(--primary); }
.ak-chip.active { background: var(--primary); color: #fff; font-weight: 600; }
.ak-meta-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.ak-meta { font-size: 12px; color: var(--text-muted); }
.ak-meta b { color: var(--primary); }

.ak-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.ak-btn { display: inline-flex; align-items: center; gap: 3px; padding: 2.5px 11px; border-radius: 999px; border: 1px solid var(--primary); color: var(--primary); background: #fff; font-size: 12px; cursor: pointer; white-space: nowrap; text-decoration: none; transition: all .15s; font-family: inherit; line-height: 1.5; }
.ak-btn:hover { background: #F0F3FF; }
.ak-btn.purple { background: var(--primary); color: #fff; }
.ak-btn.purple:hover { background: #2B44D4; }

.ak-tag { display: inline-block; font-size: 11px; padding: 1.5px 8px; border-radius: 4px; font-weight: 600; white-space: nowrap; }
.ak-hot { font-size: 10px; letter-spacing: 1px; font-weight: 700; }
.ak-td-date { font-variant-numeric: tabular-nums; color: var(--text); font-size: 12.5px; }
.ak-td-dim { color: var(--text-muted); font-size: 12.5px; }
.ak-td-pos { font-size: 12.5px; line-height: 1.55; max-width: 260px; }

.ak-subtabs { display: flex; border-bottom: 2px solid var(--border); margin: 4px 0 12px; gap: 4px; }
.ak-subtab { padding: 8px 18px; font-size: 14px; cursor: pointer; color: var(--text-muted); border: none; background: none; border-bottom: 2px solid transparent; margin-bottom: -2px; font-weight: 600; font-family: inherit; transition: color .15s; }
.ak-subtab:hover { color: var(--primary); }
.ak-subtab.active { color: var(--primary); border-bottom-color: var(--primary); }

/* ===== 投递进展表 · 电子表格风 ===== */
.sheet-title { text-align: center; font-size: 16px; font-weight: 800; padding: 14px 16px 10px; letter-spacing: .5px; }
.sheet-toolbar { display: flex; align-items: center; gap: 2px; padding: 0 12px 10px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.sheet-btn { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; font-size: 12px; color: var(--text-muted); background: none; border: none; border-radius: 6px; cursor: pointer; font-family: inherit; transition: all .15s; }
.sheet-btn:hover { background: #F2F4F7; color: var(--text); }
.sheet-btn.active { color: var(--primary); background: #F0F3FF; font-weight: 600; }
.sheet-sync { margin-left: auto; font-size: 11px; color: #B8C0CC; }
.imp-sq { color: #00B578; font-size: 10px; letter-spacing: 1px; }
.imp-sq.hot { color: #FF8F1F; }
.hstatus-chip { display: inline-block; font-size: 11px; padding: 1.5px 9px; border-radius: 4px; font-weight: 600; white-space: nowrap; }

@media (max-width: 760px) {
  .ak-stats { grid-template-columns: repeat(2, 1fr); }
  .ak-stat b { font-size: 20px; }
  .ak-td-pos { max-width: 160px; }
}


/* ===== 方舟表格主题 · 浅色文档风（白底 + 细边框 + 行高一致，对标公司情报表）=====
   表头 42px #F7F9FD 12px/700  深灰字
   行   46px 白底 细横线 #EEF1F8，斑马纹 #FAFBFE
   长文本单行省略，悬停 title 展示全文；主色 #6d70c7  链接 #2B44D4
============================================================ */
.panel.arkz { background: #fff; border-color: #E6EAF3; color: #3D4356; }
.panel.arkz .realjob-head { border-bottom: 1px solid #EEF1F8; }
.panel.arkz .realjob-title { color: #1a1a2e; }
.panel.arkz .realjob-badge { color: #7A8299; }

/* 居中大标题（每栏目汇总表标题：大字粗黑体） */
.arkz-bigtitle { text-align: center; font-size: 26px; font-weight: 900; color: #111827; letter-spacing: .5px; padding: 18px 0 14px; }

/* v126.2：投递进展表特殊标记（橙色渐变栏目按钮）已随旧栏目点击栏移除，样式删除 */

/* 子标签（实时岗位 / 网申公告） */
.panel.arkz .ak-subtabs { border-bottom-color: #EEF1F8; }
.panel.arkz .ak-subtab { color: #7A8299; }
.panel.arkz .ak-subtab:hover { color: var(--primary); }
.panel.arkz .ak-subtab.active { color: var(--primary); border-bottom-color: #6d70c7; }

/* v126.2：栏目 tabs 浅色主题已随旧栏目点击栏移除 */

/* 渠道开关行（浅色胶囊） */
.panel.arkz .chsw { background: #F8F9FC; border-color: #E6EAF3; }
.panel.arkz .chsw-name { color: #3D4356; }

/* 筛选区输入框（浅色） */
.panel.arkz .input { background: #fff; border-color: #E4E9F4; color: #1a1a2e; }
.panel.arkz .input::placeholder { color: #B7BECD; }
.panel.arkz .input:focus { border-color: #6d70c7; }
.panel.arkz select.input option { background: #fff; color: #1a1a2e; }

/* —— 筛选 chips（浅色：未激活浅灰底 / 激活紫底白字） —— */
.arkz-filters { padding: 12px 14px 4px; }
.arkz-chiprow { display: flex; align-items: flex-start; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.arkz-chiprow-label { font-size: 13px; color: #5A647D; line-height: 26px; flex-shrink: 0; margin-right: 2px; }
.arkz-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 12px; border-radius: 4px; font-size: 12px; color: #5A647D; background: #F5F7FB; border: 1px solid #E4E9F4; cursor: pointer; white-space: nowrap; transition: all .15s; }
.arkz-chip:hover { color: var(--primary); border-color: #C9D4F5; }
.arkz-chip.active { background: #6d70c7; color: #fff; font-weight: 600; border-color: #6d70c7; }
.arkz-chip-ico { font-size: 11px; }
.akz-search { display: block; width: calc(100% - 28px); margin: 8px 14px 10px; background: #fff; border-color: #E4E9F4; color: #1a1a2e; }

/* 元信息行 / 操作胶囊 */
.arkz-filters .ak-meta { color: #5A647D; }
.arkz-filters .ak-meta b { color: var(--primary); }
.arkz-filters .ak-btn { background: #fff; border-color: #C9D4F5; color: #4F6BFF; }
.arkz-filters .ak-btn:hover { background: #F0F4FF; }
.arkz-filters .ak-btn.purple { background: #6d70c7; color: #fff; }

/* —— 表格主体（文档表格：白底 + 细横线 + 行高一致） —— */
.arkz-tablewrap { margin: 0 14px; border: 1px solid #E6EAF3; border-radius: 10px; overflow: auto; background: #fff; }
.arkz-table { width: 100%; border-collapse: collapse; background: #fff; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Helvetica Neue', sans-serif; }
.arkz-table thead th { position: sticky; top: 0; z-index: 2; height: 42px; padding: 0 12px; background: #F7F9FD; color: #5A647D; font-size: 13px; font-weight: 600; text-align: left; white-space: nowrap; border-bottom: 1px solid #E0E6F4; user-select: none; }
.arkz-table thead th.akz-th-center, .arkz-table thead th.akz-th-check { text-align: center; }
.arkz-table tbody td { height: 44px; padding: 0 11px; color: #3D4356; font-size: 13.5px; font-weight: 400; border-bottom: 1px solid #EEF1F8; white-space: nowrap; }
.arkz-table tbody tr:last-child td { border-bottom: none; }
.arkz-table tbody tr:nth-child(even) td { background: #FAFBFE; }
.arkz-table tbody tr:hover td { background: #F0F4FF; }
.arkz-table .th-sort { cursor: pointer; }
.arkz-table .th-sort:hover { color: var(--primary); }
.akz-arrow { font-style: normal; font-size: 9px; color: var(--primary); }
.akz-center { text-align: center !important; }
.akz-dim { color: #B7BECD !important; }
.akz-date { font-variant-numeric: tabular-nums; color: #5A647D !important; }
.akz-td-check, .akz-th-check { text-align: center !important; }
.arkz-empty { text-align: center; color: #7A8299; font-size: 14px; padding: 32px 0; background: #fff; }
.arkz-tip { color: #98A1B3; }
.panel.arkz .job-source-tip { background: #F8F9FC; border-color: #E6EAF3; color: #5A647D; }
.panel.arkz .empty-box { background: #F8F9FC; border-color: #E6EAF3; color: #7A8299; }
.panel.arkz .error-box { background: #FFF4F4; border-color: #F5C4C4; color: #C0392B; }

/* 公司列：来源小图标 + 名称 */
.arkz-company { display: flex; align-items: center; gap: 6px; min-width: 0; }
.arkz-co-ico { font-size: 12px; flex-shrink: 0; }
.arkz-co-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 108px; color: #1a1a2e; font-weight: 600; }

/* 链接（招聘公告 / 投递官网） */
.arkz-link { color: #3D4356; text-decoration: none; font-size: 13px; }
.arkz-link:hover { color: var(--primary); text-decoration: underline; }
.arkz-bluelink { color: #185FA5; text-decoration: none; font-size: 12px; }
.arkz-bluelink:hover { text-decoration: underline; }

/* 标签（12px / padding 1px 6px / radius 3px，浅色底） */
.arkz-tag { display: inline-block; font-size: 12px; line-height: 16px; padding: 1px 6px; border-radius: 3px; white-space: nowrap; }
.arkz-tag-gov { color: #D64541; background: #FDEEEE; }
.arkz-tag-foreign { color: #185FA5; background: #E6F1FB; }
.arkz-tag-listed { color: #6C5CE7; background: #EEECFD; }
.arkz-tag-private { color: #0F8A5F; background: #E5F6EE; }

/* 热门度圆点 */
.arkz-dots { display: flex; align-items: center; gap: 2px; }
.arkz-dot { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }

/* 操作按钮（紫底白字） */
.arkz-status-btn { display: inline-block; background: #6d70c7; color: #fff; font-size: 12px; line-height: 16px; padding: 2px 8px; border-radius: 3px; border: none; cursor: pointer; white-space: nowrap; font-family: inherit; transition: background .15s; }
.arkz-status-btn:hover { background: #5a5db8; }
.arkz-status-btn.done { background: #E4E9F4; color: #98A1B3; cursor: default; }

/* 投递进展表 · 实心进展 chip */
.arkz-stage-chip { display: inline-block; color: #fff; font-size: 12px; line-height: 16px; padding: 2px 9px; border-radius: 3px; white-space: nowrap; }
.arkz-reltag { display: inline-block; margin-left: 4px; font-size: 11px; line-height: 14px; padding: 1px 6px; border-radius: 3px; background: #EEECFD; color: #6C5CE7; }
.arkz-del-btn { background: none; border: 1px solid #F5C4C4; color: #C0392B; font-size: 12px; padding: 2px 10px; border-radius: 3px; cursor: pointer; font-family: inherit; }
.arkz-del-btn:hover { background: #FFF4F4; }

/* —— 投递进展表（sheet）浅色 —— */
.arkz-history .sheet-title { color: #1a1a2e; font-size: 20px; padding: 18px 16px 12px; }
.arkz-history .sheet-toolbar { border-bottom-color: #EEF1F8; padding: 0 14px 10px; }
.arkz-history .sheet-btn { color: #7A8299; }
.arkz-history .sheet-btn:hover { background: #F5F7FB; color: #1a1a2e; }
.arkz-history .sheet-btn.active { color: #fff; background: #6d70c7; }
.arkz-history .sheet-sep { width: 1px; height: 14px; background: #E6EAF3; margin: 0 4px; }
.arkz-history .sheet-sync { color: var(--primary); font-size: 12px; }
.arkz-history .arkz-table th { background: #F7F9FD; font-size: 13px; }
.arkz-history .arkz-table td { font-size: 13px; }
.arkz-history .data-table th { background: #F7F9FD !important; color: #5A647D !important; border-bottom: 1px solid #E0E6F4 !important; font-size: 13px; font-weight: 600; }
.arkz-history .data-table td { color: #3D4356 !important; border-bottom: 1px solid #EEF1F8 !important; font-size: 13px; }
.arkz-history .data-table tbody tr:hover td { background: #F0F4FF !important; }
.arkz-history .data-table .sticky-col { background: #fff; }
.arkz-history .data-table thead .sticky-col { background: #F7F9FD; }
.arkz-history .data-table .cell-edit { color: #3D4356; }
.arkz-history .data-table strong { color: #1a1a2e; }

/* ===== 实时岗位表（jt-main）浅色覆盖 ===== */
.panel.arkz .data-table thead th { background: #F7F9FD; color: #5A647D; font-size: 12px; font-weight: 700; letter-spacing: .4px; border-bottom: 1px solid #E0E6F4; height: 42px; }
.panel.arkz .data-table tbody tr:nth-child(even) { background: #fff; }
.panel.arkz .data-table tbody tr { background: #fff; }
.panel.arkz .data-table tbody tr:hover { background: #F0F4FF !important; }
.panel.arkz .data-table tbody tr:hover td { background: transparent !important; }
.panel.arkz .data-table tbody td { color: #3D4356; border-bottom: 1px solid #EEF1F8; background: transparent; }
.panel.arkz .jt-company-name { color: #1a1a2e; }
.panel.arkz .jt-muted { color: #7A8299; }
.panel.arkz .jt-dim { color: #B7BECD; }
.panel.arkz .jt-title-link { color: var(--primary); }
.panel.arkz .jt-title-link:hover { color: #2B44D4; }
.panel.arkz .jt-title-plain { color: #3D4356; }
.akz-pos { max-width: 560px; overflow: hidden; text-overflow: ellipsis; }

/* —— 行高一致：全部单元格单行省略（悬停 title 看全文） —— */
.job-table.jt-main thead th { height: 42px; padding: 8px 8px; }
.job-table.jt-main tbody td { height: 46px; padding: 6px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; word-break: normal; line-height: 1.4; }
.jt-td-upd, .jt-upd { white-space: nowrap; }
.jt-upd { font-variant-numeric: tabular-nums; color: #5A647D; font-weight: 600; font-size: 12.5px; }
.jt-upd-today { color: #00A870; }
.jt-upd-today::before { content: '●'; font-size: 8px; margin-right: 4px; vertical-align: 2px; }
.jt-td-prop { white-space: nowrap; }
.jt-ind { color: #5A647D; font-size: 12.5px; }
.jt-td-ind { min-width: 56px; max-width: 92px; }
.jt-match { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; font-size: 12.5px; white-space: nowrap; cursor: help; }
.jt-match b { font-variant-numeric: tabular-nums; font-size: 12.5px; }
.jt-match-na { color: #B7BECD; font-size: 12px; cursor: help; }
.jt-td-company { max-width: 190px; }
.jt-td-company .jt-company { align-items: center; }
.jt-td-company .jt-company-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jt-td-title { max-width: 320px; }
.jt-td-title .jt-title-link, .jt-td-title .jt-title-plain { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; word-break: normal; }
.jt-td-city { max-width: 110px; }
.jt-td-city .jt-chip { white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.jt-td-major { max-width: 300px; }
.jt-td-major .jt-major { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ===== 优势挖掘 v2（经历卡 + 溯源 + 质量自检 + JD 市场画像） ===== */
.str-profile-hint-panel {
  font-size: 14px;
  color: var(--text-light);
  padding: 12px 16px;
  margin-bottom: 12px;
}
.exp-card {
  background: #F8F9FC;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 12px;
  transition: box-shadow 0.3s, border-color 0.3s, background 0.3s;
}
.exp-card.flash {
  animation: expFlash 1.6s ease;
}
@keyframes expFlash {
  0% { border-color: var(--primary); background: #EEF0FF; box-shadow: 0 0 0 3px rgba(109,112,199,0.25); }
  60% { border-color: var(--primary); background: #EEF0FF; }
  100% { border-color: var(--border); background: #F8F9FC; box-shadow: none; }
}
.exp-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.exp-tag {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--primary);
  background: rgba(109, 112, 199, 0.12);
  border: 1px solid rgba(109, 112, 199, 0.35);
  padding: 3px 9px;
  border-radius: 999px;
}
.exp-card-head .exp-name { flex: 1; min-width: 0; }
.exp-del {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--text-muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s;
}
.exp-del:hover { color: #A32D2D; border-color: #A32D2D; }
.exp-card .exp-act, .exp-card .exp-res { margin-top: 8px; width: 100%; }

/* 溯源徽章（卖点里的 [E1]） */
.str-ref {
  display: inline-block;
  margin-left: 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--primary);
  background: rgba(109, 112, 199, 0.1);
  border: 1px solid rgba(109, 112, 199, 0.35);
  padding: 1px 7px;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s;
}
.str-ref:hover { background: var(--primary); color: #fff; }
.str-warn-inline {
  display: inline-block;
  margin-left: 8px;
  font-size: 11px;
  font-weight: 600;
  color: #854F0B;
  background: #FAEEDA;
  padding: 1px 7px;
  border-radius: 999px;
}
.str-src { font-size: 12px; font-weight: 400; color: var(--text-muted); margin-left: 8px; }
.str-src-note { font-size: 12px; color: var(--text-muted); line-height: 1.6; margin-top: 12px; background: #F8F9FC; padding: 10px 12px; border-radius: 8px; }
.sp-list li { display: flex; align-items: baseline; flex-wrap: wrap; }

/* 质量自检 */
.q-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.q-label { width: 76px; font-size: 13px; font-weight: 600; color: #333; flex-shrink: 0; }
.q-bar { flex: 1; height: 10px; background: var(--border); border-radius: 999px; overflow: hidden; }
.q-fill { height: 100%; border-radius: 999px; transition: width 0.6s ease; }
.q-val { font-size: 13px; font-weight: 700; white-space: nowrap; }
.str-warn {
  font-size: 13px;
  color: #854F0B;
  background: #FAEEDA;
  border-radius: 8px;
  padding: 9px 12px;
  margin-bottom: 8px;
  line-height: 1.6;
}
.sk-block { margin-top: 12px; }
.sk-title { font-size: 13px; font-weight: 600; color: #333; margin-bottom: 8px; }
.sk-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.sk-cat { font-size: 12px; color: var(--text-muted); background: var(--border); padding: 2px 8px; border-radius: 999px; flex-shrink: 0; }
.sk-words { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.sk-word {
  font-size: 12px;
  font-weight: 600;
  color: #185FA5;
  background: #E6F1FB;
  border: 1px solid rgba(24, 95, 165, 0.3);
  padding: 2px 9px;
  border-radius: 999px;
}
.sk-word.ok { color: #0F6E56; background: #E1F5EE; border-color: rgba(15, 110, 86, 0.3); }
.sk-word.gap { color: #993C1D; background: #FAECE7; border-color: rgba(217, 90, 48, 0.35); }

/* 才干四域 chip 内的小字域标 */
.str-domain-chip { display: inline-flex; align-items: center; gap: 6px; margin: 3px 4px 3px 0; }
.str-domain-chip .str-domain {
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  background: rgba(0, 0, 0, 0.06);
  padding: 1px 6px;
  border-radius: 999px;
}
.str-legend { font-size: 12px; color: var(--text-muted); margin-top: 10px; }

/* JD 市场画像 */
.jd-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.jd-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 600;
  color: #534AB7;
  background: #EEEDFE;
  border: 1px solid rgba(83, 74, 183, 0.3);
  padding: 5px 12px;
  border-radius: 999px;
}
.jd-chip i { font-style: normal; font-size: 11px; color: var(--text-muted); font-weight: 400; }
.jd-gap { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.jd-gap-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
@media (max-width: 600px) {
  .exp-card-head { flex-wrap: wrap; }
  .exp-card-head .exp-name { flex: 1 1 100%; order: 3; }
}
.panel.arkz .jt-chip { background: #F1F4FA; color: #475069; border-color: #E4E9F4; }
.panel.arkz .jt-chip-blue { background: #EEF2FF; color: var(--primary); border-color: #DCE4FF; }
.panel.arkz .jt-major { color: #7A8299; }
.panel.arkz .jt-logo { background: #fff; }
.panel.arkz .prop-tag { border-color: transparent; }
.panel.arkz .credit-bar { background: #EDF1F9; }
.panel.arkz .job-pager { color: #7A8299; border-top-color: #EEF1F8; }
.panel.arkz .pager-btn { background: #fff; border-color: #E4E9F4; color: #5A647D; }
.panel.arkz .pager-btn.active { background: #6d70c7; border-color: #6d70c7; color: #fff; }
.panel.arkz .pager-size select { background: #fff; border-color: #E4E9F4; color: #1a1a2e; }
.panel.arkz .job-check-badge { color: var(--primary) !important; }
.panel.arkz .btn.btn-outline { background: #fff; border-color: #C9D4F5; color: #4F6BFF; }
.panel.arkz .btn.btn-outline:hover { background: #F0F4FF; }
.panel.arkz .btn.btn-primary { background: #6d70c7; border-color: #6d70c7; color: #fff; }
.panel.arkz .job-topbar { background: #fff; border-color: #E6EAF3; }
.panel.arkz .job-topbar-title { color: #1a1a2e; }
.panel.arkz .job-topbar-sub { color: #7A8299; }
.panel.arkz .jts-label { color: #7A8299; }
.panel.arkz .jts-item b { color: #1a1a2e; }
.panel.arkz .ark-monitor-btn { background: #fff; border-color: #C9D4F5; color: #4F6BFF; }
.panel.arkz .ark-panel-title { color: #1a1a2e; }
.panel.arkz .ark-panel { background: #fff; border-color: #E6EAF3; }
.panel.arkz .ai-an-card { background: #fff; border-color: #E6EAF3; color: #3D4356; }

@media (max-width: 760px) {
  .arkz-bigtitle { font-size: 19px; }
  .arkz-tablewrap { margin: 0 10px; }
  .arkz-table tbody td { white-space: normal; }
}

/* ===== 优势挖掘 ===== */
.str-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.str-tag {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #FF8F1F, #FF5C5C);
  padding: 8px 16px;
  border-radius: 20px;
}
.str-list {
  margin: 0;
  padding-left: 20px;
  line-height: 1.8;
  color: var(--text);
}
.str-list li {
  margin-bottom: 6px;
}

/* ===== 模拟面试预演 ===== */
.mock-mode-desc {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 10px;
}

/* ===== 简历工作台 v3：工具首页 + 统一顶栏 + 魔改三卡 + 专岗步骤条 + 内联编辑 ===== */
.rw-workbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  padding: 10px 12px; margin-bottom: 14px;
}
.rw-backhome {
  border: 1px solid var(--border); background: #F8F9FC; color: var(--text-light);
  border-radius: 999px; padding: 6px 14px; font-size: 13px; cursor: pointer; transition: all .2s;
}
.rw-backhome:hover { color: var(--primary); border-color: var(--primary); }
.rw-modetabs { display: inline-flex; gap: 8px; }
.rw-workbar-right { margin-left: auto; display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* 工具首页 */
.rwh-hero { text-align: center; padding: 18px 0 6px; }
.rwh-hero-badge {
  display: inline-block; font-size: 12px; font-weight: 600; color: var(--primary);
  background: rgba(109,112,199,.1); padding: 4px 14px; border-radius: 999px; margin-bottom: 10px;
}
.rwh-hero-title { font-size: 24px; font-weight: 800; color: #1a1a2e; margin-bottom: 6px; }
.rwh-hero-sub { font-size: 14px; color: var(--text-muted); }
.rwh-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 22px 0; }
.rwh-card {
  background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 22px 20px;
  cursor: pointer; transition: transform .2s, box-shadow .2s, border-color .2s; position: relative; overflow: hidden;
}
.rwh-card:hover { transform: translateY(-3px); border-color: var(--primary); box-shadow: 0 12px 30px rgba(79,107,255,.12); }
.rwh-card-1 { border-top: 3px solid #4F6BFF; }
.rwh-card-2 { border-top: 3px solid #FF8F1F; }
.rwh-card-3 { border-top: 3px solid #10B981; }
.rwh-card-icon { font-size: 30px; margin-bottom: 10px; }
.rwh-card-name { font-size: 16px; font-weight: 800; color: #1a1a2e; margin-bottom: 6px; }
.rwh-card-desc { font-size: 13px; color: var(--text-light); margin-bottom: 12px; line-height: 1.6; }
.rwh-card-steps { margin: 0 0 14px; padding-left: 18px; font-size: 12.5px; color: var(--text-muted); line-height: 1.9; }
.rwh-card-btn { width: 100%; }
.rwh-recent { margin-top: 6px; }
.rwh-recent-title { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 10px; }
.rwh-recent-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.rwh-recent-card {
  background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; cursor: pointer; transition: all .2s;
}
.rwh-recent-card:hover { border-color: var(--primary); }
.rwh-recent-name { font-size: 13px; font-weight: 700; color: #1a1a2e; margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rwh-recent-meta { font-size: 12px; color: var(--text-muted); }

/* 魔改方式三卡 */
.rw-magic-wrap, .rw-tg-wrap {
  background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 16px 18px; margin-bottom: 14px;
}
.rw-magic-label { font-size: 14px; font-weight: 700; color: #1a1a2e; margin-bottom: 12px; }
.rw-magic-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.rw-magic-card {
  border: 1.5px solid var(--border); border-radius: 12px; padding: 12px 14px; cursor: pointer; transition: all .2s; background: #fff;
}
.rw-magic-card:hover { border-color: var(--primary); }
.rw-magic-card.on { border-color: var(--primary); background: #F6F8FF; box-shadow: 0 0 0 2px rgba(109,112,199,.15); }
.rmc-top { display: flex; align-items: center; gap: 7px; margin-bottom: 6px; flex-wrap: wrap; }
.rmc-icon { font-size: 17px; }
.rmc-name { font-size: 14px; font-weight: 700; color: #1a1a2e; }
.rmc-tag {
  font-size: 10px; font-weight: 700; color: var(--text-muted); background: var(--border);
  padding: 1px 7px; border-radius: 999px;
}
.rmc-tag.hot { color: #fff; background: #FF8F1F; }
.rmc-desc { font-size: 12px; color: var(--text-muted); line-height: 1.6; }
/* ==========================================================================
 * v109：三页去重重构（废除「三选一」中间页）
 * ① 简历润色工作台：粘贴/上传输入区 + 改写方式 + 主按钮
 * ② AI简历工坊顶部极简提示条
 * ③ 过机筛优化：50/50 双栏 + 关键词热力图说明
 * ========================================================================== */
.rw-workbar-title { display: flex; flex-direction: column; line-height: 1.3; margin-right: 6px; }
.rw-workbar-title .rw-workbar-sub { font-size: 11.5px; font-weight: 500; color: var(--text-muted); }
.rw-inzone { padding: 16px 18px 14px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 14px; }
.rw-inzone-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.rw-inzone-title { font-size: 15px; font-weight: 700; color: var(--text); }
.rw-inzone-hint { font-size: 12px; color: var(--text-muted); }
.rw-inzone-step {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 6px; background: #EEF0FF; color: var(--primary);
  font-size: 12px; font-weight: 700; flex: none;
}
.rw-inzone-ta { width: 100%; resize: vertical; line-height: 1.6; }
.rw-inzone-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.rw-inzone-tip { font-size: 12px; color: var(--text-muted); margin-left: auto; }
.rw-inzone-tip a { color: var(--primary); cursor: pointer; text-decoration: none; }
.rw-inzone-tip a:hover { text-decoration: underline; }
.rw-magic-label { display: flex; align-items: center; gap: 8px; }
.rw-magic-go-wrap { margin-top: 14px; }
.rw-magic-go { width: 100%; height: 46px; font-size: 15px; font-weight: 700; border-radius: 10px; }
.rw-magic-go-tip { margin-top: 6px; text-align: center; font-size: 12px; color: var(--text-muted); }

/* AI简历工坊：顶部极简提示条（全局 Header 之下） */
.ra-topbar {
  display: flex; align-items: center; gap: 10px; margin: 0 0 12px;
  padding: 8px 14px; background: #F7F6FF; border: 1px solid #E9E4FF; border-radius: 10px;
}
.ra-topbar-txt { font-size: 13px; color: #4B5563; }
.ra-topbar-link { color: var(--primary); font-weight: 600; cursor: pointer; text-decoration: none; }
.ra-topbar-link:hover { text-decoration: underline; }

/* 过机筛优化：热力图说明 + 底部通栏按钮 */
.ats-match-tip {
  display: flex; align-items: flex-start; gap: 8px; margin-bottom: 14px;
  padding: 10px 14px; background: #FFF7ED; border: 1px solid #FFE0B2; border-radius: 10px;
  font-size: 13px; color: #7C4A03; line-height: 1.6;
}
.ats-match-ico { font-size: 15px; line-height: 1.4; }
.ats-col .panel-title { display: flex; align-items: center; gap: 8px; }
.ats-actions { margin-top: 4px; }
.ats-go { height: 48px; font-size: 16px; font-weight: 700; border-radius: 10px; }
.ats-go-tip { margin-top: 8px; text-align: center; font-size: 12px; color: var(--text-muted); }
.rw-pick .rw-pick-sub { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.rw-pick .rw-pick-btn { width: 100%; margin-top: 10px; pointer-events: none; }
.rw-pick { margin-bottom: 14px; }
.rw-pick .btn-outline { margin-top: 12px; }

/* 专岗步骤条 */
.rw-flow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.rwf-step {
  font-size: 12.5px; font-weight: 600; color: var(--text-muted);
  background: #F8F9FC; border: 1px solid var(--border); padding: 5px 12px; border-radius: 999px;
}
.rwf-step.on { color: var(--primary); background: rgba(109,112,199,.08); border-color: rgba(109,112,199,.4); }
.rwf-arrow { color: var(--text-muted); font-size: 12px; }
.rw-tg-wrap .rw-jobtags { margin: 10px 0; }
.rw-demo {
  margin-top: 14px; background: #F8F9FC; border-radius: 10px; padding: 12px 14px;
}
.rw-demo-title { font-size: 13px; font-weight: 700; color: #1a1a2e; margin-bottom: 8px; }
.rw-demo-row { font-size: 12.5px; color: var(--text-light); line-height: 1.9; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rd-chip {
  display: inline-block; font-size: 11.5px; font-weight: 700; color: #185FA5;
  background: #E6F1FB; padding: 2px 10px; border-radius: 999px; white-space: nowrap;
}
.rd-chip.ok { color: #0F6E56; background: #E1F5EE; }
.rd-chip.bad { color: #993C1D; background: #FAECE7; }

/* 预览头部 + 内联编辑 */
.rw-preview-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-bottom: 10px; padding: 0 4px;
}
.rw-ph-title { font-size: 14px; font-weight: 700; color: #1a1a2e; }
.rw-ph-hint { font-size: 12px; font-weight: 400; color: var(--text-muted); margin-left: 8px; }
.rw-inline-toggle {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600;
  color: var(--text-light); cursor: pointer; user-select: none;
}
.rw-inline-toggle input { accent-color: var(--primary); }
.rs-ed { border-radius: 4px; transition: box-shadow .2s, background .2s; cursor: text; }
.rs-ed:hover { background: rgba(109,112,199,.07); box-shadow: 0 0 0 2px rgba(109,112,199,.25); }
.rs-ed:focus { outline: none; background: #fff; box-shadow: 0 0 0 2px var(--primary); }

/* 优秀案例参考 */
.rw-samples { margin-top: 22px; }
.rw-samples-title { font-size: 15px; font-weight: 800; color: #1a1a2e; margin-bottom: 12px; }
.rw-samples-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 420px)); gap: 16px; justify-content: center; }
.rw-sample-card {
  background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; transition: all .2s;
}
.rw-sample-card:hover { border-color: var(--primary); box-shadow: 0 10px 26px rgba(79,107,255,.1); }
.rw-sample-card .rw-thumb { height: 300px; overflow: hidden; }
.rw-sample-foot { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; gap: 10px; }
.rw-sample-foot .rw-wallname { font-size: 14px; }

/* 移动端适配 */
@media (max-width: 980px) {
  .rwh-cards { grid-template-columns: 1fr; }
  .rwh-recent-list { grid-template-columns: repeat(2, 1fr); }
  .rw-magic-cards { grid-template-columns: 1fr; }
  .rw-samples-grid { grid-template-columns: 1fr; }
  .rw-workbar-right { margin-left: 0; width: 100%; }
  .rw-workbar { position: static; }
}
@media (max-width: 600px) {
  .rwh-hero-title { font-size: 20px; }
  .rwh-recent-list { grid-template-columns: 1fr; }
  .rw-modetabs { width: 100%; }
  .rw-modetabs .rw-mode { flex: 1; padding: 8px 6px; font-size: 12px; }
}

/* ===== 过机筛优化 v2：AI术语库 + 本地ATS规则 + 逐条改写 ===== */
.atx-scan {
  margin-top: 10px; background: #F8F9FC; border: 1px dashed var(--border);
  border-radius: 10px; padding: 10px 12px;
}
.atx-scan-title { font-size: 12.5px; font-weight: 700; color: var(--text-light); margin-bottom: 8px; }
.atx-scan-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.atx-term {
  display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600;
  padding: 3px 10px; border-radius: 999px;
}
.atx-term i { font-style: normal; opacity: .55; font-size: 11px; }
.atx-badge {
  font-size: 11px; font-weight: 700; color: var(--primary); background: rgba(109,112,199,.1);
  padding: 2px 10px; border-radius: 999px; margin-left: 6px; vertical-align: 2px;
}
.atx-score-hero {
  display: flex; align-items: center; justify-content: center; gap: 26px;
  background: #F0F3FF; border-radius: 12px; padding: 16px 20px; margin-bottom: 16px;
}
.atx-score-hero b { font-size: 42px; font-weight: 800; color: var(--text); line-height: 1; }
.atx-score-hero span { display: block; font-size: 12px; color: var(--text-muted); margin-top: 6px; text-align: center; }
.atx-score-after b { color: var(--primary); }
.atx-arrow { font-size: 22px; color: var(--text-muted); }
.atx-dim { margin-bottom: 12px; }
.atx-dim-head { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 5px; color: var(--text-light); }
.atx-dim-val { font-weight: 700; color: var(--text); }
.atx-dim-val i { font-style: normal; color: var(--text-muted); margin: 0 6px; }
.atx-dim-track { position: relative; height: 9px; background: #EEF0F6; border-radius: 5px; overflow: hidden; }
.atx-dim-fill { position: absolute; left: 0; top: 0; height: 100%; border-radius: 5px; z-index: 2; transition: width .6s; }
.atx-dim-ghost { position: absolute; left: 0; top: 0; height: 100%; background: rgba(0,0,0,.08); z-index: 1; border-radius: 5px; }
.atx-formula { font-size: 12px; color: var(--text-muted); background: #F8F9FC; border-radius: 8px; padding: 8px 12px; margin-top: 12px; line-height: 1.6; }
.atx-norms { display: flex; flex-direction: column; gap: 6px; }
.atx-norm-row {
  display: flex; align-items: center; gap: 10px; font-size: 13px;
  background: #F8F9FC; border-radius: 8px; padding: 7px 12px; flex-wrap: wrap;
}
.atx-norm-raw { color: #993C1D; background: #FAECE7; padding: 2px 10px; border-radius: 6px; }
.atx-norm-arrow { color: var(--text-muted); }
.atx-norm-std { color: #0F6E56; background: #E1F5EE; padding: 2px 10px; border-radius: 6px; font-weight: 600; }
.atx-hint { font-size: 12px; color: var(--text-muted); line-height: 1.7; margin-top: 12px; }
.atx-bullets { display: flex; flex-direction: column; gap: 12px; }
.atx-bc { border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; }
.atx-bc-row { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.7; }
.atx-bc-row.raw { color: var(--text-muted); margin-bottom: 8px; }
.atx-bc-row.new { color: var(--text); font-weight: 500; }
.atx-bc-tag {
  flex: 0 0 auto; font-size: 11px; font-weight: 700; color: var(--text-muted);
  background: var(--border); border-radius: 6px; padding: 2px 8px; margin-top: 2px;
}
.atx-bc-tag.new { color: #fff; background: var(--primary); }
.atx-bc-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
.atx-bc-reason { font-size: 12px; color: var(--text-muted); }
.atx-bc-hits { display: flex; gap: 6px; flex-wrap: wrap; }
.atx-hit {
  font-style: normal; font-size: 11.5px; font-weight: 700; color: #0F6E56;
  background: #E1F5EE; padding: 2px 9px; border-radius: 999px;
}
.atx-hit.none { color: var(--text-muted); background: var(--border); font-weight: 500; }
.atx-miss { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.atx-miss-chip {
  font-size: 13px; color: #A32D2D; background: #FFF0F0; border: 1px solid #F5C4C4;
  padding: 5px 13px; border-radius: 8px;
}
.atx-weak { font-size: 13px; color: var(--text-light); background: #FAF7EF; border-radius: 8px; padding: 7px 12px; margin-bottom: 8px; line-height: 1.6; }
.atx-weak span { color: var(--text-muted); }
.atx-declare {
  margin-top: 14px; font-size: 12px; color: var(--text-muted); line-height: 1.9;
  background: #F8F9FC; border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px;
}
.atx-declare b { color: var(--text); }
.atx-warn {
  font-size: 12.5px; color: #854F0B; background: #FAEEDA; border: 1px solid #E8CFA5;
  border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; line-height: 1.8;
}
.atx-warn b { color: #412402; }

/* ===== 简历工作台 · 求职方舟风格强化 (v60) ===== */
.rw-modetabs { display:flex; gap:6px; background:#fff; border:1px solid #E8EAF3; border-radius:999px; padding:4px; flex-wrap:wrap; }
.rw-modetabs .rw-mode { border:none; background:transparent; border-radius:999px; padding:6px 20px; display:flex; flex-direction:column; align-items:center; line-height:1.25; color:#5A607F; box-shadow:none; }
.rw-modetabs .rw-mode b { font-size:13px; font-weight:700; }
.rw-modetabs .rw-mode i { font-style:normal; font-size:11px; opacity:.72; }
.rw-modetabs .rw-mode:hover { color:#6D5BF6; border-color:transparent; }
.rw-modetabs .rw-mode.active { background:linear-gradient(135deg,#8F7BFF,#6D5BF6); color:#fff; border-color:transparent; box-shadow:0 6px 16px rgba(109,91,246,.35); }
.rw-workbar { box-shadow:0 2px 10px rgba(23,43,99,.04); }
.rw-vcard { border-radius:10px; }
.rw-vcard.active { background:linear-gradient(135deg,#8F7BFF,#6D5BF6); border-color:transparent; box-shadow:0 6px 14px rgba(109,91,246,.28); }
/* 专岗优化面板（对标方舟右侧表单卡） */
.rw-tg-wrap.rw-tg-qzfz { background:#fff; border:1px solid #E8EAF3; border-radius:14px; padding:18px; box-shadow:0 2px 10px rgba(23,43,99,.04); }
.rw-tg-title { font-size:16px; font-weight:800; color:#1F2440; }
.rw-tg-sub { font-size:12.5px; color:#8A90A8; line-height:1.7; margin:6px 0 14px; }
.rw-tg-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rw-tg-cta { display:block; width:100%; margin-top:14px; padding:14px; border:none; border-radius:999px; background:linear-gradient(135deg,#8F7BFF,#6D5BF6); color:#fff; font-size:15px; font-weight:700; cursor:pointer; box-shadow:0 8px 20px rgba(109,91,246,.35); transition:transform .15s, box-shadow .15s; }
.rw-tg-cta:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(109,91,246,.42); }
/* 视觉模板预设卡 */
.rw-tpl-title { font-size:14px; font-weight:700; color:#1F2440; margin:0 0 10px; }
.rw-tpl-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:14px; margin-bottom:20px; }
.rw-tplcard { background:#fff; border:1px solid #E8EAF3; border-radius:12px; padding:10px; cursor:pointer; transition:all .15s; }
.rw-tplcard:hover { border-color:#6D5BF6; box-shadow:0 8px 18px rgba(109,91,246,.16); transform:translateY(-2px); }
.rw-tplprev { height:96px; border-radius:8px; padding:12px 10px; display:flex; flex-direction:column; gap:6px; }
.rw-tplline { height:7px; border-radius:4px; display:block; }
.rw-tplname { font-size:13px; font-weight:700; color:#1F2440; margin-top:8px; }
.rw-tpldesc { font-size:11.5px; color:#8A90A8; line-height:1.5; margin-top:2px; }
/* 版本PK 弹窗 */
.rw-pk-overlay { position:fixed; inset:0; background:rgba(20,24,44,.5); z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; }
.rw-pk { background:#F5F6FA; border-radius:16px; width:min(1180px,96vw); max-height:92vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.3); }
.rw-pk-head { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; background:#fff; font-size:15px; font-weight:800; color:#1F2440; border-bottom:1px solid #E8EAF3; }
.rw-pk-close { cursor:pointer; font-size:18px; color:#8A90A8; padding:2px 8px; border-radius:8px; }
.rw-pk-close:hover { background:#F0F2F8; color:#1F2440; }
.rw-pk-body { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:14px; overflow:auto; }
.rw-pk-col { min-width:0; }
.rw-pk-col select { margin-bottom:10px; }
.rw-pk-page { background:#fff; border-radius:10px; min-height:300px; box-shadow:0 2px 10px rgba(23,43,99,.06); overflow:hidden; }
/* 表格快搜框（统一规格） */
.akz-search { max-width:420px; margin:0 0 10px; }
.akz-search-meta { font-size:12px; color:var(--text-muted); margin-left:8px; }
@media (max-width:900px){ .rw-pk-body { grid-template-columns:1fr; } .rw-tg-grid { grid-template-columns:1fr; } }

/* ===== v61：大厂实习城市搜索框 ===== */
.ak-city-input { width:210px; max-width:60vw; padding:5px 10px; font-size:12.5px; border-radius:999px; border:1px solid var(--border); background:#fff; height:26px; }
.ak-city-input:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 2px rgba(79,107,255,.12); }

/* ===== v61：AI笔面试 · 笔试类型分组（16类全口径） ===== */
.exam-type-groups { display:flex; flex-direction:column; gap:10px; }
.exam-type-row { display:flex; align-items:flex-start; gap:10px; flex-wrap:wrap; }
.exam-type-cat { flex:0 0 86px; text-align:center; font-size:12.5px; font-weight:700; color:var(--primary); background:#F0F3FF; border-radius:8px; padding:6px 0; margin-top:2px; }
.exam-type-chips { display:flex; gap:10px; flex-wrap:wrap; flex:1; }
.exam-type-chips .option-item { margin-bottom:0; }

/* ===== v61：面试题库方向说明 ===== */
.bank-dir-hint { font-size:12.5px; color:var(--text-muted); margin-top:2px; }

/* ===== v61：试卷化排版（笔试卷 / 面经题库通用，对标真实试卷题序） ===== */
.exam-paper { border:1px solid #E3E7F2; }
.exam-paper-head { text-align:center; border-bottom:2px solid #E3E7F2; padding:6px 0 14px; margin-bottom:16px; }
.exam-paper-title { font-size:19px; font-weight:900; color:var(--text); letter-spacing:1px; }
.exam-paper-meta { display:flex; gap:18px; justify-content:center; margin-top:8px; font-size:12.5px; color:var(--text-muted); flex-wrap:wrap; }
.exam-sec { margin-bottom:18px; }
.exam-sec-title { font-size:14.5px; font-weight:800; color:var(--text); background:#F6F8FE; border-left:4px solid var(--primary); padding:8px 12px; border-radius:0 8px 8px 0; margin-bottom:12px; }
.exam-q { border:1px solid #E9EDF6; border-radius:10px; padding:14px 16px; margin-bottom:12px; background:#fff; transition:border-color .2s; }
.exam-q.graded { border-color:#B9E5D3; background:#FBFEFD; }
.exam-q-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.exam-q-no { display:inline-flex; align-items:center; justify-content:center; background:var(--primary); color:#fff; font-size:12px; font-weight:700; border-radius:6px; padding:3px 10px; }
.exam-q-score { font-size:12.5px; color:#FF8F1F; font-weight:600; }
.exam-q-body { font-size:15px; line-height:1.85; color:var(--text); white-space:normal; word-break:break-word; margin-bottom:10px; }
.exam-q-answer { font-size:14px; }
.exam-q-actions { display:flex; align-items:center; gap:10px; margin-top:8px; }
.exam-q-verdict { font-size:12.5px; color:var(--text-muted); display:inline-flex; align-items:center; gap:6px; }
.exam-q-result { margin-top:10px; }
.exam-verdict-box { background:#F8FAFF; border:1px solid #DCE3F8; border-radius:10px; padding:12px 14px; }
.exam-verdict-title { font-size:13.5px; font-weight:800; color:var(--primary); margin-bottom:6px; }
.exam-verdict-body { font-size:13.5px; line-height:1.85; color:var(--text); }
.exam-q-tip { font-size:13px; line-height:1.8; color:#2E7D32; background:#F2FBF4; border:1px solid #D3EED9; border-radius:8px; padding:8px 12px; margin-top:8px; }
.exam-paper-foot { border-top:1px dashed #D8DEEC; margin-top:14px; padding-top:12px; font-size:12.5px; color:var(--text-muted); text-align:center; }

/* ===================== v92 全站 UX/UI 升级（第一部分：字体与排版） =====================
   v3.0：字号/行高改引 fonts.css 排版变量（正文 16px · 行高 1.75 · 深灰 #1F2937） */
html {
  font-family: var(--font-sans, 'Inter', -apple-system, 'HarmonyOS Sans SC', 'MiSans', 'PingFang SC', sans-serif);
}
body {
  font-family: var(--font-sans, 'Inter', -apple-system, 'HarmonyOS Sans SC', 'MiSans', 'PingFang SC', sans-serif) !important;
  font-size: var(--text-base, 16px);
  line-height: var(--leading-relaxed, 1.75);
  color: var(--color-text-main, #1F2937);
}
/* 卡片/模块主标题统一 17px/600/#111827
   v126.3：.wb-card-title（工作台驾驶舱模块标题）移出本规则，改由 workbench.css 定义 16px（用户规范） */
.panel-title, .career-panel-title, .modal-title, .tpl-card-name {
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #111827 !important;
}
/* 辅助标签 13px（含 12px 以下一律抬升到 12px 下限之上） */
.panel-label, .wb-card-sub, .wb-aux, .tpl-lib-tip, .career-ai-sub { font-size: 13px; }
/* KPI 数字与表格日期：等宽数字（28px/700 已有 KPI，表格日期补 tabular-nums） */
.wb-num, .wb-kpi-num, .wb-dist-val, .atx-dim-val, .career-bar-val {
  font-variant-numeric: tabular-nums;
}
/* 表单输入框：42px 高、14px 字号（textarea 不受高度限制） */
textarea.input, input.input, select.input {
  font-size: 14px;
  padding: 10px 14px;
  min-height: 42px;
  line-height: 1.6;
}
input.input, select.input { height: 42px; }
textarea.input { min-height: 120px; }
/* 全站禁止 12px 以下字体 */
.wb-tag, .tag-soon, .tag-hot, .wb-side-soon, .atx-term, .step-desc, .wb-pipe-time, .wb-pipe-count {
  font-size: 12px;
}

/* ===================== v92 第二部分：工具页双列宽幅网格 ===================== */
.tp-grid { display: grid; gap: 18px; margin-bottom: 18px; align-items: stretch; }
.tp-grid.tp-21 { grid-template-columns: 2fr 1fr; }
.tp-grid.tp-11 { grid-template-columns: 1fr 1fr; }
.tp-grid > .panel { margin-bottom: 0; height: 100%; display: flex; flex-direction: column; }
.tp-actions { margin: 0 0 18px; }
.tp-actions .btn { width: 100%; }
@media (max-width: 900px) {
  .tp-grid.tp-21, .tp-grid.tp-11 { grid-template-columns: 1fr; }
}

/* v92：表格升级（行高 56px、内边距 16px 12px、表头浅灰） */
.wb-table th { background: #F9FAFB; padding: 12px 16px; font-size: 13px; }
.wb-table td { padding: 16px 12px; }
.wb-table tbody tr { min-height: 56px; }
.wb-table tbody tr:hover { background: #FBFAFF; }
/* v92：图表底色（雷达图容器极浅品牌紫） */
.career-radar-svg { background: #F5F3FF; border-radius: 12px; }
.career-bar-track { background: #F5F3FF; }
/* v92：统一空状态（内联 SVG + 温暖文案） */
.wb-empty { text-align: center; padding: 26px 12px; }
.wb-empty svg { display: block; margin: 0 auto 8px; filter: drop-shadow(0 2px 8px rgba(139, 92, 246, .18)); }
.wb-empty-t { font-size: 14px; font-weight: 600; color: #4B5563; }
.wb-empty-s { font-size: 13px; color: #9CA3AF; margin-top: 4px; }
/* v92：面试历史记录列表 */
.iv-hist-item { padding: 10px 12px; border: 1px solid #E5E7EB; border-radius: 10px; margin-bottom: 8px; background: #FBFAFF; }
.iv-hist-item:last-child { margin-bottom: 0; }
.iv-hist-q { font-size: 13px; font-weight: 600; color: #374151; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.iv-hist-meta { font-size: 12px; color: #9CA3AF; margin-top: 4px; }

/* ===================== v126.5 AI填网申 · 高保真插件落地页 ===================== */
.af-landing {
  max-width: 1100px;
  margin: 0 auto;
  background: #FAFAFC;
  border-radius: 16px;
  padding: 40px 36px 36px;
}
/* ---- 左右双栏 Hero ---- */
.af-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; }
@media (max-width: 960px) { .af-hero { grid-template-columns: 1fr; } .af-landing { padding: 24px 16px; } }
.af-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 700; color: #7C3AED;
  background: #F3EEFF; border: 1px solid #DDD6FE; border-radius: 999px;
  padding: 4px 12px; margin-bottom: 14px;
}
.af-title { font-size: 34px; font-weight: 800; color: #111827; letter-spacing: -0.5px; margin: 0 0 10px; line-height: 1.25; }
.af-subtitle { font-size: 16px; color: #4B5563; margin: 0 0 18px; line-height: 1.7; }
.af-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.af-tags span {
  font-size: 13px; font-weight: 600; color: #374151;
  background: #fff; border: 1px solid #E5E7EB; border-radius: 999px; padding: 6px 14px;
}
.af-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.af-btn {
  border: none; border-radius: 10px; padding: 13px 22px;
  font-size: 14.5px; font-weight: 700; font-family: inherit; cursor: pointer;
  transition: transform .15s, box-shadow .15s, opacity .15s; white-space: nowrap;
}
.af-btn:hover { transform: translateY(-2px); }
.af-btn-primary {
  background: linear-gradient(135deg, #8B5CF6, #7C3AED); color: #fff;
  box-shadow: 0 6px 20px rgba(124, 58, 237, 0.35);
}
.af-btn-ghost { background: #fff; color: #374151; border: 1.5px solid #E5E7EB !important; }
.af-btn-ghost:hover { border-color: #8B5CF6 !important; color: #7C3AED; }
.af-btn-sm { padding: 9px 16px; font-size: 13px; }
.af-install-note {
  font-size: 12.5px; color: #6B7280; line-height: 1.8;
  background: #FDFCFF; border: 1.5px dashed #DDD6FE; border-radius: 10px;
  padding: 10px 14px; margin-bottom: 10px;
}
.af-install-note b { color: #7C3AED; }
.af-install-note i { font-style: normal; color: #9CA3AF; margin: 0 3px; }
.af-users-note { font-size: 12.5px; color: #9CA3AF; margin-bottom: 18px; line-height: 1.7; }
.af-foot { font-size: 12.5px; color: #9CA3AF; font-weight: 600; }
/* ---- 右侧浏览器窗口模型（模拟特斯拉官网表单） ---- */
.af-browser {
  position: relative; background: #fff; border: 1px solid #E5E7EB; border-radius: 14px;
  box-shadow: 0 12px 40px rgba(17, 24, 39, 0.10); overflow: hidden;
}
.af-browser-bar {
  display: flex; align-items: center; gap: 7px; padding: 10px 14px;
  background: #F1F3F5; border-bottom: 1px solid #E5E7EB;
}
.af-dot { width: 11px; height: 11px; border-radius: 50%; }
.af-dot-r { background: #FF5F57; } .af-dot-y { background: #FEBC2E; } .af-dot-g { background: #28C840; }
.af-address {
  flex: 1; margin-left: 8px; background: #fff; border-radius: 999px;
  font-size: 11.5px; color: #6B7280; padding: 5px 14px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.af-browser-body { padding: 20px 22px 24px; }
.af-form-head { font-size: 15px; font-weight: 800; color: #171A20; margin-bottom: 16px; padding-left: 10px; border-left: 3px solid #E82127; }
.af-frow {
  display: grid; grid-template-columns: 76px 1fr 22px; align-items: center; gap: 8px;
  padding: 9px 10px; border: 1px solid #EEF0F3; border-radius: 8px; margin-bottom: 7px;
  background: #fff;
}
.af-frow.done { border-color: #A7F3D0; background: #F6FEFA; }
.af-frow label { font-size: 12px; color: #6B7280; font-weight: 600; }
.af-frow.done label { color: #067A57; }
.af-fval {
  font-size: 12.5px; color: #111827; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.af-frow.pending .af-fval { color: #C4C9D2; font-weight: 400; }
.af-fok {
  width: 18px; height: 18px; border-radius: 50%; background: #10B981; color: #fff;
  font-size: 11px; display: flex; align-items: center; justify-content: center;
}
.af-submit {
  margin-top: 12px; text-align: center; background: #E82127; color: #fff;
  font-size: 13px; font-weight: 700; border-radius: 8px; padding: 11px 0;
}
/* 悬浮激活面板 */
.af-float {
  position: absolute; right: 14px; bottom: 14px;
  display: flex; align-items: center; gap: 10px;
  background: rgba(17, 24, 39, 0.88); backdrop-filter: blur(4px);
  border-radius: 12px; padding: 10px 14px;
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.30);
}
.af-float-dot {
  width: 9px; height: 9px; border-radius: 50%; background: #34D399; flex: none;
  box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.5);
  animation: af-pulse 1.8s ease-out infinite;
}
@keyframes af-pulse {
  0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0.55); }
  70% { box-shadow: 0 0 0 8px rgba(52, 211, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}
.af-float b { display: block; color: #fff; font-size: 12px; font-weight: 700; }
.af-float span:last-child { display: block; color: #9CA3AF; font-size: 11px; margin-top: 2px; }
/* ---- 我的简历配置（折叠面板） ---- */
.af-config { margin-top: 28px; background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; overflow: hidden; }
.af-config-head {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  background: none; border: none; padding: 16px 20px; cursor: pointer;
  font-size: 15px; font-weight: 700; color: #111827; font-family: inherit; text-align: left;
}
.af-config-tip { font-size: 12px; color: #9CA3AF; font-weight: 500; margin-left: 10px; }
.af-config-arrow { font-style: normal; color: #9CA3AF; transition: transform .2s; }
.af-config.open .af-config-arrow { transform: rotate(180deg); }
.af-config-body { display: none; padding: 0 20px 20px; }
.af-config.open .af-config-body { display: block; }
.af-config-actions { display: flex; align-items: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.af-save-tip { font-size: 12.5px; color: #6B7280; }
.af-code { background: #EEF1F8; padding: 1px 7px; border-radius: 5px; font-size: 12.5px; }
.af-doc { margin-top: 20px; }
/* ---- 引用感言区 ---- */
.af-quotes { margin-top: 32px; }
.af-quotes-title { font-size: 18px; font-weight: 800; color: #111827; text-align: center; margin-bottom: 18px; }
.af-quotes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 900px) { .af-quotes-grid { grid-template-columns: 1fr; } }
.af-quote {
  background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 18px 18px 16px;
  display: flex; flex-direction: column; gap: 12px;
}
.af-quote p { margin: 0; font-size: 13px; color: #374151; line-height: 1.85; }
.af-quote-by { font-size: 12px; color: #9CA3AF; font-weight: 600; }

/* ============================================================
   v126.37 AI笔面试 · 全局视觉重构 + 笔试练习深度开发
   （页面级组件统一前缀 ivw-，左侧全局侧边栏不受任何影响）
   ============================================================ */

/* --- 第一部分：页面底色 / 极简横条 Banner / 居中 Tab --- */
.ivw-root {
  background: linear-gradient(135deg, #F8F9FC 0%, #F3F4F9 100%);
  border-radius: 20px;
}
.ivw-root .panel {
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(16, 24, 40, 0.04);
}
.ivw-banner {
  position: relative;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 22px 24px;
  margin-bottom: 16px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}
.ivw-banner::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(180deg, #A78BFA, #7C3AED);
}
.ivw-banner-title {
  font-size: 22px; font-weight: 800; color: #111827;
  letter-spacing: -0.3px; margin-bottom: 5px;
}
.ivw-banner-sub { font-size: 13px; color: #6B7280; }

.ivw-tabs { display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; }
.ivw-tab {
  border: none; cursor: pointer; font-family: inherit;
  padding: 11px 34px; border-radius: 40px;
  font-size: 15px; font-weight: 600; line-height: 1.4;
  background: #F3F4F6; color: #4B5563;
  transition: all .25s ease;
}
.ivw-tab:hover { background: #EDE9FE; color: #6D28D9; }
.ivw-tab.active {
  background: linear-gradient(135deg, #7C3AED 0%, #9F67FF 100%);
  color: #fff;
  box-shadow: 0 6px 18px rgba(124, 58, 237, 0.32);
}

/* --- 第二/三部分：双栏布局 / 搜索框 / 三层标签 --- */
.ivw-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 16px; align-items: start;
}
.ivw-main { min-width: 0; }
.ivw-side { min-width: 0; }
.ivw-side .panel { position: sticky; top: 90px; }

.ivw-search { position: relative; margin-bottom: 18px; }
.ivw-search-ico {
  position: absolute; left: 14px; top: 50%;
  transform: translateY(-50%);
  color: #9CA3AF;
  pointer-events: none;   /* 图标永不拦截输入交互 */
}
/* v126.38 紧急修复：输入文字被搜索图标遮挡。
   根因：基础规则 input.input{padding:14px 16px}（0,1,1）特异性压过
   旧写法 .ivw-search-input{padding-left:42px}（0,1,0）→ 实际左内边距只剩 16px，
   图标（left:14px + 17px 宽）盖到 31px，文字起始位被压。
   修复：input.ivw-search-input（0,1,1）+ !important 双保险，左内边距 42px。 */
input.ivw-search-input {
  padding: 14px 16px 14px 42px !important;
  box-sizing: border-box !important;
}

.ivw-group { margin-bottom: 16px; }
.ivw-group-label { font-size: 13px; font-weight: 700; color: #374151; margin-bottom: 8px; }
.ivw-group-tip { font-weight: 400; font-size: 12px; color: #9CA3AF; margin-left: 6px; }
.ivw-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ivw-tag {
  border: 2px solid transparent;
  background: #F3F4F6; color: #4B5563;
  font-size: 13px; font-family: inherit;
  padding: 5px 14px; border-radius: 20px;
  cursor: pointer; user-select: none; line-height: 1.5;
  transition: all .18s ease;
}
.ivw-tag:hover { background: #EDE9FE; color: #7C3AED; }
.ivw-tag.active {
  background: #F5F3FF;
  border-color: #7C3AED;
  color: #7C3AED;
  font-weight: 700;
}
/* 兜底标签：独立金色高亮（与 8 大行业灰底形成强区分） */
.ivw-tag.gold { background: #FFFBEB; color: #B45309; }
.ivw-tag.gold:hover { background: #FEF3C7; color: #92400E; }
.ivw-tag.gold.active {
  background: linear-gradient(135deg, #F59E0B, #FBBF24);
  border-color: #F59E0B;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.35);
}

/* --- 第四部分：双模式操作入口 --- */
.ivw-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 20px; }
.ivw-act {
  border-radius: 16px; padding: 22px 20px; cursor: pointer;
  font-family: inherit; text-align: left;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
}
.ivw-act-title { font-size: 17px; font-weight: 800; margin-bottom: 7px; }
.ivw-act-sub { font-size: 12.5px; line-height: 1.6; opacity: .92; }
.ivw-act-primary {
  border: none;
  background: linear-gradient(135deg, #7C3AED 0%, #9F67FF 100%);
  color: #fff;
  box-shadow: 0 10px 28px rgba(124, 58, 237, 0.35);
}
.ivw-act-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(124, 58, 237, 0.45);
}
.ivw-act-secondary {
  background: #fff; color: #111827;
  border: 1.5px solid #E5E7EB;
}
.ivw-act-secondary .ivw-act-sub { color: #6B7280; opacity: 1; }
.ivw-act-secondary:hover {
  background: #FAFAFF; border-color: #C4B5FD; transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(16, 24, 40, 0.05);
}

/* --- 右侧数据看板 --- */
.ivw-board-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.ivw-stat {
  background: linear-gradient(180deg, #F9FAFB, #F3F4F6);
  border-radius: 12px; padding: 14px 10px; text-align: center;
}
.ivw-stat-num { font-size: 24px; font-weight: 800; color: #7C3AED; }
.ivw-stat.warn .ivw-stat-num { color: #DC2626; }
.ivw-stat.ok .ivw-stat-num { color: #059669; }
.ivw-stat-label { font-size: 12px; color: #6B7280; margin-top: 2px; }
.ivw-rate { background: #F9FAFB; border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.ivw-rate-head { display: flex; justify-content: space-between; font-size: 12.5px; color: #4B5563; margin-bottom: 8px; }
.ivw-rate-head b { color: #7C3AED; font-weight: 800; }
.ivw-rate-bar { height: 8px; border-radius: 4px; background: #EDE9FE; overflow: hidden; }
.ivw-rate-bar i {
  display: block; height: 100%; border-radius: 4px;
  background: linear-gradient(90deg, #A78BFA, #7C3AED);
  transition: width .4s ease;
}
.ivw-board-tip { font-size: 11.5px; color: #9CA3AF; line-height: 1.7; }

/* --- 组卷确认弹窗 --- */
.ivw-modal-mask {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(17, 24, 39, 0.45);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  animation: ivwFadeIn .2s ease;
}
.ivw-modal {
  background: #fff; border-radius: 18px;
  max-width: 480px; width: 100%;
  padding: 28px 26px 22px;
  box-shadow: 0 24px 60px rgba(16, 24, 40, 0.22);
  text-align: center;
  animation: ivwPopIn .25s ease;
}
@keyframes ivwFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes ivwPopIn { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }
.ivw-modal-badge {
  display: inline-block; font-size: 12px; font-weight: 700;
  color: #7C3AED; background: #F5F3FF;
  border-radius: 20px; padding: 4px 14px; margin-bottom: 14px;
}
.ivw-modal-title { font-size: 16.5px; font-weight: 800; color: #111827; line-height: 1.55; margin-bottom: 14px; }
.ivw-modal-body { margin-bottom: 20px; }
.ivw-modal-scope {
  background: #F8F7FF; border: 1px dashed #C4B5FD;
  border-radius: 12px; padding: 12px 14px;
  font-size: 13.5px; color: #4B5563; line-height: 1.8;
}
.ivw-modal-meta { font-size: 12.5px; color: #9CA3AF; margin-top: 10px; }
.ivw-modal-btns { display: flex; gap: 10px; }
.ivw-modal-btn {
  flex: 1; border: none; cursor: pointer; font-family: inherit;
  padding: 12px 0; border-radius: 12px; font-size: 14.5px; font-weight: 700;
  transition: all .2s ease;
}
.ivw-modal-btn-ghost { background: #F3F4F6; color: #4B5563; }
.ivw-modal-btn-ghost:hover { background: #E5E7EB; }
.ivw-modal-btn-primary {
  background: linear-gradient(135deg, #7C3AED, #9F67FF); color: #fff;
  box-shadow: 0 6px 16px rgba(124, 58, 237, 0.3);
}
.ivw-modal-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(124, 58, 237, 0.4); }

/* --- 答题区（模拟卷） --- */
.ivw-paper { padding: 24px; }
.ivw-paper-head { border-bottom: 1px solid #F3F4F6; padding-bottom: 14px; margin-bottom: 14px; }
.ivw-paper-title { font-size: 18px; font-weight: 800; text-align: center; }
.ivw-paper-meta {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 14px;
  font-size: 12.5px; color: #6B7280; margin-top: 8px;
}
.ivw-paper-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 16px; }
.ivw-paper-chip {
  font-size: 12px; font-weight: 600; color: #7C3AED;
  background: #F5F3FF; border: 1px solid #EDE9FE;
  border-radius: 16px; padding: 3px 12px;
}
.ivw-q { border: 1px solid #F3F4F6; border-radius: 14px; padding: 16px; margin-bottom: 14px; }
.ivw-q-head { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.ivw-q-no { font-size: 13px; font-weight: 800; color: #7C3AED; }
.ivw-q-score { font-size: 12px; color: #9CA3AF; }
.ivw-q-body { font-size: 14.5px; font-weight: 600; color: #1F2937; line-height: 1.7; margin-bottom: 12px; }
.ivw-q-opts { display: grid; gap: 8px; }
.ivw-opt {
  display: flex; align-items: center; gap: 10px; text-align: left;
  background: #F9FAFB; border: 1.5px solid transparent; border-radius: 10px;
  padding: 10px 14px; font-size: 13.5px; color: #374151;
  cursor: pointer; font-family: inherit; transition: all .18s ease;
}
.ivw-opt:hover { border-color: #C4B5FD; background: #FDFCFF; }
.ivw-opt-key {
  flex: none; width: 22px; height: 22px; border-radius: 50%;
  background: #EDE9FE; color: #7C3AED;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
}
.ivw-opt.right { border-color: #059669; background: #ECFDF5; color: #065F46; }
.ivw-opt.right .ivw-opt-key { background: #059669; color: #fff; }
.ivw-opt.wrong { border-color: #DC2626; background: #FEF2F2; color: #991B1B; }
.ivw-opt.wrong .ivw-opt-key { background: #DC2626; color: #fff; }
.ivw-q-exp {
  display: none; margin-top: 10px;
  font-size: 12.5px; color: #4B5563; line-height: 1.8;
  background: #F8F7FF; border-radius: 10px; padding: 10px 12px;
}
.ivw-q-exp.show { display: block; }
.ivw-q-exp b { color: #7C3AED; }
.ivw-paper-foot { text-align: center; font-size: 12px; color: #9CA3AF; padding-top: 6px; }

/* --- 响应式：窄屏双栏塌缩为单列 --- */
@media (max-width: 960px) {
  .ivw-grid { grid-template-columns: 1fr; }
  .ivw-side .panel { position: static; }
  .ivw-actions { grid-template-columns: 1fr; }
  .ivw-tabs { flex-wrap: wrap; }
}

/* ============================================================
   v126.39 全真机考 · 单题流答题引擎（顶部固定栏 + 70/30 双栏 + 答题卡 + 成绩单）
   ============================================================ */
/* --- 顶部固定栏（试卷名 + 倒计时） --- */
.ivw-exam-top {
  position: sticky; top: 72px; z-index: 20;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--border);
  border-radius: 16px; padding: 14px 20px;
  box-shadow: 0 4px 20px rgba(16, 24, 40, 0.04);
  margin-bottom: 16px;
}
.ivw-exam-name { font-size: 15.5px; font-weight: 800; color: #111827; }
.ivw-exam-timer {
  font-size: 15px; font-weight: 800; color: #7C3AED;
  font-variant-numeric: tabular-nums; letter-spacing: .5px;
}
.ivw-exam-timer.urgent {
  color: #DC2626;
  animation: ivwBlink 1s ease-in-out infinite;
}
@keyframes ivwBlink { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

/* --- 左右双栏：70% 作答区 / 30% 答题卡 --- */
.ivw-exam-body {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
  gap: 16px; align-items: start;
}
.ivw-exam-main { min-width: 0; }
.ivw-exam-side { min-width: 0; }

/* --- 左侧单题卡 --- */
.ivw-qcard { padding: 24px; }
.ivw-qcard-head { display: flex; align-items: center; gap: 6px; margin-bottom: 12px; }
.ivw-qcard-tag {
  margin-left: auto; font-size: 12px; font-weight: 600; color: #7C3AED;
  background: #F5F3FF; border: 1px solid #EDE9FE;
  border-radius: 12px; padding: 3px 10px; white-space: nowrap;
}
.ivw-qcard-title {
  font-size: 15px; font-weight: 600; color: #1F2937;
  line-height: 1.8; margin-bottom: 16px;
}
.ivw-opt[disabled] { cursor: default; }
.ivw-opt[disabled]:hover { border-color: transparent; background: #F9FAFB; }
.ivw-opt.right[disabled]:hover, .ivw-opt.wrong[disabled]:hover { background: inherit; }
/* 底部导航行：上一题 / 进度 / 下一题 */
.ivw-qcard-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-top: 20px; padding-top: 16px;
  border-top: 1px solid #F3F4F6;
}
.ivw-nav-btn {
  border: 1.5px solid #E5E7EB; background: #fff; color: #4B5563;
  border-radius: 10px; padding: 9px 18px;
  font-size: 13.5px; font-weight: 600; cursor: pointer;
  font-family: inherit; transition: all .18s ease; white-space: nowrap;
}
.ivw-nav-btn:hover:not([disabled]) { border-color: #C4B5FD; color: #7C3AED; }
.ivw-nav-btn[disabled] { opacity: .35; cursor: not-allowed; }
.ivw-nav-btn.ivw-nav-next {
  background: linear-gradient(135deg, #7C3AED, #9F67FF);
  color: #fff; border: none;
  box-shadow: 0 5px 14px rgba(124, 58, 237, 0.28);
}
.ivw-nav-btn.ivw-nav-next:hover:not([disabled]) { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(124, 58, 237, 0.38); }
.ivw-qcard-progress {
  font-size: 13px; font-weight: 700; color: #6B7280;
  font-variant-numeric: tabular-nums;
}

/* --- 右侧答题卡面板 --- */
.ivw-card-panel { position: sticky; top: 140px; padding: 18px; }
.ivw-card-title { font-size: 14px; font-weight: 800; color: #111827; margin-bottom: 10px; }
.ivw-card-meta { display: flex; gap: 12px; margin-bottom: 12px; }
.ivw-card-legend { font-size: 11.5px; color: #6B7280; display: inline-flex; align-items: center; }
.ivw-card-legend::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  display: inline-block; margin-right: 4px;
}
.ivw-card-legend.lg-done::before { background: #059669; }
.ivw-card-legend.lg-cur::before  { background: #7C3AED; }
.ivw-card-legend.lg-todo::before { background: #E5E7EB; }
.ivw-card-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px;
  max-height: 320px; overflow-y: auto; padding: 2px;
}
.ivw-card-cell {
  border: 2px solid transparent; background: #F3F4F6; color: #4B5563;
  border-radius: 8px; height: 30px; padding: 0;
  font-size: 12px; font-weight: 600; line-height: 1;
  cursor: pointer; font-family: inherit; transition: all .15s ease;
}
.ivw-card-cell:hover { background: #EDE9FE; color: #7C3AED; }
/* 已答：绿底白字 */
.ivw-card-cell.done { background: #059669; color: #fff; }
.ivw-card-cell.done:hover { background: #047857; color: #fff; }
/* 当前：品牌紫加粗边框 + 浅紫底（已答当前保留绿底+紫框） */
.ivw-card-cell.cur { border-color: #7C3AED; background: #F5F3FF; color: #7C3AED; font-weight: 800; }
.ivw-card-cell.done.cur { background: #059669; color: #fff; }
.ivw-card-count {
  margin-top: 12px; font-size: 12px; font-weight: 700;
  color: #6B7280; text-align: center;
  font-variant-numeric: tabular-nums;
}
/* 红色全宽交卷按钮 */
.ivw-submit-btn {
  margin-top: 12px; width: 100%;
  border: none; border-radius: 12px; padding: 12px 0;
  background: linear-gradient(135deg, #DC2626, #EF4444); color: #fff;
  font-size: 14.5px; font-weight: 800; cursor: pointer; font-family: inherit;
  box-shadow: 0 6px 16px rgba(220, 38, 38, 0.3);
  transition: all .2s ease;
}
.ivw-submit-btn:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(220, 38, 38, 0.4); }

/* --- 成绩单（居中卡片） --- */
.ivw-score {
  text-align: center; padding: 40px 28px 32px;
  max-width: 560px; margin: 0 auto;
}
.ivw-score-title { font-size: 16px; font-weight: 800; color: #374151; margin-bottom: 18px; }
.ivw-score-num {
  font-size: 68px; font-weight: 800; line-height: 1.05;
  background: linear-gradient(135deg, #7C3AED, #9F67FF);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: #7C3AED;
}
.ivw-score-sub { font-size: 13px; color: #9CA3AF; margin: 8px 0 22px; }
.ivw-score-row { display: flex; gap: 10px; justify-content: center; margin-bottom: 24px; }
.ivw-score-cell {
  flex: 1; max-width: 130px; border-radius: 12px; padding: 12px 8px;
  display: flex; flex-direction: column; gap: 2px;
}
.ivw-score-cell b { font-size: 22px; font-weight: 800; }
.ivw-score-cell span { font-size: 12px; color: #6B7280; }
.ivw-score-cell.ok   { background: #ECFDF5; } .ivw-score-cell.ok b   { color: #059669; }
.ivw-score-cell.bad  { background: #FEF2F2; } .ivw-score-cell.bad b  { color: #DC2626; }
.ivw-score-cell.gray { background: #F3F4F6; } .ivw-score-cell.gray b { color: #4B5563; }
.ivw-score-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.ivw-score-btn {
  border: none; border-radius: 12px; padding: 12px 24px;
  font-size: 14px; font-weight: 700; cursor: pointer; font-family: inherit;
  transition: all .2s ease;
}
.ivw-score-btn.ghost { background: #F3F4F6; color: #4B5563; }
.ivw-score-btn.ghost:hover { background: #E5E7EB; }
.ivw-score-btn.primary {
  background: linear-gradient(135deg, #7C3AED, #9F67FF); color: #fff;
  box-shadow: 0 6px 16px rgba(124, 58, 237, 0.3);
}
.ivw-score-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 9px 20px rgba(124, 58, 237, 0.4); }

/* --- 响应式：窄屏单列 --- */
@media (max-width: 960px) {
  .ivw-exam-body { grid-template-columns: 1fr; }
  .ivw-card-panel { position: static; }
  .ivw-qcard-foot { flex-wrap: wrap; justify-content: center; }
}

/* v126.40 数据看板空态提示（首次无笔试数据：全 0 + 引导） */
.ivw-board-tip.hint { color: #D97706; font-weight: 600; }

/* ================= v126.41 「临门一脚」季卡/年卡专属权限校验（vip_gate.js） ================= */
/* ④ 专属升级拦截弹窗：半透明黑遮罩 + 居中白底模态框（圆角16px + 品牌紫发光阴影） */
.vipgate-mask {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(0, 0, 0, 0.55);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  animation: vipgateFade .18s ease-out;
}
.vipgate-modal {
  position: relative; width: 400px; max-width: calc(100vw - 48px);
  background: #FFFFFF; border-radius: 16px; padding: 34px 28px 26px;
  text-align: center;
  box-shadow: 0 0 0 1px rgba(124, 58, 237, 0.10),
              0 0 48px rgba(124, 58, 237, 0.45),
              0 24px 64px rgba(17, 24, 39, 0.22);
  animation: vipgatePop .22s cubic-bezier(.34, 1.4, .64, 1);
}
@keyframes vipgateFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vipgatePop { from { opacity: 0; transform: scale(.88) translateY(12px); } to { opacity: 1; transform: scale(1) translateY(0); } }
.vipgate-close {
  position: absolute; top: 12px; right: 14px; width: 30px; height: 30px;
  border: none; background: transparent; border-radius: 50%;
  font-size: 20px; line-height: 30px; color: #9CA3AF; cursor: pointer;
}
.vipgate-close:hover { background: #F3F4F6; color: #374151; }
.vipgate-badge {
  display: inline-block; margin-bottom: 14px;
  font-size: 12px; font-weight: 700; letter-spacing: .5px;
  color: #FFFFFF; background: linear-gradient(135deg, #7C3AED, #A855F7);
  border-radius: 999px; padding: 5px 14px;
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.35);
}
.vipgate-title { font-size: 20px; font-weight: 800; color: #111827; margin-bottom: 10px; }
.vipgate-sub { font-size: 13.5px; color: #6B7280; line-height: 1.75; margin-bottom: 6px; }
.vipgate-days {
  margin: 10px auto 4px; display: inline-block;
  font-size: 12.5px; font-weight: 600; color: #B45309;
  background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 999px; padding: 5px 14px;
}
.vipgate-btns { display: flex; gap: 10px; margin-top: 22px; }
.vipgate-btn-primary {
  flex: 1.6; border: none; cursor: pointer;
  font-size: 15px; font-weight: 700; color: #FFFFFF;
  background: linear-gradient(135deg, #7C3AED, #A855F7);
  border-radius: 12px; padding: 13px 10px;
  box-shadow: 0 8px 22px rgba(124, 58, 237, 0.40);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.vipgate-btn-primary:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 10px 26px rgba(124, 58, 237, 0.50); }
.vipgate-btn-ghost {
  flex: 1; cursor: pointer; font-size: 14px; font-weight: 600; color: #374151;
  background: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 13px 10px;
  transition: background .15s ease, border-color .15s ease;
}
.vipgate-btn-ghost:hover { background: #F9FAFB; border-color: #D1D5DB; }

/* ⑤ 页面加载防绕过：全屏白色遮罩层（z-index:9999，覆盖整页内容防 URL 直入查看） */
.vipgate-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: #FFFFFF;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
}
.vipgate-ov-inner { padding: 24px; }
.vipgate-ov-ico { font-size: 54px; line-height: 1; margin-bottom: 18px; }
.vipgate-ov-text { font-size: 20px; font-weight: 800; color: #111827; margin-bottom: 8px; }
.vipgate-ov-sub { font-size: 13.5px; color: #9CA3AF; }

@media (max-width: 480px) {
  .vipgate-modal { padding: 28px 18px 20px; }
  .vipgate-btns { flex-direction: column-reverse; }
  .vipgate-title { font-size: 18px; }
}

/* ================= v126.42 简历模板库（tpllib 页，rt- 前缀） ================= */
.rt-root { --rt-primary: #7C3AED; }
/* 顶部：标题 + 金色大礼包按钮（Flex 两端对齐，同一行） */
.rt-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 4px; }
.rt-top-left { min-width: 0; }
.rt-title { font-size: 30px; font-weight: 800; color: #111827; margin: 0; letter-spacing: -.5px; line-height: 1.25; }
.rt-sub { color: #6B7280; font-size: 13.5px; margin: 8px 0 0; line-height: 1.6; }
.rt-count { display: inline-block; margin-left: 6px; padding: 2px 10px; border-radius: 999px; background: #F3F0FF; color: #7C3AED; font-weight: 700; font-size: 12px; }
/* 金色渐变按钮 + 流光闪烁动画 */
.rt-gold-btn {
  position: relative; overflow: hidden; cursor: pointer; border: none; flex-shrink: 0;
  background: linear-gradient(135deg, #F59E0B 0%, #FBBF24 45%, #F97316 100%);
  color: #FFFFFF; font-size: 15px; font-weight: 800; letter-spacing: .3px;
  padding: 15px 26px; border-radius: 13px; white-space: nowrap;
  box-shadow: 0 6px 22px rgba(245, 158, 11, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.rt-gold-btn:hover { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 9px 28px rgba(245, 158, 11, 0.55); }
.rt-gold-btn:active { transform: translateY(0); }
.rt-gold-btn::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 32%, rgba(255, 255, 255, 0.55) 50%, transparent 68%);
  transform: translateX(-130%);
  animation: rtShimmer 2.6s ease-in-out infinite;
}
@keyframes rtShimmer {
  0% { transform: translateX(-130%); }
  55% { transform: translateX(130%); }
  100% { transform: translateX(130%); }
}
/* 分类 Tab */
.rt-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 20px; }
.rt-tab {
  padding: 9px 18px; border-radius: 999px; border: 1px solid #E5E7EB;
  background: #FFFFFF; color: #4B5563; font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all .15s ease;
}
.rt-tab:hover { border-color: #C4B5FD; color: #7C3AED; }
.rt-tab.active { background: #7C3AED; border-color: #7C3AED; color: #FFFFFF; box-shadow: 0 4px 14px rgba(124, 58, 237, 0.32); }
/* 4 列卡片网格 */
.rt-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.rt-empty { grid-column: 1 / -1; text-align: center; color: #9CA3AF; padding: 48px 0; font-size: 14px; }
.rt-card {
  background: #FFFFFF; border: 1px solid #E9EAF3; border-radius: 14px; overflow: hidden;
  display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.rt-card:hover { transform: translateY(-3px); border-color: #C4B5FD; box-shadow: 0 14px 30px rgba(124, 58, 237, 0.14); }
.rt-thumb {
  position: relative; aspect-ratio: 210 / 297; cursor: pointer;
  background: #F8F7FC; overflow: hidden; border-bottom: 1px solid #F1F0F8;
}
.rt-thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rt-ph {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #EDE9FE 0%, #F5F3FF 55%, #E0E7FF 100%);
  color: #A78BFA; font-size: 13.5px; font-weight: 600; letter-spacing: 1px;
}
.rt-ph-lg { min-height: 420px; font-size: 16px; border-radius: 10px; }
.rt-zoom {
  position: absolute; right: 10px; bottom: 10px; width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(17, 24, 39, 0.55); color: #FFFFFF; border-radius: 50%;
  font-size: 13px; opacity: 0; transition: opacity .15s ease;
}
.rt-card:hover .rt-zoom { opacity: 1; }
.rt-info { padding: 12px 14px 4px; }
.rt-name { font-size: 14.5px; font-weight: 700; color: #111827; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rt-cat {
  display: inline-block; margin-top: 6px; padding: 2px 10px; border-radius: 999px;
  background: #F3F0FF; color: #7C3AED; font-size: 11.5px; font-weight: 600;
}
.rt-btns { display: flex; gap: 8px; padding: 12px 14px 14px; margin-top: auto; }
.rt-btn-preview {
  flex: 1; cursor: pointer; font-size: 13.5px; font-weight: 600; color: #374151;
  background: #FFFFFF; border: 1px solid #D1D5DB; border-radius: 9px; padding: 9px 0;
  transition: background .15s ease, border-color .15s ease;
}
.rt-btn-preview:hover { background: #F9FAFB; border-color: #9CA3AF; }
.rt-btn-dl {
  flex: 1; cursor: pointer; font-size: 13.5px; font-weight: 700; color: #FFFFFF;
  background: linear-gradient(135deg, #7C3AED, #A855F7); border: none; border-radius: 9px; padding: 9px 0;
  box-shadow: 0 4px 12px rgba(124, 58, 237, 0.28);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.rt-btn-dl:hover { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 6px 16px rgba(124, 58, 237, 0.36); }
/* 弹窗通用（预览 / 大礼包）：黑色遮罩 */
.rt-mask {
  position: fixed; inset: 0; z-index: 10001;
  background: rgba(0, 0, 0, 0.78);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  animation: rtFade .18s ease-out;
}
@keyframes rtFade { from { opacity: 0; } to { opacity: 1; } }
.rt-close {
  position: absolute; top: 12px; right: 14px; width: 30px; height: 30px;
  border: none; background: transparent; border-radius: 50%;
  font-size: 20px; line-height: 30px; color: #9CA3AF; cursor: pointer; z-index: 2;
}
.rt-close:hover { background: #F3F4F6; color: #374151; }
/* 高清预览弹窗 */
.rt-preview-box {
  position: relative; background: #FFFFFF; border-radius: 16px; padding: 46px 18px 18px;
  width: min(760px, calc(100vw - 48px)); max-height: calc(100vh - 48px);
  display: flex; flex-direction: column;
  box-shadow: 0 24px 64px rgba(17, 24, 39, 0.35);
  animation: rtPop .2s cubic-bezier(.34, 1.4, .64, 1);
}
@keyframes rtPop { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: scale(1); } }
.rt-preview-name { font-size: 16px; font-weight: 700; color: #111827; margin-bottom: 12px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rt-preview-body { overflow: auto; }
.rt-preview-img { display: block; width: 100%; max-height: 72vh; object-fit: contain; border-radius: 10px; }
/* 13000 份大礼包弹窗（VIP 专属） */
.rt-gift-modal {
  position: relative; width: 480px; max-width: calc(100vw - 48px);
  background: #FFFFFF; border-radius: 16px; padding: 34px 26px 24px; text-align: center;
  box-shadow: 0 0 0 1px rgba(124, 58, 237, 0.10), 0 0 48px rgba(124, 58, 237, 0.35), 0 24px 64px rgba(17, 24, 39, 0.25);
  animation: rtPop .2s cubic-bezier(.34, 1.4, .64, 1);
}
.rt-gift-badge {
  display: inline-block; margin-bottom: 14px; font-size: 12px; font-weight: 700; letter-spacing: .5px;
  color: #FFFFFF; background: linear-gradient(135deg, #F59E0B, #F97316);
  border-radius: 999px; padding: 5px 14px; box-shadow: 0 4px 14px rgba(245, 158, 11, 0.4);
}
.rt-gift-tip { font-size: 13px; color: #6B7280; line-height: 1.7; margin-bottom: 14px; }
.rt-gift-row {
  text-align: left; margin-top: 10px; padding: 11px 13px;
  background: #F8F7FC; border: 1px dashed #D8D2F5; border-radius: 10px;
}
.rt-gift-label { font-size: 11.5px; color: #9CA3AF; font-weight: 600; margin-bottom: 4px; }
.rt-gift-val { font-size: 14px; font-weight: 700; color: #111827; word-break: break-all; line-height: 1.5; }
.rt-gift-btns { display: flex; gap: 10px; margin-top: 18px; }
.rt-gift-copy {
  flex: 1.5; cursor: pointer; border: none; font-size: 14.5px; font-weight: 700; color: #FFFFFF;
  background: linear-gradient(135deg, #7C3AED, #A855F7); border-radius: 11px; padding: 12px 8px;
  box-shadow: 0 6px 18px rgba(124, 58, 237, 0.35);
  transition: transform .15s ease, filter .15s ease;
}
.rt-gift-copy:hover { transform: translateY(-1px); filter: brightness(1.05); }
.rt-gift-open {
  flex: 1; cursor: pointer; font-size: 13.5px; font-weight: 600; color: #374151;
  background: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 11px; padding: 12px 8px;
  transition: background .15s ease, border-color .15s ease;
}
.rt-gift-open:hover { background: #F9FAFB; border-color: #D1D5DB; }
/* 响应式：4列 → 3 → 2 → 1；顶部按钮换行置底 */
@media (max-width: 1200px) { .rt-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 920px) { .rt-grid { grid-template-columns: repeat(2, 1fr); } .rt-title { font-size: 26px; } }
@media (max-width: 640px) {
  .rt-grid { grid-template-columns: 1fr; }
  .rt-top { flex-direction: column; align-items: stretch; }
  .rt-gold-btn { width: 100%; }
  .rt-gift-btns { flex-direction: column-reverse; }
  .rt-title { font-size: 23px; }
}

/* v126.43 简历模板库增强：文件类型徽章 + 预览封面提示 */
.rt-ext {
  display: inline-block; margin-top: 6px; margin-left: 6px; padding: 2px 8px;
  border-radius: 999px; background: #F3F4F6; color: #6B7280;
  font-size: 10.5px; font-weight: 700; letter-spacing: .5px;
}
.rt-preview-note {
  margin-top: 10px; padding: 10px 14px; border-radius: 10px;
  background: #FFFBEB; border: 1px solid #FDE68A;
  color: #B45309; font-size: 13px; font-weight: 600; line-height: 1.6; text-align: center;
}

/* v126.44 简历模板库分页器 */
.rt-pager {
  display: flex; justify-content: center; align-items: center; gap: 8px;
  margin: 26px 0 6px; flex-wrap: wrap;
}
.rt-pg-btn {
  min-width: 38px; height: 38px; padding: 0 14px; cursor: pointer;
  border: 1px solid #E5E7EB; border-radius: 10px; background: #FFFFFF;
  color: #374151; font-size: 13.5px; font-weight: 600; font-family: inherit;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.rt-pg-btn:hover:not(:disabled):not(.active) { background: #F5F3FF; border-color: #C4B5FD; color: #6D28D9; }
.rt-pg-btn.active { background: #7C3AED; border-color: #7C3AED; color: #FFFFFF; }
.rt-pg-btn:disabled { opacity: .45; cursor: not-allowed; }
.rt-pg-nav { font-weight: 700; }
@media (max-width: 640px) { .rt-pg-btn { min-width: 32px; height: 34px; padding: 0 10px; font-size: 12.5px; } }

/* ============================================================
   v126.53 紧急修复：意向城市面板（.city-panel）排版强制覆盖
   不改 HTML 结构与 JS 逻辑，仅在文件末尾追加 !important 覆盖：
   ① 面板 480×320 固定、flex 纵向、外层零滚动条
   ② 左省 160px 绝对不被压缩（flex-shrink:0）
   ③ 省份项强制单行 nowrap + 超出省略号
   ④ 右市纵向列表、overflow-x 隐藏（杜绝横向滚动条）
   ============================================================ */
/* 1. 城市面板外层 */
.city-panel {
  width: 480px !important;
  height: 320px !important; /* 固定总高度 */
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important; /* 防止外层出现滚动条 */
  background: white !important;
  border-radius: 12px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1) !important;
}
/* 2. 左右分栏容器 */
.city-main {
  display: flex !important;
  flex: 1 !important;
  overflow: hidden !important; /* 防止横向溢出 */
}
/* 3. 左侧省份列表（核心修复点：强制宽度，禁止压缩） */
.province-list {
  width: 160px !important;
  flex-shrink: 0 !important; /* 绝对不允许被右侧挤压 */
  border-right: 1px solid #E5E7EB !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  background: #F9FAFB !important;
  padding: 0 !important; /* 列表层内边距归零：省份项自带 padding 0 12px，避免双重内边距挤压文字 */
}
/* 4. 左侧省份项 */
.province-item {
  display: flex !important;
  align-items: center !important;
  height: 40px !important;
  padding: 0 12px !important;
  font-size: 13px !important;
  white-space: nowrap !important; /* 强制单行显示，绝对不换行 */
  overflow: hidden !important;
  text-overflow: ellipsis !important; /* 超出显示省略号 */
  cursor: pointer !important;
}
/* 5. 右侧城市列表 */
.city-list {
  flex: 1 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 8px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}
/* 5.1 城市行与列表头：禁止在固定高度容器内被纵向压缩（超出交给 overflow-y 滚动），保证行高恒 40px */
.city-item,
.city-list > .fcity-head {
  flex-shrink: 0 !important;
}
/* 6. 右侧城市项 */
.city-item {
  display: flex !important;
  align-items: center !important; /* 垂直居中 */
  height: 40px !important;
  padding: 0 12px !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  font-size: 13px !important;
}
/* 7. 勾选框（核心修复：强制缩小间距并固定大小） */
.city-item .checkbox {
  appearance: none !important; /* 必要补充：原生 appearance:auto 会忽略 border/border-radius，关掉后两条规格才能生效 */
  -webkit-appearance: none !important;
  width: 16px !important;
  height: 16px !important;
  margin-right: 8px !important; /* 严格限制间距 */
  flex-shrink: 0 !important; /* 防止被压缩 */
  border: 1px solid #D1D5DB !important;
  border-radius: 4px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  background: #fff !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: background .12s ease, border-color .12s ease !important;
}
/* 7.1 勾选态：appearance:none 后原生勾形消失，自绘对勾保持选中反馈（规格中 flex 居中即为对勾定位） */
.city-item .checkbox:checked {
  background: #7C3AED !important;
  border-color: #7C3AED !important;
}
.city-item .checkbox:checked::after {
  content: '' !important;
  width: 4px !important;
  height: 8px !important;
  border: solid #FFFFFF !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
  display: block !important;
}

/* ============================================================
   v126.54 复刻截图：级联双栏「不限 / 全部选择 + Checkbox 右置」
   行高 52px + 分隔线 + 选中浅蓝高亮与左侧蓝条；面板加高至 400px
   v126.55 微调：右栏缩窄提升质感（面板 460 / 左省 184 / 右市约 276）
   ============================================================ */
.city-panel { height: 400px !important; width: 460px !important; max-width: min(92vw, 460px) !important; }
.province-list { background: #fff !important; width: 184px !important; }
.city-list { gap: 0 !important; padding: 0 !important; background: #fff !important; }
.province-list > .province-item,
.city-list > .city-item {
  height: 52px !important;
  padding: 0 16px 0 18px !important;
  justify-content: space-between !important; /* Checkbox 右置（order:2）*/
  border-bottom: 1px solid #F2F4F7 !important;
  border-radius: 0 !important;
  background: #fff !important;
  font-size: 14px !important;
  color: #333 !important;
}
.province-list > .province-item:hover,
.city-list > .city-item:hover { background: #F5F9FF !important; }
/* 选中省份：浅蓝高亮 + 左侧蓝色竖条（照截图「内蒙古自治区」选中态） */
.province-item.cur {
  background: #EAF4FE !important;
  color: #1F2D3D !important;
  font-weight: 600 !important;
  box-shadow: inset 3px 0 0 #2E6BE6 !important;
}
.city-item.cur { background: #EAF4FE !important; color: #1F2D3D !important; font-weight: 600 !important; }
.prov-name, .ci-name {
  flex: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
/* Checkbox 统一自绘：18px 浅灰边框圆角方框、右置，选中蓝底白勾（照截图） */
.province-item .checkbox,
.city-item .checkbox {
  appearance: none !important;
  -webkit-appearance: none !important;
  order: 2 !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 0 0 10px !important;
  flex: 0 0 auto !important;
  border: 1px solid #D9DEE7 !important;
  border-radius: 4px !important;
  background: #fff !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: background .12s ease, border-color .12s ease !important;
}
.province-item .checkbox:checked,
.city-item .checkbox:checked {
  background: #2E6BE6 !important;
  border-color: #2E6BE6 !important;
}
.province-item .checkbox:checked::after,
.city-item .checkbox:checked::after {
  content: '' !important;
  width: 5px !important;
  height: 9px !important;
  border: solid #fff !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
  display: block !important;
}

/* ============================================================
   v126.56 紧急修复：城市面板点「确定」/「意向城市」后无法收回
   根因：v126.53 的 .city-panel { display:flex !important } 压制了
   基础规则 .fsel-panel { display:none }——移除 active 类后面板仍显示。
   修复：display 交给 active 态控制（隐藏 none / 展开 flex），逻辑类不动。
   ============================================================ */
.city-panel { display: none !important; }
.city-panel.active { display: flex !important; flex-direction: column !important; }

/* ============================================================
   v197 移动端选岗卡片流：≤1023px 时 12 列大表格 → 三行分层卡片
   第一行：职位名 + 匹配度胶囊（主决策信息，字重最大）
   第二行：企业性质标签 + 公司 + 行业 + 信用（弱化色）
   第三行：城市 | 学历 | 届别 胶囊 + 右侧更新时间（浅色小字）
   专业作为补充行（校招核心决策维度，保留但弱化）
   桌面端表格样式完全不受影响（renderJobTableNew 双分支渲染）
   ============================================================ */
.jt-cards { display: flex; flex-direction: column; gap: 10px; }
.jt-card {
  background: linear-gradient(180deg, #FDFDFF, #FBFCFE);
  border: 1px solid #E6EAF3; border-radius: 14px; padding: 12px 14px;
  box-shadow: 0 1px 2px rgba(16, 24, 64, 0.04);
  display: flex; gap: 10px; align-items: flex-start;
  transition: background 0.15s ease;
}
.jt-card-on { background: #E9EFFF; border-color: #C9D4FF; box-shadow: inset 3px 0 0 var(--primary), 0 1px 2px rgba(16,24,64,.04); }
.jt-card-check { flex: none; min-width: 24px; min-height: 44px; display: flex; align-items: center; }
.jt-card-check input { width: 18px; height: 18px; cursor: pointer; }
.jt-card-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.jt-card-r1 { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.jt-card-title {
  color: var(--primary); font-weight: 700; font-size: 15px; line-height: 1.5;
  word-break: break-word; text-decoration: none; min-width: 0;
}
.jt-card-title i { font-style: normal; font-size: 12px; margin-left: 3px; opacity: 0.55; }
/* 长标题换行时外链箭头会悬空错位 → 卡片态隐藏（蓝色链接已承载外链语义） */
.jt-card-title i { display: none; }
.jt-card-title-plain { color: var(--text); }
.jt-card-match { flex: none; white-space: nowrap; }
.jt-card-r2 { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.jt-card-co { font-size: 13px; font-weight: 700; color: #333; }
.jt-card-ind { font-size: 12px; color: #8A93A8; }
.jt-card-credit { font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; }
.jt-card-r3 { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 12px; color: #8A93A8; }
.jt-card-r3 .jt-chip { font-size: 11px; padding: 1px 8px; line-height: 1.7; }
.jt-card-upd { margin-left: auto; font-size: 11px; color: #98A1B3; white-space: nowrap; font-variant-numeric: tabular-nums; }
.jt-card-upd.today { color: #00B578; font-weight: 700; }
.jt-card-major { font-size: 12px; color: #7A8299; line-height: 1.5; word-break: break-word; }
/* 触摸设备：按压态替代 hover，禁用点击高亮闪灰 */
@media (hover: none) {
  .jt-card { -webkit-tap-highlight-color: transparent; }
  .jt-card:active { background: #F0F4FF; }
  .jt-card-on:active { background: #E9EFFF; }
}
/* 移动端分页条压缩：按钮触控区 ≥40px、信息行换行不溢出 */
@media (max-width: 1023px) {
  .job-pager { flex-wrap: wrap; gap: 8px; font-size: 12px; }
  .pager-btn { min-height: 40px; min-width: 40px; padding: 6px 12px; }
  .pager-info { font-size: 12px; }
}

/* ============================================================
   v197 移动端全局兜底（≤1023px）：
   ① html/body 横向溢出锁死——个别宽表格/长 URL 撑破视口时页面整体
     不出横向滚动条（内层自带 overflow-x:auto 的滚动容器不受影响，
     如 .job-table-wrap / .r5-tabs / .cf-dir-tabs 仍可横滑）；
   ② 触摸设备全局按压态：禁用 iOS/Android 点击灰块高亮，
     主按钮按压缩放（active:scale-95 语义），触控区 ≥44px。
   ============================================================ */
@media (max-width: 1023px) {
  html, body { overflow-x: hidden; }
}
@media (hover: none) {
  * { -webkit-tap-highlight-color: transparent; }
  .btn:active { transform: scale(.96); filter: brightness(.96); }
  .pager-btn:active { transform: scale(.94); }
  .jt-title-link:active, .jt-card-title:active { opacity: .7; }
  .cf-btn:active { transform: scale(.96); }
  .wb-side-item:active { background: rgba(123, 92, 255, .12); }
}
/* 移动端按钮最小触控区（44px 规范） */
@media (max-width: 1023px) {
  .btn { min-height: 40px; }
  .btn.btn-sm { min-height: 34px; }
  .pager-btn, .jt-chip { -webkit-user-select: none; user-select: none; }
}
