/* =========================================================
   越享生活 — 越南招聘求职模块样式
   依赖 assets/css/style.css 的设计变量与基础组件
   ========================================================= */

[hidden] { display: none !important; }

.jl-main { background: var(--white); }

.jl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--brand);
}
.jl-eyebrow::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: currentColor; }

.jl-full { width: 100%; }

/* =========================================================
   Hero
   ========================================================= */
.jl-hero {
  position: relative;
  padding: 58px 0 64px;
  color: #fff;
  background: var(--navy-900);
  overflow: hidden;
}
.jl-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 82% 12%, rgba(20, 102, 242, 0.32), transparent 62%),
    radial-gradient(46% 64% at 8% 92%, rgba(255, 197, 49, 0.12), transparent 58%),
    linear-gradient(120deg, #041424 0%, #082540 54%, #0b3054 100%);
}
.jl-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent 78%);
  pointer-events: none;
}
.jl-hero .container { position: relative; z-index: 1; }

.jl-crumb {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: #8fa6bf;
  margin-bottom: 26px;
}
.jl-crumb a { color: #b9cbe0; }
.jl-crumb a:hover { color: var(--gold); }
.jl-crumb .icon { width: 13px; height: 13px; opacity: 0.6; }

.jl-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.36fr) minmax(0, 0.64fr);
  gap: 54px;
  align-items: center;
}
.jl-hero-copy h1 {
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin: 14px 0 16px;
}
.jl-hero-sub { max-width: 620px; font-size: 15px; line-height: 1.8; color: #b9cbe0; }

.jl-search {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 58px;
  margin: 26px 0 18px;
  padding: 0 8px 0 18px;
  border-radius: var(--r-pill);
  background: #fff;
  box-shadow: 0 26px 50px -28px rgba(0, 0, 0, 0.7);
  color: var(--ink);
}
.jl-search > .icon { width: 19px; height: 19px; color: var(--muted-2); flex: none; }
.jl-search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: none;
  background: transparent;
  font: inherit;
  font-size: 14.5px;
  color: var(--ink);
}
.jl-search .btn { height: 42px; border-radius: var(--r-pill); padding: 0 24px; }

.jl-hot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #8fa6bf;
}
.jl-hot button {
  height: 28px;
  padding: 0 12px;
  border-radius: var(--r-pill);
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  color: #d7e3f1;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.jl-hot button:hover { background: rgba(255, 197, 49, 0.16); border-color: rgba(255, 197, 49, 0.4); color: var(--gold); }

.jl-hero-side { display: grid; gap: 16px; }
.jl-hero-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  border-radius: 22px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
.jl-hero-stats > div {
  padding: 18px 20px;
  background: rgba(9, 32, 56, 0.72);
  backdrop-filter: blur(16px);
}
.jl-hero-stats b { display: block; font-size: 26px; letter-spacing: -0.03em; }
.jl-hero-stats small { font-size: 11px; color: #8fa6bf; }

.jl-hero-actions { display: grid; gap: 9px; }
.jl-hero-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.jl-hero-btn:hover { border-color: rgba(255, 197, 49, 0.5); background: rgba(255, 255, 255, 0.1); }
.jl-hero-btn > .icon:first-child { width: 19px; height: 19px; color: var(--gold); flex: none; }
.jl-hero-btn > .icon:last-child { width: 15px; height: 15px; color: #8fa6bf; margin-left: auto; flex: none; }
.jl-hero-btn span { display: block; min-width: 0; }
.jl-hero-btn b { display: block; font-size: 13.5px; font-weight: 700; }
.jl-hero-btn small { display: block; font-size: 11px; color: #8fa6bf; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* =========================================================
   筛选
   ========================================================= */
.jl-catalog { padding-top: 42px; }
.jl-filter {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 40px -34px rgba(11, 43, 78, 0.4);
}
.jl-filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.jl-filter-row.is-bottom {
  justify-content: space-between;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}
.jl-select {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.jl-select > span { font-size: 11.5px; font-weight: 600; color: var(--muted-2); white-space: nowrap; }
.jl-select select {
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  max-width: 150px;
}

.jl-toggles { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.jl-switch { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.jl-switch input { position: absolute; opacity: 0; pointer-events: none; }
.jl-switch-track {
  position: relative;
  width: 34px;
  height: 19px;
  border-radius: var(--r-pill);
  background: #dbe5f2;
  transition: background 0.2s;
}
.jl-switch-track i {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(16, 40, 76, 0.28);
  transition: transform 0.2s var(--ease);
}
.jl-switch input:checked + .jl-switch-track { background: var(--brand); }
.jl-switch input:checked + .jl-switch-track i { transform: translateX(15px); }
.jl-switch b { font-size: 12.5px; font-weight: 600; }
.jl-reset {
  border: 0;
  background: none;
  padding: 0 2px;
  color: var(--muted-2);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.jl-reset:hover { color: var(--brand); }

.jl-sorts { display: inline-flex; gap: 4px; padding: 3px; border-radius: var(--r-pill); background: var(--bg-2); }
.jl-sorts button {
  height: 34px;
  padding: 0 16px;
  border: 0;
  border-radius: var(--r-pill);
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.jl-sorts button.active { background: #fff; color: var(--ink); box-shadow: 0 4px 12px -6px rgba(11, 43, 78, 0.4); }

.jl-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 306px;
  gap: 28px;
  padding: 26px 0 64px;
}
.jl-result {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 14px;
  font-size: 12.5px;
  color: var(--muted);
}
.jl-result b { font-size: 19px; color: var(--ink); letter-spacing: -0.02em; }
.jl-result-hint { font-size: 11.5px; color: var(--muted-2); }

.jl-grid { display: grid; gap: 14px; }
.jl-grid.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* =========================================================
   职位卡片
   ========================================================= */
.jl-job {
  position: relative;
  padding: 20px 22px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  cursor: pointer;
}
.jl-job:hover {
  border-color: var(--brand-400);
  box-shadow: 0 22px 44px -32px rgba(20, 102, 242, 0.55);
  transform: translateY(-1px);
}
.jl-job-top { display: flex; align-items: flex-start; gap: 14px; }
.jl-logo {
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.02em;
  box-shadow: inset 0 -12px 24px rgba(0, 0, 0, 0.16);
}
.jl-logo.is-lg { width: 56px; height: 56px; border-radius: 16px; font-size: 18px; }
.jl-logo.is-sm { width: 30px; height: 30px; border-radius: 9px; font-size: 11px; }

.jl-job-title { flex: 1; min-width: 0; }
.jl-job-title h3 { margin: 5px 0 4px; font-size: 16.5px; letter-spacing: -0.01em; }
.jl-title-btn {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-weight: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.jl-job-title p { font-size: 12.5px; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.jl-rate { display: inline-flex; align-items: center; gap: 3px; color: #e8a100; font-weight: 700; font-size: 11.5px; }
.jl-rate .icon { width: 12px; height: 12px; }

.jl-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 19px; }
.jl-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 10.5px;
  font-weight: 800;
}
.jl-badge .icon { width: 11px; height: 11px; }
.jl-badge.is-urgent { background: rgba(229, 72, 77, 0.12); color: #d6393e; }
.jl-badge.is-featured { background: rgba(255, 197, 49, 0.2); color: #8a6100; }
.jl-verified, .jl-pending {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  padding: 0 7px;
  border-radius: 6px;
  font-size: 10.5px;
  font-weight: 700;
}
.jl-verified { background: rgba(16, 185, 129, 0.12); color: #059669; }
.jl-pending { background: rgba(245, 159, 0, 0.14); color: #b26a00; }
.jl-verified .icon, .jl-pending .icon { width: 11px; height: 11px; }

.jl-icon-btn {
  flex: none;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--muted-2);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.jl-icon-btn .icon { width: 16px; height: 16px; }
.jl-icon-btn:hover { border-color: #f0b4b6; color: #d6393e; }
.jl-icon-btn.is-on { border-color: #f0b4b6; background: rgba(229, 72, 77, 0.08); color: #d6393e; }
.jl-icon-btn.is-on .icon { fill: currentColor; }

.jl-job-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin: 14px 0 12px;
  font-size: 12px;
  color: var(--muted);
}
.jl-job-meta span { display: inline-flex; align-items: center; gap: 5px; }
.jl-job-meta .icon { width: 13px; height: 13px; color: var(--muted-2); }
.jl-salary { font-size: 18px; font-weight: 800; color: var(--brand); letter-spacing: -0.02em; }
.jl-salary em { font-style: normal; font-size: 11px; font-weight: 600; color: var(--muted-2); margin-left: 2px; }

.jl-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.jl-tag {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 9px;
  border-radius: 6px;
  background: var(--bg-2);
  color: var(--ink-2);
  font-size: 11.5px;
  font-weight: 600;
}
.jl-tag.is-cat { background: var(--brand-050); color: var(--brand); }

.jl-job-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
  font-size: 11.5px;
  color: var(--muted-2);
}
.jl-job-actions { display: flex; align-items: center; gap: 8px; }

/* =========================================================
   空状态
   ========================================================= */
.jl-empty {
  padding: 62px 24px;
  border: 1px dashed var(--line);
  border-radius: 20px;
  text-align: center;
}
.jl-empty > span {
  width: 58px;
  height: 58px;
  margin: 0 auto 16px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: var(--bg-2);
  color: var(--muted-2);
}
.jl-empty > span .icon { width: 24px; height: 24px; }
.jl-empty h3 { font-size: 16px; margin-bottom: 6px; }
.jl-empty p { font-size: 12.5px; color: var(--muted); margin-bottom: 16px; }
.jl-empty.is-small { padding: 42px 20px; }

/* =========================================================
   侧栏
   ========================================================= */
.jl-aside { display: grid; gap: 16px; align-content: start; }
.jl-side-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
}
.jl-side-card.is-employer {
  color: #fff;
  border: 0;
  background: linear-gradient(150deg, #0a2744, #113a63);
  box-shadow: 0 24px 44px -30px rgba(9, 39, 68, 0.7);
}
.jl-side-head { display: flex; align-items: flex-start; gap: 11px; }
.jl-side-icon {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: var(--brand-050);
  color: var(--brand);
}
.jl-side-icon .icon { width: 19px; height: 19px; }
.jl-side-head b { display: block; font-size: 14px; }
.jl-side-head small { display: block; font-size: 11px; color: var(--muted-2); line-height: 1.5; margin-top: 2px; }

.jl-progress { display: flex; align-items: center; gap: 10px; margin: 18px 0 14px; }
.jl-progress-bar { flex: 1; height: 7px; border-radius: var(--r-pill); background: var(--bg-2); overflow: hidden; }
.jl-progress-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), #43a5ff); transition: width 0.4s var(--ease); }
.jl-progress > span { font-size: 11.5px; font-weight: 800; color: var(--brand); }

.jl-side-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 13px 0;
  border-top: 1px solid var(--line-2);
  border-bottom: 1px solid var(--line-2);
  text-align: center;
}
.jl-side-stats b { display: block; font-size: 17px; letter-spacing: -0.02em; }
.jl-side-stats small { font-size: 10.5px; color: var(--muted-2); }
.jl-side-card .btn { margin-top: 14px; }

.jl-side-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 22px;
  padding: 0 9px;
  margin-bottom: 14px;
  border-radius: var(--r-pill);
  background: rgba(255, 197, 49, 0.16);
  color: var(--gold);
  font-size: 10.5px;
  font-weight: 800;
}
.jl-side-badge .icon { width: 12px; height: 12px; }
.jl-side-card.is-employer h3 { font-size: 18px; margin-bottom: 8px; }
.jl-side-card.is-employer p { font-size: 12px; line-height: 1.7; color: #9fb4c9; margin-bottom: 16px; }
.jl-side-card.is-employer .btn-outline {
  border-color: rgba(255, 255, 255, 0.24);
  color: #fff;
  background: transparent;
}
.jl-side-card.is-employer .btn-outline:hover { border-color: var(--gold); color: var(--gold); }

/* =========================================================
   求职中心
   ========================================================= */
.jl-center { padding-top: 20px; }
.jl-center-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 20px;
}
.jl-center-head h2 { font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -0.02em; margin-top: 8px; }

.jl-tabs {
  display: flex;
  gap: 4px;
  padding: 4px;
  border-radius: 14px;
  background: var(--bg-2);
  width: fit-content;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.jl-tabs::-webkit-scrollbar { display: none; }
.jl-tabs button {
  height: 38px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.jl-tabs button.active { background: #fff; color: var(--ink); box-shadow: 0 5px 14px -8px rgba(11, 43, 78, 0.45); }

.jl-panel { padding: 22px 0 60px; }

.jl-gate {
  padding: 52px 24px;
  border: 1px dashed var(--line);
  border-radius: 20px;
  text-align: center;
}
.jl-gate > span {
  width: 56px;
  height: 56px;
  margin: 0 auto 14px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: var(--brand-050);
  color: var(--brand);
}
.jl-gate > span .icon { width: 24px; height: 24px; }
.jl-gate h3 { font-size: 16px; margin-bottom: 6px; }
.jl-gate p { font-size: 12.5px; color: var(--muted); margin-bottom: 18px; }
.jl-inline-gate {
  padding: 38px 20px;
  border: 1px dashed var(--line);
  border-radius: 16px;
  text-align: center;
  font-size: 13px;
  color: var(--muted);
}

/* 简历卡 */
.jl-resume-card {
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 50px -42px rgba(11, 43, 78, 0.5);
}
.jl-resume-top { display: flex; align-items: flex-start; gap: 16px; }
.jl-resume-avatar {
  flex: none;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: linear-gradient(140deg, var(--brand), #0a3f8a);
  color: #fff;
  font-size: 22px;
  font-weight: 800;
}
.jl-resume-main { flex: 1; min-width: 0; }
.jl-resume-main h3 { font-size: 19px; letter-spacing: -0.02em; }
.jl-resume-main h3 small { font-size: 11.5px; font-weight: 500; color: var(--muted-2); margin-left: 6px; }
.jl-resume-main > p { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.jl-resume-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 8px; font-size: 12px; color: var(--ink-2); }
.jl-resume-contact span { display: inline-flex; align-items: center; gap: 5px; }
.jl-resume-contact .icon { width: 13px; height: 13px; color: var(--muted-2); }
.jl-vis-chip {
  height: 22px;
  padding: 0 9px;
  border-radius: 6px;
  background: rgba(16, 185, 129, 0.12);
  color: #059669;
  font-size: 10.5px;
  font-weight: 800;
}
.jl-resume-progress { margin: 20px 0; }
.jl-resume-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 7px; }
.jl-resume-progress b { color: var(--brand); font-size: 14px; }
.jl-resume-blocks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.jl-resume-blocks > div { padding: 12px 14px; border-radius: 12px; background: var(--bg-2); }
.jl-resume-blocks small { display: block; font-size: 10.5px; color: var(--muted-2); margin-bottom: 4px; }
.jl-resume-blocks b { display: block; font-size: 12.5px; font-weight: 700; line-height: 1.45; word-break: break-word; }
.jl-resume-intro { margin-top: 16px; font-size: 12.5px; line-height: 1.75; color: var(--ink-2); }

/* 投递 */
.jl-apps { display: grid; gap: 14px; }
.jl-app {
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}
.jl-app-top { display: flex; align-items: flex-start; gap: 14px; }
.jl-app-main { flex: 1; min-width: 0; }
.jl-app-main h3 { font-size: 15.5px; }
.jl-app-main p { font-size: 12.5px; color: var(--muted); margin: 3px 0 4px; }
.jl-app-main small { font-size: 11px; color: var(--muted-2); }

.jl-status {
  flex: none;
  height: 24px;
  padding: 0 10px;
  border-radius: var(--r-pill);
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 800;
  background: var(--bg-2);
  color: var(--muted);
}
.jl-status.is-pending { background: rgba(20, 102, 242, 0.1); color: var(--brand); }
.jl-status.is-viewed { background: rgba(103, 65, 217, 0.1); color: #6741d9; }
.jl-status.is-shortlist { background: rgba(245, 159, 0, 0.14); color: #b26a00; }
.jl-status.is-interview { background: rgba(240, 140, 0, 0.14); color: #d2691e; }
.jl-status.is-offer { background: rgba(16, 185, 129, 0.12); color: #059669; }
.jl-status.is-hired { background: rgba(16, 185, 129, 0.18); color: #047857; }
.jl-status.is-rejected { background: rgba(229, 72, 77, 0.1); color: #d6393e; }
.jl-status.is-withdrawn { background: var(--bg-2); color: var(--muted-2); }

.jl-app-interview {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(20, 102, 242, 0.05);
  border: 1px solid rgba(20, 102, 242, 0.14);
}
.jl-app-interview > b { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--brand); margin-bottom: 8px; }
.jl-app-interview .icon { width: 14px; height: 14px; }
.jl-app-interview > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.jl-app-interview span { font-size: 12px; color: var(--ink-2); }
.jl-app-interview span.is-wide { grid-column: 1 / -1; }
.jl-app-interview small { display: block; font-size: 10.5px; color: var(--muted-2); margin-bottom: 1px; }

.jl-app-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}
.jl-timeline { display: inline-flex; align-items: center; gap: 4px; }
.jl-timeline i { width: 20px; height: 4px; border-radius: 3px; background: var(--line); }
.jl-timeline i.is-pending { background: var(--brand-400); }
.jl-timeline i.is-viewed, .jl-timeline i.is-shortlist { background: #8b7ce8; }
.jl-timeline i.is-interview { background: #f0a03c; }
.jl-timeline i.is-offer, .jl-timeline i.is-hired { background: #10b981; }
.jl-timeline i.is-rejected { background: #e5484d; }
.jl-app-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.jl-text-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  color: var(--brand);
  cursor: pointer;
}
.jl-text-btn:hover { text-decoration: underline; }
.jl-text-btn.is-danger { color: #d6393e; }
.jl-text-btn .icon { width: 14px; height: 14px; }

/* 消息列表 */
.jl-threads { display: grid; gap: 10px; }
.jl-thread {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.jl-thread:hover { border-color: var(--brand-400); background: #fbfdff; }
.jl-thread-main { flex: 1; min-width: 0; }
.jl-thread-main b { display: block; font-size: 13.5px; }
.jl-thread-main small { display: block; font-size: 11px; color: var(--muted-2); margin: 1px 0 2px; }
.jl-thread-main em {
  display: block;
  font-style: normal;
  font-size: 12px;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jl-thread-time { flex: none; font-size: 10.5px; color: var(--muted-2); }

/* =========================================================
   服务保障
   ========================================================= */
.jl-guides {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 8px 0 70px;
}
.jl-guide-card {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}
.jl-guide-card > span {
  width: 42px;
  height: 42px;
  margin-bottom: 14px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  background: var(--brand-050);
  color: var(--brand);
}
.jl-guide-card .icon { width: 20px; height: 20px; }
.jl-guide-card b { display: block; font-size: 14px; margin-bottom: 5px; }
.jl-guide-card p { font-size: 12px; line-height: 1.7; color: var(--muted); }

/* =========================================================
   弹层通用
   ========================================================= */
.jl-modal {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.jl-modal-mask { position: absolute; inset: 0; background: rgba(4, 16, 30, 0.62); backdrop-filter: blur(4px); }

.jl-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 520px;
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 40px 90px -40px rgba(2, 15, 30, 0.6);
  overflow: hidden;
  animation: jl-pop 0.24s var(--ease);
}
.jl-card.is-wide { max-width: 900px; }
@keyframes jl-pop {
  from { opacity: 0; transform: translateY(14px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.jl-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 22px 24px 16px;
  border-bottom: 1px solid var(--line-2);
}
.jl-card-head h2 { font-size: 19px; letter-spacing: -0.02em; }
.jl-card-sub { font-size: 12px; color: var(--muted); margin-top: 3px; }
.jl-card-body { padding: 20px 24px; overflow-y: auto; }
.jl-card-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 15px 24px;
  border-top: 1px solid var(--line-2);
  background: #fbfcfe;
}

.jl-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--muted);
  display: grid;
  place-items: center;
  cursor: pointer;
}
.jl-close:hover { color: var(--ink); border-color: var(--brand-400); }
.jl-close .icon { width: 16px; height: 16px; }
.jl-close.is-inline { position: static; flex: none; }

/* 详情抽屉 */
.jl-drawer {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 760px;
  height: 100%;
  max-height: calc(100vh - 48px);
  margin-left: auto;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 40px 90px -40px rgba(2, 15, 30, 0.6);
  overflow: hidden;
  animation: jl-slide 0.28s var(--ease);
}
.jl-modal:has(.jl-detail) { align-items: stretch; justify-content: flex-end; }
@keyframes jl-slide {
  from { opacity: 0; transform: translateX(26px); }
  to { opacity: 1; transform: none; }
}
.jl-detail { display: flex; flex-direction: column; }
.jl-detail-body { flex: 1; overflow-y: auto; padding: 26px 30px 34px; }

.jl-detail-head { padding-right: 36px; }
.jl-detail-head h2 { font-size: clamp(21px, 2.4vw, 27px); letter-spacing: -0.02em; margin: 8px 0 6px; }
.jl-detail-salary { font-size: 22px; font-weight: 800; color: var(--brand); letter-spacing: -0.02em; }
.jl-detail-salary em { font-style: normal; font-size: 12px; font-weight: 600; color: var(--muted-2); }
.jl-detail-meta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: 12.5px; color: var(--muted); }
.jl-detail-meta span { display: inline-flex; align-items: center; gap: 5px; }
.jl-detail-meta .icon { width: 14px; height: 14px; color: var(--muted-2); }

.jl-detail-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 18px 0 20px; }
.jl-detail-actions .btn { height: 42px; }

.jl-detail-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border-radius: 14px;
  overflow: hidden;
  background: var(--line-2);
  border: 1px solid var(--line-2);
}
.jl-detail-facts > div { padding: 13px 14px; background: #fff; }
.jl-detail-facts small { display: block; font-size: 10.5px; color: var(--muted-2); margin-bottom: 3px; }
.jl-detail-facts b { display: block; font-size: 12.5px; font-weight: 700; line-height: 1.4; }

.jl-detail-sec { margin-top: 26px; }
.jl-detail-sec h3 { font-size: 15px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.jl-detail-sec h3::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: var(--brand); }
.jl-detail-sec > p { font-size: 13px; line-height: 1.85; color: var(--ink-2); }

.jl-req-list { display: grid; gap: 9px; }
.jl-req-list li { display: flex; align-items: flex-start; gap: 9px; font-size: 12.5px; line-height: 1.6; color: var(--ink-2); }
.jl-req-list .icon { width: 15px; height: 15px; color: #10b981; flex: none; margin-top: 2px; }

.jl-ben-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.jl-ben-grid span {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--bg-2);
  font-size: 12px;
  font-weight: 600;
}
.jl-ben-grid .icon { width: 14px; height: 14px; color: var(--brand); }

.jl-company-box { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fcfdfe; }
.jl-company-top { display: flex; align-items: center; gap: 13px; }
.jl-company-top b { display: block; font-size: 15px; }
.jl-company-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; font-size: 11px; color: var(--muted); }
.jl-company-jobs { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--brand); white-space: nowrap; }
.jl-company-box > p { margin: 14px 0; font-size: 12.5px; line-height: 1.8; color: var(--ink-2); }
.jl-company-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.jl-company-facts span { font-size: 12px; font-weight: 600; color: var(--ink-2); }
.jl-company-facts span.is-wide { grid-column: 1 / -1; }
.jl-company-facts small { display: block; font-size: 10.5px; font-weight: 500; color: var(--muted-2); margin-bottom: 2px; }

.jl-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.jl-related-item {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.jl-related-item:hover { border-color: var(--brand-400); box-shadow: 0 14px 30px -24px rgba(20, 102, 242, 0.55); }
.jl-related-title { font-size: 12.5px; font-weight: 700; line-height: 1.4; }
.jl-related-meta { font-size: 10.5px; color: var(--muted-2); }
.jl-related-item b { font-size: 13px; color: var(--brand); }

.jl-detail-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px dashed var(--line);
}

/* =========================================================
   表单
   ========================================================= */
.jl-field { display: grid; gap: 6px; }
.jl-field > span { font-size: 11.5px; font-weight: 600; color: var(--muted); }
.jl-field input, .jl-field select, .jl-field textarea {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.jl-field textarea { resize: vertical; line-height: 1.6; }
.jl-field input:focus, .jl-field select:focus, .jl-field textarea:focus {
  border-color: var(--brand-400);
  box-shadow: 0 0 0 3px rgba(20, 102, 242, 0.1);
}
.jl-field-block { display: grid; gap: 7px; margin-bottom: 16px; }
.jl-field-block > span { font-size: 11.5px; font-weight: 600; color: var(--muted); }
.jl-hint { font-size: 10.5px; color: var(--muted-2); }
.jl-input-unit { position: relative; }
.jl-input-unit input { padding-right: 92px; }
.jl-input-unit em {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-style: normal;
  font-size: 11px;
  color: var(--muted-2);
  white-space: nowrap;
}

.jl-resume-pick { display: grid; gap: 8px; }
.jl-resume-pick-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--brand-400);
  border-radius: 12px;
  background: var(--brand-050);
  cursor: pointer;
}
.jl-resume-pick-item input { accent-color: var(--brand); }
.jl-resume-pick-body { display: grid; gap: 2px; }
.jl-resume-pick-body b { font-size: 13px; }
.jl-resume-pick-body small { font-size: 11px; color: var(--muted); }
.jl-resume-pick-body em { font-style: normal; font-size: 10.5px; color: var(--brand); font-weight: 700; }

.jl-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-2);
  cursor: pointer;
}
.jl-consent input { position: absolute; opacity: 0; pointer-events: none; }
.jl-check-mark {
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  border: 1.5px solid var(--line);
  border-radius: 5px;
  display: grid;
  place-items: center;
  background: #fff;
  color: transparent;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.jl-check-mark .icon { width: 12px; height: 12px; }
.jl-consent input:checked + .jl-check-mark { background: var(--brand); border-color: var(--brand); color: #fff; }

.jl-resume-form { display: grid; gap: 22px; }
.jl-form-sec h3 { font-size: 13.5px; margin-bottom: 11px; }
.jl-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jl-form-grid.is-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.jl-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.jl-sec-head h3 { margin: 0; }
.jl-exp-list { display: grid; gap: 12px; }
.jl-exp-row { padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #fcfdfe; }
.jl-exp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.jl-exp-row .jl-field { margin-bottom: 10px; }
.jl-exp-row .jl-field textarea { min-height: 66px; }

.jl-vis-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.jl-vis {
  display: grid;
  gap: 3px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.jl-vis input { position: absolute; opacity: 0; pointer-events: none; }
.jl-vis i {
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--line);
  border-radius: 50%;
  margin-bottom: 3px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.jl-vis b { font-size: 12px; }
.jl-vis small { font-size: 10.5px; line-height: 1.5; color: var(--muted-2); }
.jl-vis:has(input:checked) { border-color: var(--brand); background: var(--brand-050); }
.jl-vis:has(input:checked) i { border-color: var(--brand); box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 9px var(--brand); }

/* =========================================================
   聊天
   ========================================================= */
.jl-chat { max-width: 440px; display: flex; flex-direction: column; padding: 0; }
.jl-chat-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 22px 14px;
  border-bottom: 1px solid var(--line-2);
}
.jl-chat-head h2 { font-size: 16px; }
.jl-chat-head p { font-size: 11.5px; color: var(--muted-2); margin-top: 2px; }
.jl-chat-body { flex: 1; overflow-y: auto; padding: 18px 20px; background: #f8fafc; display: flex; flex-direction: column; gap: 12px; }
.jl-chat-empty { margin: auto; text-align: center; color: var(--muted-2); font-size: 12px; }
.jl-chat-empty .icon { width: 34px; height: 34px; color: var(--line); margin-bottom: 8px; }
.jl-msg { display: flex; align-items: flex-end; gap: 8px; }
.jl-msg.is-me { justify-content: flex-end; }
.jl-msg > div { max-width: 76%; }
.jl-msg p { padding: 10px 13px; border-radius: 14px 14px 14px 4px; background: #fff; font-size: 12.5px; line-height: 1.6; box-shadow: 0 4px 12px -8px rgba(11, 43, 78, 0.4); }
.jl-msg.is-me p { border-radius: 14px 14px 4px 14px; background: var(--brand); color: #fff; }
.jl-msg small { display: block; margin-top: 3px; font-size: 9.5px; color: var(--muted-2); }
.jl-msg.is-me small { text-align: right; }
.jl-quick { display: flex; gap: 6px; padding: 10px 16px 0; overflow-x: auto; }
.jl-quick button {
  flex: none;
  height: 28px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  background: #fff;
  color: var(--muted);
  font: inherit;
  font-size: 11px;
  cursor: pointer;
  white-space: nowrap;
}
.jl-quick button:hover { border-color: var(--brand-400); color: var(--brand); }
.jl-chat-foot { display: flex; gap: 8px; padding: 12px 16px 16px; }
.jl-chat-foot input {
  flex: 1;
  min-width: 0;
  height: 42px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  outline: none;
  font: inherit;
  font-size: 13px;
}
.jl-chat-foot input:focus { border-color: var(--brand-400); }
.jl-chat-foot .btn { height: 42px; border-radius: var(--r-pill); padding: 0 20px; }

/* =========================================================
   响应式
   ========================================================= */
@media (max-width: 1180px) {
  .jl-hero-grid { gap: 34px; }
  .jl-body { grid-template-columns: minmax(0, 1fr) 278px; gap: 22px; }
  .jl-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .jl-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .jl-hero-side { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .jl-body { grid-template-columns: 1fr; }
  .jl-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-guides { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .jl-hero { padding: 34px 0 44px; }
  .jl-hero-copy h1 { font-size: 30px; }
  .jl-hero-sub { font-size: 13.5px; }
  .jl-search { height: 52px; padding-left: 14px; margin: 20px 0 14px; }
  .jl-search .btn { height: 38px; padding: 0 18px; }
  .jl-hero-side { grid-template-columns: 1fr; }
  .jl-hero-stats > div { padding: 14px 16px; }
  .jl-hero-stats b { font-size: 22px; }
  .jl-hero-actions { grid-template-columns: 1fr; }

  .jl-catalog { padding-top: 24px; }
  .jl-filter { padding: 12px; border-radius: 16px; }
  .jl-filter-row { gap: 8px; }
  .jl-select { flex: 1 1 calc(50% - 4px); height: 40px; padding: 0 10px; }
  .jl-select select { max-width: none; width: 100%; font-size: 12px; }
  .jl-filter-row.is-bottom { flex-direction: column; align-items: stretch; }
  .jl-sorts { width: 100%; }
  .jl-sorts button { flex: 1; padding: 0 8px; font-size: 11.5px; }
  .jl-toggles { gap: 14px; }

  .jl-body { padding: 18px 0 44px; }
  .jl-job { padding: 16px 16px 13px; border-radius: 16px; }
  .jl-logo { width: 42px; height: 42px; border-radius: 12px; font-size: 13px; }
  .jl-job-title h3 { font-size: 15px; }
  .jl-job-meta { gap: 11px; font-size: 11.5px; }
  .jl-salary { font-size: 16px; }
  .jl-job-foot { font-size: 10.5px; }
  .jl-job-actions .btn { flex: 1; }
  .jl-job-actions { width: 100%; }
  .jl-job-foot { flex-direction: column; align-items: stretch; }

  .jl-aside { grid-template-columns: 1fr; }
  .jl-side-card { padding: 18px; }
  .jl-resume-blocks { grid-template-columns: 1fr; }
  .jl-grid.is-two { grid-template-columns: 1fr; }

  .jl-center-head { flex-wrap: wrap; align-items: flex-start; }
  .jl-center-head h2 { font-size: 24px; }
  .jl-tabs { width: 100%; }
  .jl-tabs button { padding: 0 14px; flex: 1; }
  .jl-resume-card { padding: 18px; border-radius: 18px; }
  .jl-resume-top { flex-wrap: wrap; }
  .jl-resume-top > .btn { width: 100%; }
  .jl-app { padding: 16px; }
  .jl-app-top { flex-wrap: wrap; }
  .jl-app-interview > div { grid-template-columns: 1fr; }
  .jl-app-actions .btn { flex: 1; }

  .jl-guides { grid-template-columns: 1fr; padding-bottom: 44px; }

  .jl-modal { padding: 0; align-items: flex-end; }
  .jl-modal:has(.jl-detail) { align-items: stretch; }
  .jl-card,
  .jl-drawer {
    max-width: none;
    width: 100%;
    max-height: 92vh;
    border-radius: 20px 20px 0 0;
    animation: jl-sheet 0.26s var(--ease);
  }
  .jl-drawer { height: 100%; max-height: 100vh; border-radius: 0; }
  @keyframes jl-sheet {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: none; }
  }
  .jl-detail-body { padding: 20px 18px 28px; }
  .jl-detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-detail-actions { gap: 7px; }
  .jl-detail-actions .btn { flex: 1; height: 40px; font-size: 12px; padding: 0 12px; }
  .jl-ben-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-company-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-company-jobs { width: 100%; margin: 8px 0 0; }
  .jl-company-top { flex-wrap: wrap; }
  .jl-related { grid-template-columns: 1fr; }

  .jl-card-head { padding: 18px 18px 13px; }
  .jl-card-body { padding: 16px 18px; }
  .jl-card-foot { padding: 12px 18px; }
  .jl-card-foot .btn { flex: 1; }

  .jl-form-grid, .jl-form-grid.is-three { grid-template-columns: 1fr; }
  .jl-exp-grid { grid-template-columns: 1fr; }
  .jl-vis-list { grid-template-columns: 1fr; }
  .jl-chat { max-width: none; height: 100%; max-height: 100vh; border-radius: 0; }
}

@media (max-width: 420px) {
  .jl-select { flex: 1 1 100%; }
  .jl-hero-stats b { font-size: 20px; }
  .jl-badges { gap: 4px; }
  .jl-job-meta span:nth-child(4) { display: none; }
}

/* =========================================================
   企业端 / 平台审核端
   ========================================================= */
.jl-emp, .jl-adm {
  min-height: 70vh;
  padding: 32px 0 72px;
  background:
    radial-gradient(70% 60% at 90% 0%, rgba(20, 102, 242, 0.05), transparent 60%),
    #f4f7fc;
}

.jl-card.is-sm { max-width: 460px; }

/* ---------------- 登录 / 注册 ---------------- */
.jl-emp-gate, .jl-adm-gate { padding: 12px 20px 24px; }
.jl-emp-gate-card {
  max-width: 456px;
  margin: 0 auto;
  padding: 36px 36px 28px;
  border-radius: 24px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 40px 80px -52px rgba(7, 27, 51, 0.55);
  text-align: center;
}
.jl-emp-gate-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin-bottom: 16px;
  border-radius: 18px;
  background: linear-gradient(150deg, var(--brand), #0d4bb8);
  color: #fff;
  box-shadow: 0 16px 30px -16px rgba(20, 102, 242, 0.85);
}
.jl-emp-gate-badge.is-warn { background: linear-gradient(150deg, #f0a03c, #d97706); }
.jl-emp-gate-badge .icon { width: 26px; height: 26px; }
.jl-emp-gate-card h1 { font-size: 25px; letter-spacing: -0.03em; }
.jl-emp-gate-sub { font-size: 12.5px; line-height: 1.7; color: var(--muted); margin: 8px 0 22px; }

.jl-tabs.is-auth { justify-content: center; margin-bottom: 20px; }
.jl-emp-auth { display: grid; gap: 12px; text-align: left; }
.jl-emp-auth .jl-field input { height: 44px; }
.jl-emp-auth .btn { height: 46px; margin-top: 4px; }
.jl-emp-err {
  font-size: 11.5px;
  color: #d6393e;
  background: rgba(229, 72, 77, 0.08);
  border-radius: 8px;
  padding: 8px 10px;
}
.jl-emp-demo, .jl-emp-hint {
  font-size: 11px;
  line-height: 1.6;
  color: var(--muted-2);
  text-align: center;
}
.jl-emp-demo { padding: 10px 12px; border-radius: 10px; background: var(--bg-2); font-family: ui-monospace, Consolas, monospace; }
.jl-emp-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.jl-emp-back .icon { width: 14px; height: 14px; }
.jl-emp-back:hover { color: var(--brand); }

/* ---------------- 工作台骨架 ---------------- */
.jl-emp-app {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 22px;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 24px;
  align-items: start;
}
.jl-emp-side {
  position: sticky;
  top: 92px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 18px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 30px 60px -50px rgba(7, 27, 51, 0.6);
}
.jl-emp-brand { display: flex; align-items: center; gap: 11px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.jl-emp-brand b { display: block; font-size: 13.5px; line-height: 1.35; }
.jl-verify-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  background: var(--bg-2);
  color: var(--muted-2);
}
.jl-verify-chip.is-verified { background: rgba(16, 185, 129, 0.12); color: #059669; }
.jl-verify-chip.is-pending { background: rgba(20, 102, 242, 0.1); color: var(--brand); }
.jl-verify-chip.is-rejected { background: rgba(229, 72, 77, 0.1); color: #d6393e; }

.jl-emp-nav { display: grid; gap: 3px; }
.jl-emp-nav button {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  padding: 0 12px;
  border: 0;
  border-radius: 11px;
  background: none;
  color: var(--ink-2);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: 0.18s var(--ease);
}
.jl-emp-nav button .icon { width: 17px; height: 17px; color: var(--muted-2); }
.jl-emp-nav button:hover { background: var(--bg-2); }
.jl-emp-nav button.active { background: var(--brand-050); color: var(--brand); }
.jl-emp-nav button.active .icon { color: var(--brand); }
.jl-emp-nav em {
  margin-left: auto;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.jl-emp-side-foot { display: grid; gap: 7px; padding-top: 14px; border-top: 1px solid var(--line); }
.jl-emp-side-foot .btn { justify-content: flex-start; gap: 7px; font-size: 12px; }

.jl-emp-main { min-width: 0; display: grid; gap: 16px; }
.jl-emp-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--line);
}
.jl-emp-head .jl-eyebrow { margin-bottom: 6px; }
.jl-emp-head h1 { font-size: 23px; letter-spacing: -0.03em; }
.jl-emp-head-sub { font-size: 12px; color: var(--muted); margin-top: 4px; }
.jl-emp-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.jl-emp-user {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 11px;
  height: 34px;
  border-radius: 999px;
  background: var(--bg-2);
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink-2);
}
.jl-emp-user .icon { width: 14px; height: 14px; color: var(--muted-2); }

.jl-emp-stat-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.jl-emp-stat {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--line);
}
.jl-emp-stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--brand-050);
  color: var(--brand);
  flex: none;
}
.jl-emp-stat-icon .icon { width: 18px; height: 18px; }
.jl-emp-stat small { display: block; font-size: 10.5px; color: var(--muted-2); margin-bottom: 2px; }
.jl-emp-stat b { display: block; font-size: 21px; letter-spacing: -0.03em; line-height: 1; }

.jl-emp-body { display: grid; gap: 16px; min-width: 0; }

/* 提示条 */
.jl-emp-alert {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 15px 18px;
  border-radius: 15px;
  border: 1px solid var(--line);
  background: #fff;
}
.jl-emp-alert > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  flex: none;
  background: var(--brand-050);
  color: var(--brand);
}
.jl-emp-alert > span .icon { width: 18px; height: 18px; }
.jl-emp-alert > div { flex: 1; min-width: 0; }
.jl-emp-alert b { font-size: 13px; }
.jl-emp-alert p { font-size: 11.5px; color: var(--muted); margin-top: 2px; line-height: 1.55; }
.jl-emp-alert.is-ok { background: rgba(16, 185, 129, 0.05); border-color: rgba(16, 185, 129, 0.2); }
.jl-emp-alert.is-ok > span { background: rgba(16, 185, 129, 0.12); color: #059669; }
.jl-emp-alert.is-warn { background: rgba(245, 159, 0, 0.06); border-color: rgba(245, 159, 0, 0.24); }
.jl-emp-alert.is-warn > span { background: rgba(245, 159, 0, 0.14); color: #b26a00; }
.jl-emp-alert.is-danger { background: rgba(229, 72, 77, 0.05); border-color: rgba(229, 72, 77, 0.2); }
.jl-emp-alert.is-danger > span { background: rgba(229, 72, 77, 0.12); color: #d6393e; }

/* 区块 */
.jl-emp-block {
  padding: 20px 22px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid var(--line);
  min-width: 0;
}
.jl-emp-block-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.jl-emp-block-head h3 { font-size: 15px; letter-spacing: -0.01em; }
.jl-emp-block-hint { font-size: 11px; color: var(--muted-2); }
.jl-emp-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

/* 快捷入口 */
.jl-emp-quick { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.jl-emp-quick button {
  display: grid;
  gap: 3px;
  padding: 15px 15px 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fbfdff;
  text-align: left;
  font-family: inherit;
  cursor: pointer;
  transition: 0.2s var(--ease);
}
.jl-emp-quick button:hover { border-color: var(--brand-400); background: #fff; transform: translateY(-2px); box-shadow: 0 18px 30px -26px rgba(7, 27, 51, 0.5); }
.jl-emp-quick button span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 7px;
  border-radius: 10px;
  background: var(--brand-050);
  color: var(--brand);
}
.jl-emp-quick button span .icon { width: 17px; height: 17px; }
.jl-emp-quick b { font-size: 12.5px; }
.jl-emp-quick small { font-size: 10.5px; color: var(--muted-2); line-height: 1.5; }

/* 行列表 */
.jl-emp-rows { display: grid; gap: 2px; }
.jl-emp-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 8px;
  border-radius: 11px;
  min-width: 0;
}
.jl-emp-row:hover { background: var(--bg-2); }
.jl-emp-row-main { flex: 1; min-width: 0; }
.jl-emp-row-main b { display: block; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jl-emp-row-main small { display: block; font-size: 10.5px; color: var(--muted-2); margin-top: 2px; line-height: 1.45; }
.jl-emp-row-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--bg-2);
  color: var(--muted-2);
  flex: none;
}
.jl-emp-row-icon .icon { width: 16px; height: 16px; }
.jl-emp-row-actions { display: flex; align-items: center; gap: 10px; flex: none; }
.jl-emp-row.is-interview { align-items: flex-start; }

.jl-emp-empty { display: grid; justify-items: center; gap: 8px; padding: 32px 12px; color: var(--muted-2); text-align: center; }
.jl-emp-empty .icon { width: 24px; height: 24px; color: var(--muted-2); }
.jl-emp-empty p { font-size: 12px; }

/* 工具栏 */
.jl-emp-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.jl-chipbar { display: flex; flex-wrap: wrap; gap: 7px; }
.jl-chipbar button {
  height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-2);
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.18s var(--ease);
}
.jl-chipbar button:hover { border-color: var(--brand-400); color: var(--brand); }
.jl-chipbar button.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.jl-chipbar button em { margin-left: 5px; font-style: normal; font-size: 10px; opacity: 0.7; }

/* 职位卡 */
.jl-emp-list { display: grid; gap: 12px; }
.jl-emp-job {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--line);
  transition: 0.2s var(--ease);
}
.jl-emp-job:hover { border-color: var(--brand-400); box-shadow: 0 24px 44px -40px rgba(7, 27, 51, 0.6); }
.jl-emp-job-main { min-width: 0; }
.jl-emp-job-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.jl-emp-job-top h3 { font-size: 16px; letter-spacing: -0.01em; }
.jl-emp-job-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 7px; font-size: 11.5px; color: var(--muted); }
.jl-emp-job-meta span { display: inline-flex; align-items: center; gap: 4px; }
.jl-emp-job-meta .icon { width: 13px; height: 13px; color: var(--muted-2); }
.jl-emp-job-meta .jl-salary { font-size: 13px; font-weight: 700; color: var(--brand); }
.jl-emp-job-meta .jl-salary em { font-style: normal; font-size: 10px; font-weight: 600; color: var(--muted-2); margin-left: 2px; }
.jl-emp-job-desc { margin-top: 8px; font-size: 11.5px; line-height: 1.7; color: var(--muted); max-width: 760px; }
.jl-emp-job-side { display: flex; gap: 16px; align-items: flex-start; padding-top: 4px; }
.jl-emp-job-side > div { text-align: center; }
.jl-emp-job-side b { display: block; font-size: 17px; letter-spacing: -0.02em; }
.jl-emp-job-side small { font-size: 10px; color: var(--muted-2); }
.jl-emp-job-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}
.jl-emp-note {
  margin-top: 9px;
  padding: 8px 11px;
  border-radius: 9px;
  background: rgba(229, 72, 77, 0.06);
  font-size: 11px;
  line-height: 1.6;
  color: #d6393e;
}

/* 人才库 */
.jl-talent-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; width: 100%; }
.jl-search.is-light {
  max-width: 300px;
  height: 44px;
  padding: 0 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.jl-search.is-light input { height: 42px; color: var(--ink); }
.jl-search.is-light > .icon { color: var(--muted-2); }
.jl-talent-tip { margin-top: -4px; }
.jl-talent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.jl-talent-card {
  display: grid;
  gap: 12px;
  padding: 18px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--line);
  align-content: start;
}
.jl-talent-top { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.jl-talent-main { min-width: 0; }
.jl-talent-main h3 { font-size: 15px; }
.jl-talent-main p { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.jl-talent-main small { display: block; font-size: 10.5px; color: var(--muted-2); margin-top: 2px; }
.jl-talent-contact { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11.5px; color: var(--ink-2); }
.jl-talent-contact span { display: inline-flex; align-items: center; gap: 5px; }
.jl-talent-contact .icon { width: 13px; height: 13px; color: var(--muted-2); }
.jl-talent-actions { display: flex; gap: 8px; }
.jl-talent-actions .btn { flex: 1; height: 36px; font-size: 12px; }

.jl-masked-box {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 11px;
  background: var(--bg-2);
  color: var(--muted);
}
.jl-masked-box .icon { width: 17px; height: 17px; color: var(--muted-2); flex: none; }
.jl-masked-box b { display: block; font-size: 11.5px; color: var(--ink-2); }
.jl-masked-box small { display: block; font-size: 10px; color: var(--muted-2); line-height: 1.5; margin-top: 1px; }

.jl-emp-gate-inline {
  display: grid;
  justify-items: center;
  gap: 8px;
  max-width: 520px;
  margin: 24px auto;
  padding: 40px 28px;
  border-radius: 20px;
  background: #fff;
  border: 1px solid var(--line);
  text-align: center;
}
.jl-emp-gate-inline > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 15px;
  background: var(--brand-050);
  color: var(--brand);
}
.jl-emp-gate-inline > span .icon { width: 24px; height: 24px; }
.jl-emp-gate-inline h3 { font-size: 17px; }
.jl-emp-gate-inline p { font-size: 12px; line-height: 1.7; color: var(--muted); max-width: 400px; }
.jl-emp-gate-inline .btn { margin-top: 8px; }

/* 简历弹层 */
.jl-emp-quote {
  font-size: 12px;
  line-height: 1.75;
  color: var(--ink-2);
  white-space: pre-wrap;
  word-break: break-word;
}
.jl-emp-block .jl-vis-chip { margin-left: 8px; vertical-align: middle; }
.jl-exp-list-view { display: grid; gap: 12px; }
.jl-exp-item { padding: 12px 14px; border-radius: 12px; background: var(--bg-2); }
.jl-exp-item b { display: block; font-size: 12.5px; }
.jl-exp-item small { display: block; font-size: 10.5px; color: var(--muted-2); margin-top: 2px; }
.jl-exp-item p { font-size: 11.5px; line-height: 1.65; color: var(--muted); margin-top: 5px; }
.jl-emp-body .jl-resume-top { margin-bottom: 18px; }
.jl-emp-body .jl-resume-main h3 { font-size: 20px; }

/* 表单里的 chip */
.jl-field.is-inline { display: flex; align-items: center; gap: 10px; margin-top: 10px; max-width: 220px; }
.jl-field.is-inline > span { white-space: nowrap; }
.jl-chip-group { display: flex; flex-wrap: wrap; gap: 7px; }
.jl-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink-2);
  cursor: pointer;
  transition: 0.18s var(--ease);
}
.jl-chip input { position: absolute; opacity: 0; pointer-events: none; }
.jl-chip:hover { border-color: var(--brand-400); }
.jl-chip:has(input:checked) { border-color: var(--brand); background: var(--brand-050); color: var(--brand); }

/* =========================================================
   平台审核
   ========================================================= */
.jl-adm-app { max-width: 1320px; margin: 0 auto; padding: 0 24px; display: grid; gap: 16px; }
.jl-adm-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 26px;
  border-radius: 20px;
  color: #fff;
  background:
    radial-gradient(60% 120% at 92% 0%, rgba(20, 102, 242, 0.5), transparent 62%),
    linear-gradient(130deg, #061729 0%, #0a2646 58%, #071b33 100%);
  box-shadow: 0 32px 60px -48px rgba(2, 12, 26, 0.9);
}
.jl-adm-head-main { display: flex; align-items: center; gap: 14px; }
.jl-adm-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: var(--gold);
  flex: none;
}
.jl-adm-logo .icon { width: 23px; height: 23px; }
.jl-adm-head h1 { font-size: 22px; letter-spacing: -0.02em; }
.jl-adm-head p { font-size: 11.5px; color: rgba(255, 255, 255, 0.62); margin-top: 3px; }
.jl-adm-head-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.jl-adm-head-actions .jl-emp-user { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.85); }
.jl-adm-head-actions .jl-emp-user .icon { color: rgba(255, 255, 255, 0.55); }
.jl-adm-head-actions .btn-outline { color: rgba(255, 255, 255, 0.88); border-color: rgba(255, 255, 255, 0.24); background: transparent; }
.jl-adm-head-actions .btn-outline:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.5); color: #fff; }

.jl-adm-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.jl-adm-stat {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 15px 16px;
  border-radius: 15px;
  background: #fff;
  border: 1px solid var(--line);
}
.jl-adm-stat > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--brand-050);
  color: var(--brand);
  flex: none;
}
.jl-adm-stat > span .icon { width: 17px; height: 17px; }
.jl-adm-stat small { display: block; font-size: 10px; color: var(--muted-2); margin-bottom: 2px; }
.jl-adm-stat b { display: block; font-size: 19px; letter-spacing: -0.03em; line-height: 1; }

.jl-adm-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--line);
}
.jl-adm-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  padding: 0 16px;
  border: 0;
  border-radius: 10px;
  background: none;
  color: var(--ink-2);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.jl-adm-tabs button .icon { width: 16px; height: 16px; color: var(--muted-2); }
.jl-adm-tabs button:hover { background: var(--bg-2); }
.jl-adm-tabs button.active { background: var(--brand); color: #fff; }
.jl-adm-tabs button.active .icon { color: #fff; }
.jl-adm-tabs em {
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #e5484d;
  color: #fff;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.jl-adm-body { display: grid; gap: 14px; min-width: 0; }
.jl-adm-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.jl-adm-hint { font-size: 11.5px; color: var(--muted-2); }
.jl-adm-list { display: grid; gap: 12px; }
.jl-adm-card {
  padding: 18px 20px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--line);
  display: grid;
  gap: 12px;
  min-width: 0;
}
.jl-adm-card.is-pending { border-left: 3px solid var(--brand); }
.jl-adm-card.is-rejected { border-left: 3px solid #e5484d; }
.jl-adm-card.is-verified { border-left: 3px solid #10b981; }
.jl-adm-card-top { display: flex; align-items: flex-start; gap: 13px; min-width: 0; }
.jl-adm-card-main { flex: 1; min-width: 0; }
.jl-adm-card-main h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 15.5px; }
.jl-adm-card-main p { font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.jl-adm-card-main small { display: block; font-size: 10.5px; color: var(--muted-2); margin-top: 3px; line-height: 1.55; }
.jl-adm-card-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; flex: none; max-width: 46%; }
.jl-logo.is-warn { background: rgba(245, 159, 0, 0.14); color: #b26a00; }
.jl-logo.is-warn .icon { width: 19px; height: 19px; }
.jl-adm-doc {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  padding: 13px 15px;
  border-radius: 12px;
  background: var(--bg-2);
}
.jl-adm-doc small { display: block; font-size: 10px; color: var(--muted-2); margin-bottom: 3px; }
.jl-adm-doc b { display: block; font-size: 12px; word-break: break-word; }
.jl-adm-nodoc { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--muted-2); }
.jl-adm-nodoc .icon { width: 14px; height: 14px; }
.jl-adm-note {
  padding: 9px 12px;
  border-radius: 9px;
  background: rgba(229, 72, 77, 0.06);
  font-size: 11px;
  line-height: 1.6;
  color: #d6393e;
}
.jl-adm-quote {
  padding: 11px 14px;
  border-radius: 11px;
  background: var(--bg-2);
  font-size: 11.5px;
  line-height: 1.7;
  color: var(--ink-2);
  word-break: break-word;
}
.jl-adm-section { display: grid; gap: 10px; }
.jl-adm-section h3 { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.jl-adm-section h3 em {
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  color: var(--brand);
  background: var(--brand-050);
  padding: 2px 7px;
  border-radius: 999px;
}

/* 响应式 */
@media (max-width: 1180px) {
  .jl-emp-app { grid-template-columns: 216px minmax(0, 1fr); }
  .jl-emp-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-adm-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .jl-adm-doc { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .jl-emp-app { grid-template-columns: 1fr; }
  .jl-emp-side { position: static; padding: 14px; }
  .jl-emp-brand { padding-bottom: 12px; }
  .jl-emp-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
  .jl-emp-nav button { flex-direction: column; justify-content: center; gap: 3px; height: 54px; padding: 5px 2px; font-size: 10.5px; }
  .jl-emp-nav button span { display: block; }
  .jl-emp-nav em { position: absolute; top: 3px; right: 8px; margin: 0; transform: none; }
  .jl-emp-nav button { position: relative; }
  .jl-emp-side-foot { display: flex; }
  .jl-emp-side-foot .btn { flex: 1; justify-content: center; }
  .jl-emp-two { grid-template-columns: 1fr; }
  .jl-talent-grid { grid-template-columns: 1fr; }
  .jl-adm-card-actions { max-width: none; justify-content: flex-start; }
}
@media (max-width: 768px) {
  .jl-emp, .jl-adm { padding: 20px 0 56px; }
  .jl-emp-app, .jl-adm-app { padding: 0 16px; gap: 14px; }
  .jl-emp-head, .jl-adm-head { padding: 18px; }
  .jl-emp-head h1, .jl-adm-head h1 { font-size: 19px; }
  .jl-emp-head-actions { width: 100%; }
  .jl-emp-head-actions .btn { flex: 1; }
  .jl-emp-user { display: none; }
  .jl-emp-stat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .jl-emp-stat { padding: 13px 14px; }
  .jl-emp-stat b { font-size: 18px; }
  .jl-emp-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .jl-emp-block { padding: 16px; }
  .jl-emp-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-emp-job { grid-template-columns: 1fr; padding: 16px; }
  .jl-emp-job-side { padding: 0; gap: 22px; }
  .jl-emp-job-actions { gap: 12px; }
  .jl-adm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-adm-card { padding: 16px; }
  .jl-adm-card-top { flex-wrap: wrap; }
  .jl-adm-card-actions { width: 100%; justify-content: flex-start; }
  .jl-adm-doc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jl-adm-tabs { overflow-x: auto; flex-wrap: nowrap; }
  .jl-adm-tabs button { flex: none; }
  .jl-emp-gate-card { padding: 28px 22px 22px; }
  .jl-talent-filters { gap: 8px; }
  .jl-search.is-light { max-width: none; width: 100%; }
  .jl-talent-filters .jl-select { flex: 1 1 calc(50% - 4px); }
}
@media (max-width: 420px) {
  .jl-emp-quick { grid-template-columns: 1fr; }
  .jl-emp-nav button { height: 50px; }
  .jl-emp-job-top h3 { font-size: 15px; }
  .jl-talent-actions { flex-direction: column; }
  .jl-adm-doc { grid-template-columns: 1fr; }
  .jl-talent-filters .jl-select { flex: 1 1 100%; }
}
