:root {
  --bg: #f6f7f4;
  --surface: #ffffff;
  --surface-2: #f0f3ef;
  --text: #20211f;
  --muted: #6b7068;
  --line: #dfe4dc;
  --accent: #0f766e;
  --accent-strong: #0b5f59;
  --amber: #b7791f;
  --green: #2f855a;
  --red: #c2410c;
  --ink: #2c3030;
  --shadow: 0 12px 28px rgba(38, 45, 42, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--bg);
  color: var(--text);
  font-family:
    Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  letter-spacing: 0;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.shell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  background: #26312d;
  color: #f8faf6;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
}

.brand-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: #f4b942;
  color: #1f2926;
  border-radius: 8px;
  font-weight: 800;
}

.brand strong,
.brand span,
.sidebar-foot strong,
.sidebar-foot span {
  display: block;
}

.brand span,
.sidebar-foot span {
  color: #bdc9c3;
  font-size: 12px;
  margin-top: 4px;
}

.nav {
  display: grid;
  gap: 6px;
}

.nav-item {
  width: 100%;
  border: 0;
  background: transparent;
  color: #dfe8e3;
  text-align: left;
  padding: 11px 12px;
  border-radius: 8px;
  min-height: 42px;
}

.nav-item:hover,
.nav-item.active {
  background: #34413c;
  color: #ffffff;
}

.sidebar-foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: #34413c;
  border-radius: 8px;
}

.health-dot {
  width: 10px;
  height: 10px;
  background: #45c486;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(69, 196, 134, 0.16);
}

.main {
  min-width: 0;
  padding: 24px;
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 22px;
}

h1,
h2,
p {
  margin: 0;
}

h1 {
  font-size: 28px;
  line-height: 1.25;
}

h2 {
  font-size: 17px;
  line-height: 1.35;
}

.topbar p,
.panel-head p {
  margin-top: 6px;
  color: var(--muted);
  line-height: 1.45;
}

.top-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.primary-button,
.ghost-button,
.text-button {
  border-radius: 8px;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid transparent;
  white-space: nowrap;
}

.primary-button {
  background: var(--accent);
  color: #ffffff;
}

.primary-button:hover {
  background: var(--accent-strong);
}

.ghost-button {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--line);
}

.text-button {
  background: transparent;
  color: var(--accent);
  padding-inline: 8px;
}

.view {
  display: none;
}

.view.active {
  display: grid;
  gap: 18px;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 14px;
}

.metric,
.panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.metric {
  padding: 18px;
  min-height: 122px;
}

.metric span,
.metric small {
  color: var(--muted);
}

.metric strong {
  display: block;
  font-size: 34px;
  line-height: 1;
  margin: 14px 0 8px;
}

.metric.warning strong {
  color: var(--red);
}

.panel {
  padding: 18px;
  min-width: 0;
}

.panel-grid {
  display: grid;
  gap: 18px;
}

.panel-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.panel-grid.form-layout {
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
}

.multi-user-login-gate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f3f7fc;
}

.multi-user-login-gate[hidden] {
  display: none;
}

.multi-user-login-card {
  width: min(460px, 100%);
  padding: 42px;
  border: 1px solid #d6e0ed;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(24, 54, 91, 0.14);
  text-align: center;
}

.multi-user-login-card .brand-mark {
  margin: 0 auto 24px;
}

.multi-user-login-card h1 {
  margin: 0 0 12px;
  color: #0e1b34;
}

.multi-user-login-card p {
  margin: 0 0 26px;
  color: #607089;
  line-height: 1.75;
}

.multi-user-login-card a {
  display: inline-flex;
  text-decoration: none;
}

.local-login-form {
  display: grid;
  gap: 14px;
  text-align: left;
}

.local-login-form label,
.team-member-create-form label {
  display: grid;
  gap: 7px;
  color: #40506a;
  font-size: 13px;
  font-weight: 700;
}

.local-login-form input,
.team-member-create-form input,
.team-member-create-form select {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #ced8e6;
  border-radius: 10px;
  background: #fff;
  color: #15233b;
  font: inherit;
  box-sizing: border-box;
}

.local-login-form .primary-button {
  justify-content: center;
  min-height: 44px;
  margin-top: 4px;
}

.multi-user-login-card small {
  display: block;
  margin-top: 18px;
  color: #8390a4;
}

.team-device-panel {
  grid-column: 1 / -1;
}

.team-user-summary,
.team-device-actions,
.team-agent-row,
.team-member-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.team-user-summary {
  padding: 14px;
  border: 1px solid #dce4ef;
  border-radius: 14px;
  background: #f8faff;
}

.team-user-summary > div:nth-child(2) {
  display: grid;
  gap: 4px;
  flex: 1;
}

.team-user-summary span,
.team-agent-row span,
.team-member-row span {
  color: #6e7c91;
  font-size: 13px;
}

.team-user-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #0f5bd7;
  font-weight: 800;
}

.team-device-actions {
  margin: 16px 0;
}

.team-pairing-result {
  margin-bottom: 16px;
  padding: 14px;
  border-radius: 12px;
  background: #edf5ff;
  color: #164b93;
  line-height: 1.65;
  word-break: break-all;
}

.team-agent-list,
.team-member-block {
  display: grid;
  gap: 10px;
}

.team-agent-row,
.team-member-row {
  padding: 12px 14px;
  border: 1px solid #e1e7f0;
  border-radius: 12px;
}

.team-agent-row > div,
.team-member-row > div {
  display: grid;
  gap: 3px;
  flex: 1;
}

.team-agent-state {
  padding: 4px 9px;
  border-radius: 999px;
  background: #eef1f5;
  font-size: 12px;
}

.team-agent-state.is-online {
  color: #078447;
  background: #e8f8ef;
}

.team-member-block {
  margin-top: 22px;
}

.team-member-meta-pill {
  padding: 6px 10px;
  border-radius: 999px;
  background: #eef1f5;
  color: #5e6d82;
  font-size: 12px;
  white-space: nowrap;
}

.team-member-meta-pill.is-active {
  color: #087b46;
  background: #e8f8ef;
}

.team-member-create-form {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 14px;
  border: 1px solid #dbe4f0;
  border-radius: 12px;
  background: #f8faff;
}

.team-member-create-form[hidden] {
  display: none !important;
}

.team-member-create-form small {
  grid-column: 1 / -1;
  color: #52647e;
}

@media (max-width: 1100px) {
  .team-member-create-form {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}

.panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}

.platform-list,
.queue-list,
.rule-list,
.message-list,
.candidate-list,
.match-list,
.settings-list,
.integration-list,
.account-settings {
  display: grid;
  gap: 10px;
}

.platform-row,
.queue-item,
.integration-row,
.account-card,
.setting-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 12px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.platform-row span,
.queue-item span,
.integration-row span,
.account-card span,
.candidate-meta,
.rule-meta,
.match-meta {
  display: block;
  color: var(--muted);
  font-size: 13px;
  margin-top: 4px;
  line-height: 1.4;
}

.status,
.pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.status.online,
.pill.ok {
  background: #dcf5e8;
  color: var(--green);
}

.status.warning,
.pill.warn {
  background: #fff2d7;
  color: var(--amber);
}

.status.error,
.pill.error {
  background: #ffe6dc;
  color: var(--red);
}

#resumes .resume-intake-hero {
  background: #064db8;
  box-shadow: 0 10px 24px rgba(6, 77, 184, 0.15);
}

#resumes .resume-source-card {
  position: relative;
  grid-template-columns: auto minmax(0, 1fr);
  padding-right: 118px;
}

#resumes .resume-source-state {
  position: absolute;
  top: 18px;
  right: 16px;
  max-width: 94px;
  text-align: center;
}

#resumes .resume-source-title,
#resumes .resume-pipeline {
  flex-wrap: wrap;
}

#resumes .resume-source-title strong {
  min-width: 110px;
}

.sourcing-channel-dashboard {
  display: grid;
  gap: 28px;
  margin-bottom: 8px;
}

.sourcing-channel-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 8px 4px;
}

.sourcing-channel-kicker {
  display: block;
  margin-bottom: 8px;
  color: #0755c9;
  font-size: 13px;
  font-weight: 800;
}

.sourcing-channel-hero h2 {
  color: #101828;
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.15;
  letter-spacing: -0.035em;
}

.sourcing-channel-hero p {
  max-width: 760px;
  margin-top: 12px;
  color: #475467;
  font-size: 15px;
  line-height: 1.7;
}

.sourcing-runtime-pill {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
  padding: 11px 18px;
  border-radius: 999px;
  background: #e9eef5;
  color: #344054;
  font-size: 13px;
  font-weight: 700;
}

.sourcing-runtime-pill i,
.sourcing-platform-state i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #667085;
}

.sourcing-runtime-pill.is-running {
  background: #e7f8ef;
  color: #067647;
}

.sourcing-runtime-pill.is-running i,
.sourcing-platform-state.is-ready i {
  background: #12b76a;
}

.sourcing-platform-card {
  padding: 34px 38px 32px;
  border: 1px solid #cbd5e2;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.045);
}

.sourcing-platform-heading {
  display: flex;
  align-items: center;
  gap: 18px;
}

.sourcing-platform-logo {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  background: #fff7ed;
  color: #c2410c;
  font-size: 22px;
  font-weight: 900;
}

.sourcing-platform-logo.zhaopin {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #0755c9;
}

.sourcing-platform-heading h3 {
  margin: 0 0 7px;
  color: #101828;
  font-size: 26px;
}

.sourcing-platform-state {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #067647;
  font-size: 12px;
  font-weight: 800;
}

.sourcing-platform-state.is-pending {
  color: #b54708;
}

.sourcing-platform-state.is-pending i {
  background: #f79009;
}

.sourcing-platform-progress-head {
  display: flex;
  justify-content: space-between;
  margin-top: 30px;
  color: #344054;
  font-size: 14px;
}

.sourcing-platform-progress {
  height: 7px;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #e9edf2;
}

.sourcing-platform-progress i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #0755c9;
  transition: width 180ms ease;
}

.sourcing-platform-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.sourcing-platform-stats > div {
  display: grid;
  gap: 8px;
  min-height: 86px;
  padding: 18px;
  border: 1px solid #cbd5e2;
  border-radius: 10px;
  background: #f3f6fa;
}

.sourcing-platform-stats span {
  color: #475467;
  font-size: 12px;
  font-weight: 700;
}

.sourcing-platform-stats strong {
  color: #101828;
  font-size: 22px;
}

.sourcing-one-click {
  display: flex;
  width: 100%;
  min-height: 72px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 28px;
  border: 0;
  border-radius: 10px;
  background: #064db8;
  color: #ffffff;
  font-size: 20px;
  font-weight: 800;
}

.sourcing-one-click:hover:not(:disabled) {
  background: #063f99;
}

.sourcing-one-click:disabled {
  cursor: not-allowed;
  background: #98a2b3;
}

.sourcing-card-feedback {
  margin-top: 12px;
  color: #667085;
  font-size: 12px;
  text-align: center;
}

#sourcing > .panel,
#sourcing > .panel + .panel {
  margin-top: 10px;
}

.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}

table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
}

th,
td {
  text-align: left;
  padding: 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

th {
  color: var(--muted);
  background: #f7f9f6;
  font-size: 13px;
  font-weight: 700;
}

tr:last-child td {
  border-bottom: 0;
}

.form-stack {
  display: grid;
  gap: 14px;
}

label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text);
  padding: 9px 11px;
  outline: none;
}

textarea {
  min-height: 112px;
  resize: vertical;
  line-height: 1.5;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
}

.form-row,
.search-grid,
.message-capture-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.message-capture-form {
  grid-template-columns: 150px 180px 180px minmax(260px, 1fr) auto;
  align-items: end;
  margin-bottom: 14px;
}

.message-capture-form textarea {
  min-height: 72px;
}

.search-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reply-preview {
  min-height: 178px;
  padding: 16px;
  background: #f9faf7;
  border: 1px solid var(--line);
  border-radius: 8px;
  line-height: 1.7;
}

.reply-preview span {
  color: var(--muted);
}

.send-mode {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.switch-row {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-weight: 600;
}

.switch-row input {
  width: 18px;
  min-height: 18px;
  accent-color: var(--accent);
}

.strategy-grid,
.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.strategy-card,
.feature-item,
.rule-card,
.message-card,
.candidate-card,
.match-card {
  background: #f9faf7;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
}

.strategy-card span {
  display: block;
  color: var(--muted);
  line-height: 1.5;
  margin-top: 8px;
}

.rule-card {
  display: grid;
  gap: 10px;
}

.rule-top,
.message-top,
.match-top,
.candidate-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.message-top span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  margin-top: 4px;
}

.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tag {
  background: #e6efea;
  color: #345149;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 700;
}

.tag.muted {
  background: #eef1ec;
  color: var(--muted);
}

.rule-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ai-test-output {
  min-height: 92px;
  margin-top: 14px;
  padding: 12px;
  background: #f9faf7;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.small-danger {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid #ffd2c1;
  border-radius: 8px;
  background: #fff7f3;
  color: var(--red);
}

.reply-queue-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.reply-queue-summary div {
  min-height: 72px;
  padding: 12px;
  background: #f9faf7;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.reply-queue-summary strong,
.reply-queue-summary span {
  display: block;
}

.reply-queue-summary strong {
  font-size: 24px;
  line-height: 1;
}

.reply-queue-summary span {
  color: var(--muted);
  font-size: 13px;
  margin-top: 8px;
}

.message-card {
  display: grid;
  gap: 12px;
}

.candidate-message {
  padding: 12px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  line-height: 1.6;
}

.message-match {
  display: grid;
  grid-template-columns: minmax(160px, 240px) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.message-match span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 4px;
}

.empty-state {
  padding: 22px;
  background: #f9faf7;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
}

.empty-state.compact {
  padding: 12px;
}

.job-catalog-manager {
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-2);
}

.job-catalog-add {
  display: grid;
  grid-template-columns: 140px minmax(220px, 1fr) auto;
  gap: 10px;
}

.job-catalog-list {
  display: grid;
  gap: 8px;
}

.job-catalog-section {
  display: grid;
  gap: 8px;
}

.job-catalog-section-head,
.job-catalog-summary,
.job-editor-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.job-catalog-section-head {
  justify-content: space-between;
  padding: 4px 2px;
  color: var(--muted);
}

.job-catalog-item {
  display: grid;
  grid-template-columns: auto minmax(110px, 240px) auto auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
}

.job-catalog-item.structured {
  display: block;
  padding: 10px;
}

.job-catalog-summary .job-catalog-name {
  flex: 1;
}

.job-code {
  padding: 2px 6px;
  border-radius: 6px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 12px;
}

.job-profile-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  color: #245f50;
  background: #e6f4ef;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.job-profile-badge.sales {
  color: #7b5211;
  background: #fff0c7;
}

.job-profile-badge.digital {
  color: #0755c9;
  background: #e7f0ff;
}

.job-profile-badge.manufacturing {
  color: #0b6b57;
  background: #def5ed;
}

.job-profile-badge.functional {
  color: #8b3f75;
  background: #f8e8f3;
}

.job-profile-badge.internship {
  color: #4f4c91;
  background: #eeedff;
}

.job-profile-badge.unclassified {
  color: #9a3f31;
  background: #ffe8e3;
}

.job-catalog-details {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}

.job-catalog-details summary {
  cursor: pointer;
  color: var(--primary);
  font-weight: 700;
}

.job-editor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.job-editor-grid label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
}

.job-editor-grid .wide {
  grid-column: 1 / -1;
}

.job-editor-grid textarea {
  resize: vertical;
}

.job-editor-actions {
  justify-content: flex-end;
  margin-top: 10px;
}

.job-catalog-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.job-catalog-item small {
  color: var(--muted);
  white-space: nowrap;
}

.platform-source {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.platform-source.liepin {
  color: #075985;
  background: #e0f2fe;
}

.platform-source.zhaopin {
  color: #7c2d12;
  background: #ffedd5;
}

.conversation-job-group {
  display: grid;
  gap: 6px;
}

.conversation-job-group + .conversation-job-group {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.conversation-job-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.conversation-job-group-head > div {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
}

.conversation-job-group-head strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conversation-job-group-head > span {
  color: var(--muted);
  font-size: 13px;
  white-space: nowrap;
}

.conversation-job-group-list {
  display: grid;
  gap: 6px;
}

.sourcing-filter-workspace {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

#sourcing .sourcing-engine-filter-panel {
  gap: 16px;
  margin: -6px 0 0;
  padding: 24px;
  border: 1px solid #cfd5df;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 1px 2px rgba(20, 34, 56, 0.03);
}

.sourcing-filter-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.sourcing-filter-heading > div > span {
  color: #0755b5;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
}

.sourcing-filter-heading h3 {
  margin: 4px 0 5px;
  color: #101722;
  font-size: 24px;
  font-weight: 850;
}

.sourcing-filter-heading p {
  margin: 0;
  color: #697386;
  font-size: 13px;
}

.sourcing-filter-heading .ghost-button {
  flex: 0 0 auto;
  min-height: 38px;
  border-color: #9fb5d8;
  color: #0747ad;
  background: #f7faff;
}

.sourcing-filter-body {
  min-width: 0;
}

#sourcing .sourcing-filter-grid.liepin-filter-panel {
  margin-bottom: 12px;
  box-shadow: none;
}

.sourcing-apply-status {
  display: flex;
  min-height: 42px;
  align-items: center;
  padding: 10px 14px;
  border: 1px solid #d6dce6;
  border-radius: 7px;
  background: #f7f9fc;
  color: #596477;
  font-size: 13px;
}

.sourcing-apply-status.is-pending,
.sourcing-apply-status.is-running {
  border-color: #c6d7f4;
  background: #f1f6ff;
  color: #24518f;
}

.sourcing-apply-status.is-success {
  border-color: #a9dfbd;
  background: #effbf4;
  color: #087b38;
}

.sourcing-apply-status.is-error {
  border-color: #efb8ba;
  background: #fff4f4;
  color: #ad171d;
}

.sourcing-platform-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border: 1px solid #e7ebf0;
  border-radius: 8px;
  background: #f8fafc;
}

.sourcing-platform-bar label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #697386;
  font-size: 13px;
}

.sourcing-platform-bar select {
  width: 132px;
  min-height: 34px;
}

.sourcing-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.sourcing-section-title > div {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.sourcing-section-title strong {
  font-size: 18px;
}

.sourcing-section-title small,
.sourcing-section-title > span {
  color: var(--muted);
  font-size: 12px;
}

.sourcing-filter-grid.liepin-filter-panel {
  display: block;
  margin-bottom: 14px;
  overflow: visible;
  border: 1px solid #e4e8ee;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(34, 51, 84, 0.04);
}

.liepin-search-bar {
  display: grid;
  grid-template-columns: 132px minmax(260px, 1fr) 176px 96px;
  align-items: stretch;
  gap: 0;
  padding: 18px 20px;
  background: #f7f9fc;
  border-bottom: 1px solid #e8ebf0;
}

.liepin-position-button,
.liepin-scope-button,
.liepin-dropdown-trigger {
  color: #3f4654;
  border: 1px solid #dfe3e8;
  background: #fff;
}

.liepin-position-button {
  border-radius: 4px 0 0 4px;
  border-right: 0;
}

.liepin-search-bar > .sourcing-row-input {
  min-width: 0;
  height: 42px;
  border-radius: 0;
  border-color: #dfe3e8;
  box-shadow: none;
}

.liepin-search-bar > .liepin-filter-dropdown .liepin-dropdown-trigger {
  height: 42px;
  border-left: 0;
  border-radius: 0;
}

.liepin-search-button {
  border: 0;
  border-radius: 0 4px 4px 0;
  color: #fff;
  background: #2468f2;
  font-weight: 700;
}

.liepin-search-button:hover {
  background: #1558d6;
}

.liepin-filter-row {
  position: relative;
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: center;
  min-height: 52px;
  padding: 7px 20px;
  border-bottom: 1px solid #f0f2f5;
}

.liepin-filter-label {
  color: #7a8393;
  font-size: 14px;
  letter-spacing: 1px;
  white-space: nowrap;
}

.liepin-filter-options {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 12px;
}

.liepin-filter-option {
  min-width: 48px;
  padding: 7px 9px;
  border: 0;
  border-radius: 3px;
  color: #414957;
  background: transparent;
  font-size: 14px;
  font-weight: 400;
}

.liepin-filter-option:hover {
  color: #2468f2;
  background: #f2f6ff;
}

.liepin-filter-option.is-active {
  color: #2468f2;
  background: #edf3ff;
}

.liepin-text-row {
  grid-template-columns: 100px minmax(240px, 520px) 110px 1fr;
  gap: 12px;
}

.liepin-text-control {
  display: flex;
  align-items: stretch;
  height: 34px;
}

.liepin-text-control .sourcing-row-input {
  min-width: 0;
  border-radius: 4px 0 0 4px;
  box-shadow: none;
}

.liepin-confirm-button {
  width: 64px;
  color: #2468f2;
  border: 1px solid #dfe3e8;
  border-left: 0;
  border-radius: 0 4px 4px 0;
  background: #fff;
}

.liepin-scope-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 34px;
  border-radius: 4px;
  font-size: 13px;
}

.liepin-main-filter-rows {
  border-top: 6px solid #f7f8fa;
}

.liepin-education-extra {
  display: grid;
  grid-template-columns: 100px max-content max-content 1fr;
  gap: 10px;
  align-items: center;
  min-height: 48px;
  padding: 5px 20px 10px;
  border-bottom: 1px solid #eef1f4;
}

.liepin-advanced-row {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: start;
  gap: 0;
  padding: 10px 20px;
  background: #fbfcfd;
  transition: padding-bottom 0.18s ease;
}

.liepin-advanced-row > .liepin-filter-label {
  padding-top: 8px;
}

.liepin-advanced-body {
  position: relative;
  min-width: 0;
  padding-right: 92px;
}

.liepin-advanced-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 32px;
  row-gap: 8px;
  max-height: 32px;
  overflow: hidden;
  transition: max-height 0.2s ease;
}

.liepin-advanced-row.is-expanded {
  padding-bottom: 14px;
}

.liepin-advanced-row.is-expanded .liepin-advanced-controls {
  max-height: 240px;
  overflow: visible;
}

.liepin-advanced-controls .liepin-dropdown-trigger {
  min-width: 72px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  gap: 8px;
}

.liepin-advanced-controls .liepin-filter-dropdown.is-compact .liepin-dropdown-trigger {
  min-width: 72px;
}

.liepin-more-conditions {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  height: 32px;
  padding: 0;
  border: 0;
  color: #2468f2;
  background: transparent;
  font-size: 13px;
  white-space: nowrap;
}

.liepin-more-conditions i {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  transition: transform 0.18s ease;
}

.liepin-advanced-row.is-expanded .liepin-more-conditions i {
  transform: rotate(180deg);
}

.liepin-filter-dropdown {
  position: relative;
  display: inline-block;
}

.sourcing-native-control {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.liepin-dropdown-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 112px;
  height: 36px;
  padding: 0 12px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 400;
  white-space: nowrap;
}

.liepin-filter-dropdown.is-compact .liepin-dropdown-trigger {
  min-width: 118px;
}

.liepin-dropdown-trigger:hover,
.liepin-filter-dropdown.is-open .liepin-dropdown-trigger {
  color: #2468f2;
  border-color: #7aa4ff;
}

.liepin-position-button i,
.liepin-scope-button i,
.liepin-dropdown-trigger i {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  transition: transform 0.16s ease;
}

.liepin-filter-dropdown.is-open .liepin-dropdown-trigger i {
  transform: rotate(180deg);
}

.liepin-dropdown-menu {
  display: none;
  position: absolute;
  z-index: 80;
  top: calc(100% + 6px);
  left: 0;
  min-width: 210px;
  max-height: 286px;
  overflow: auto;
  padding: 6px;
  border: 1px solid #e1e5eb;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(31, 45, 70, 0.16);
}

.liepin-filter-dropdown.is-open .liepin-dropdown-menu {
  display: grid;
}

.liepin-dropdown-option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 6px;
  align-items: center;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 4px;
  color: #3f4654;
  background: #fff;
  text-align: left;
  font-size: 13px;
  font-weight: 400;
}

.liepin-dropdown-option:hover {
  color: #2468f2;
  background: #f3f6fb;
}

.liepin-dropdown-option.is-selected {
  color: #2468f2;
  background: #edf3ff;
}

.liepin-option-check {
  color: #2468f2;
  font-weight: 800;
  text-align: center;
}

.liepin-inline-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  color: #414957;
  font-size: 13px;
  cursor: pointer;
}

.liepin-inline-checkbox input {
  position: absolute;
  opacity: 0;
}

.liepin-inline-checkbox span {
  width: 15px;
  height: 15px;
  border: 1px solid #bfc6d1;
  border-radius: 2px;
  background: #fff;
}

.liepin-inline-checkbox input:checked + span {
  border-color: #2468f2;
  background: #2468f2;
  box-shadow: inset 0 0 0 3px #fff;
}

.sourcing-loading {
  margin: 20px;
}

.sourcing-contact-prep {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(300px, 430px) max-content;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid #dfe6ff;
  border-radius: 8px;
  background: #f7f9ff;
}

.sourcing-batch-prep {
  margin-top: 16px;
  padding: 18px;
  border: 1px solid #d9e2ff;
  border-radius: 14px;
  background: #f8faff;
}

.sourcing-batch-head,
.sourcing-batch-controls {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.sourcing-batch-head {
  justify-content: space-between;
  margin-bottom: 14px;
}

.sourcing-batch-head div {
  display: grid;
  gap: 4px;
}

.sourcing-batch-head span,
.sourcing-batch-controls label {
  color: var(--muted);
  font-size: 13px;
}

.sourcing-batch-controls label {
  display: grid;
  gap: 5px;
}

.sourcing-batch-controls input {
  width: 132px;
}

.sourcing-batch-prep .ai-test-output {
  margin-top: 14px;
}

.sourcing-contact-prep > div {
  display: grid;
  grid-row: 1 / 3;
  gap: 4px;
}

.sourcing-contact-prep > div span {
  color: var(--muted);
  font-size: 13px;
}

.sourcing-contact-prep label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #556070;
  font-size: 13px;
  white-space: nowrap;
}

.sourcing-contact-prep input {
  width: 62px;
  height: 36px;
}

.sourcing-contact-job-label select {
  min-width: 0;
  width: 100%;
  height: 38px;
}

.sourcing-candidate-index-label {
  grid-column: 2;
}

#sourcingPrepareContactBtn {
  grid-column: 3;
}

/* 猎聘搜索人才页的横向筛选结构 */
.sourcing-filter-grid.liepin-filter-panel {
  padding: 18px 20px 14px;
  border: 0;
  border-radius: 10px;
  background: #fff;
  box-shadow: none;
}

.liepin-search-bar {
  grid-template-columns: 154px minmax(320px, 1fr) 190px 90px;
  padding: 0;
  border: 2px solid #5068f5;
  border-radius: 10px;
  background: #fff;
}

.liepin-search-bar > .liepin-filter-dropdown:first-child .liepin-dropdown-trigger {
  width: 100%;
  height: 56px;
  border: 0;
  border-radius: 9px 0 0 9px;
  font-size: 16px;
}

.liepin-search-bar > .sourcing-row-input {
  height: 56px;
  padding: 0 16px;
  border: 0;
  border-left: 1px solid #e4e7ed;
  font-size: 15px;
}

.liepin-search-bar > .liepin-filter-dropdown .liepin-dropdown-trigger {
  height: 56px;
  border: 0;
  border-left: 1px solid #e4e7ed;
  font-size: 15px;
}

.liepin-search-button {
  margin: 7px;
  border-radius: 7px;
  font-size: 16px;
}

.liepin-job-company-row {
  display: grid;
  grid-template-columns: minmax(380px, 1fr) minmax(380px, 1fr) 100px;
  gap: 30px;
  align-items: center;
  padding: 22px 0 14px;
}

.liepin-text-group {
  display: grid;
  grid-template-columns: 70px minmax(180px, 1fr) 112px;
  align-items: center;
  gap: 0;
}

.liepin-text-group .liepin-filter-label {
  color: #111c36;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 8px;
}

.liepin-text-group .liepin-text-control {
  height: 42px;
}

.liepin-text-group .liepin-text-control input,
.liepin-text-group .liepin-confirm-button,
.liepin-text-group .liepin-dropdown-trigger {
  height: 42px;
}

.liepin-text-group .liepin-dropdown-trigger {
  border-left: 0;
  border-radius: 0 5px 5px 0;
}

.liepin-clear-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: 0;
  color: #647083;
  background: transparent;
  font-weight: 400;
  white-space: nowrap;
}

.liepin-clear-button span {
  font-size: 17px;
}

.liepin-main-filter-rows {
  border-top: 0;
}

.liepin-filter-row {
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 50px;
  padding: 4px 0;
  border-bottom: 0;
}

.liepin-filter-label {
  color: #111c36;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 2px;
}

.liepin-filter-options {
  gap: 4px 24px;
}

.liepin-filter-option {
  padding: 7px 0;
  color: #111c36;
  font-size: 15px;
}

.liepin-filter-option.is-active {
  color: #4664fa;
  background: transparent;
}

.liepin-combined-row {
  position: relative;
}

.liepin-combined-row > .liepin-filter-row {
  padding-right: 270px;
}

.liepin-education-extra {
  position: absolute;
  top: 4px;
  right: 0;
  display: flex;
  gap: 20px;
  min-height: 42px;
  padding: 0;
  border: 0;
}

.liepin-education-extra .liepin-dropdown-trigger,
.liepin-advanced-controls .liepin-dropdown-trigger {
  border: 0;
  background: transparent;
}

.liepin-advanced-row {
  grid-template-columns: 132px minmax(0, 1fr);
  padding: 4px 0;
  background: #fff;
}

.liepin-advanced-controls {
  column-gap: 28px;
  max-height: 38px;
}

.liepin-advanced-row.is-expanded .liepin-advanced-controls {
  max-height: 290px;
}

.liepin-inline-popover {
  display: none;
  position: absolute;
  z-index: 85;
  top: calc(100% - 2px);
  left: 132px;
  width: min(620px, calc(100% - 132px));
  padding: 16px;
  border: 1px solid #dfe4ed;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(31, 45, 70, 0.18);
}

.liepin-inline-popover.is-open {
  display: block;
}

.liepin-popover-title {
  margin-bottom: 12px;
  color: #111c36;
  font-weight: 700;
}

.liepin-city-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
}

.liepin-city-list button {
  padding: 8px;
  border: 1px solid #e1e5eb;
  border-radius: 4px;
  color: #30394a;
  background: #fff;
  font-weight: 400;
}

.liepin-city-list button:hover {
  color: #4664fa;
  border-color: #7890ff;
  background: #f4f6ff;
}

.liepin-custom-value {
  display: grid;
  grid-template-columns: 75px 1fr 62px;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}

.liepin-custom-value input,
.liepin-range-picker input {
  height: 34px;
}

.liepin-custom-value button,
.liepin-range-picker button {
  height: 34px;
  border: 0;
  border-radius: 4px;
  color: #fff;
  background: #4664fa;
}

.liepin-range-picker {
  width: 390px;
}

.liepin-range-picker > div:last-child {
  display: grid;
  grid-template-columns: 1fr 18px 1fr 62px;
  align-items: center;
  gap: 8px;
}

.liepin-range-picker label {
  display: flex;
  align-items: center;
  gap: 5px;
}

.liepin-range-picker b {
  height: 1px;
  background: #abb3c0;
}

.liepin-more-text-field {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 260px;
  color: #414957;
  font-size: 13px;
}

.liepin-more-text-field .sourcing-row-input {
  width: 170px;
  height: 34px;
}

@media (max-width: 1050px) {
  .liepin-search-bar {
    grid-template-columns: 110px minmax(180px, 1fr) 150px 80px;
  }

  .liepin-text-row {
    grid-template-columns: 88px minmax(220px, 1fr) 100px;
  }

  .liepin-filter-row,
  .liepin-advanced-row,
  .liepin-education-extra {
    grid-template-columns: 88px minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .sourcing-platform-bar,
  .sourcing-section-title,
  .sourcing-section-title > div {
    align-items: stretch;
    flex-direction: column;
  }

  .liepin-search-bar {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .liepin-position-button,
  .liepin-search-bar > .sourcing-row-input,
  .liepin-search-bar > .liepin-filter-dropdown .liepin-dropdown-trigger,
  .liepin-search-button {
    width: 100%;
    height: 40px;
    border: 1px solid #dfe3e8;
    border-radius: 4px;
  }

  .liepin-filter-row,
  .liepin-text-row,
  .liepin-advanced-row,
  .liepin-education-extra {
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 12px 14px;
  }

  .liepin-advanced-row > .liepin-filter-label {
    padding-top: 0;
  }

  .liepin-advanced-controls,
  .liepin-filter-options {
    gap: 7px;
  }
}

@media (max-width: 900px) {
  .job-catalog-add,
  .job-catalog-item {
    grid-template-columns: 1fr;
  }
}

.upload-box {
  min-height: 220px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  border: 1px dashed #b8c5bd;
  border-radius: 8px;
  background: #fbfcfa;
  text-align: center;
  padding: 20px;
}

.upload-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #e6efea;
  color: var(--accent);
  font-weight: 800;
}

.upload-box span {
  color: var(--muted);
  line-height: 1.45;
}

.conversation-task-list {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}

.conversation-task-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}

.conversation-task-card.priority {
  border-color: #ffb8b8;
  background: #fffafa;
}

.conversation-task-main {
  min-width: 0;
  flex: 1;
}

.conversation-task-title-row {
  display: grid;
  grid-template-columns: 10px max-content minmax(80px, 1fr) max-content;
  align-items: center;
  gap: 6px;
  min-width: 0;
  font-size: 13px;
  line-height: 1.2;
}

.conversation-priority-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d8dde8;
}

.conversation-priority-dot.active {
  background: #f04444;
  box-shadow: 0 0 0 3px rgb(240 68 68 / 12%);
}

.conversation-job-name {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
}

.conversation-task-title-row time {
  color: var(--muted);
  white-space: nowrap;
  font-size: 12px;
}

.conversation-task-compact-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin: 3px 0 0 20px;
}

.conversation-preview {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #30384a;
  font-size: 13px;
  line-height: 1.25;
}

.conversation-task-meta {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px 9px;
  margin-left: 0;
  color: var(--muted);
  font-size: 11px;
  overflow: hidden;
}

.conversation-task-meta span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.conversation-task-actions {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 4px;
  flex: 0 0 auto;
}

.conversation-task-actions button {
  min-height: 28px;
  padding: 4px 7px;
  border-radius: 7px;
  font-size: 12px;
  white-space: nowrap;
}

.ai-metric-grid {
  margin-bottom: 18px;
}

#aiConfigMount > .panel {
  height: 100%;
}

.ai-analysis-controls {
  margin: 12px 0;
}

.ai-analysis-controls input {
  min-width: 110px;
}

.ai-suggestion-list,
.ai-analysis-history {
  display: grid;
  gap: 12px;
}

.ai-suggestion-card {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px;
  background: #fff;
}

.ai-suggestion-card.accepted {
  border-color: #87c99b;
  background: #f7fff9;
}

.ai-suggestion-card.rejected {
  opacity: 0.68;
}

.ai-suggestion-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.ai-suggestion-head div {
  min-width: 0;
}

.ai-suggestion-head strong,
.ai-suggestion-head span {
  display: block;
}

.ai-suggestion-head strong {
  font-size: 16px;
}

.ai-suggestion-head div > span,
.muted-text {
  color: var(--muted);
  font-size: 13px;
  margin-top: 4px;
}

.ai-suggestion-reply {
  background: #f6f8fb;
  border-radius: 10px;
  padding: 11px 12px;
  margin: 12px 0;
}

.ai-suggestion-reply small {
  color: var(--muted);
}

.ai-suggestion-reply p {
  margin: 5px 0 0;
  white-space: pre-wrap;
}

.warning-tag {
  background: #fff3d9;
  color: #8a5a00;
}

.empty-state {
  color: var(--muted);
  text-align: center;
  padding: 28px 12px;
  border: 1px dashed var(--line);
  border-radius: 12px;
}

@media (max-width: 900px) {
  .conversation-task-card {
    align-items: stretch;
    flex-direction: column;
  }

  .conversation-task-title-row {
    grid-template-columns: 10px max-content minmax(60px, 1fr);
  }

  .conversation-task-title-row time {
    grid-column: 2 / -1;
  }

  .conversation-task-actions {
    justify-content: flex-start;
    margin-left: 28px;
  }
}

.integration-list {
  margin-top: 14px;
}

.candidate-card {
  display: grid;
  gap: 10px;
}

.score {
  min-width: 54px;
  text-align: center;
  background: #e7f6f3;
  color: var(--accent);
  border-radius: 8px;
  padding: 8px;
  font-weight: 800;
}

.match-card {
  display: grid;
  gap: 12px;
}

.invite-copy {
  padding: 12px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  line-height: 1.6;
}

.filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(160px, 240px));
  gap: 12px;
  margin-bottom: 14px;
}

.feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.feature-item {
  min-height: 54px;
  display: flex;
  align-items: center;
  font-weight: 700;
}

@media (max-width: 1100px) {
  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .panel-grid.two,
  .panel-grid.form-layout,
  .search-grid,
  .message-capture-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 780px) {
  .shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    position: static;
    height: auto;
  }

  .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .main {
    padding: 18px 14px;
  }

  .topbar,
  .panel-head,
  .platform-row,
  .integration-row,
  .account-card,
  .setting-row {
    flex-direction: column;
    align-items: stretch;
  }

  .top-actions {
    justify-content: stretch;
  }

  .top-actions button {
    flex: 1;
  }

  .metric-grid,
  .strategy-grid,
  .feature-grid,
  .form-row,
  .filters,
  .reply-queue-summary,
  .message-match {
    grid-template-columns: 1fr;
  }

  h1 {
    font-size: 24px;
  }
}


.liepin-filter-dropdown.is-single .liepin-dropdown-option {
  grid-template-columns: minmax(0, 1fr);
}

.liepin-filter-dropdown.is-single .liepin-option-check {
  display: none;
}

.liepin-filter-dropdown.is-salary .liepin-dropdown-menu {
  min-width: 160px;
}

.liepin-salary-range {
  display: none;
  align-items: center;
  width: 200px;
  height: 32px;
  background: transparent;
}

.liepin-filter-dropdown.is-custom-range > .liepin-dropdown-trigger {
  display: none;
}

.liepin-filter-dropdown.is-custom-range > .liepin-salary-range {
  display: flex;
}

.liepin-salary-input-group {
  display: flex;
  align-items: stretch;
  width: 88px;
  height: 32px;
  margin: 0;
}

.liepin-salary-input-group input {
  min-width: 0;
  width: 52px;
  height: 32px;
  padding: 4px 11px;
  border: 1px solid #e5e6eb;
  border-radius: 4px 0 0 4px;
  outline: 0;
  box-shadow: none;
  color: #121e29;
  background: #fff;
  font-size: 14px;
  line-height: 22px;
}

.liepin-salary-input-group input:focus {
  position: relative;
  z-index: 1;
  border-color: #3370ff;
}

.liepin-salary-input-group input::-webkit-inner-spin-button,
.liepin-salary-input-group input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.liepin-salary-input-group span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 32px;
  padding: 0 11px;
  border: 1px solid #e5e6eb;
  border-left: 0;
  border-radius: 0 4px 4px 0;
  color: #121e29;
  background: #f2f4f7;
  font-size: 14px;
  line-height: 30px;
}

.liepin-salary-divider {
  flex: 0 0 8px;
  width: 8px;
  height: 1px;
  margin: 15px 8px 0;
  background: #cdd0d4;
}

/* Resume intake workbench */
.resume-intake-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 30px;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(118deg, #123c35 0%, #17675a 58%, #1a8b73 100%);
  box-shadow: 0 14px 30px rgba(18, 60, 53, 0.16);
}

.resume-intake-hero h2 {
  margin: 5px 0 8px;
  font-size: 25px;
}

.resume-intake-hero p {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.7;
}

.resume-eyebrow {
  color: #9de5d4;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.resume-hero-actions {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
}

.resume-intake-hero .ghost-button {
  border-color: rgba(255, 255, 255, 0.42);
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.resume-intake-hero .primary-button {
  color: #145346;
  background: #fff;
}

.resume-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 16px 0;
}

.resume-summary-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 7px;
  min-height: 116px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}

.resume-summary-card::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 72px;
  height: 72px;
  border-radius: 0 0 0 72px;
  background: #eef5f2;
}

.resume-summary-card.direct::after { background: #e6f5ff; }
.resume-summary-card.private::after { background: #eeeaff; }
.resume-summary-card.warning::after { background: #fff0e8; }
.resume-summary-card span,
.resume-summary-card small { color: var(--muted); }
.resume-summary-card strong { font-size: 30px; line-height: 1; }

.resume-source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}

.resume-source-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 15px;
  align-items: start;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface);
}

.resume-source-card.is-direct { border-top: 3px solid #2689bd; }
.resume-source-card.is-private { border-top: 3px solid #7964c9; }

.resume-source-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #fff;
  background: #2689bd;
  font-weight: 800;
}

.is-private .resume-source-icon { background: #7964c9; }
.is-manual .resume-source-icon { background: #a76b27; }
.resume-source-card.is-manual { border-top: 3px solid #a76b27; }
.resume-source-title { display: flex; gap: 10px; align-items: center; }
.resume-source-title span { color: var(--muted); font-size: 12px; }
.resume-source-card p { margin: 7px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.55; }

.resume-pipeline {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #4c625d;
  font-size: 11px;
  font-weight: 700;
}

.resume-pipeline i { width: 14px; height: 1px; background: #c8d7d2; }

.resume-source-state {
  padding: 6px 9px;
  border-radius: 999px;
  font-size: 11px;
  white-space: nowrap;
}

.resume-source-state.planned { color: #a45320; background: #fff0e5; }
.resume-source-state.connected { color: #246d5b; background: #e7f5f0; }

.resume-workbench { padding: 0; overflow: hidden; }
.resume-tabs { display: flex; gap: 4px; padding: 14px 18px 0; border-bottom: 1px solid var(--line); }
.resume-tabs button { position: relative; padding: 11px 14px 13px; border: 0; color: var(--muted); background: transparent; font-weight: 700; }
.resume-tabs button::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; border-radius: 2px; background: transparent; }
.resume-tabs button.is-active { color: var(--ink); }
.resume-tabs button.is-active::after { background: var(--green); }
.resume-tabs b { display: inline-grid; place-items: center; min-width: 19px; height: 19px; margin-left: 4px; padding: 0 5px; border-radius: 10px; background: #edf1ee; font-size: 10px; }

.resume-job-groups { display: grid; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: #f7faf8; }
.resume-job-groups-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.resume-job-groups-head > div { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.resume-job-groups-head strong { font-size: 13px; }
.resume-job-groups-head span,.resume-job-groups-head small { color: var(--muted); font-size: 11px; }
.resume-job-groups-head small { white-space: nowrap; }
.resume-job-list { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }
.resume-job-list button { display: flex; align-items: center; gap: 8px; min-width: max-content; max-width: 310px; padding: 9px 11px; border: 1px solid #dce6e2; border-radius: 10px; color: #405650; background: #fff; }
.resume-job-list button:hover { border-color: #8bb6ab; }
.resume-job-list button.is-active { color: #216454; border-color: #65a493; background: #eaf6f2; box-shadow: inset 0 0 0 1px rgba(62, 138, 120, 0.08); }
.resume-job-list button span { overflow: hidden; max-width: 230px; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.resume-job-list button b { display: inline-grid; place-items: center; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 11px; color: #526862; background: #edf2f0; font-size: 10px; }
.resume-job-list button.is-active b { color: #216454; background: #d5ebe4; }

.resume-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) 250px 170px; gap: 10px; padding: 14px 18px; background: #fbfcfa; border-bottom: 1px solid var(--line); }
.resume-search { position: relative; margin: 0; }
.resume-search span { position: absolute; left: 12px; top: 9px; z-index: 1; color: var(--muted); font-size: 18px; }
.resume-search input { padding-left: 36px; }

.resume-workbench-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, 0.75fr); min-height: 540px; }
.resume-intake-list { display: grid; align-content: start; gap: 10px; padding: 16px; border-right: 1px solid var(--line); background: #f7f9f6; }
.resume-intake-card { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; cursor: pointer; transition: 0.16s ease; }
.resume-intake-card:hover,.resume-intake-card.is-selected { border-color: #78aa9e; box-shadow: 0 7px 18px rgba(37, 83, 72, 0.08); transform: translateY(-1px); }
.resume-intake-card.direct { border-left: 4px solid #2689bd; }
.resume-intake-card.private { border-left: 4px solid #7964c9; }
.resume-intake-priority { display: grid; place-items: center; min-height: 55px; padding: 8px 4px; border-radius: 10px; background: #f0f5f2; }
.resume-intake-priority strong { font-size: 20px; }
.resume-intake-priority span { color: var(--muted); font-size: 10px; }
.resume-intake-main { min-width: 0; }
.resume-intake-title { display: flex; justify-content: space-between; gap: 12px; }
.resume-intake-title > div { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.resume-intake-title time { color: var(--muted); font-size: 11px; white-space: nowrap; }
.resume-source-chip { padding: 4px 7px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.resume-source-chip.direct { color: #17638c; background: #e5f4fc; }
.resume-source-chip.private { color: #5d4aa5; background: #efecff; }
.resume-source-chip.manual { color: #865214; background: #fff0d8; }
.resume-source-chip.liepin { color: #0879a8; background: #e8f8ff; }
.resume-source-chip.zhaopin { color: #174fa8; background: #eaf1ff; }
.resume-source-chip.email { color: #9a5a12; background: #fff0d8; }
.resume-source-chip.merged { color: #7b5c17; background: #fff5d8; }
.resume-intake-job { overflow: hidden; margin: 8px 0 6px; color: #294a43; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.resume-intake-main p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.resume-intake-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; color: #667873; font-size: 11px; }

.resume-status { display: inline-flex; padding: 5px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.resume-status.success { color: #26705e; background: #e6f6f0; }
.resume-status.processing { color: #315f9b; background: #eaf2ff; }
.resume-status.priority { color: #a54d19; background: #fff0e4; }
.resume-status.warning { color: #9c651c; background: #fff6dc; }

.resume-detail-panel { padding: 22px; background: #fff; }
.resume-detail-head,.resume-detail-head > div { display: flex; align-items: center; gap: 11px; }
.resume-detail-head { justify-content: space-between; }
.resume-detail-head small,.resume-detail-head strong { display: block; }
.resume-detail-head small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.resume-avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: #397c6c; font-weight: 800; }
.resume-detail-section { display: grid; gap: 6px; margin-top: 20px; }
.resume-detail-section > span,.resume-source-history > span { color: var(--muted); font-size: 11px; font-weight: 700; }
.resume-detail-section p { margin: 0; color: #52625e; font-size: 13px; line-height: 1.7; }
.resume-detail-panel > .tag-list { margin-top: 12px; }
.resume-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 18px; }
.resume-detail-grid div { min-width: 0; padding: 11px; border-radius: 9px; background: #f5f7f4; }
.resume-detail-grid span,.resume-detail-grid strong { display: block; }
.resume-detail-grid span { color: var(--muted); font-size: 10px; }
.resume-detail-grid strong { overflow: hidden; margin-top: 5px; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.resume-source-history { display: grid; gap: 10px; margin-top: 20px; }
.resume-source-history > div { display: flex; gap: 9px; align-items: start; }
.resume-source-history i { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: #2689bd; }
.resume-source-history i.private { background: #7964c9; }
.resume-source-history p { margin: 0; }
.resume-source-history p { min-width: 0; flex: 1; }
.resume-delete-button { align-self: center; margin-left: auto; white-space: nowrap; }
.resume-source-history strong,.resume-source-history small { display: block; font-size: 11px; }
.resume-source-history small { margin-top: 3px; color: var(--muted); }
.resume-detail-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.resume-analysis-settings { margin-top: 18px; overflow: hidden; }
.resume-analysis-settings > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; cursor: pointer; list-style: none; }
.resume-analysis-settings > summary::-webkit-details-marker { display: none; }
.resume-analysis-settings > summary div { display: grid; gap: 4px; }
.resume-analysis-settings > summary span { color: var(--muted); font-size: 12px; font-weight: 400; }
.resume-analysis-settings > summary b { padding: 6px 10px; border-radius: 999px; color: #8a6015; background: #fff0c7; font-size: 11px; }
.resume-analysis-settings > summary b.is-enabled { color: #246d5b; background: #e7f5f0; }
.resume-analysis-settings-body { padding: 0 22px 22px; border-top: 1px solid var(--line); }
.resume-analysis-enable { display: flex; align-items: center; gap: 8px; padding: 17px 0; font-weight: 700; }
.resume-analysis-provider-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.resume-analysis-provider-grid article { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #f8faf8; }
.resume-analysis-provider-grid header { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; }
.resume-analysis-provider-grid header button { padding: 5px 10px; border: 1px solid #9ebdb5; border-radius: 8px; color: #246d5b; background: white; cursor: pointer; }
.resume-analysis-provider-grid label,.resume-analysis-thresholds label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; }
.resume-analysis-provider-grid input,.resume-analysis-thresholds input { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: white; }
.resume-analysis-thresholds { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.resume-score-editor,.resume-prompt-editor { margin-top: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; }
.resume-score-editor > div:first-child,.resume-prompt-editor-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.resume-score-editor > div:first-child span,.resume-prompt-editor-head span { color: var(--muted); font-size: 11px; }
.resume-score-editor > div:first-child span.is-invalid { color: #b7412f; font-weight: 800; }
.resume-score-profile { margin-top: 12px; padding: 13px; border: 1px solid #d9e4e0; border-radius: 10px; background: white; }
.resume-score-profile header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.resume-score-profile header span { color: #246d5b; font-size: 11px; }
.resume-score-profile header span.is-invalid { color: #b7412f; font-weight: 800; }
.resume-analysis-thresholds.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.resume-prompt-editor { display: grid; gap: 13px; }
.resume-prompt-editor label { display: grid; gap: 6px; }
.resume-prompt-editor label > span { font-size: 12px; font-weight: 800; }
.resume-prompt-editor label > small { color: var(--muted); font-size: 10px; }
.resume-prompt-editor textarea { width: 100%; resize: vertical; padding: 11px; border: 1px solid var(--line); border-radius: 9px; color: #243e38; background: white; font: 12px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; }
.resume-analysis-save-row { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.resume-analysis-save-row span { color: var(--muted); font-size: 12px; }
.resume-ai-result { display: grid; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.resume-ai-result-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.resume-ai-result-head span { color: var(--muted); font-size: 11px; }
.resume-ai-routing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.resume-ai-routing div { min-width: 0; padding: 10px; border-radius: 9px; background: #f5f7f4; }
.resume-ai-routing span,.resume-ai-routing strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resume-ai-routing span { color: var(--muted); font-size: 10px; }
.resume-ai-routing strong { margin-top: 4px; font-size: 11px; }
.resume-ai-recommendation { padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.resume-ai-recommendation header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.resume-ai-recommendation header b { color: #1c7660; font-size: 19px; }
.resume-ai-dimensions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.resume-ai-dimensions span { padding: 4px 7px; border-radius: 999px; color: #53635f; background: #eef3f1; font-size: 10px; }
.resume-ai-recommendation p { margin: 8px 0 0; color: #52625e; font-size: 11px; line-height: 1.55; }
.resume-ai-risks { color: #a45320 !important; }
.resume-ai-timings { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.resume-ai-timings span { padding: 7px; border-radius: 8px; color: #53635f; background: #eef3f1; font-size: 10px; text-align: center; }
.resume-detail-empty { display: grid; place-items: center; min-height: 420px; color: var(--muted); text-align: center; }
.resume-detail-empty span { display: grid; place-items: center; width: 62px; height: 72px; border: 2px solid #c9d6d2; border-radius: 8px; font-weight: 800; }
.resume-detail-empty p { max-width: 260px; margin: 0; font-size: 12px; line-height: 1.6; }
.resume-inline-notice { margin-bottom: 12px; padding: 9px 10px; border-radius: 8px; color: #765914; background: #fff5d9; font-size: 11px; }

.resume-event-list { display: grid; gap: 0; padding: 6px 8px; }
.resume-event-list > div { position: relative; display: flex; gap: 12px; min-height: 60px; padding: 8px 0; }
.resume-event-list > div::before { content: ""; position: absolute; left: 5px; top: 23px; bottom: -8px; width: 1px; background: #d8e1de; }
.resume-event-list > div:last-child::before { display: none; }
.resume-event-dot { position: relative; z-index: 1; width: 11px; height: 11px; margin-top: 4px; border: 2px solid #fff; border-radius: 50%; background: #3e8a78; box-shadow: 0 0 0 1px #8cb9ae; }
.resume-event-list p { margin: 0; }
.resume-event-list strong,.resume-event-list small { display: block; }
.resume-event-list strong { font-size: 12px; }
.resume-event-list small { margin-top: 5px; color: var(--muted); font-size: 11px; }

@media (max-width: 1180px) {
  .resume-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resume-source-grid { grid-template-columns: 1fr; }
  .resume-analysis-provider-grid { grid-template-columns: 1fr; }
  .resume-analysis-thresholds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resume-workbench-grid { grid-template-columns: 1fr; }
  .resume-intake-list { border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .resume-intake-hero { align-items: flex-start; flex-direction: column; padding: 22px; }
  .resume-summary-grid { grid-template-columns: 1fr 1fr; }
  .resume-tabs { overflow-x: auto; }
  .resume-tabs button { white-space: nowrap; }
  .resume-job-groups-head { align-items: flex-start; flex-direction: column; gap: 5px; }
  .resume-job-groups-head > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .resume-toolbar { grid-template-columns: 1fr; }
  .resume-source-card { grid-template-columns: auto 1fr; }
  .resume-source-state { grid-column: 2; justify-self: start; }
  .resume-pipeline { flex-wrap: wrap; }
  .resume-intake-card { grid-template-columns: 48px minmax(0, 1fr); }
  .resume-intake-card > .resume-status { grid-column: 2; justify-self: start; }
}

/* Stitch fd-hr visual integration. Existing functional DOM remains unchanged. */
:root {
  --bg: #f5f8fc;
  --surface: #ffffff;
  --surface-2: #f1f5f9;
  --text: #111827;
  --muted: #667085;
  --line: #d8e0ec;
  --accent: #0755c9;
  --accent-strong: #063f99;
  --amber: #b45309;
  --green: #079455;
  --red: #c3141b;
  --ink: #1d2939;
  --shadow: 0 6px 18px rgba(16, 24, 40, 0.05);
}

html {
  color-scheme: light;
}

body {
  background: var(--bg);
  font-family: Inter, "Noto Sans SC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.shell {
  grid-template-columns: 288px minmax(0, 1fr);
}

.sidebar {
  z-index: 40;
  gap: 26px;
  padding: 28px 18px 22px;
  overflow-y: auto;
  background: #ffffff;
  color: var(--text);
  border-right: 1px solid #cfd8e6;
}

.brand {
  min-height: 58px;
  padding-inline: 10px;
}

.brand-mark {
  width: 44px;
  height: 44px;
  color: #ffffff;
  background: #064db8;
  border-radius: 10px;
  font-size: 15px;
  letter-spacing: -0.03em;
}

.brand strong {
  color: #07388f;
  font-size: 22px;
  line-height: 1.1;
}

.brand span {
  margin-top: 7px;
  color: #6b7280;
  font-size: 12px;
  letter-spacing: 0.04em;
}

.nav {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.nav-item,
.nav-subitem {
  position: relative;
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #344054;
  text-align: left;
  font-weight: 600;
  transition: background-color 160ms ease, color 160ms ease;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
}

.nav-item::before {
  content: attr(data-icon);
  display: grid;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  place-items: center;
  color: #344054;
  font-size: 19px;
}

.nav-item:hover,
.nav-item.active,
.nav-group.is-current > .nav-parent {
  color: #064db8;
  background: #eef3f9;
}

.nav-item.active::after,
.nav-group.is-current > .nav-parent::after {
  content: "";
  position: absolute;
  inset: 5px 0 5px auto;
  width: 3px;
  border-radius: 3px 0 0 3px;
  background: #064db8;
}

.nav-item:hover::before,
.nav-item.active::before,
.nav-group.is-current > .nav-parent::before {
  color: #064db8;
}

.nav-parent {
  justify-content: flex-start;
}

.nav-parent > span:first-of-type {
  flex: 1;
}

.nav-chevron {
  color: #667085;
  font-size: 14px;
  transform: rotate(-90deg);
  transition: transform 160ms ease;
}

.nav-group.is-open .nav-chevron {
  transform: rotate(0);
}

.nav-submenu {
  display: none;
  margin: 2px 8px 8px 52px;
  padding: 5px;
  border-radius: 8px;
  background: #f4f7fb;
}

.nav-group.is-open .nav-submenu {
  display: grid;
  gap: 2px;
}

.nav-subitem {
  min-height: 36px;
  padding: 8px 12px;
  color: #667085;
  font-size: 13px;
}

.nav-subitem:hover,
.nav-subitem.active {
  color: #064db8;
  background: #e6eef9;
}

.nav-subitem.active::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -10px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0755c9;
  transform: translateY(-50%);
}

.nav-utility {
  display: none;
}

.sidebar-foot {
  margin-top: auto;
  padding: 16px;
  background: #f3f6fa;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.sidebar-foot strong {
  color: #344054;
}

.sidebar-foot span {
  color: #667085;
}

.main {
  padding: 0 32px 36px;
}

.topbar {
  min-height: 78px;
  margin: 0 -32px 28px;
  padding: 17px 32px;
  align-items: center;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid #d8e0ec;
}

.topbar h1 {
  color: #07388f;
  font-size: 20px;
  font-weight: 800;
}

.topbar p {
  margin-top: 3px;
  font-size: 12px;
}

.top-actions {
  display: none;
}

.top-profile {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 142px;
}

.top-profile span:last-child,
.top-profile strong,
.top-profile small {
  display: block;
}

.top-profile strong {
  color: #1d2939;
  font-size: 13px;
}

.top-profile small {
  margin-top: 2px;
  color: #667085;
  font-size: 11px;
}

.top-avatar {
  display: grid !important;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: #0755c9;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
}

.sidebar-toggle {
  display: none;
}

.view.active {
  gap: 22px;
}

.panel,
.metric,
.resume-intake-hero,
.resume-source-card,
.resume-summary-card,
.account-card,
.integration-card {
  border-color: #ccd6e4;
  border-radius: 12px;
  box-shadow: var(--shadow);
}

.panel {
  padding: 22px;
}

.metric-grid {
  gap: 18px;
}

.metric {
  min-height: 140px;
  padding: 22px;
  background: #ffffff;
}

.metric span {
  color: #344054;
  font-weight: 600;
}

.metric strong {
  color: #073b98;
  font-size: 34px;
}

.metric.warning strong {
  color: var(--red);
}

.primary-button {
  background: #0755c9;
}

.primary-button:hover {
  background: #0646a6;
}

.ghost-button {
  border-color: #c8d2e1;
  background: #ffffff;
  color: #073b98;
}

.text-button,
a {
  color: #0755c9;
}

input,
select,
textarea {
  border-color: #c8d2e1;
  border-radius: 8px;
  background: #ffffff;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #0755c9;
  box-shadow: 0 0 0 3px rgba(7, 85, 201, 0.12);
  outline: 0;
}

table thead,
.table-wrap thead {
  background: #eef2f7;
}

table th {
  color: #475467;
}

.status.success,
.pill.success {
  background: #e8f8ef;
  color: #079455;
}

.status.warning,
.pill.warning {
  background: #fff4e5;
  color: #b54708;
}

.status.error,
.pill.error {
  background: #feeceb;
  color: #c3141b;
}

@media (max-width: 1180px) {
  .shell {
    grid-template-columns: 244px minmax(0, 1fr);
  }

  .main {
    padding-inline: 22px;
  }

  .topbar {
    margin-inline: -22px;
    padding-inline: 22px;
  }
}

@media (max-width: 780px) {
  .shell {
    display: block;
  }

  .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(82vw, 300px);
    height: 100dvh;
    transform: translateX(-102%);
    transition: transform 180ms ease;
    box-shadow: 18px 0 40px rgba(16, 24, 40, 0.18);
  }

  body.sidebar-open .sidebar {
    transform: translateX(0);
  }

  body.sidebar-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 30;
    background: rgba(16, 24, 40, 0.4);
  }

  .main {
    padding: 0 14px 28px;
  }

  .topbar {
    min-height: 68px;
    margin: 0 -14px 20px;
    padding: 12px 14px 12px 54px;
  }

  .topbar p,
  .top-profile span:last-child {
    display: none;
  }

  .sidebar-toggle {
    position: absolute;
    top: 17px;
    left: 12px;
    z-index: 20;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid #c8d2e1;
    border-radius: 8px;
    background: #ffffff;
    color: #073b98;
  }

  .nav {
    display: flex;
  }

  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .metric {
    min-height: 118px;
    padding: 16px;
  }

  .metric strong {
    font-size: 28px;
  }
}

@media (max-width: 520px) {
  .metric-grid {
    grid-template-columns: 1fr;
  }

  .sourcing-channel-hero {
    align-items: flex-start;
    flex-direction: column;
    padding-inline: 2px;
  }

  .sourcing-channel-hero h2 {
    font-size: 30px;
  }

  .sourcing-platform-card {
    padding: 22px 18px;
  }

  .sourcing-platform-logo {
    width: 52px;
    height: 52px;
  }

  .sourcing-platform-heading h3 {
    font-size: 21px;
  }

  .sourcing-platform-stats {
    grid-template-columns: 1fr;
  }

  .sourcing-one-click {
    min-height: 56px;
    font-size: 17px;
  }
}

/* --------------------------------------------------------------------------
   Stitch page structures — rebuilt from the supplied fd_hr_1…fd_hr_8 pages.
   -------------------------------------------------------------------------- */

.stitch-view {
  --stitch-primary: #0755c9;
  --stitch-primary-dark: #063b96;
  --stitch-border: #c7d2e2;
  --stitch-soft: #eef2f7;
  --stitch-muted: #667085;
}

.stitch-eyebrow {
  display: inline-flex;
  color: #0755c9;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.stitch-section-heading,
.stitch-overview-welcome,
.stitch-page-tabs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.stitch-section-heading {
  min-height: 92px;
  padding: 2px 4px 10px;
}

.stitch-section-heading h2,
.stitch-overview-welcome h2 {
  margin: 6px 0 4px;
  color: #111827;
  font-size: clamp(27px, 2.4vw, 38px);
  line-height: 1.2;
  letter-spacing: -0.035em;
}

.stitch-section-heading p,
.stitch-overview-welcome p {
  color: #475467;
  line-height: 1.55;
}

.stitch-page-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: #edf1f6;
  color: #344054;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.stitch-page-status::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #0755c9;
}

/* fd_hr_1 — overview */
.stitch-overview-welcome {
  min-height: 105px;
  padding: 2px 4px 10px;
}

.stitch-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.stitch-hero-actions button {
  min-width: 190px;
  min-height: 52px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 850;
}

.stitch-stop-button {
  border: 1px solid #b70f18;
  background: #c91620;
  color: #fff;
}

.stitch-stop-button:hover {
  background: #a90d16;
}

.stitch-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.34fr);
  gap: 20px;
}

.stitch-overview-primary {
  display: grid;
  gap: 18px;
}

.stitch-metric-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.stitch-kpi-card {
  position: relative;
  min-height: 144px;
  padding: 23px 24px;
  overflow: hidden;
  border-radius: 13px;
  box-shadow: none;
}

.stitch-kpi-card::after {
  content: "";
  position: absolute;
  top: 22px;
  right: 22px;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: #e4edfc;
}

.stitch-kpi-card.warning::after {
  background: #ffe7e8;
}

.stitch-kpi-card strong {
  margin-top: 19px;
  color: #073b98;
  font-size: 38px;
}

.stitch-kpi-card small {
  display: block;
  margin-top: 10px;
}

.stitch-manual-alert {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 112px;
  align-items: center;
  gap: 18px;
  padding: 20px 24px;
  border: 2px dashed #efb0b4;
  border-radius: 14px;
  background: #fff7f7;
}

.stitch-alert-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: #c91620;
  color: #fff;
  font-size: 23px;
  font-weight: 900;
}

.stitch-manual-alert strong,
.stitch-manual-alert small {
  display: block;
}

.stitch-manual-alert small {
  margin-top: 5px;
  color: #667085;
}

.stitch-manual-alert b {
  color: #c91620;
  font-size: 18px;
}

.stitch-platform-status {
  padding: 22px;
}

.stitch-platform-status .platform-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 76px;
  align-items: center;
  gap: 13px;
  padding: 14px 15px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: #f0f3f7;
}

.stitch-platform-status .platform-row + .platform-row {
  margin-top: 10px;
}

.stitch-platform-status .platform-row.is-error {
  border-color: #ffcacc;
}

.stitch-platform-logo {
  display: grid;
  width: 39px;
  height: 39px;
  place-items: center;
  border: 1px solid #c6d1e1;
  border-radius: 7px;
  background: #fff;
  color: #073b98;
  font-size: 11px;
  font-weight: 900;
}

.stitch-platform-logo.email {
  color: #e04b1a;
}

.stitch-full-button {
  width: 100%;
  margin-top: 16px;
}

.stitch-resume-statistics {
  padding: 0;
}

.stitch-resume-statistics .panel-head {
  margin: 0;
  padding: 18px 24px;
  background: #f1f4f8;
  border-bottom: 1px solid #ccd6e4;
}

.stitch-stat-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stitch-stat-columns article {
  display: grid;
  min-height: 170px;
  align-content: center;
  justify-items: center;
  gap: 10px;
  padding: 24px;
  text-align: center;
}

.stitch-stat-columns article + article {
  border-left: 1px solid #ccd6e4;
}

.stitch-stat-columns span,
.stitch-stat-columns small {
  color: #475467;
}

.stitch-stat-columns strong {
  color: #073b98;
  font-size: 36px;
}

.stitch-conversation-panel,
.stitch-log-panel {
  padding: 0;
}

.stitch-conversation-panel > .panel-head,
.stitch-log-panel > .panel-head {
  padding: 20px 22px 0;
}

.stitch-conversation-panel > :not(.panel-head),
.stitch-log-panel > :not(.panel-head) {
  margin-inline: 22px;
}

/* fd_hr_2 — auto reply */
.stitch-page-tabs {
  min-height: 64px;
  padding: 0 4px 12px;
  border-bottom: 1px solid #cbd5e1;
}

.stitch-page-tabs > div {
  display: flex;
  align-items: center;
  gap: 24px;
}

.stitch-page-tabs strong {
  color: #073b98;
  font-size: 24px;
}

.stitch-page-tabs span:not(.stitch-page-status),
.stitch-page-tabs button {
  min-height: 42px;
  padding: 0 5px;
  border: 0;
  border-bottom: 2px solid #0755c9;
  background: transparent;
  color: #073b98;
  font-weight: 800;
}

.stitch-page-tabs button {
  border-bottom-color: transparent;
  color: #344054;
}

#reply > .stitch-conversation-panel {
  padding: 22px;
}

#reply .conversation-task-card {
  min-height: 84px;
  border-color: #c6d1e1;
  border-radius: 13px;
  background: #fff;
}

#reply .conversation-task-card.priority {
  border-left: 4px solid #c91620;
}

#reply > .panel-grid {
  margin-top: 4px;
}

#reply > .panel-grid > .panel,
#reply > .strategy-grid {
  border-top: 3px solid #0755c9;
}

/* fd_hr_4 — keyword rules */
#rules > .form-layout {
  display: flex;
  flex-direction: column;
}

#rules > .form-layout > .panel:nth-child(2) {
  order: 1;
}

#rules > .form-layout > .panel:nth-child(1) {
  order: 2;
  max-width: 780px;
}

#rules .rule-list {
  overflow: hidden;
  border: 1px solid #c7d2e2;
  border-radius: 12px;
}

#rules .rule-card {
  margin: 0;
  border: 0;
  border-bottom: 1px solid #d8e0eb;
  border-radius: 0;
  box-shadow: none;
}

#rules .rule-card:last-child {
  border-bottom: 0;
}

#rules .rule-card:hover {
  background: #f6f9fd;
}

/* fd_hr_5 — resume center */
#resumes .resume-intake-hero {
  padding: 8px 4px 12px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#resumes .resume-intake-hero h2 {
  margin: 5px 0;
  color: #073b98;
  font-size: 32px;
}

#resumes .resume-intake-hero p {
  color: #667085;
}

#resumes .resume-source-grid {
  display: none;
}

#resumes .resume-summary-grid {
  gap: 18px;
}

#resumes .resume-summary-card {
  min-height: 132px;
  border-radius: 13px;
}

#resumes .resume-workbench {
  padding: 0;
}

#resumes .resume-tabs {
  padding-inline: 22px;
  background: #fff;
}

#resumes .resume-job-groups,
#resumes .resume-toolbar {
  background: #f2f5f9;
}

#resumes .resume-intake-card {
  min-height: 92px;
  border-radius: 10px;
}

#resumes .resume-intake-card.is-selected {
  border-color: #0755c9;
  background: #f0f6ff;
}

/* fd_hr_6 + fd_hr_ai — job management */
.stitch-job-layout {
  display: grid;
  grid-template-columns: minmax(210px, 0.26fr) minmax(460px, 1fr) minmax(230px, 0.3fr);
  align-items: start;
  gap: 20px;
}

.stitch-job-categories {
  display: grid;
  gap: 8px;
}

.stitch-job-categories button {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px;
  border: 0;
  border-radius: 999px;
  background: #edf1f5;
  color: #344054;
}

.stitch-job-categories button.is-active {
  background: #073fa7;
  color: #fff;
}

.stitch-job-categories b {
  display: grid;
  min-width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
}

.stitch-job-main {
  padding: 24px;
}

.stitch-job-titlebar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 20px;
  border-bottom: 1px solid #cbd5e1;
}

.stitch-job-titlebar h2 {
  margin: 9px 0 4px;
  font-size: 27px;
}

.stitch-job-titlebar p {
  color: #667085;
}

.stitch-job-requirements {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
}

.stitch-job-requirements article {
  display: grid;
  min-height: 110px;
  gap: 8px;
  align-content: center;
  padding: 18px;
  border: 1px solid #c6d1e1;
  border-radius: 11px;
  background: #f1f4f8;
}

.stitch-job-requirements span,
.stitch-job-requirements small {
  color: #667085;
}

.stitch-job-assistant {
  display: grid;
  gap: 18px;
}

.stitch-ai-assistant-card {
  padding: 22px;
  border-radius: 14px;
  background: linear-gradient(150deg, #073fa7, #1455ba);
  color: #fff;
  box-shadow: 0 13px 28px rgba(7, 63, 167, 0.2);
}

.stitch-ai-assistant-card > span {
  color: #dbe9ff;
  font-size: 12px;
  font-weight: 800;
}

.stitch-ai-assistant-card h3 {
  margin: 10px 0;
  font-size: 22px;
}

.stitch-ai-assistant-card p {
  color: #e7efff;
  line-height: 1.7;
}

.stitch-ai-assistant-card div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 18px 0;
}

.stitch-ai-assistant-card b {
  padding: 5px 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.14);
  font-size: 11px;
}

.stitch-ai-assistant-card button {
  width: 100%;
  min-height: 42px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  color: #073b98;
  font-weight: 850;
}

.stitch-live-feed h3 {
  margin: 0 0 16px;
}

.stitch-live-feed p {
  display: flex;
  gap: 10px;
  margin: 0;
  padding: 11px 0;
}

.stitch-live-feed i {
  width: 8px;
  height: 8px;
  margin-top: 5px;
  border-radius: 50%;
  background: #0755c9;
}

.stitch-live-feed strong,
.stitch-live-feed small {
  display: block;
}

.stitch-live-feed small {
  margin-top: 4px;
  color: #667085;
}

#jobCatalogMount .job-catalog-manager {
  border: 0;
  background: transparent;
}

#jobCatalogMount .job-catalog-add {
  padding: 15px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #f6f8fb;
}

#jobCatalogMount .job-catalog-section {
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
}

#jobCatalogMount .job-catalog-section-head {
  padding: 12px 14px;
  background: #edf1f6;
}

#jobCatalogMount .job-catalog-item {
  border-width: 1px 0 0;
  border-radius: 0;
}

/* fd_hr_7 — parser configuration */
.stitch-parser-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.stitch-parser-steps article {
  display: flex;
  min-height: 102px;
  align-items: center;
  gap: 15px;
  padding: 18px;
  border: 1px solid #c7d2e2;
  border-radius: 12px;
  background: #fff;
}

.stitch-parser-steps article > span {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 50%;
  background: #0755c9;
  color: #fff;
  font-weight: 900;
}

.stitch-parser-steps strong,
.stitch-parser-steps small {
  display: block;
}

.stitch-parser-steps small {
  margin-top: 5px;
  color: #667085;
}

#resumeAnalysisMount > .resume-analysis-settings {
  margin-top: 20px;
  padding: 0;
}

#resumeAnalysisMount .resume-analysis-settings > summary {
  display: none;
}

#resumeAnalysisMount .resume-analysis-settings-body {
  display: block;
  padding: 24px;
}

#resumeAnalysisMount .resume-analysis-provider-grid article,
#resumeAnalysisMount .resume-score-profile,
#resumeAnalysisMount .resume-prompt-editor {
  border: 1px solid #c7d2e2;
  border-radius: 12px;
  background: #fff;
}

/* fd_hr_8 — status and models */
#platforms > .panel-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#platforms > .panel-grid > .panel {
  border-top: 4px solid #0755c9;
}

#platforms .account-card {
  background: #edf1f5;
  box-shadow: none;
}

.stitch-model-status {
  padding: 0;
}

.stitch-model-status > .panel-head {
  margin: 0;
  padding: 20px 22px;
}

.stitch-model-table {
  border-top: 1px solid #c7d2e2;
}

.stitch-model-table > div {
  display: grid;
  grid-template-columns: 1.2fr 1fr 100px 80px;
  min-height: 64px;
  align-items: center;
  gap: 14px;
  padding: 10px 22px;
  border-bottom: 1px solid #d8e0eb;
}

.stitch-model-table > div:last-child {
  border-bottom: 0;
}

.stitch-model-table .is-head {
  min-height: 50px;
  background: #e8edf4;
  color: #667085;
  font-size: 12px;
  font-weight: 850;
}

.stitch-model-table b.is-success { color: #079455; }
.stitch-model-table b.is-warning { color: #b54708; }

.stitch-model-table button {
  min-height: 34px;
  border: 1px solid #b7c5d9;
  border-radius: 8px;
  background: #f4f7fb;
  color: #073b98;
  font-weight: 750;
}

/* AI and utility pages */
#aiSuggestions .ai-metric-grid .metric {
  border-top: 4px solid #0755c9;
}

#aiSuggestions .ai-suggestion-card {
  border: 1px solid #c7d2e2;
  border-radius: 12px;
}

#logs > .panel {
  padding: 0;
}

#logs .panel-head,
#logs .filters {
  margin: 0;
  padding: 22px;
}

#logs .filters {
  border-block: 1px solid #d8e0eb;
  background: #f1f4f8;
}

#logs .table-wrap {
  border: 0;
  border-radius: 0;
}

@media (max-width: 1280px) {
  .stitch-overview-grid { grid-template-columns: 1fr; }
  .stitch-job-layout { grid-template-columns: 220px minmax(0, 1fr); }
  .stitch-job-assistant { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #platforms > .panel-grid.two { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .stitch-section-heading,
  .stitch-overview-welcome { align-items: flex-start; flex-direction: column; }
  .stitch-metric-grid,
  .stitch-stat-columns,
  .stitch-parser-steps,
  .stitch-job-requirements { grid-template-columns: 1fr; }
  .stitch-stat-columns article + article { border-left: 0; border-top: 1px solid #ccd6e4; }
  .stitch-job-layout { grid-template-columns: 1fr; }
  .stitch-job-assistant { grid-column: auto; grid-template-columns: 1fr; }
  .stitch-job-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .stitch-hero-actions,
  .stitch-hero-actions button { width: 100%; }
  .stitch-page-tabs { align-items: flex-start; flex-direction: column; }
  .stitch-page-tabs > div { flex-wrap: wrap; gap: 12px; }
  .stitch-metric-grid { grid-template-columns: 1fr; }
  .stitch-manual-alert { grid-template-columns: auto 1fr; }
  .stitch-manual-alert b { grid-column: 2; }
  .stitch-job-categories { grid-template-columns: 1fr; }
  .stitch-model-table { overflow-x: auto; }
  .stitch-model-table > div { min-width: 620px; }
}

/* 自动回复 / 消息中心：严格对应用户提供的 code.html 与截图 */
#reply {
  gap: 20px;
  padding: 2px 0 10px;
  background: #f7fafd;
}

.message-center-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.chat-knowledge-sync {
  display: grid;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid #d9dee8;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 3px 12px rgba(30, 43, 65, 0.04);
}

.chat-knowledge-sync > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.chat-knowledge-sync h2 {
  margin: 0;
  color: #202630;
  font-size: 16px;
  font-weight: 850;
}

.chat-knowledge-sync p {
  margin: 5px 0 0;
  color: #667085;
  font-size: 12px;
  line-height: 1.45;
}

.chat-knowledge-sync-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 9px;
}

.chat-knowledge-sync-actions button {
  min-height: 36px;
  padding: 0 15px;
  border: 1px solid #003d9b;
  border-radius: 8px;
  background: #003d9b;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
}

.chat-knowledge-sync-actions #stopChatKnowledgeSyncBtn {
  border-color: #d7a3a7;
  background: #ffffff;
  color: #b4232c;
}

.chat-knowledge-sync-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.chat-knowledge-sync-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #e4e8ee;
  border-radius: 9px;
  background: #f8fafd;
}

.chat-knowledge-sync-stats > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 11px 14px;
  border-right: 1px solid #e4e8ee;
}

.chat-knowledge-sync-stats > div:last-child {
  border-right: 0;
}

.chat-knowledge-sync-stats span,
.chat-knowledge-sync-cursors span {
  color: #737c88;
  font-size: 11px;
  font-weight: 700;
}

.chat-knowledge-sync-stats strong {
  color: #273142;
  font-size: 18px;
  line-height: 1.1;
}

.chat-knowledge-sync-details {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.chat-knowledge-sync-details > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #e4e8ee;
  border-radius: 8px;
  background: #ffffff;
}

.chat-knowledge-sync-details span {
  color: #737c88;
  font-size: 11px;
  font-weight: 700;
}

.chat-knowledge-sync-details strong {
  overflow: hidden;
  color: #273142;
  font-size: 13px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chat-knowledge-sync-cursors {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.chat-knowledge-sync-cursors > div {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

.chat-knowledge-sync-cursors code {
  min-width: 0;
  overflow: hidden;
  color: #475467;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-center-filters {
  display: flex;
  align-items: center;
  gap: 8px;
}

.message-center-filters button {
  min-height: 36px;
  padding: 0 16px;
  border: 1px solid #c3c6d6;
  border-radius: 999px;
  background: #ffffff;
  color: #434654;
  font-size: 13px;
  font-weight: 500;
}

.message-center-filters button:hover {
  background: #f1f4f7;
}

.message-center-filters button.is-active {
  border-color: #0052cc;
  background: #0052cc;
  color: #ffffff;
  font-weight: 700;
}

.message-center-refresh {
  display: inline-flex;
  min-width: 190px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 22px;
  border: 0;
  border-radius: 8px;
  background: #b6171e;
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
}

.message-center-refresh span {
  font-size: 21px;
  line-height: 1;
}

.message-center-refresh:hover:not(:disabled) {
  background: #930010;
}

.message-center-refresh:disabled {
  cursor: wait;
  opacity: 0.72;
}

.message-center-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.message-center-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto auto;
  min-height: 86px;
  align-items: center;
  gap: 18px;
  padding: 14px 16px;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: none;
}

.message-center-card:hover {
  border-color: #737685;
}

.message-center-card.is-resolved {
  opacity: 0.8;
}

.message-center-avatar {
  position: relative;
  display: block;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #e8f0ff;
  color: #003d9b;
}

.message-center-card.is-resolved .message-center-avatar {
  background: #e5e8eb;
  color: #626676;
}

.message-center-avatar::before {
  content: "";
  position: absolute;
  top: 13px;
  left: 19px;
  width: 8px;
  height: 8px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.message-center-avatar::after {
  content: "";
  position: absolute;
  left: 15px;
  bottom: 11px;
  width: 16px;
  height: 9px;
  border: 2px solid currentColor;
  border-radius: 9px 9px 4px 4px;
}

.message-center-copy {
  min-width: 0;
}

.message-center-name-row {
  display: flex;
  align-items: center;
  gap: 9px;
}

.message-center-name-row strong {
  color: #181c1e;
  font-size: 15px;
  font-weight: 800;
}

.message-center-name-row .message-center-status {
  padding: 3px 8px;
  border-radius: 4px;
  background: #ffdad6;
  color: #93000a;
  font-size: 10px;
  font-weight: 800;
}

.message-center-card.is-resolved .message-center-name-row .message-center-status {
  background: #dcfce7;
  color: #15803d;
}

.message-center-copy p {
  display: block;
  max-width: 100%;
  margin: 7px 0 0;
  overflow: hidden;
  color: #434654;
  font-size: 13px;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-center-copy small {
  margin-left: 8px;
  color: #737685;
  font-size: 11px;
}

.message-center-card > time {
  min-width: 92px;
  color: #737685;
  font-size: 13px;
  text-align: right;
  white-space: nowrap;
}

.message-center-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.message-center-actions button {
  min-height: 38px;
  padding: 0 15px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.message-center-jump {
  border: 1px solid #737685;
  background: #ffffff;
  color: #003d9b;
}

.message-center-jump:hover {
  background: rgba(0, 61, 155, 0.05);
}

.message-center-confirm {
  border: 1px solid #003d9b;
  background: #003d9b;
  color: #ffffff;
}

.message-center-confirm:hover {
  background: #002d75;
}

.message-center-detail {
  border: 1px solid #c3c6d6;
  background: transparent;
  color: #434654;
}

.message-center-empty {
  padding: 48px 20px;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #ffffff;
  color: #737685;
  text-align: center;
}

@media (max-width: 980px) {
  .message-center-card {
    grid-template-columns: 48px minmax(0, 1fr) auto;
  }

  .message-center-card > time {
    grid-column: 3;
    grid-row: 1;
  }

  .message-center-actions {
    grid-column: 2 / 4;
    justify-content: flex-end;
  }
}

@media (max-width: 680px) {
  .message-center-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .chat-knowledge-sync > header {
    align-items: stretch;
    flex-direction: column;
  }

  .chat-knowledge-sync-actions,
  .chat-knowledge-sync-actions button {
    width: 100%;
  }

  .chat-knowledge-sync-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .chat-knowledge-sync-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .chat-knowledge-sync-stats > div:nth-child(2) {
    border-right: 0;
  }

  .chat-knowledge-sync-stats > div:nth-child(-n + 2) {
    border-bottom: 1px solid #e4e8ee;
  }

  .chat-knowledge-sync-cursors {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .message-center-filters {
    overflow-x: auto;
  }

  .message-center-refresh {
    width: 100%;
  }

  .message-center-card {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
  }

  .message-center-avatar {
    width: 42px;
    height: 42px;
  }

  .message-center-avatar::before {
    top: 11px;
    left: 16px;
  }

  .message-center-avatar::after {
    left: 12px;
    bottom: 9px;
  }

  .message-center-card > time,
  .message-center-actions {
    grid-column: 2;
  }

  .message-center-card > time {
    grid-row: auto;
    min-width: 0;
    text-align: left;
  }

  .message-center-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* 关键词管理：对应用户提供的 code (1).html 与截图 */
#rules {
  gap: 24px;
  padding: 0 0 10px;
  background: #f7fafd;
}

.keyword-rule-toolbar,
.keyword-rule-navigation,
.keyword-rule-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.keyword-rule-search {
  position: relative;
  display: block;
  width: min(100%, 356px);
}

.keyword-rule-search > span {
  position: absolute;
  top: 50%;
  left: 16px;
  width: 12px;
  height: 12px;
  border: 2px solid #737685;
  border-radius: 50%;
  transform: translateY(-60%);
}

.keyword-rule-search > span::after {
  content: "";
  position: absolute;
  right: -5px;
  bottom: -4px;
  width: 6px;
  height: 2px;
  border-radius: 2px;
  background: #737685;
  transform: rotate(45deg);
}

.keyword-rule-search input {
  width: 100%;
  min-height: 42px;
  padding: 0 16px 0 44px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #181c1e;
  font-size: 13px;
  box-shadow: 0 1px 2px rgba(24, 28, 30, 0.03);
}

.keyword-rule-search input:focus {
  border-color: #003d9b;
  outline: 3px solid rgba(0, 61, 155, 0.1);
}

.keyword-rule-create {
  display: inline-flex;
  min-width: 110px;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  background: #0052cc;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.keyword-rule-create b {
  font-size: 19px;
  font-weight: 400;
  line-height: 1;
}

.keyword-rule-create:hover {
  background: #003d9b;
}

.keyword-rule-navigation {
  min-height: 48px;
  align-items: flex-end;
  border-bottom: 1px solid #c3c6d6;
}

.keyword-rule-tabs {
  display: flex;
  min-width: 0;
  align-items: flex-end;
  gap: 24px;
  overflow-x: auto;
}

.keyword-rule-tabs button {
  position: relative;
  flex: 0 0 auto;
  min-height: 48px;
  padding: 0 6px;
  border: 0;
  background: transparent;
  color: #434654;
  font-size: 13px;
  white-space: nowrap;
}

.keyword-rule-tabs button::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  border-radius: 2px;
  background: transparent;
}

.keyword-rule-tabs button.is-active {
  color: #003d9b;
  font-weight: 800;
}

.keyword-rule-tabs button.is-active::after {
  background: #003d9b;
}

.keyword-rule-tabs button span {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  margin-left: 5px;
  place-items: center;
  border-radius: 999px;
  background: rgba(0, 61, 155, 0.1);
  color: #003d9b;
  font-size: 10px;
}

.keyword-rule-tools {
  display: flex;
  flex: 0 0 auto;
  gap: 8px;
  padding-bottom: 9px;
}

.keyword-rule-tools button {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  padding: 0 14px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #181c1e;
  font-size: 13px;
  font-weight: 750;
}

.keyword-rule-tools button:hover {
  background: #f1f4f7;
}

.keyword-rule-tools span {
  font-size: 17px;
  line-height: 1;
  transform: rotate(180deg);
}

.keyword-rule-table-wrap {
  overflow: hidden;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(24, 28, 30, 0.03);
}

.keyword-rule-table-scroll {
  overflow-x: auto;
}

.keyword-rule-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  table-layout: fixed;
}

.keyword-rule-table th {
  height: 38px;
  padding: 0 20px;
  border-bottom: 1px solid #c3c6d6;
  background: #f1f4f7;
  color: #434654;
  font-size: 11px;
  font-weight: 800;
  text-align: left;
}

.keyword-rule-table th:nth-child(1) { width: 14%; }
.keyword-rule-table th:nth-child(2) { width: 12%; }
.keyword-rule-table th:nth-child(3) { width: 34%; }
.keyword-rule-table th:nth-child(4) { width: 18%; }
.keyword-rule-table th:nth-child(5) { width: 11%; }
.keyword-rule-table th:nth-child(6) { width: 11%; text-align: right; }

.keyword-rule-table td {
  height: 62px;
  padding: 10px 20px;
  border-bottom: 1px solid #c3c6d6;
  color: #181c1e;
  font-size: 13px;
  vertical-align: middle;
}

.keyword-rule-table tbody tr:hover {
  background: #f7fafd;
}

.keyword-rule-name {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
}

.keyword-rule-name i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
}

.keyword-rule-name i.blue { background: #3b82f6; }
.keyword-rule-name i.amber { background: #f59e0b; }
.keyword-rule-name i.green { background: #10b981; }
.keyword-rule-name i.purple { background: #a855f7; }

.keyword-rule-name strong,
.keyword-rule-reply {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.keyword-rule-mode {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 5px;
  background: #e5e8eb;
  color: #434654;
  font-size: 11px;
}

.keyword-rule-reply {
  margin: 0;
  color: #737685;
}

.keyword-rule-table time {
  color: #737685;
  white-space: nowrap;
}

.keyword-rule-switch {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  cursor: pointer;
}

.keyword-rule-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.keyword-rule-switch span {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #c3c6d6;
  transition: 0.18s ease;
}

.keyword-rule-switch span::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(24, 28, 30, 0.3);
  transition: 0.18s ease;
}

.keyword-rule-switch input:checked + span {
  background: #0052cc;
}

.keyword-rule-switch input:checked + span::after {
  transform: translateX(16px);
}

.keyword-rule-switch input:focus-visible + span {
  outline: 3px solid rgba(0, 82, 204, 0.2);
}

.keyword-rule-actions {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
}

.keyword-rule-actions button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #003d9b;
  font-size: 12px;
  font-weight: 800;
}

.keyword-rule-actions button:last-child {
  color: #ba1a1a;
}

.keyword-rule-empty {
  height: 180px !important;
  color: #737685 !important;
  text-align: center;
}

.keyword-rule-pagination {
  min-height: 52px;
  padding: 8px 20px;
  background: #f1f4f7;
}

.keyword-rule-pagination > span {
  color: #737685;
  font-size: 12px;
}

.keyword-rule-pagination > div {
  display: flex;
  gap: 5px;
}

.keyword-rule-pagination button {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid #c3c6d6;
  border-radius: 7px;
  background: #fff;
  color: #181c1e;
  font-size: 12px;
  font-weight: 800;
}

.keyword-rule-pagination button.is-active {
  border-color: #003d9b;
  background: #003d9b;
  color: #fff;
}

.keyword-rule-pagination button:disabled {
  color: #a8abb4;
  cursor: default;
}

.keyword-rule-dialog {
  width: min(92vw, 520px);
  max-height: 88vh;
  padding: 0;
  overflow: auto;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
  color: #181c1e;
  box-shadow: 0 24px 70px rgba(5, 26, 62, 0.22);
}

.keyword-rule-dialog::backdrop {
  background: rgba(24, 28, 30, 0.42);
}

.keyword-rule-dialog [hidden] {
  display: none !important;
}

.keyword-rule-dialog form {
  display: grid;
  gap: 16px;
  padding: 22px;
}

.keyword-rule-dialog header,
.keyword-rule-dialog footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.keyword-rule-dialog header {
  padding-bottom: 14px;
  border-bottom: 1px solid #e0e3e6;
}

.keyword-rule-dialog h2 {
  margin: 0;
  color: #181c1e;
  font-size: 20px;
}

.keyword-rule-dialog header button {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #737685;
  font-size: 24px;
}

.keyword-rule-dialog label,
.rule-category-choice legend {
  color: #434654;
  font-size: 13px;
  font-weight: 750;
}

.keyword-rule-dialog label:not(.rule-category-choice label) {
  display: grid;
  gap: 7px;
}

.keyword-rule-dialog input,
.keyword-rule-dialog select,
.keyword-rule-dialog textarea {
  width: 100%;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #181c1e;
}

.keyword-rule-dialog textarea {
  resize: vertical;
}

.rule-category-choice {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 14px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #f7fafd;
}

.rule-category-choice legend {
  padding: 0 5px;
}

.rule-category-choice label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-weight: 500;
}

.rule-category-choice input {
  width: auto;
  accent-color: #0052cc;
}

.keyword-rule-dialog footer {
  justify-content: flex-end;
  padding-top: 6px;
}

.keyword-rule-dialog footer button {
  min-height: 38px;
  padding: 0 18px;
  border-radius: 8px;
  font-weight: 800;
}

.keyword-rule-cancel {
  border: 1px solid #c3c6d6;
  background: #fff;
  color: #434654;
}

.keyword-rule-save {
  border: 1px solid #0052cc;
  background: #0052cc;
  color: #fff;
}

@media (max-width: 760px) {
  .keyword-rule-toolbar,
  .keyword-rule-navigation,
  .keyword-rule-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .keyword-rule-search,
  .keyword-rule-create {
    width: 100%;
  }

  .keyword-rule-navigation {
    gap: 8px;
  }

  .keyword-rule-tools {
    padding-bottom: 8px;
  }

  .keyword-rule-pagination {
    gap: 10px;
  }
}

/* 总览：严格对应 fd_hr_1/code.html 与 screen.png，仅作用于 dashboard */
.dashboard-top-tools {
  display: none;
}

body[data-active-view="dashboard"] .topbar p,
body[data-active-view="dashboard"] .top-profile {
  display: none;
}

body[data-active-view="dashboard"] .dashboard-top-tools {
  display: flex;
  align-items: center;
  gap: 18px;
}

.dashboard-global-search {
  position: relative;
  display: block;
  width: 314px;
}

.dashboard-global-search > span {
  position: absolute;
  top: 50%;
  left: 15px;
  width: 14px;
  height: 14px;
  border: 2px solid #737685;
  border-radius: 50%;
  transform: translateY(-58%);
}

.dashboard-global-search > span::after {
  content: "";
  position: absolute;
  right: -6px;
  bottom: -4px;
  width: 7px;
  height: 2px;
  border-radius: 2px;
  background: #737685;
  transform: rotate(45deg);
}

.dashboard-global-search input {
  width: 100%;
  min-height: 42px;
  padding: 0 17px 0 44px;
  border: 1px solid #c3c6d6;
  border-radius: 999px;
  background: #f1f4f7;
  color: #181c1e;
  font-size: 14px;
}

.dashboard-global-search input:focus {
  border-color: #003d9b;
  outline: 3px solid rgba(0, 61, 155, 0.1);
}

.dashboard-top-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #182033;
  font-size: 23px;
}

.dashboard-top-icon:hover {
  border-radius: 50%;
  background: #f1f4f7;
}

.dashboard-top-avatar {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid #c3c6d6;
  border-radius: 50%;
  background: #e5e8eb;
  color: #003d9b;
  font-size: 12px;
  font-weight: 850;
}

#dashboard {
  gap: 28px;
  padding-bottom: 12px;
  color: #181c1e;
}

.dashboard-overview-welcome,
.dashboard-overview-actions,
.dashboard-reply-card-head,
.dashboard-reply-card-foot,
.dashboard-account-panel header,
.dashboard-account-row,
.dashboard-resume-panel > header,
.dashboard-record-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dashboard-overview-welcome {
  min-height: 92px;
  align-items: flex-end;
  gap: 24px;
}

.dashboard-overview-welcome h2 {
  margin: 0;
  color: #181c1e;
  font-size: 20px;
  font-weight: 500;
}

.dashboard-overview-welcome p {
  margin-top: 8px;
  color: #434654;
  font-size: 15px;
}

.dashboard-overview-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 16px;
}

.dashboard-overview-actions button {
  display: inline-flex;
  min-width: 196px;
  min-height: 68px;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 0 24px;
  border-radius: 12px;
  color: #fff;
  font-size: 17px;
  font-weight: 850;
}

.dashboard-overview-actions button span {
  font-size: 22px;
}

.dashboard-stop-button {
  border: 1px solid #a90d16;
  background: #b6171e;
}

.dashboard-platform-stop-button {
  min-width: 156px !important;
  border: 1px solid #bd242b;
  background: #d33b42;
}

.dashboard-start-button {
  border: 1px solid #0052cc;
  background: #0052cc;
}

.dashboard-start-button.is-running {
  border-color: #bd242b;
  background: #d33b42;
}

.dashboard-stop-button:hover { background: #930010; }
.dashboard-platform-stop-button:hover { background: #b91f28; }
.dashboard-start-button:hover { background: #003d9b; }
.dashboard-start-button.is-running:hover { background: #b91f28; }

.dashboard-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(330px, 0.96fr);
  align-items: stretch;
  gap: 28px;
}

.dashboard-overview-main {
  display: grid;
  gap: 28px;
}

.dashboard-reply-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.dashboard-sourcing-periods {
  gap: 16px;
}

.dashboard-sourcing-periods > div {
  min-width: 42px;
}

.dashboard-reply-card,
.dashboard-account-panel,
.dashboard-resume-panel,
.dashboard-record-panel {
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(24, 28, 30, 0.04);
}

.dashboard-reply-card {
  display: flex;
  min-height: 216px;
  flex-direction: column;
  justify-content: space-between;
  padding: 28px 30px;
}

.dashboard-reply-card-head {
  align-items: flex-start;
}

.dashboard-reply-card-head div > span {
  display: block;
  color: #434654;
  font-size: 15px;
}

.dashboard-reply-card-head div > strong {
  display: block;
  margin-top: 12px;
  color: #003d9b;
  font-size: 40px;
  line-height: 1;
  letter-spacing: 0.02em;
}

.dashboard-reply-card-head > b {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 10px;
  background: #e8effc;
  color: #003d9b;
  font-size: 25px;
}

.dashboard-reply-card-foot {
  justify-content: flex-start;
  gap: 22px;
}

.dashboard-reply-card-foot div span,
.dashboard-reply-card-foot div strong {
  display: block;
}

.dashboard-reply-card-foot div span {
  color: #434654;
  font-size: 14px;
}

.dashboard-reply-card-foot div strong {
  margin-top: 5px;
  color: #181c1e;
  font-size: 18px;
}

.dashboard-reply-card-foot > i {
  width: 1px;
  height: 42px;
  background: #c3c6d6;
}

.dashboard-reply-card-foot > em {
  margin-left: auto;
  color: #00a63e;
  font-size: 14px;
  font-style: normal;
}

.dashboard-manual-alert {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 140px;
  align-items: center;
  gap: 20px;
  padding: 26px 30px;
  border: 2px dashed #efb0b4;
  border-radius: 14px;
  background: rgba(182, 23, 30, 0.035);
}

.dashboard-alert-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  background: #b6171e;
  color: #fff;
  font-size: 25px;
}

.dashboard-manual-alert strong,
.dashboard-manual-alert small {
  display: block;
}

.dashboard-manual-alert strong {
  font-size: 17px;
  font-weight: 600;
}

.dashboard-manual-alert small {
  margin-top: 7px;
  color: #434654;
  font-size: 14px;
}

.dashboard-manual-alert > b {
  color: #b6171e;
  font-size: 17px;
}

.dashboard-account-panel {
  padding: 28px 30px;
}

.dashboard-account-panel header {
  margin-bottom: 24px;
}

.dashboard-account-panel h2,
.dashboard-resume-panel h2,
.dashboard-record-panel h2 {
  margin: 0;
  color: #181c1e;
  font-size: 17px;
  font-weight: 500;
}

.dashboard-account-panel header > span {
  color: #737685;
  font-size: 25px;
}

.dashboard-account-list {
  display: grid;
  gap: 18px;
}

.dashboard-account-row {
  min-height: 78px;
  justify-content: flex-start;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #f1f4f7;
}

.dashboard-account-row.is-error {
  border-color: #ffcccc;
}

.dashboard-account-row.is-warning {
  border-color: #ffe2b8;
}

.dashboard-platform-logo {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid #c3c6d6;
  border-radius: 6px;
  background: #fff;
  color: #003d9b;
  font-size: 12px;
  font-weight: 900;
}

.dashboard-platform-logo.email {
  color: #f04b00;
}

.dashboard-account-row > strong {
  font-size: 15px;
  font-weight: 500;
}

.dashboard-account-row .status {
  position: relative;
  margin-left: auto;
  padding: 0 0 0 14px;
  background: transparent;
  font-size: 14px;
  font-weight: 800;
}

.dashboard-account-row .status::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  transform: translateY(-50%);
}

.dashboard-account-row .status.online { color: #00a63e; }
.dashboard-account-row .status.warning { color: #b54708; }
.dashboard-account-row .status.error { color: #e00000; }

.dashboard-account-manage {
  width: 100%;
  min-height: 50px;
  margin-top: 28px;
  border: 1px solid #b8c8e6;
  border-radius: 9px;
  background: #fff;
  color: #003d9b;
  font-size: 15px;
  font-weight: 800;
}

.dashboard-account-manage:hover { background: #f1f4f7; }

.dashboard-resume-panel,
.dashboard-record-panel {
  overflow: hidden;
}

.dashboard-resume-panel > header,
.dashboard-record-panel > header {
  min-height: 74px;
  padding: 16px 30px;
  border-bottom: 1px solid #c3c6d6;
  background: #f1f4f7;
}

.dashboard-resume-panel > header div {
  display: flex;
  gap: 10px;
}

.dashboard-resume-panel > header button {
  min-width: 78px;
  min-height: 40px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #181c1e;
  font-size: 14px;
}

.dashboard-resume-panel > header button.is-active {
  border-color: #0052cc;
  background: #0052cc;
  color: #fff;
}

.dashboard-resume-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-resume-columns > article {
  min-height: 330px;
  padding: 38px 40px;
}

.dashboard-resume-columns > article + article {
  border-left: 1px solid #c3c6d6;
}

.dashboard-resume-columns h3 {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 32px;
  color: #181c1e;
  font-size: 17px;
}

.dashboard-resume-columns h3 span {
  color: #003d9b;
  font-size: 24px;
}

.dashboard-email-resumes > div + div {
  margin-top: 28px;
}

.dashboard-email-resumes p {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  color: #434654;
  font-size: 14px;
}

.dashboard-email-resumes p strong {
  color: #181c1e;
  font-size: 17px;
}

.dashboard-email-resumes p small {
  color: #434654;
  font-size: 11px;
  font-weight: 400;
}

.dashboard-email-resumes div > i {
  display: block;
  height: 9px;
  margin-top: 16px;
  overflow: hidden;
  border-radius: 999px;
  background: #e0e3e6;
}

.dashboard-email-resumes div > i b {
  display: block;
  height: 100%;
  background: #003d9b;
}

.dashboard-chat-resumes {
  text-align: center;
}

.dashboard-chat-resumes h3 {
  text-align: left;
}

.dashboard-chat-resumes > strong {
  display: block;
  margin-top: 56px;
  color: #003d9b;
  font-size: 55px;
  line-height: 1;
}

.dashboard-chat-resumes > p {
  margin-top: 18px;
  color: #434654;
  font-size: 14px;
}

.dashboard-chat-resumes > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 28px;
}

.dashboard-chat-resumes > div span b,
.dashboard-chat-resumes > div span small {
  display: block;
}

.dashboard-chat-resumes > div span b {
  color: #003d9b;
  font-size: 12px;
}

.dashboard-chat-resumes > div span:last-child b { color: #00a63e; }

.dashboard-chat-resumes > div span small {
  margin-top: 3px;
  color: #434654;
  font-size: 10px;
}

.dashboard-chat-resumes > div > i {
  width: 1px;
  height: 28px;
  background: #c3c6d6;
}

.dashboard-ai-efficiency {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(241, 244, 247, 0.35);
  text-align: center;
}

.dashboard-ai-efficiency strong {
  color: #003d9b;
  font-size: 15px;
}

.dashboard-ai-efficiency p {
  max-width: 230px;
  margin-top: 8px;
  color: #737685;
  font-size: 12px;
  line-height: 1.6;
}

.dashboard-record-panel > header {
  background: #fff;
}

.dashboard-record-panel > header button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #003d9b;
  font-size: 14px;
  font-weight: 800;
}

.dashboard-record-scroll {
  overflow-x: auto;
}

.dashboard-record-table {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
  table-layout: fixed;
}

.dashboard-record-table th,
.dashboard-record-table td {
  height: 64px;
  padding: 12px 30px;
  border-bottom: 1px solid #c3c6d6;
  text-align: left;
  font-size: 14px;
}

.dashboard-record-table th {
  height: 56px;
  background: #f1f4f7;
  color: #181c1e;
  font-weight: 800;
}

.dashboard-record-table th:nth-child(1) { width: 17%; }
.dashboard-record-table th:nth-child(2) { width: 13%; }
.dashboard-record-table th:nth-child(3) { width: 38%; }
.dashboard-record-table th:nth-child(4) { width: 20%; }
.dashboard-record-table th:nth-child(5) { width: 12%; }

.dashboard-record-table td:first-child { color: #434654; }

.dashboard-record-table .platform {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 5px;
  color: #003d9b;
  background: #e8effc;
  font-size: 11px;
  font-weight: 800;
}

.dashboard-record-table .platform.zhaopin { color: #0052cc; background: #dcecff; }
.dashboard-record-table .platform.email { color: #f04b00; background: #fff0d9; }
.dashboard-record-table .result { font-weight: 800; }
.dashboard-record-table .result.success { color: #00a63e; }
.dashboard-record-table .result.warning { color: #f04b00; }

.dashboard-record-table td button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #003d9b;
  font-size: 14px;
}

@media (max-width: 1200px) {
  .dashboard-overview-grid { grid-template-columns: 1fr; }
  .dashboard-account-panel { order: 2; }
}

@media (max-width: 900px) {
  body[data-active-view="dashboard"] .dashboard-top-tools { gap: 8px; }
  .dashboard-global-search { width: 220px; }
  .dashboard-overview-welcome { align-items: stretch; flex-direction: column; }
  .dashboard-overview-actions button { flex: 1; min-width: 0; }
  .dashboard-reply-stats,
  .dashboard-resume-columns { grid-template-columns: 1fr; }
  .dashboard-resume-columns > article + article { border-top: 1px solid #c3c6d6; border-left: 0; }
}

@media (max-width: 640px) {
  body[data-active-view="dashboard"] .dashboard-global-search,
  body[data-active-view="dashboard"] .dashboard-top-icon { display: none; }
  .dashboard-overview-actions { align-items: stretch; flex-direction: column; }
  .dashboard-overview-actions button { width: 100%; }
  .dashboard-manual-alert { grid-template-columns: auto 1fr; }
  .dashboard-manual-alert > b { grid-column: 2; }
  .dashboard-resume-panel > header { align-items: flex-start; flex-direction: column; }
  .dashboard-resume-columns > article { min-height: 270px; padding: 28px 24px; }
}

/* 目标候选人：仅对应 fd_hr_3/code.html 与 screen.png */
.sourcing-top-tools {
  display: none;
}

body[data-active-view="sourcing"] {
  background: #f5f8fc;
}

body[data-active-view="sourcing"] .topbar p,
body[data-active-view="sourcing"] .top-profile {
  display: none;
}

body[data-active-view="sourcing"] .sourcing-top-tools {
  display: flex;
  align-items: center;
  gap: 18px;
}

.sourcing-global-search {
  position: relative;
  display: block;
  width: 320px;
}

.sourcing-global-search > span {
  position: absolute;
  top: 50%;
  left: 16px;
  width: 12px;
  height: 12px;
  border: 2px solid #1a2235;
  border-radius: 50%;
  transform: translateY(-58%);
}

.sourcing-global-search > span::after {
  content: "";
  position: absolute;
  right: -6px;
  bottom: -4px;
  width: 7px;
  height: 2px;
  border-radius: 2px;
  background: #1a2235;
  transform: rotate(45deg);
}

.sourcing-global-search input {
  width: 100%;
  min-height: 44px;
  padding: 0 18px 0 50px;
  border: 1px solid #bcc6d8;
  border-radius: 999px;
  outline: 0;
  background: #f5f8fc;
  color: #20283b;
  font-size: 15px;
}

.sourcing-global-search input:focus {
  border-color: #0847a9;
  box-shadow: 0 0 0 3px rgba(8, 71, 169, 0.1);
}

.sourcing-top-icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #182033;
  font-size: 24px;
}

.sourcing-top-icon:hover {
  background: #edf1f6;
}

.sourcing-top-avatar {
  display: block;
  width: 36px;
  height: 36px;
  overflow: hidden;
  border: 1px solid #c2cada;
  border-radius: 50%;
  background: #edf1f6;
}

.sourcing-top-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#sourcing.stitch-sourcing-page {
  position: relative;
  gap: 38px;
  max-width: 1220px;
  margin: 0 auto;
  padding: 16px 0 60px;
  color: #111722;
}

#sourcing.stitch-sourcing-page::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 4px;
  background: #aeb8c9;
}

.sourcing-engine-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
}

.sourcing-engine-hero h2 {
  color: #090d13;
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 850;
  letter-spacing: -1.5px;
  line-height: 1.15;
}

.sourcing-engine-hero p {
  margin-top: 14px;
  color: #3b4351;
  font-size: 17px;
  line-height: 1.65;
}

#sourcingRuntimePill {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 11px;
  min-height: 42px;
  padding: 0 20px;
  border-radius: 999px;
  background: #e9edf2;
  color: #283249;
  font-size: 14px;
  font-weight: 750;
}

#sourcingRuntimePill i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #064ca8;
}

#sourcingRuntimePill.is-running i {
  background: #0aa34f;
  box-shadow: 0 0 0 5px rgba(10, 163, 79, 0.12);
}

.sourcing-engine-card {
  display: flex;
  min-height: 540px;
  padding: 40px;
  flex-direction: column;
  border: 1px solid #cfd5df;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 1px 2px rgba(20, 34, 56, 0.02);
}

.sourcing-engine-card:hover {
  border-color: #0647a8;
}

.sourcing-engine-card-head {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) auto;
  align-items: start;
  gap: 20px;
}

.sourcing-engine-logo {
  display: grid;
  width: 80px;
  height: 80px;
  place-items: center;
  overflow: hidden;
  border: 1px solid;
  border-radius: 15px;
}

.sourcing-engine-logo.liepin {
  border-color: #ffdfb8;
  background: #fff8ee;
}

.sourcing-engine-logo.zhaopin {
  border-color: #c9dcff;
  background: #f0f6ff;
}

.sourcing-engine-logo img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

.sourcing-engine-card-head h3 {
  margin: 8px 0 4px;
  color: #080b10;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.5px;
}

.sourcing-engine-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 680px;
  padding: 3px 8px;
  border-radius: 5px;
  color: #087c37;
  background: #e8faef;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.sourcing-engine-state i {
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #0eb84d;
}

.sourcing-engine-state.is-pending {
  color: #d64800;
  background: #fff1e7;
}

.sourcing-engine-state.is-pending i {
  background: #ff6a00;
}

.sourcing-engine-state.is-error {
  color: #b11218;
  background: #fff0f0;
}

.sourcing-engine-state.is-error i {
  background: #cf151c;
}

.sourcing-engine-card-tools {
  display: flex;
  align-items: center;
  gap: 8px;
}

.sourcing-jobs-trigger,
.sourcing-more-button {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  padding: 0;
  border-radius: 9px;
  background: #fff;
  color: #172137;
  font-weight: 850;
}

.sourcing-jobs-trigger {
  border: 1px solid #b8c4d5;
  color: #0647a8;
}

.sourcing-jobs-trigger[aria-expanded="true"] {
  border-color: #0647a8;
  background: #edf4ff;
}

.sourcing-more-button {
  border: 0;
  font-size: 28px;
  line-height: 1;
}

.sourcing-jobs-trigger:disabled,
.sourcing-engine-primary:disabled {
  cursor: wait;
  opacity: 0.65;
}

.sourcing-job-children {
  display: grid;
  gap: 8px;
  margin: 18px 0 0 100px;
  padding: 4px 0 4px 18px;
  border-left: 3px solid #0647a8;
}

.sourcing-job-children[hidden] {
  display: none;
}

.sourcing-job-child {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 14px;
  border: 1px solid #ccd4e0;
  border-radius: 8px;
  background: #f6f8fb;
  color: #2c3546;
  text-align: left;
}

button.sourcing-job-child:hover,
button.sourcing-job-child.is-selected {
  border-color: #0647a8;
  background: #edf4ff;
  color: #053c91;
}

.sourcing-job-child.is-selected::before {
  content: "•";
  color: #0647a8;
  font-size: 22px;
}

.sourcing-job-child small {
  margin-left: auto;
  color: #6c7585;
}

.sourcing-job-child.is-loading,
.sourcing-job-child.is-empty,
.sourcing-job-child.is-error {
  justify-content: flex-start;
}

.sourcing-job-child.is-error {
  border-color: #f0baba;
  color: #b11218;
  background: #fff6f6;
}

.sourcing-engine-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  color: #283142;
  font-size: 15px;
}

.sourcing-engine-progress-head strong {
  color: #090d13;
  font-size: 15px;
}

.sourcing-engine-progress {
  width: 100%;
  height: 7px;
  overflow: hidden;
  margin-top: 20px;
  border-radius: 999px;
  background: #edf0f3;
}

.sourcing-engine-progress i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #0747ad;
  transition: width 180ms ease;
}

.sourcing-engine-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 40px;
}

.sourcing-engine-stats > div {
  min-height: 96px;
  padding: 22px;
  border: 1px solid #bfc9dc;
  border-radius: 10px;
  background: #f2f5f9;
}

.sourcing-engine-stats span,
.sourcing-engine-stats strong {
  display: block;
}

.sourcing-engine-stats span {
  color: #343d50;
  font-size: 13px;
  font-weight: 750;
}

.sourcing-engine-stats strong {
  margin-top: 8px;
  color: #090d13;
  font-size: 24px;
}

.sourcing-engine-primary {
  display: flex;
  width: 100%;
  min-height: 120px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 40px;
  padding: 20px;
  border: 1px solid #0647a8;
  border-radius: 14px;
  background: #0747ad;
  color: #fff;
  font-size: 28px;
  transition: background 160ms ease, transform 160ms ease;
}

.sourcing-engine-primary:hover {
  background: #003b91;
}

.sourcing-engine-primary:active {
  transform: scale(0.99);
}

.sourcing-engine-primary span {
  font-size: 30px;
}

.sourcing-engine-primary.is-stop {
  border-color: #b61218;
  background: #c3141b;
}

@media (max-width: 900px) {
  .sourcing-filter-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .sourcing-filter-heading .ghost-button {
    align-self: flex-start;
  }

  body[data-active-view="sourcing"] .sourcing-top-tools {
    gap: 8px;
  }

  .sourcing-global-search {
    width: 220px;
  }

  .sourcing-engine-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .sourcing-engine-card {
    min-height: auto;
    padding: 28px;
  }
}

@media (max-width: 640px) {
  #sourcing .sourcing-engine-filter-panel {
    padding: 18px 12px;
  }

  body[data-active-view="sourcing"] .sourcing-global-search,
  body[data-active-view="sourcing"] .sourcing-top-icon {
    display: none;
  }

  #sourcing.stitch-sourcing-page {
    gap: 24px;
    padding-top: 4px;
  }

  .sourcing-engine-card {
    padding: 22px 18px;
  }

  .sourcing-engine-card-head {
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 12px;
  }

  .sourcing-engine-logo {
    width: 58px;
    height: 58px;
  }

  .sourcing-engine-logo img {
    width: 40px;
    height: 40px;
  }

  .sourcing-engine-card-head h3 {
    margin-top: 1px;
    font-size: 20px;
  }

  .sourcing-more-button {
    display: none;
  }

  .sourcing-job-children {
    margin-left: 0;
  }

  .sourcing-engine-stats {
    grid-template-columns: 1fr;
    margin-top: 28px;
  }

  .sourcing-engine-primary {
    min-height: 84px;
    margin-top: 28px;
    font-size: 20px;
  }
}

/* 简历中心：严格对应 fd_hr_5/code.html 与 screen.png */
.sourcing-schedule-page {
  max-width: 1680px;
  margin: 0 auto;
  padding: 16px 0 60px;
  color: #111722;
}

#sourcingScheduleForm {
  display: grid;
  gap: 24px;
}

.schedule-add-task {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  border: 0;
  border-radius: 9px;
  background: #0755c9;
  color: #fff;
  font-size: 14px;
  font-weight: 850;
}

.schedule-add-task span { font-size: 20px; }

.schedule-task-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  margin-top: 22px;
}

.schedule-task-sidebar {
  position: sticky;
  top: 18px;
  overflow: hidden;
  max-height: calc(100vh - 150px);
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #fff;
}

.schedule-task-sidebar > header {
  display: grid;
  gap: 5px;
  padding: 18px;
  border-bottom: 1px solid #e5e9ef;
  background: #f8fafc;
}

.schedule-task-sidebar > header > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.schedule-task-sidebar > header strong { color: #172033; font-size: 16px; }
.schedule-task-sidebar > header span,
.schedule-task-sidebar > header small { color: #7b8493; font-size: 11px; }

.schedule-task-list {
  display: grid;
  gap: 8px;
  overflow-y: auto;
  max-height: calc(100vh - 250px);
  padding: 10px;
}

.schedule-task-item {
  display: grid;
  gap: 8px;
  width: 100%;
  padding: 13px;
  border: 1px solid #e0e5ec;
  border-radius: 10px;
  background: #fff;
  color: #273244;
  text-align: left;
}

.schedule-task-item:hover { border-color: #8fb4e9; background: #f8fbff; }
.schedule-task-item.is-selected { border-color: #0755c9; background: #edf5ff; box-shadow: 0 0 0 2px rgba(7, 85, 201, 0.08); }
.schedule-task-item.is-running { border-color: #12a150; background: #f1fcf5; }
.schedule-task-item > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.schedule-task-item strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-task-item time { color: #0755c9; font-size: 12px; font-weight: 850; }
.schedule-task-item p { overflow: hidden; margin: 0; color: #637083; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-task-item small { color: #7c8797; font-size: 10px; }
.schedule-task-item b { padding: 3px 7px; border-radius: 999px; background: #eef1f5; color: #697386; font-size: 10px; }
.schedule-task-item b.is-enabled { background: #e1f7e9; color: #08783b; }
.schedule-task-item b.is-error { background: #fee9e7; color: #b42318; }
.schedule-task-empty { padding: 30px 12px; color: #7b8493; font-size: 12px; line-height: 1.6; text-align: center; }

.schedule-task-editor {
  min-width: 0;
  padding: 22px;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #f8fafc;
}

.schedule-editor-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.schedule-editor-head > div { display: grid; flex: 1; gap: 6px; }
.schedule-editor-head > div > span { color: #0755b5; font-size: 11px; font-weight: 850; letter-spacing: 1px; }
.schedule-editor-head input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid #cbd3df;
  border-radius: 9px;
  background: #fff;
  color: #101828;
  font-size: 20px;
  font-weight: 850;
}

.schedule-editor-controls {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
}

.schedule-editor-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-editor-actions button {
  min-height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  font-weight: 800;
}

.schedule-editor-actions .schedule-save-task { border: 1px solid #9eb6d8; background: #fff; color: #315b98; }
.schedule-editor-actions .schedule-enable-task { background: #087443; }
.schedule-editor-actions .schedule-stop-button { background: #bf171d; }
.schedule-editor-actions button:disabled { cursor: wait; opacity: 0.55; }

.schedule-page-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.schedule-page-hero > div > span {
  color: #0755b5;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 1px;
}

.schedule-page-hero h2 {
  margin: 4px 0 8px;
  color: #090d13;
  font-size: 38px;
  font-weight: 850;
  letter-spacing: -1px;
}

.schedule-page-hero p {
  margin: 0;
  color: #566174;
  font-size: 15px;
}

.schedule-enable {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  border: 1px solid #c6cfdd;
  border-radius: 9px;
  background: #fff;
  color: #303a4c;
  font-size: 14px;
  font-weight: 750;
  cursor: pointer;
}

.schedule-enable input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.schedule-enable i {
  position: relative;
  width: 38px;
  height: 21px;
  border-radius: 999px;
  background: #c8cfda;
  transition: background 160ms ease;
}

.schedule-enable i::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(24, 35, 52, 0.25);
  content: "";
  transition: transform 160ms ease;
}

.schedule-enable input:checked + i { background: #0755c9; }
.schedule-enable input:checked + i::after { transform: translateX(17px); }
.schedule-state-indicator { cursor: default; }
.schedule-state-indicator input:disabled + i { opacity: 1; }

.schedule-runtime-card {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(260px, 1fr) minmax(360px, 1.2fr);
  align-items: center;
  gap: 24px;
  padding: 20px 24px;
  border: 1px solid #c9d3e2;
  border-radius: 13px;
  background: linear-gradient(110deg, #f4f8ff, #fff);
}

.schedule-runtime-card > div:first-child {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr);
  align-items: center;
  gap: 5px 10px;
}

.schedule-runtime-card > div:first-child i {
  grid-row: 1 / span 2;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #929baa;
}

.schedule-runtime-card[data-status="running"] > div:first-child i,
.schedule-runtime-card[data-status="paused"] > div:first-child i { background: #0ca44d; box-shadow: 0 0 0 5px rgba(12, 164, 77, 0.12); }
.schedule-runtime-card[data-status="retry_wait"] > div:first-child i { background: #f79009; box-shadow: 0 0 0 5px rgba(247, 144, 9, 0.12); }
.schedule-runtime-card[data-status="verification_required"] > div:first-child i,
.schedule-runtime-card[data-status="error"] > div:first-child i { background: #c3141b; }
.schedule-runtime-card > div:first-child span { color: #778194; font-size: 12px; }
.schedule-runtime-card > div:first-child strong { color: #162238; font-size: 18px; }
.schedule-runtime-card > p { margin: 0; color: #4f5b6e; font-size: 13px; line-height: 1.55; }

.schedule-runtime-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.schedule-runtime-card dl div { padding-left: 12px; border-left: 1px solid #d7deea; }
.schedule-runtime-card dt { color: #7c8594; font-size: 11px; }
.schedule-runtime-card dd { margin: 5px 0 0; color: #202a3a; font-size: 13px; font-weight: 750; }

.schedule-config-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.schedule-config-card {
  display: grid;
  align-content: start;
  gap: 16px;
  padding: 22px;
  border: 1px solid #cfd6e1;
  border-radius: 13px;
  background: #fff;
}

.schedule-config-card:last-child { grid-column: 1 / -1; }

.schedule-config-card > header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8ebf0;
}

.schedule-config-card > header > span {
  display: grid;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 8px;
  background: #eaf2ff;
  color: #0755c9;
  font-size: 12px;
  font-weight: 850;
}

.schedule-config-card h3 { margin: 0; color: #182132; font-size: 18px; }
.schedule-config-card header p { margin: 4px 0 0; color: #7a8494; font-size: 12px; }

.schedule-config-card > label,
.schedule-range-row label {
  display: grid;
  gap: 7px;
  color: #4d586b;
  font-size: 12px;
  font-weight: 750;
}

.schedule-config-card input,
.schedule-config-card select {
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid #cbd3df;
  border-radius: 7px;
  background: #f9fafc;
  color: #202a3a;
}

.schedule-config-card input:disabled { color: #798292; background: #f0f2f5; }

.schedule-range-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr);
  align-items: end;
  gap: 10px;
}

.schedule-range-row > b { padding-bottom: 13px; color: #8b94a1; text-align: center; }

.schedule-filter-note {
  margin: 0;
  padding: 10px 12px;
  border-radius: 7px;
  background: #fff4e8;
  color: #a45100;
  font-size: 12px;
}

.schedule-filter-note.is-ready { background: #ecf9f1; color: #087b38; }

.schedule-save-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 22px;
  border: 1px solid #efb9bb;
  border-radius: 12px;
  background: #fff6f6;
}

.schedule-save-bar p { display: grid; gap: 4px; margin: 0; }
.schedule-save-bar strong { color: #a71117; font-size: 14px; }
.schedule-save-bar span { color: #67585b; font-size: 12px; }
.schedule-save-actions { display: flex; flex: 0 0 auto; gap: 10px; }
.schedule-save-bar button { flex: 0 0 auto; min-height: 44px; padding: 0 22px; border: 0; border-radius: 8px; background: #0755c9; color: #fff; font-weight: 800; }
.schedule-save-bar .schedule-save-task { border: 1px solid #9eb6d8; background: #fff; color: #315b98; }
.schedule-save-bar .schedule-enable-task { background: #087443; }
.schedule-save-bar .schedule-stop-button { background: #bf171d; }
.schedule-save-bar .schedule-delete-task { border: 1px solid #e6a8aa; background: #fff; color: #b42318; }
.schedule-save-bar .schedule-duplicate-task { border: 1px solid #9eb6d8; background: #fff; color: #315b98; }
.schedule-save-bar button:disabled { cursor: wait; opacity: 0.65; }
.schedule-feedback { min-height: 20px; margin: -12px 0 0; color: #315b98; font-size: 13px; }

.schedule-hard-filter-card {
  /* 智联筛选菜单和级联选择器需要越过卡片边界显示。 */
  overflow: visible;
  border: 1px solid #cfd6e1;
  border-radius: 13px;
  background: #fff;
}

.schedule-hard-filter-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  border-bottom: 1px solid #e5e9ef;
}

.schedule-hard-filter-card > header > div { display: flex; align-items: flex-start; gap: 12px; }
.schedule-hard-filter-card > header > div > span {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 8px;
  background: #eaf2ff;
  color: #0755c9;
  font-size: 12px;
  font-weight: 850;
}
.schedule-hard-filter-card h3 { margin: 0; color: #182132; font-size: 18px; }
.schedule-hard-filter-card header p { margin: 4px 0 0; color: #7a8494; font-size: 12px; }
.schedule-hard-filter-card > header > b { padding: 6px 10px; border-radius: 999px; background: #eef4ff; color: #0755c9; font-size: 11px; }
#scheduleFilterWorkspaceMount { min-width: 0; padding: 0 18px 18px; }
#scheduleFilterWorkspaceMount .sourcing-filter-workspace { margin: 18px 0 0; box-shadow: none; }
#scheduleFilterWorkspaceMount [data-sourcing-apply-inline],
#scheduleFilterWorkspaceMount [data-zhaopin-sourcing-apply],
#scheduleFilterWorkspaceMount .sourcing-apply-status,
#scheduleFilterWorkspaceMount .zhaopin-search-guide { display: none !important; }
#scheduleFilterWorkspaceMount .liepin-search-bar { grid-template-columns: minmax(150px, .7fr) minmax(260px, 1.4fr) minmax(150px, .7fr); }

@media (max-width: 900px) {
  .schedule-page-hero,
  .schedule-save-bar { align-items: stretch; flex-direction: column; }
  .schedule-enable { align-self: flex-start; }
  .schedule-editor-head { align-items: stretch; flex-direction: column; }
  .schedule-editor-controls { justify-content: space-between; }
  .schedule-runtime-card { grid-template-columns: 1fr; }
  .schedule-config-grid { grid-template-columns: 1fr; }
  .schedule-config-card:last-child { grid-column: auto; }
  .schedule-save-actions { align-self: flex-end; }
  .schedule-task-layout { grid-template-columns: 1fr; }
  .schedule-task-sidebar { position: static; max-height: none; }
  .schedule-task-list { max-height: 340px; }
}

@media (max-width: 560px) {
  .sourcing-schedule-page { padding-top: 4px; }
  .schedule-page-hero h2 { font-size: 30px; }
  .schedule-runtime-card,
  .schedule-config-card { padding: 18px 14px; }
  .schedule-runtime-card dl { grid-template-columns: 1fr; }
  .schedule-range-row { grid-template-columns: 1fr; }
  .schedule-range-row > b { padding: 0; }
}

/* 智联人才搜索：结构跟随智联企业端搜索页，猎聘样式保持原样。 */
.zhaopin-search-toolbar {
  display: grid;
  grid-template-columns: 168px minmax(420px, 1fr) 210px;
  align-items: stretch;
  gap: 12px;
  padding: 20px 24px 14px;
  background: #f3f7ff;
}

.zhaopin-city-select select,
.zhaopin-keyword-box,
.zhaopin-search-button {
  height: 58px;
  border: 2px solid #416dff;
  border-radius: 16px;
  background: #fff;
  font: inherit;
}

.zhaopin-city-select select {
  width: 100%;
  padding: 0 22px;
  color: #121b32;
  font-weight: 650;
}

.zhaopin-keyword-box {
  display: flex;
  align-items: center;
  min-width: 0;
  overflow: hidden;
}

.zhaopin-position-scope {
  flex: 0 0 158px;
  padding: 0 20px;
  border-right: 1px solid #d9dfef;
  color: #15203a;
  font-weight: 650;
}

.zhaopin-position-scope i {
  display: inline-block;
  margin-left: 10px;
  border: 5px solid transparent;
  border-top-color: #17213a;
  transform: translateY(3px);
}

.zhaopin-keyword-box .sourcing-row-input {
  width: 100%;
  height: 54px;
  padding: 0 20px;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 16px;
}

.zhaopin-search-button {
  border-color: #416dff;
  background: #416dff;
  color: #fff;
  font-weight: 750;
  cursor: pointer;
}

.zhaopin-filter-card {
  position: relative;
  padding: 22px 150px 18px 24px;
  border-radius: 0 0 18px 18px;
  background: #fff;
}

.zhaopin-filter-card .liepin-filter-row {
  grid-template-columns: 120px minmax(0, 1fr);
  min-height: 54px;
  border: 0;
}

.zhaopin-filter-card .liepin-filter-label { color: #65708b; }
.zhaopin-filter-card .liepin-filter-options { gap: 12px 26px; }
.zhaopin-filter-card .liepin-filter-option { min-width: 68px; border: 0; background: transparent; color: #111b32; }
.zhaopin-filter-card .liepin-filter-option.is-active { background: #edf1ff; color: #416dff; font-weight: 750; }

.zhaopin-clear-button {
  position: absolute;
  top: 28px;
  right: 26px;
  border: 0;
  background: transparent;
  color: #72809c;
  cursor: pointer;
}

.zhaopin-search-guide {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr;
  gap: 8px 18px;
  align-items: center;
  margin-top: 18px;
  padding: 24px;
  border: 1px solid #e2e8f5;
  border-radius: 16px;
  background: #fff;
  color: #6c7893;
}

.zhaopin-search-guide strong { color: #111b32; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@media (max-width: 980px) {
  .zhaopin-search-toolbar { grid-template-columns: 140px minmax(260px, 1fr); }
  .zhaopin-search-button { grid-column: 1 / -1; }
  .zhaopin-search-guide { grid-template-columns: 1fr; }
}

.resume-top-left,
.resume-top-tools {
  display: none;
}

body[data-active-view="resumes"] {
  background: #f7fafd;
}

body[data-active-view="resumes"] .topbar > div:first-child,
body[data-active-view="resumes"] .top-profile {
  display: none;
}

body[data-active-view="resumes"] .resume-top-left,
body[data-active-view="resumes"] .resume-top-tools {
  display: flex;
  align-items: center;
}

.resume-top-left {
  gap: 14px;
  color: #434654;
  font-size: 14px;
}

.resume-top-left > strong {
  color: #003d9b;
  font-size: 20px;
  font-weight: 850;
}

.resume-top-left > i {
  width: 1px;
  height: 22px;
  background: #c3c6d6;
}

.resume-top-left b {
  font-weight: 500;
}

.resume-top-folder {
  display: inline-grid;
  width: 24px;
  height: 19px;
  place-items: center;
  border: 2px solid #434654;
  border-radius: 3px;
  color: transparent;
}

.resume-top-folder::before {
  content: "";
  position: relative;
  top: -10px;
  left: -5px;
  width: 10px;
  height: 4px;
  border: 2px solid #434654;
  border-bottom: 0;
  border-radius: 2px 2px 0 0;
}

.resume-top-tools {
  gap: 18px;
}

.resume-top-search {
  position: relative;
  display: block;
  width: 376px;
}

.resume-top-search > span {
  position: absolute;
  top: 50%;
  left: 18px;
  width: 14px;
  height: 14px;
  border: 3px solid #737685;
  border-radius: 50%;
  transform: translateY(-58%);
}

.resume-top-search > span::after {
  content: "";
  position: absolute;
  right: -7px;
  bottom: -5px;
  width: 8px;
  height: 3px;
  border-radius: 2px;
  background: #737685;
  transform: rotate(45deg);
}

.resume-top-search input {
  width: 100%;
  min-height: 46px;
  padding: 0 18px 0 54px;
  border: 1px solid #c3c6d6;
  border-radius: 10px;
  outline: 0;
  background: #fff;
  color: #181c1e;
  font-size: 15px;
}

.resume-top-search input:focus {
  border-color: #0052cc;
  box-shadow: 0 0 0 3px rgba(0, 82, 204, 0.1);
}

.resume-top-icon {
  position: relative;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #434654;
  font-size: 25px;
}

.resume-top-icon:hover {
  background: #f1f4f7;
}

.resume-top-icon.has-notice::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 3px;
  width: 9px;
  height: 9px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #b6171e;
}

.resume-top-avatar {
  display: block;
  width: 38px;
  height: 38px;
  overflow: hidden;
  border: 1px solid #c3c6d6;
  border-radius: 50%;
  background: #e0e3e6;
}

.resume-top-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#resumes.stitch-resume-page {
  gap: 28px;
  max-width: none;
  padding: 8px 0 44px;
  color: #181c1e;
}

.resume-center-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.resume-center-stats article {
  display: flex;
  min-height: 148px;
  align-items: center;
  gap: 28px;
  padding: 28px 34px;
  border: 1px solid #c3c6d6;
  border-radius: 15px;
  background: #fff;
}

.resume-stat-icon {
  display: grid;
  flex: 0 0 auto;
  width: 72px;
  height: 72px;
  place-items: center;
  border-radius: 18px;
  font-size: 38px;
  font-weight: 800;
}

.resume-stat-icon.document,
.resume-stat-icon.ai {
  color: #003d9b;
  background: #dae2ff;
}

.resume-stat-icon.pending {
  color: #b6171e;
  background: #ffdad6;
}

.resume-center-stats small,
.resume-center-stats strong,
.resume-center-stats em {
  display: block;
}

.resume-center-stats small {
  color: #737685;
  font-size: 16px;
  font-weight: 750;
}

.resume-center-stats strong {
  margin-top: 5px;
  color: #101215;
  font-size: 32px;
  line-height: 1.1;
}

.resume-center-stats em {
  margin-top: 12px;
  color: #19a957;
  font-size: 14px;
  font-style: normal;
}

.resume-center-filters {
  display: flex;
  min-height: 132px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 24px;
  border: 1px solid #c3c6d6;
  border-radius: 15px;
  background: #fff;
}

.resume-center-filter-fields,
.resume-center-filter-actions {
  display: flex;
  align-items: flex-end;
  gap: 24px;
}

.resume-center-filter-fields label {
  display: grid;
  gap: 8px;
  color: #737685;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.resume-center-filter-fields select {
  min-width: 220px;
  min-height: 52px;
  padding: 0 40px 0 16px;
  border: 0;
  border-radius: 10px;
  outline: 0;
  background-color: #f1f4f7;
  color: #181c1e;
  font-size: 15px;
  font-weight: 500;
}

.resume-center-filter-fields select:focus {
  box-shadow: 0 0 0 2px #0052cc;
}

.resume-center-filter-actions button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 22px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 800;
}

.resume-center-filter-actions button span {
  font-size: 24px;
}

.resume-advanced-filter {
  border: 1px solid #c3c6d6;
  background: #fff;
  color: #434654;
}

.resume-batch-import {
  border: 1px solid #0052cc;
  background: #0052cc;
  color: #fff;
}

.resume-import-track {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid #b7c1d3;
  border-radius: 8px;
  background: #fff;
  color: #434654;
  font-size: 12px;
  font-weight: 750;
}

.resume-import-track select {
  min-width: 88px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid #d7dee8;
  border-radius: 6px;
  background: #f8fafc;
  color: #1f2937;
  font: inherit;
}

.resume-recruitment-track {
  padding: 3px 7px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #1557a8;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

.resume-recruitment-track.campus {
  background: #e8f8ef;
  color: #08783b;
}

.resume-center-table-wrap {
  overflow: hidden;
  border: 1px solid #c3c6d6;
  border-radius: 15px;
  background: #fff;
}

.resume-center-table-scroll {
  overflow-x: auto;
}

.resume-center-table {
  width: 100%;
  min-width: 1120px;
  border-collapse: collapse;
  table-layout: fixed;
}

.resume-center-table th,
.resume-center-table td {
  padding: 18px 22px;
  border-bottom: 1px solid #c3c6d6;
  text-align: left;
  vertical-align: middle;
}

.resume-center-table th {
  height: 70px;
  background: #f1f4f7;
  color: #737685;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.resume-center-table td {
  height: 112px;
  color: #434654;
  font-size: 15px;
}

.resume-center-table tr:last-child td {
  border-bottom: 0;
}

.resume-center-table tbody tr:hover,
.resume-center-table tbody tr.is-selected {
  background: #f8faff;
}

.resume-center-table th:nth-child(1),
.resume-center-table td:nth-child(1) { width: 7%; text-align: center; }
.resume-center-table th:nth-child(2),
.resume-center-table td:nth-child(2) { width: 20%; }
.resume-center-table th:nth-child(3),
.resume-center-table td:nth-child(3) { width: 15%; }
.resume-center-table th:nth-child(4),
.resume-center-table td:nth-child(4) { width: 15%; }
.resume-center-table th:nth-child(5),
.resume-center-table td:nth-child(5) { width: 12%; }
.resume-center-table th:nth-child(6),
.resume-center-table td:nth-child(6) { width: 13%; }
.resume-center-table th:nth-child(7),
.resume-center-table td:nth-child(7) { width: 11%; }
.resume-center-table th:nth-child(8),
.resume-center-table td:nth-child(8) { width: 7%; text-align: center; }

.resume-center-table input[type="checkbox"] {
  width: 22px;
  height: 22px;
  accent-color: #003d9b;
}

.resume-candidate-cell {
  display: flex;
  align-items: center;
  gap: 16px;
}

.resume-candidate-avatar {
  display: grid;
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  place-items: center;
  border-radius: 50%;
  color: #003d9b;
  background: #dae2ff;
  font-size: 19px;
  font-weight: 850;
}

.resume-candidate-avatar.medium {
  color: #b6171e;
  background: #ffdad6;
}

.resume-candidate-avatar.low {
  color: #434654;
  background: #e0e3e6;
}

.resume-candidate-cell strong,
.resume-candidate-cell small {
  display: block;
}

.resume-candidate-cell strong {
  color: #181c1e;
  font-size: 16px;
}

.resume-candidate-cell small {
  margin-top: 4px;
  color: #737685;
  line-height: 1.45;
}

.resume-job-name {
  color: #434654;
  font-weight: 600;
}

.resume-source-display {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  padding: 0 8px 0 5px;
  border: 1px solid #dfe5ed;
  border-radius: 999px;
  background: #f6f8fb;
  color: #39465a;
  font-weight: 700;
  white-space: nowrap;
}

.resume-source-display i {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: #e9edf3;
  color: #314368;
  font-size: 8px;
  font-weight: 850;
  font-style: normal;
}

.resume-source-display.liepin { border-color: #bce8fa; background: #eefaff; color: #0879a8; }
.resume-source-display.liepin i { background: #00a2ff; color: #fff; }
.resume-source-display.zhaopin { border-color: #cbdcff; background: #f0f5ff; color: #174fa8; }
.resume-source-display.zhaopin i { background: #2878f0; color: #fff; }
.resume-source-display.manual { border-color: #ded8ef; background: #f6f3ff; color: #62528b; }
.resume-source-display.manual i { background: #7868a6; color: #fff; }
.resume-source-display.email { border-color: #f4d5ad; background: #fff7eb; color: #9a5a12; }
.resume-source-display.email i { background: #e88621; color: #fff; }

.resume-ai-score {
  display: inline-flex;
  min-width: 102px;
  align-items: center;
  gap: 10px;
  padding: 8px 4px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #0052cc;
  text-align: left;
}

.resume-ai-score:hover {
  background: #f1f4f7;
}

.resume-ai-score > i {
  display: block;
  width: 48px;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e0e3e6;
}

.resume-ai-score > i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #0052cc;
}

.resume-ai-score.high { color: #18a957; }
.resume-ai-score.high > i b { background: #24c568; }
.resume-ai-score.low { color: #ef4c59; }
.resume-ai-score.low > i b { background: #fa6672; }
.resume-ai-score.pending { color: #c96a00; font-weight: 750; }

.resume-table-status {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border: 1px solid;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.resume-table-status.contact { border-color: #a6efc3; color: #0b8c42; background: #effff5; }
.resume-table-status.evaluating { border-color: #ffd09d; color: #c45b00; background: #fff8ef; }
.resume-table-status.screened { border-color: #b8d8ff; color: #0052cc; background: #f0f6ff; }
.resume-table-status.unsuitable { border-color: #dfe2e7; color: #616876; background: #f4f5f7; }

.resume-table-empty {
  height: 160px !important;
  color: #737685 !important;
  text-align: center !important;
}

.resume-center-pagination {
  display: flex;
  min-height: 92px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 34px;
  background: #f7fafd;
  color: #737685;
  font-size: 14px;
}

.resume-center-pagination > div,
#resumePageButtons {
  display: flex;
  align-items: center;
  gap: 8px;
}

.resume-center-pagination button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #181c1e;
  font-size: 15px;
}

.resume-center-pagination button:hover:not(:disabled) {
  background: #e5e8eb;
}

.resume-center-pagination button.is-active {
  background: #003d9b;
  color: #fff;
  font-weight: 800;
}

.resume-center-pagination button:disabled {
  cursor: default;
  opacity: 0.35;
}

.resume-page-gap {
  padding: 0 4px;
  color: #181c1e;
}

.resume-score-dialog {
  width: min(680px, calc(100vw - 32px));
  max-height: min(760px, calc(100dvh - 48px));
  overflow: auto;
  padding: 0;
  border: 1px solid #c3c6d6;
  border-radius: 16px;
  background: #fff;
  color: #181c1e;
  box-shadow: 0 30px 80px rgba(20, 32, 54, 0.24);
}

.resume-score-dialog::backdrop {
  background: rgba(20, 27, 40, 0.42);
}

.resume-score-dialog-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 26px;
  border-bottom: 1px solid #d9dde6;
  background: #fff;
}

.resume-score-dialog-head span,
.resume-score-dialog-head strong {
  display: block;
}

.resume-score-dialog-head span {
  color: #0052cc;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.05em;
}

.resume-score-dialog-head strong {
  margin-top: 5px;
  font-size: 21px;
}

.resume-score-dialog-head button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f1f4f7;
  color: #434654;
  font-size: 26px;
}

#resumeScoreDialogBody {
  display: grid;
  gap: 14px;
  padding: 24px 26px 28px;
}

.resume-score-keywords {
  border-color: #b9ccef !important;
  background: linear-gradient(145deg, #f4f8ff, #fff) !important;
}

.resume-score-keywords > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.resume-score-keywords > header span,
.resume-score-keywords > header strong {
  display: block;
}

.resume-score-keywords > header span {
  color: #0052cc;
  font-size: 13px;
  font-weight: 850;
}

.resume-score-keywords > header strong {
  margin-top: 5px;
  color: #5d6675;
  font-size: 12px;
  font-weight: 600;
}

.resume-score-keywords > header > b {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #dfeaff;
  color: #0048aa;
  font-size: 11px;
}

.resume-score-keyword-groups {
  display: grid;
  gap: 13px;
  margin-top: 18px;
}

.resume-score-keyword-groups > div > span {
  display: block;
  margin-bottom: 7px;
  color: #667085;
  font-size: 11px;
  font-weight: 800;
}

.resume-score-keyword-groups p {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
}

.resume-score-keyword-groups p b {
  padding: 6px 10px;
  border: 1px solid #c4d4ef;
  border-radius: 999px;
  background: #fff;
  color: #174a91;
  font-size: 12px;
  font-weight: 750;
}

.resume-score-top-item {
  overflow: hidden;
  border: 1px solid #cbd4e3;
  border-radius: 13px;
  background: #fff;
}

.resume-score-top-item > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border-bottom: 1px solid #d9dde6;
  background: #f2f6fc;
}

.resume-score-top-item > header > span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #0052cc;
  color: #fff;
  font-size: 11px;
  font-weight: 850;
}

.resume-score-top-item > header div,
.resume-score-top-item > header strong,
.resume-score-top-item > header small {
  display: block;
  min-width: 0;
}

.resume-score-top-item > header strong {
  overflow: hidden;
  color: #181c1e;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-score-top-item > header small {
  margin-top: 4px;
  color: #737685;
  font-size: 11px;
}

.resume-score-top-item > header > b {
  color: #0052cc;
  font-size: 20px;
  white-space: nowrap;
}

#resumeScoreDialogBody .resume-score-top-item section {
  margin: 14px;
}

#resumeScoreDialogBody section {
  padding: 18px;
  border: 1px solid #d9dde6;
  border-radius: 11px;
  background: #f8fafc;
}

#resumeScoreDialogBody section > span {
  display: block;
  margin-bottom: 9px;
  color: #737685;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

#resumeScoreDialogBody section > strong,
#resumeScoreDialogBody section > p {
  color: #252b35;
  line-height: 1.65;
}

#resumeScoreDialogBody ul {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#resumeScoreDialogBody li {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e3e6eb;
}

#resumeScoreDialogBody li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#resumeScoreDialogBody .is-risk {
  border-color: #ffd3d3;
  background: #fff8f8;
}

.resume-score-waiting {
  margin: 8px 0;
  padding: 22px;
  border-radius: 10px;
  background: #f1f4f7;
  color: #737685;
  text-align: center;
}

@media (max-width: 1180px) {
  .resume-center-stats { gap: 16px; }
  .resume-center-stats article { gap: 18px; padding: 24px; }
  .resume-center-filter-fields { flex-wrap: wrap; }
  .resume-center-filter-fields select { min-width: 180px; }
  .resume-top-search { width: 280px; }
}

@media (max-width: 900px) {
  body[data-active-view="resumes"] .resume-top-left > i,
  body[data-active-view="resumes"] .resume-top-left > .resume-top-folder,
  body[data-active-view="resumes"] .resume-top-left > span:last-child,
  body[data-active-view="resumes"] .resume-top-icon {
    display: none;
  }

  .resume-top-search { width: 220px; }
  .resume-center-stats { grid-template-columns: 1fr; }
  .resume-center-stats article { min-height: 112px; }
  .resume-center-filters { align-items: stretch; flex-direction: column; }
  .resume-center-filter-actions { justify-content: flex-end; }
}

@media (max-width: 640px) {
  body[data-active-view="resumes"] .resume-top-search { display: none; }
  #resumes.stitch-resume-page { gap: 18px; padding-top: 0; }
  .resume-center-stats article { padding: 20px; }
  .resume-stat-icon { width: 58px; height: 58px; font-size: 29px; }
  .resume-center-filter-fields { display: grid; grid-template-columns: 1fr; }
  .resume-center-filter-fields label,
  .resume-center-filter-fields select { width: 100%; }
  .resume-center-filter-actions button { flex: 1; padding-inline: 12px; }
  .resume-center-pagination { align-items: flex-start; flex-direction: column; padding: 18px; }
}

/* 岗位管理：对应 fd_hr_6/code.html，已移除右侧 AI 与实时状态 */
.jobs-top-left,
.jobs-top-tools {
  display: none;
}

body[data-active-view="jobs"] {
  background: #f7fafd;
}

body[data-active-view="jobs"] .topbar > div:first-child,
body[data-active-view="jobs"] .top-profile {
  display: none;
}

body[data-active-view="jobs"] .jobs-top-left,
body[data-active-view="jobs"] .jobs-top-tools {
  display: flex;
  align-items: center;
}

.jobs-top-left {
  color: #003d9b;
  font-size: 20px;
  font-weight: 850;
}

.jobs-top-tools {
  gap: 18px;
}

.jobs-top-search {
  position: relative;
  display: block;
  width: 320px;
}

.jobs-top-search > span {
  position: absolute;
  top: 50%;
  left: 17px;
  width: 13px;
  height: 13px;
  border: 2px solid #737685;
  border-radius: 50%;
  transform: translateY(-58%);
}

.jobs-top-search > span::after {
  content: "";
  position: absolute;
  right: -6px;
  bottom: -4px;
  width: 7px;
  height: 2px;
  border-radius: 2px;
  background: #737685;
  transform: rotate(45deg);
}

.jobs-top-search input {
  width: 100%;
  min-height: 40px;
  padding: 0 18px 0 44px;
  border: 0;
  border-radius: 999px;
  outline: 0;
  background: #f1f4f7;
  color: #181c1e;
  font-size: 14px;
}

.jobs-top-search input:focus {
  box-shadow: 0 0 0 2px #0052cc;
}

.jobs-top-icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #434654;
  font-size: 23px;
}

.jobs-top-icon:hover {
  background: #f1f4f7;
}

.jobs-top-avatar {
  display: block;
  width: 36px;
  height: 36px;
  overflow: hidden;
  border: 1px solid #c3c6d6;
  border-radius: 50%;
  background: #e0e3e6;
}

.jobs-top-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#jobs.stitch-jobs-page {
  display: none;
  grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
  gap: 26px;
  height: calc(100dvh - 108px);
  min-height: 650px;
  padding: 0 0 12px;
}

#jobs.stitch-jobs-page.active {
  display: grid;
}

.job-management-categories,
.job-management-detail {
  border: 1px solid #c3c6d6;
  border-radius: 14px;
  background: #fff;
}

.job-management-categories {
  min-height: 0;
  padding: 24px 18px;
  overflow: hidden;
}

.job-management-category-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 18px;
  padding: 0 2px;
}

.job-management-categories h2 {
  margin: 0;
  padding: 0 2px;
  color: #181c1e;
  font-size: 19px;
  font-weight: 800;
}

.job-management-category-head > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

#addJobBtn {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid #0052cc;
  border-radius: 4px;
  background: #fff;
  color: #0052cc;
  font-size: 21px;
  font-weight: 800;
  line-height: 1;
}

#syncFeishuJobsBtn {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #1456f0;
  border-radius: 6px;
  background: #eef4ff;
  color: #1456f0;
  font-size: 11px;
  font-weight: 850;
}

#syncFeishuJobsBtn span {
  font-size: 15px;
}

#syncFeishuJobsBtn:disabled {
  cursor: wait;
  opacity: 0.6;
}

.feishu-job-sync-feedback {
  min-height: 34px;
  margin: -8px 2px 10px;
  color: #667085;
  font-size: 11px;
  line-height: 1.45;
}

.feishu-job-sync-feedback.is-success {
  color: #079455;
}

.feishu-job-sync-feedback.is-error {
  color: #c3141b;
}

#jobCategoryTree {
  height: calc(100% - 80px);
  overflow-y: auto;
  scrollbar-width: thin;
}

.job-recruitment-tabs {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 12px;
  padding: 2px 0 10px;
  background: #fff;
}

.job-recruitment-tabs button {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 16px;
  border: 1px solid #cfd9e8;
  border-radius: 10px;
  background: #f4f7fb;
  color: #344054;
  font-size: 18px;
  font-weight: 850;
}

.job-recruitment-tabs button b {
  display: grid;
  min-width: 30px;
  height: 26px;
  place-items: center;
  padding: 0 7px;
  border-radius: 999px;
  background: #e1e7f0;
  color: #667085;
  font-size: 12px;
}

.job-recruitment-tabs button.is-active {
  border-color: #0052cc;
  background: #0052cc;
  color: #fff;
  box-shadow: 0 8px 18px rgba(0, 82, 204, 0.2);
}

.job-recruitment-tabs button.is-active b {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.job-category-group {
  display: grid;
  gap: 5px;
  margin-bottom: 6px;
}

.job-category-primary,
.job-category-children button {
  width: 100%;
  border: 0;
  text-align: left;
}

.job-category-primary {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px;
  border-radius: 8px;
  background: transparent;
  color: #434654;
  font-size: 15px;
  font-weight: 750;
}

.job-category-primary b {
  display: grid;
  min-width: 27px;
  height: 25px;
  place-items: center;
  padding: 0 7px;
  border-radius: 999px;
  background: #e0e3e6;
  color: #737685;
  font-size: 12px;
}

.job-category-group.is-active > .job-category-primary {
  background: #0052cc;
  color: #fff;
}

.job-category-group.is-active > .job-category-primary b {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
}

.job-category-children {
  display: none;
  gap: 3px;
  padding: 2px 0 6px 18px;
}

.job-category-group.is-active .job-category-children {
  display: grid;
}

.job-category-children button {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  overflow: hidden;
  padding: 8px 12px;
  border-left: 2px solid #d7dadd;
  border-radius: 0 7px 7px 0;
  background: transparent;
  color: #5f6673;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.job-category-children button > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.job-category-children button > b {
  flex: 0 0 auto;
  padding: 3px 6px;
  border-radius: 999px;
  background: #eceef2;
  color: #7b8190;
  font-size: 10px;
}

.job-category-children button.is-disabled {
  border-left-color: #d92d20;
  color: #b42318;
}

.job-category-children button.is-disabled > b {
  background: #fee4e2;
  color: #b42318;
}

.job-category-children button:hover,
.job-category-children button.is-selected {
  border-left-color: #0052cc;
  background: #eef4ff;
  color: #003d9b;
  font-weight: 750;
}

.job-management-detail {
  min-height: 0;
  overflow-y: auto;
  padding: 30px;
}

.job-management-empty {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: #737685;
}

.job-detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.job-detail-header > div > div {
  display: flex;
  align-items: center;
  gap: 12px;
}

.job-detail-header h2 {
  color: #181c1e;
  font-size: 27px;
  font-weight: 850;
}

.job-detail-header span {
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  background: #ddf9e8;
  color: #0b8c42;
  font-size: 12px;
  font-weight: 800;
}

.job-detail-header span.is-disabled {
  background: #fee4e2;
  color: #b42318;
}

.job-detail-header span.is-feishu-bound {
  background: #e8f0ff;
  color: #245bdb;
}

.job-detail-header span.is-feishu-unbound {
  background: #fff4e5;
  color: #b54708;
}

.job-detail-header p {
  margin-top: 8px;
  color: #737685;
  font-size: 14px;
}

.job-edit-button {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid #0052cc;
  border-radius: 8px;
  background: #fff;
  color: #0052cc;
  font-size: 14px;
  font-weight: 800;
}

.job-detail-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}

.job-status-button,
.job-delete-button {
  min-height: 46px;
  padding: 0 16px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #4d5665;
  font-size: 14px;
  font-weight: 800;
}

.job-delete-button {
  border-color: #efb8bb;
  color: #c3141b;
}

.job-manual-classification {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 260px) auto;
  align-items: end;
  gap: 16px;
  margin-top: 24px;
  padding: 18px 20px;
  border: 1px solid #cdddf8;
  border-radius: 12px;
  background: #f5f8ff;
}

.job-manual-classification > div > span {
  color: #356ac3;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.08em;
}

.job-manual-classification h3 {
  margin: 4px 0 0;
  color: #1d2b42;
  font-size: 17px;
}

.job-manual-classification p {
  margin: 6px 0 0;
  color: #67748a;
  font-size: 12px;
  line-height: 1.55;
}

.job-manual-classification label {
  display: grid;
  gap: 7px;
  color: #445169;
  font-size: 12px;
  font-weight: 750;
}

.job-manual-classification select,
.job-manual-classification button {
  min-height: 42px;
  border-radius: 8px;
  font: inherit;
}

.job-manual-classification select {
  padding: 0 12px;
  border: 1px solid #b9c6da;
  background: #fff;
  color: #25334a;
}

.job-manual-classification button {
  padding: 0 20px;
  border: 1px solid #0052cc;
  background: #0052cc;
  color: #fff;
  font-weight: 800;
}

.job-manual-classification button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.job-manual-classification small {
  grid-column: 2 / -1;
  min-height: 16px;
  color: #b42318;
  font-size: 11px;
}

.job-detail-requirements {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px;
  margin-top: 38px;
}

.job-detail-requirements h3,
.job-description-block h3 {
  margin: 0 0 20px;
  color: #181c1e;
  font-size: 18px;
  font-weight: 800;
}

.job-detail-requirements h3 span {
  margin-right: 9px;
  color: #0052cc;
}

.job-detail-requirements dl {
  display: grid;
  gap: 14px;
  margin: 0;
}

.job-detail-requirements dl > div {
  display: grid;
  gap: 6px;
}

.job-detail-requirements dt {
  color: #737685;
  font-size: 12px;
  font-weight: 800;
}

.job-detail-requirements dd {
  min-height: 58px;
  margin: 0;
  padding: 16px;
  overflow: hidden;
  border-radius: 9px;
  background: #f1f4f7;
  color: #181c1e;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.7;
}

.job-skill-list {
  display: flex;
  align-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}

.job-skill-list span {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  padding: 0 14px;
  border: 1px solid #c4d2ed;
  border-radius: 999px;
  background: #f6f9ff;
  color: #0044a4;
  font-size: 13px;
  font-weight: 650;
}

.job-description-block {
  margin-top: 38px;
}

.job-description-block > div {
  padding: 24px 28px;
  border: 1px solid #c3c6d6;
  border-radius: 13px;
  color: #434654;
  font-size: 14px;
  line-height: 1.75;
}

.job-description-block strong {
  display: block;
  margin: 0 0 8px;
  color: #181c1e;
}

.job-description-block strong:not(:first-child) {
  margin-top: 22px;
}

.job-description-block ul {
  margin: 0;
  padding-left: 22px;
}

.job-description-block li + li {
  margin-top: 6px;
}

.job-editor-dialog {
  width: min(760px, calc(100vw - 36px));
  max-height: calc(100dvh - 48px);
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(16, 24, 40, 0.24);
}

.job-editor-dialog::backdrop {
  background: rgba(15, 23, 42, 0.48);
}

.job-editor-dialog form {
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
}

.job-editor-dialog header,
.job-editor-dialog footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
}

.job-editor-dialog header {
  border-bottom: 1px solid #d8e0ec;
}

.job-editor-dialog header span {
  display: block;
  margin-bottom: 3px;
  color: #667085;
  font-size: 12px;
}

.job-editor-dialog h2 {
  margin: 0;
  color: #181c1e;
  font-size: 22px;
}

.job-editor-dialog header button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 8px;
  background: #f1f4f7;
  color: #344054;
  font-size: 24px;
}

.job-editor-dialog .job-editor-grid {
  gap: 16px;
  margin: 0;
  padding: 22px 24px 8px;
}

.job-editor-dialog .job-editor-grid label {
  gap: 7px;
  color: #344054;
  font-size: 13px;
  font-weight: 700;
}

.job-editor-dialog .job-editor-wide {
  grid-column: 1 / -1;
}

.job-editor-dialog input,
.job-editor-dialog select,
.job-editor-dialog textarea {
  width: 100%;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #181c1e;
}

.job-editor-dialog input,
.job-editor-dialog select {
  min-height: 44px;
  padding: 0 12px;
}

.job-editor-dialog textarea {
  padding: 12px;
  resize: vertical;
}

.job-editor-dialog select:disabled {
  background: #f1f4f7;
  color: #737685;
}

.job-editor-feedback {
  min-height: 20px;
  margin: 8px 24px 0;
  color: #c3141b;
  font-size: 13px;
}

.job-editor-dialog footer {
  justify-content: flex-end;
  border-top: 1px solid #d8e0ec;
}

.job-editor-dialog footer button {
  min-height: 42px;
  padding: 0 20px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #fff;
  color: #344054;
  font-weight: 800;
}

.job-editor-dialog footer button[type="submit"] {
  border-color: #0052cc;
  background: #0052cc;
  color: #fff;
}

.job-editor-dialog footer button:disabled {
  cursor: wait;
  opacity: 0.6;
}

@media (max-width: 1000px) {
  #jobs.stitch-jobs-page { grid-template-columns: 280px minmax(0, 1fr); gap: 16px; }
  .job-management-detail { padding: 24px; }
  .job-manual-classification { grid-template-columns: 1fr; align-items: stretch; }
  .job-manual-classification small { grid-column: auto; }
  .job-detail-requirements { grid-template-columns: 1fr; }
  .jobs-top-search { width: 230px; }
}

@media (max-width: 760px) {
  body[data-active-view="jobs"] .jobs-top-search,
  body[data-active-view="jobs"] .jobs-top-icon { display: none; }
  .jobs-top-left { font-size: 17px; }
  #jobs.stitch-jobs-page,
  #jobs.stitch-jobs-page.active { display: block; height: auto; min-height: 0; }
  .job-management-categories { max-height: 430px; margin-bottom: 16px; }
  .job-management-detail { overflow: visible; }
  .job-detail-header > div > div { align-items: flex-start; flex-direction: column; }
  .job-detail-header { flex-direction: column; }
  .job-editor-dialog .job-editor-grid { grid-template-columns: 1fr; }
  .job-editor-dialog .job-editor-wide { grid-column: auto; }
}

/* Compact resume analysis configuration, based on fd_hr parser reference. */
.stitch-parser-page {
  max-width: 1240px;
  margin: 0 auto;
}

.analysis-config-form {
  color: #181c1e;
}

.analysis-config-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}

.analysis-config-hero h2 {
  margin: 0;
  color: #0042a5;
  font-size: 30px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.analysis-config-hero p {
  margin: 6px 0 0;
  color: #667085;
  font-size: 14px;
}

.analysis-config-hero > div:last-child {
  display: flex;
  gap: 10px;
}

.analysis-config-hero button {
  min-height: 42px;
  padding: 0 18px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 800;
}

.analysis-test-button {
  border: 1px solid #c3c6d6;
  background: #fff;
  color: #0052cc;
}

.analysis-test-button span {
  margin-right: 7px;
  font-size: 18px;
}

.analysis-save-button {
  border: 1px solid #0052cc;
  background: #0052cc;
  color: #fff;
}

.analysis-config-hero button:disabled {
  cursor: wait;
  opacity: 0.6;
}

.analysis-config-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 20px;
  align-items: start;
}

.analysis-workflow {
  display: grid;
  gap: 16px;
}

.analysis-step-card {
  position: relative;
  margin-left: 34px;
  padding: 18px;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
}

.analysis-step-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 43px;
  bottom: -18px;
  left: -18px;
  width: 2px;
  background: #d8e0ec;
}

.analysis-step-icon {
  position: absolute;
  z-index: 1;
  top: 0;
  left: -34px;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #0052cc;
  box-shadow: 0 3px 7px rgba(0, 61, 155, 0.2);
  color: #fff;
  font-size: 17px;
  font-style: normal;
  font-weight: 850;
}

.analysis-step-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.analysis-step-card > header > div > span {
  display: block;
  margin-bottom: 2px;
  color: #0052cc;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.analysis-step-card h3 {
  margin: 0;
  color: #181c1e;
  font-size: 17px;
  font-weight: 850;
}

.analysis-step-card > header label {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #667085;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}

.analysis-step-card > header input {
  width: 132px;
  height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: #f1f4f7;
  color: #0052cc;
  font-weight: 800;
}

.analysis-prompt-field {
  display: grid;
  gap: 6px;
  color: #344054;
  font-size: 12px;
  font-weight: 800;
}

.analysis-prompt-field textarea {
  width: 100%;
  height: 150px;
  padding: 12px 14px;
  resize: vertical;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #f1f4f7;
  color: #344054;
  font: 12px/1.55 Consolas, "Microsoft YaHei UI", sans-serif;
}

.analysis-step-card:first-child .analysis-prompt-field textarea {
  height: 170px;
}

.analysis-step-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 12px;
}

.analysis-step-controls > label {
  display: grid;
  gap: 6px;
  color: #344054;
  font-size: 12px;
  font-weight: 800;
}

.analysis-step-controls select {
  min-height: 40px;
  padding: 0 10px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #f7fafd;
  color: #434654;
}

.analysis-step-controls input[type="range"] {
  width: 100%;
  margin-top: 7px;
  accent-color: #0052cc;
}

.analysis-step-controls small {
  display: flex;
  justify-content: space-between;
  color: #98a2b3;
  font-size: 10px;
  font-weight: 600;
}

.analysis-step-controls small b {
  color: #0052cc;
}

.analysis-side-column {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 14px;
}

.analysis-weight-card,
.analysis-efficiency-card {
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
}

.analysis-weight-card {
  padding: 18px;
}

.analysis-weight-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.analysis-weight-card > header span {
  color: #667085;
  font-size: 11px;
  font-weight: 750;
}

.analysis-weight-card h3 {
  margin: 2px 0 0;
  color: #181c1e;
  font-size: 18px;
}

#analysisWeightTotal {
  color: #0052cc;
  font-size: 13px;
}

#analysisWeightTotal.is-invalid {
  color: #c3141b;
}

.analysis-profile-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin: 14px 0;
  padding: 4px;
  border-radius: 8px;
  background: #f1f4f7;
}

.analysis-profile-tabs button {
  min-height: 34px;
  padding: 0 5px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #667085;
  font-size: 11px;
  font-weight: 800;
}

.analysis-profile-tabs button.is-active {
  background: #0052cc;
  color: #fff;
}

.analysis-donut {
  display: grid;
  width: 156px;
  height: 156px;
  margin: 12px auto 16px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(#0755c9 0 100%);
}

.analysis-donut > div {
  display: grid;
  width: 108px;
  height: 108px;
  place-items: center;
  align-content: center;
  border-radius: 50%;
  background: #fff;
}

.analysis-donut span {
  color: #98a2b3;
  font-size: 10px;
  font-weight: 750;
}

.analysis-donut strong {
  color: #181c1e;
  font-size: 25px;
}

.analysis-weight-list {
  display: grid;
  gap: 7px;
}

.analysis-weight-list label {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) 48px 10px;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  color: #434654;
  font-size: 12px;
}

.analysis-weight-list i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--weight-color);
}

.analysis-weight-list input {
  width: 48px;
  height: 30px;
  padding: 0 5px;
  border: 1px solid #c3c6d6;
  border-radius: 6px;
  color: #181c1e;
  text-align: right;
  font-weight: 800;
}

.analysis-efficiency-card {
  padding: 16px 18px;
}

.analysis-efficiency-card > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.analysis-efficiency-card i {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 8px;
  background: #eef4ff;
  color: #0052cc;
  font-style: normal;
  font-weight: 900;
}

.analysis-efficiency-card p,
.analysis-efficiency-card strong,
.analysis-efficiency-card span {
  display: block;
  margin: 0;
}

.analysis-efficiency-card strong {
  font-size: 14px;
}

.analysis-efficiency-card span {
  margin-top: 2px;
  color: #98a2b3;
  font-size: 10px;
}

.analysis-efficiency-card dl {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
}

.analysis-efficiency-card dl > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #667085;
  font-size: 11px;
}

.analysis-efficiency-card dd {
  margin: 0;
  color: #344054;
  font-weight: 800;
}

.analysis-config-feedback {
  min-height: 22px;
  margin: 12px 0 0 34px;
  color: #0052cc;
  font-size: 12px;
  font-weight: 700;
}

@media (max-width: 1100px) {
  .analysis-config-layout { grid-template-columns: minmax(0, 1fr) 300px; }
}

@media (max-width: 900px) {
  .analysis-config-layout { grid-template-columns: 1fr; }
  .analysis-side-column { position: static; }
  .analysis-weight-card { max-width: none; }
}

@media (max-width: 680px) {
  .analysis-config-hero,
  .analysis-step-card > header { align-items: flex-start; flex-direction: column; }
  .analysis-config-hero > div:last-child,
  .analysis-config-hero button { width: 100%; }
  .analysis-step-controls { grid-template-columns: 1fr; }
  .analysis-step-card { margin-left: 24px; padding: 14px; }
  .analysis-step-icon { left: -26px; width: 30px; height: 30px; }
}

/* fd_hr system status monitor reference. */
#platforms > .stitch-model-status {
  display: none;
}

.status-monitor-page {
  max-width: 1220px;
  margin: 0 auto;
}

.status-monitor-hero {
  display: none;
}

.status-platform-section > header,
.status-model-section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.status-platform-section > header {
  margin-bottom: 22px;
}

.status-platform-section > header > div,
.status-model-section > header > div {
  display: flex;
  align-items: center;
  gap: 10px;
}

.status-platform-section > header span,
.status-model-section > header span {
  color: #0042a5;
  font-size: 24px;
  font-weight: 900;
}

.status-platform-section h3,
.status-model-section h3 {
  margin: 0;
  color: #181c1e;
  font-size: 21px;
  font-weight: 900;
}

.status-platform-section > header b {
  color: #737685;
  font-size: 12px;
  letter-spacing: 0.18em;
}

.status-platform-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.status-platform-card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 164px;
  padding: 24px 30px;
  border: 1px solid #c3c6d6;
  border-radius: 13px;
  background: #ebeef1;
}

.status-platform-logo {
  display: grid;
  width: 66px;
  height: 66px;
  place-items: center;
  border: 1px solid #c3c6d6;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 2px 5px rgba(16, 24, 40, 0.07);
  font-size: 13px;
  font-weight: 900;
}

.status-platform-logo.liepin {
  color: #e75c0a;
}

.status-platform-logo.zhaopin {
  color: #0755c9;
}

.status-platform-main > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.status-platform-main h4 {
  margin: 0;
  color: #181c1e;
  font-size: 18px;
  font-weight: 900;
}

.status-platform-main p {
  margin: 7px 0 13px;
  color: #737685;
  font-size: 13px;
}

.status-platform-main > div:nth-of-type(2) {
  display: flex;
  align-items: center;
  gap: 10px;
}

.status-platform-main > div:nth-of-type(2) > i {
  width: 1px;
  height: 17px;
  background: #c3c6d6;
}

.status-platform-main button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #0052cc;
  font-size: 12px;
  font-weight: 850;
}

.status-platform-main button:last-child {
  color: #737685;
}

.status-platform-main small {
  display: block;
  margin-top: 10px;
  color: #667085;
  font-size: 11px;
  line-height: 1.45;
}

.status-platform-badge {
  display: inline-flex;
  flex: 0 0 auto;
  min-height: 28px;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 999px;
  background: #dcfae6;
  color: #079455;
  font-size: 11px;
  font-weight: 850;
}

.status-platform-badge i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}

.status-platform-badge.is-pending {
  background: #f2f4f7;
  color: #667085;
}

.status-platform-badge.is-error {
  background: #fee4e2;
  color: #c3141b;
}

.status-model-section {
  margin-top: 42px;
  padding-top: 38px;
  border-top: 1px solid #c3c6d6;
}

.status-model-section > header {
  margin-bottom: 22px;
}

.status-model-section > header #saveStatusModelsBtn {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid #003d9b;
  border-radius: 8px;
  background: #003d9b;
  color: #fff;
  font-size: 13px;
  font-weight: 850;
}

.status-model-section > header #saveStatusModelsBtn:disabled {
  cursor: wait;
  opacity: 0.6;
}

.status-model-section > header .status-model-actions {
  justify-content: flex-end;
  gap: 12px;
}

.status-model-actions label {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #434654;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.status-model-actions input {
  width: 76px;
  height: 42px;
  padding: 0 10px;
  border: 1px solid #b7c1d3;
  border-radius: 8px;
  background: #fff;
  color: #181c1e;
  font: inherit;
  text-align: center;
}

.status-model-table-wrap {
  overflow-x: auto;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
}

.status-model-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  table-layout: fixed;
}

.status-model-table th,
.status-model-table td {
  padding: 18px 20px;
  border-bottom: 1px solid #c3c6d6;
  text-align: left;
  vertical-align: middle;
}

.status-model-table th {
  background: #e5e8eb;
  color: #737685;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.04em;
}

.status-model-table th:nth-child(1) { width: 23%; }
.status-model-table th:nth-child(2) { width: 21%; }
.status-model-table th:nth-child(3) { width: 20%; }
.status-model-table th:nth-child(4) { width: 21%; }
.status-model-table th:nth-child(5) { width: 7%; }
.status-model-table th:nth-child(6) { width: 8%; }

.status-model-table tbody tr:last-child td {
  border-bottom: 0;
}

.status-model-table td:first-child > div {
  display: flex;
  align-items: center;
  gap: 12px;
}

.status-model-table td:first-child i {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 6px;
  font-style: normal;
  font-weight: 900;
}

.status-model-table i.is-blue { background: #eff6ff; color: #0755c9; }
.status-model-table i.is-purple { background: #faf5ff; color: #7f22fe; }
.status-model-table i.is-amber { background: #fffaeb; color: #dc6803; }
.status-model-table i.is-red { background: #fff1f3; color: #c3141b; }
.status-model-table i.is-green { background: #ecfdf3; color: #079455; }

.status-model-table strong {
  color: #181c1e;
  font-size: 13px;
  font-weight: 850;
}

.status-model-table input {
  width: 100%;
  height: 38px;
  min-width: 0;
  padding: 0 11px;
  border: 1px solid #c3c6d6;
  border-radius: 6px;
  background: #fff;
  color: #181c1e;
  font-size: 12px;
  font-weight: 650;
}

.status-model-table td:nth-child(4) label {
  position: relative;
  display: block;
}

.status-model-table td:nth-child(4) input {
  padding-right: 34px;
}

.status-model-table td:nth-child(4) label button {
  position: absolute;
  top: 50%;
  right: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #737685;
  transform: translateY(-50%);
}

.status-model-table td:nth-child(6) > button {
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid #c3c6d6;
  border-radius: 8px;
  background: #e5e8eb;
  color: #181c1e;
  font-size: 12px;
  font-weight: 850;
}

.status-model-table td:nth-child(6) > button:disabled {
  cursor: wait;
  opacity: 0.6;
}

.status-model-state {
  color: #667085;
  font-size: 11px;
  font-weight: 850;
}

.status-model-state.is-success {
  color: #079455;
}

.status-model-state.is-error {
  color: #c3141b;
}

.status-monitor-feedback {
  min-height: 22px;
  margin: 10px 0 0;
  color: #0052cc;
  font-size: 12px;
  font-weight: 700;
}

.status-feishu-config {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid #c3c6d6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(24, 28, 30, 0.04);
}

.status-feishu-config > header,
.status-feishu-config > header > div,
.status-feishu-config > footer,
.status-feishu-config > footer > div {
  display: flex;
  align-items: center;
}

.status-feishu-config > header,
.status-feishu-config > footer {
  justify-content: space-between;
  gap: 18px;
}

.status-feishu-config > header > div {
  gap: 12px;
}

.status-feishu-logo {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 9px;
  background: #e8f3ff;
  color: #1456f0;
  font-size: 18px;
  font-weight: 900;
}

.status-feishu-config h4 {
  margin: 0;
  color: #181c1e;
  font-size: 15px;
  font-weight: 900;
}

.status-feishu-config header p,
.status-feishu-config footer p {
  margin: 4px 0 0;
  color: #737685;
  font-size: 12px;
  line-height: 1.45;
}

.status-feishu-state {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  background: #f2f4f7;
  color: #667085;
  font-size: 11px;
  font-weight: 850;
}

.status-feishu-state.is-success {
  background: #dcfae6;
  color: #079455;
}

.status-feishu-state.is-error {
  background: #fee4e2;
  color: #c3141b;
}

.status-feishu-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
}

.status-feishu-fields > label {
  display: grid;
  gap: 7px;
  color: #434654;
  font-size: 12px;
  font-weight: 800;
}

.status-feishu-fields input {
  width: 100%;
  height: 40px;
  min-width: 0;
  padding: 0 12px;
  border: 1px solid #c3c6d6;
  border-radius: 7px;
  background: #fff;
  color: #181c1e;
  font-size: 12px;
}

.status-feishu-fields input:focus {
  border-color: #1456f0;
  outline: 3px solid rgba(20, 86, 240, 0.1);
}

.status-feishu-secret {
  position: relative;
  display: block;
}

.status-feishu-secret input {
  padding-right: 38px;
}

.status-feishu-secret button {
  position: absolute;
  top: 50%;
  right: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #737685;
  transform: translateY(-50%);
}

.status-feishu-config > footer {
  padding-top: 16px;
  padding-right: 72px;
  border-top: 1px solid #e5e8eb;
}

.status-feishu-config > footer p {
  margin: 0;
}

.status-feishu-config > footer > div {
  flex: 0 0 auto;
  gap: 10px;
}

.status-feishu-config footer button {
  min-height: 38px;
  padding: 0 15px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 850;
}

.status-feishu-test {
  border: 1px solid #b7c1d3;
  background: #fff;
  color: #181c1e;
}

.status-feishu-save {
  border: 1px solid #1456f0;
  background: #1456f0;
  color: #fff;
}

.status-feishu-config footer button:disabled {
  cursor: wait;
  opacity: 0.6;
}

.status-feishu-bot-config {
  border-color: #b7d7cf;
  background: linear-gradient(180deg, #fbfffe 0%, #ffffff 38%);
}

.status-personal-feishu {
  border-color: #bfd5f4;
  background: #f8fbff;
}

.is-permission-locked {
  opacity: 0.58;
}

.is-permission-locked input,
.is-permission-locked select,
.is-permission-locked textarea,
.is-permission-locked button {
  cursor: not-allowed;
}

.status-email-config {
  margin-top: 24px;
  border-color: #bfd5f4;
  background: linear-gradient(180deg, #f8fbff 0%, #ffffff 40%);
}

.status-email-logo {
  background: #fff1e8;
  color: #d9480f;
}

.status-email-fields .status-email-switch {
  align-content: center;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid #c3c6d6;
  border-radius: 7px;
  background: #f8fafc;
}

.status-email-fields .status-email-switch input {
  width: 18px;
  height: 18px;
  accent-color: #1456f0;
}

.status-feishu-bot-logo {
  background: #e5f7f1;
  color: #087f5b;
}

.status-feishu-bot-runtime {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: -4px 0 20px;
}

/* 飞书单聊模式不在前端展示运行明细和旧的群汇报计划。 */
.status-feishu-bot-runtime,
.status-feishu-report-plan {
  display: none !important;
}

/* 个人通知已移到独立页面；它必须覆盖旧状态页隐藏规则。 */
#personalFeishuStandaloneMount .status-personal-feishu {
  display: block !important;
}

.personal-feishu-page {
  width: min(900px, 100%);
  margin: 0 auto;
}

.personal-feishu-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  border: 1px solid #bfd5f4;
  border-radius: 12px;
  background: linear-gradient(135deg, #eef6ff 0%, #ffffff 72%);
}

.personal-feishu-hero > div {
  display: flex;
  align-items: center;
  gap: 16px;
}

.personal-feishu-hero h2,
.personal-feishu-hero p {
  margin: 0;
}

.personal-feishu-hero p {
  margin-top: 6px;
  color: #667085;
  font-size: 13px;
  line-height: 1.6;
}

.personal-feishu-hero > strong {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1456f0;
  font-size: 12px;
}

.personal-feishu-hero-icon {
  display: grid;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 12px;
  background: #1456f0;
  color: #fff;
  font-size: 18px;
  font-weight: 900;
}

#personalFeishuStandaloneMount .status-personal-feishu {
  margin: 0;
  padding: 24px;
  border-radius: 12px;
  background: #fff;
}

.status-personal-feishu-head-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.status-personal-feishu-bind-state {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: #fff4e5;
  color: #b54708;
  font-size: 12px;
  font-weight: 800;
}

.status-personal-feishu-bind-state.is-bound {
  background: #e8f8ef;
  color: #087f5b;
}

@media (max-width: 620px) {
  .status-personal-feishu-head-actions {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* 状态页只保留账号状态与必要连接操作，内部调试和自动回复配置移至对应功能页。 */
#platforms #liepinBrowserStartBtn,
#platforms #liepinBrowserCheckBtn,
#platforms #liepinMessageProbeBtn,
#platforms #liepinBrowserStopBtn,
#platforms #zhaopinBrowserStartBtn,
#platforms #zhaopinBrowserCheckBtn,
#platforms #zhaopinMessageProbeBtn,
#platforms #zhaopinBrowserStopBtn,
#platforms .account-settings,
#platforms .form-grid.compact,
#platforms .account-card ~ .button-row,
#platforms .ai-test-output {
  display: none !important;
}

#platforms > .stitch-section-heading,
#platforms > .panel-grid.two {
  width: 100%;
  max-width: 1220px;
  margin-right: auto;
  margin-left: auto;
}

.status-feishu-bot-runtime > span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e0e8e5;
  border-radius: 8px;
  background: #f7fbfa;
  color: #737685;
  font-size: 11px;
}

.status-feishu-bot-runtime strong {
  overflow: hidden;
  color: #24332f;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.status-feishu-report-plan {
  margin: 0 0 20px;
  padding: 16px;
  border: 1px solid #d8e5e1;
  border-radius: 10px;
  background: #f8fcfb;
}

.status-feishu-report-plan-head,
.status-feishu-report-actions,
.status-feishu-report-actions > div,
.status-feishu-report-switch,
.status-feishu-report-chat {
  display: flex;
  align-items: center;
}

.status-feishu-report-plan-head,
.status-feishu-report-actions {
  justify-content: space-between;
  gap: 16px;
}

.status-feishu-report-plan h5 {
  margin: 0;
  color: #183b32;
  font-size: 13px;
  font-weight: 900;
}

.status-feishu-report-plan p {
  margin: 4px 0 0;
  color: #667085;
  font-size: 11px;
  line-height: 1.45;
}

.status-feishu-report-switch {
  flex: 0 0 auto;
  gap: 7px;
  color: #176b55;
  font-size: 12px;
  font-weight: 850;
}

.status-feishu-report-switches {
  display: grid;
  flex: 0 0 auto;
  gap: 7px;
}

.status-feishu-report-switch input {
  width: 16px;
  height: 16px;
  accent-color: #087f5b;
}

.status-feishu-report-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}

.status-feishu-report-fields > label {
  display: grid;
  gap: 6px;
  color: #475467;
  font-size: 11px;
  font-weight: 800;
}

.status-feishu-report-fields > label.is-wide {
  grid-column: 1 / -1;
}

.status-feishu-report-fields input {
  width: 100%;
  height: 38px;
  min-width: 0;
  padding: 0 11px;
  border: 1px solid #c8d8d3;
  border-radius: 7px;
  background: #fff;
  color: #182b26;
}

.status-feishu-report-chat {
  gap: 8px;
}

.status-feishu-report-chat button,
.status-feishu-report-actions button {
  min-height: 38px;
  padding: 0 13px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.status-feishu-report-chat button {
  border: 1px solid #98bdb2;
  background: #fff;
  color: #176b55;
}

.status-feishu-report-runtime {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.status-feishu-report-runtime > span {
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  border-radius: 7px;
  background: #eef7f4;
  color: #667085;
  font-size: 10px;
}

.status-feishu-report-runtime strong {
  overflow: hidden;
  color: #24473e;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.status-feishu-report-actions {
  padding-top: 13px;
  border-top: 1px solid #dce9e5;
}

.status-feishu-report-actions > div {
  flex: 0 0 auto;
  gap: 8px;
}

@media (max-width: 900px) {
  .status-platform-grid { grid-template-columns: 1fr; }
  .status-feishu-fields { grid-template-columns: 1fr; }
  .status-feishu-bot-runtime { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .status-feishu-report-fields,
  .status-feishu-report-runtime { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .status-platform-section > header,
  .status-model-section > header { align-items: flex-start; flex-direction: column; }
  .status-model-section > header .status-model-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .status-model-section > header #saveStatusModelsBtn { width: 100%; }
  .status-model-actions label { justify-content: space-between; }
  .status-platform-card { grid-template-columns: 50px minmax(0, 1fr); padding: 18px; }
  .status-platform-logo { width: 50px; height: 50px; }
  .status-platform-main > div:first-child { align-items: flex-start; flex-direction: column; }
  .status-feishu-config > header,
  .status-feishu-config > footer { align-items: flex-start; flex-direction: column; }
  .status-feishu-config > footer { padding-right: 0; }
  .status-feishu-config > footer > div,
  .status-feishu-config footer button { width: 100%; }
  .status-feishu-bot-runtime { grid-template-columns: 1fr; }
  .status-feishu-report-plan-head,
  .status-feishu-report-actions { align-items: stretch; flex-direction: column; }
  .status-feishu-report-actions > div,
  .status-feishu-report-actions button { width: 100%; }
  .status-feishu-report-chat { align-items: stretch; flex-direction: column; }
}

/* 简历中心：候选人阶段列表 */
#resumes.stitch-resume-page {
  gap: 14px;
  padding: 0 0 36px;
  background: #f4f6f8;
}

.resume-stage-summary {
  display: grid;
  grid-template-columns: repeat(10, minmax(82px, 1fr));
  overflow-x: auto;
  border: 1px solid #e6e9ee;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 2px 9px rgba(30, 43, 65, 0.04);
}

.resume-stage-summary button {
  position: relative;
  display: grid;
  min-width: 82px;
  min-height: 68px;
  align-content: center;
  gap: 4px;
  padding: 10px 14px;
  border: 0;
  border-right: 1px solid #edf0f3;
  background: #fff;
  color: #626a76;
  text-align: left;
}

.resume-stage-summary button:last-child { border-right: 0; }
.resume-stage-summary button:hover { background: #f8faff; }

.resume-stage-summary button strong {
  color: #2e3540;
  font-size: 17px;
  line-height: 1;
}

.resume-stage-summary button span {
  font-size: 12px;
  white-space: nowrap;
}

.resume-stage-summary button.is-active strong,
.resume-stage-summary button.is-active span { color: #326fe5; }

.resume-stage-summary button.is-active::after {
  position: absolute;
  right: 14px;
  bottom: 0;
  left: 14px;
  height: 3px;
  border-radius: 4px 4px 0 0;
  background: #326fe5;
  content: "";
}

.resume-center-surface {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid #e5e8ec;
  border-radius: 8px;
  background: #fff;
}

.resume-match-notice {
  display: flex;
  min-height: 36px;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border-radius: 3px;
  background: #e9f0ff;
  color: #536176;
  font-size: 12px;
}

.resume-match-notice > span {
  display: grid;
  width: 15px;
  height: 15px;
  place-items: center;
  border-radius: 50%;
  background: #4381ed;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
}

.resume-match-notice strong { color: #326fe5; }

.resume-list-search {
  display: flex;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid #dfe3e8;
  border-radius: 3px;
  background: #fff;
  color: #8a929e;
}

.resume-list-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #323844;
  font-size: 13px;
}

#resumes .resume-center-filters {
  min-height: auto;
  align-items: center;
  gap: 12px;
  padding: 0 0 10px;
  border: 0;
  border-bottom: 1px solid #e8ebef;
  border-radius: 0;
}

#resumes .resume-center-filter-fields,
#resumes .resume-center-filter-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

#resumes .resume-center-filter-fields {
  flex: 1 1 860px;
}

#resumes .resume-center-filter-fields label {
  display: flex;
  min-height: 30px;
  align-items: center;
  gap: 0;
  overflow: hidden;
  border: 1px solid #dfe3e8;
  border-radius: 3px;
  background: #f8f9fb;
  color: #4f5865;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0;
}

#resumes .resume-center-filter-fields label > span {
  padding-left: 10px;
  white-space: nowrap;
}

#resumes .resume-center-filter-fields select {
  min-width: 102px;
  min-height: 28px;
  padding: 0 24px 0 6px;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  color: #326fe5;
  font-size: 12px;
}

#resumes .resume-center-filter-actions button {
  min-height: 31px;
  padding: 0 12px;
  border-color: #d9dee5;
  border-radius: 3px;
  background: #fff;
  color: #4e5865;
  font-size: 12px;
}

#resumes .resume-center-filter-actions button span { font-size: 15px; }

#resumeRetryFailedBtn:not(:disabled) {
  border-color: #d85b63 !important;
  color: #bd2632 !important;
}

#resumeRetryFailedBtn:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

#resumeRetryFailedFeedback {
  align-self: center;
  color: #596477;
  font-size: 12px;
}

#resumeUploadFeedback {
  align-self: center;
  color: #596477;
  font-size: 12px;
}

#resumeClearFiltersBtn {
  color: #326fe5 !important;
}

#resumes .resume-center-table-wrap {
  overflow: visible;
  border: 0;
  border-radius: 0;
}

.resume-result-toolbar {
  display: flex;
  min-height: 42px;
  align-items: center;
  gap: 12px;
  padding: 0 2px;
  border-bottom: 1px solid #e4e8ed;
  color: #4f5763;
  font-size: 12px;
}

.resume-result-toolbar label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.resume-result-toolbar input,
.resume-record-check input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #326fe5;
}

.resume-result-toolbar strong { color: #303844; }
.resume-result-toolbar > span { margin-left: auto; color: #777f8b; }

.resume-bulk-actions {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}

.resume-bulk-actions[hidden] { display: none; }

.resume-bulk-actions > b {
  color: #1557a8;
  white-space: nowrap;
}

.resume-bulk-actions button {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid #b9c8dc;
  border-radius: 7px;
  background: #fff;
  color: #285a9f;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.resume-bulk-actions #resumeBatchApproveBtn,
.resume-bulk-actions #resumeBatchSyncFeishuBtn {
  border-color: #2468c9;
  background: #2468c9;
  color: #fff;
}

.resume-bulk-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.resume-bulk-actions small {
  overflow: hidden;
  max-width: 360px;
  color: #596477;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-candidate-list {
  display: grid;
}

.resume-candidate-record {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(430px, 1.25fr) minmax(330px, 0.9fr) 112px;
  min-height: 148px;
  gap: 10px;
  padding: 18px 8px 18px 2px;
  border-bottom: 1px solid #e4e8ed;
  background: #fff;
  color: #343b46;
}

.resume-candidate-record:hover,
.resume-candidate-record.is-selected { background: #f8faff; }

.resume-record-check {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  padding-top: 2px;
  color: #a6adb7;
}

.resume-shared-view-label {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border-radius: 999px;
  background: #eef4ff;
  color: #37639d;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
}

.resume-row-actions .resume-shared-view-label {
  margin: 7px;
  white-space: nowrap;
}

.resume-record-content { min-width: 0; }

.resume-record-person {
  display: flex;
  min-height: 24px;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: #4e5662;
  font-size: 12px;
}

.resume-record-person > strong {
  color: #202630;
  font-size: 15px;
}

.resume-record-person > b,
.resume-record-person > i,
.resume-duplicate-tag {
  padding: 2px 7px;
  border-radius: 3px;
  background: #e9ecff;
  color: #4e58a4;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.resume-record-person > i { background: #edf5ff; color: #3970b5; }
.resume-duplicate-tag { background: #ffe8f1; color: #bb3e72; }

.resume-record-history {
  display: grid;
  gap: 5px;
  margin-top: 10px;
}

.resume-history-line {
  position: relative;
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  min-height: 20px;
  align-items: start;
  padding-left: 18px;
  font-size: 12px;
}

.resume-history-line::before {
  position: absolute;
  top: 4px;
  left: 1px;
  width: 10px;
  color: #929aa6;
  content: "▣";
}

.resume-history-line.is-education::before { content: "◇"; }
.resume-history-line.is-empty::before { content: "·"; }
.resume-history-line time { color: #777f8a; }

.resume-history-line p {
  min-width: 0;
  margin: 0;
  color: #303743;
}

.resume-history-line p strong { font-weight: 650; }
.resume-history-line p span { margin: 0 7px; color: #a2a8b1; }
.resume-history-line p em { font-style: normal; }

.resume-record-application {
  display: grid;
  align-content: start;
  gap: 5px;
  padding-top: 28px;
}

.resume-record-application dl {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
  margin: 0;
  font-size: 12px;
}

.resume-record-application dt { color: #737c88; }
.resume-record-application dd {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #303743;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-record-application .resume-ai-score {
  min-width: 88px;
  max-width: 230px;
  padding: 0;
  font-size: 12px;
}

.resume-record-application .resume-ai-score > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-record-application .resume-ai-score.is-failed { color: #d42d3a; }

.resume-record-application .resume-ai-score > i { width: 38px; height: 6px; }
.resume-record-application .resume-source-display { gap: 5px; font-size: 12px; }
.resume-record-application .resume-source-display i { font-size: 14px; }
.resume-record-application .resume-table-status { min-height: 22px; padding: 0 8px; font-size: 11px; }

.resume-row-actions {
  display: grid;
  align-self: center;
  overflow: hidden;
  border: 1px solid #d7dee8;
  border-radius: 9px;
  background: #fff;
}

.resume-row-actions button {
  min-height: 34px;
  padding: 0 10px;
  border: 0;
  border-bottom: 1px solid #e3e8ef;
  background: #fff;
  color: #425064;
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
}

.resume-row-actions button:last-child {
  border-bottom: 0;
}

.resume-row-actions button:hover {
  background: #f1f6fd;
  color: #1557a8;
}

.resume-row-actions button.is-default {
  background: #2468c9;
  color: #fff;
}

.resume-row-actions button.is-default:hover {
  background: #1d5bb4;
}

.resume-row-actions button.is-danger {
  color: #b42318;
}

.resume-row-actions button.is-danger:hover {
  background: #fff2f1;
  color: #a11d14;
}

#resumes .resume-table-empty {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: #7c8490 !important;
  text-align: center !important;
}

#resumes .resume-center-pagination {
  min-height: 64px;
  padding: 12px 4px 0;
  border-top: 0;
  background: #fff;
  font-size: 12px;
}

@media (max-width: 1120px) {
  .resume-stage-summary { grid-template-columns: repeat(10, minmax(94px, 1fr)); }
  .resume-candidate-record { grid-template-columns: 40px minmax(340px, 1fr) minmax(270px, 0.8fr) 108px; }
  .resume-history-line { grid-template-columns: 112px minmax(0, 1fr); }
}

@media (max-width: 820px) {
  .resume-candidate-record { grid-template-columns: 36px minmax(0, 1fr); }
  .resume-record-application { grid-column: 2; padding-top: 4px; }
  .resume-row-actions {
    grid-column: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-self: stretch;
  }
  .resume-row-actions button {
    border-right: 1px solid #e3e8ef;
    border-bottom: 0;
  }
  .resume-row-actions button:last-child { border-right: 0; }
  #resumes .resume-center-filters { align-items: stretch; flex-direction: column; }
  #resumes .resume-center-filter-actions { justify-content: flex-end; }
}

@media (max-width: 560px) {
  .resume-center-surface { padding: 10px; }
  .resume-history-line { grid-template-columns: 1fr; gap: 2px; }
  .resume-record-application dl { grid-template-columns: 66px minmax(0, 1fr); }
  #resumes .resume-center-filter-fields label { width: 100%; justify-content: space-between; }
}

.resume-review-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}

.resume-review-summary button {
  display: grid;
  min-height: 76px;
  align-content: center;
  gap: 5px;
  padding: 12px 16px;
  border: 1px solid #e1e6ec;
  border-radius: 12px;
  background: #fff;
  color: #66707d;
  text-align: left;
}

.resume-review-summary button:hover { border-color: #a8bfdc; }
.resume-review-summary button.is-active {
  border-color: #2c6dce;
  box-shadow: 0 0 0 2px rgb(44 109 206 / 10%);
  background: #f5f9ff;
  color: #1d5bb4;
}

.resume-review-summary strong { color: #1f2630; font-size: 24px; line-height: 1; }
.resume-review-summary button.is-active strong { color: #1d5bb4; }
.resume-review-summary span { font-size: 12px; font-weight: 700; }

.feishu-hire-connection {
  display: flex;
  min-height: 40px;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding: 8px 12px;
  border: 1px solid #e2e6ec;
  border-radius: 9px;
  background: #f8fafc;
  color: #66707d;
  font-size: 12px;
}

.feishu-hire-connection i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d92d20;
}

.feishu-hire-connection.is-connected { border-color: #b7e7ca; background: #f2fff7; }
.feishu-hire-connection.is-connected i { background: #12a150; }
.feishu-hire-connection strong { color: #242b35; }

.resume-table-status.review-pending { border-color: #d8dee7; color: #596273; background: #f5f7fa; }
.resume-table-status.review-rejected { border-color: #ffc6c2; color: #b42318; background: #fff2f1; }
.resume-table-status.review-approved { border-color: #b7d4ff; color: #1557a8; background: #f1f7ff; }
.resume-table-status.review-synced { border-color: #a8e6c1; color: #08783b; background: #effcf4; }
.resume-table-status.review-syncing { border-color: #ffd69a; color: #a95a00; background: #fff8eb; }
.resume-table-status.review-sync-failed { border-color: #ffc6c2; color: #b42318; background: #fff2f1; }

.resume-review-state dd {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.resume-review-state small {
  overflow: hidden;
  color: #7a828d;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-inline-review-actions {
  position: absolute;
  right: 126px;
  bottom: 15px;
  display: flex;
  align-items: center;
  gap: 7px;
}

.resume-inline-review-actions button {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid #d7dee8;
  border-radius: 7px;
  background: #fff;
  color: #4f5967;
  font-size: 11px;
  font-weight: 750;
}

.resume-inline-review-actions .resume-approve-button,
.resume-inline-review-actions .resume-sync-button {
  border-color: #2d6fce;
  background: #2d6fce;
  color: #fff;
}

.resume-inline-review-actions .resume-reject-button {
  border-color: #f0b5b0;
  color: #b42318;
  background: #fff7f6;
}

.resume-inline-review-actions button:disabled { cursor: wait; opacity: 0.6; }

.resume-review-dialog {
  width: min(560px, calc(100vw - 32px));
  padding: 0;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 24px 80px rgb(25 34 48 / 28%);
}

.resume-review-dialog::backdrop { background: rgb(17 24 39 / 44%); }
.resume-review-dialog form { display: grid; gap: 18px; padding: 22px; }
.resume-review-dialog header { display: flex; align-items: flex-start; justify-content: space-between; }
.resume-review-dialog header div { display: grid; gap: 4px; }
.resume-review-dialog header span { color: #758090; font-size: 11px; font-weight: 700; }
.resume-review-dialog header strong { color: #202833; font-size: 18px; }
.resume-review-dialog header button { border: 0; background: transparent; color: #717987; font-size: 24px; }
.resume-review-dialog label { display: grid; gap: 7px; color: #414a57; font-size: 12px; font-weight: 700; }
.resume-review-dialog select,
.resume-review-dialog textarea {
  width: 100%;
  border: 1px solid #d8dee7;
  border-radius: 8px;
  background: #fff;
  color: #26303b;
  font: inherit;
}
.resume-review-dialog select { height: 40px; padding: 0 10px; }
.resume-review-dialog textarea { padding: 10px; resize: vertical; }
.resume-review-dialog label small { color: #7b8491; font-size: 10px; font-weight: 500; }
.resume-review-dialog footer { display: flex; justify-content: flex-end; gap: 8px; }
.resume-review-dialog .is-danger { border-color: #d92d20; background: #d92d20; color: #fff; }

@media (max-width: 980px) {
  .resume-review-summary { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .resume-inline-review-actions { position: static; grid-column: 2 / -1; justify-self: start; }
}

@media (max-width: 560px) {
  .resume-review-summary { grid-template-columns: 1fr; }
  .resume-inline-review-actions { grid-column: 2; flex-wrap: wrap; }
}

.zhaopin-other-filter-row { display: flex; align-items: flex-start; gap: 20px; margin-top: 12px; padding-top: 14px; border-top: 1px solid #eef1f7; }
.zhaopin-other-filter-label { flex: 0 0 120px; padding-top: 9px; color: #65708b; }
.zhaopin-other-filter-list { display: flex; flex-wrap: wrap; gap: 10px 12px; min-width: 0; }
.zhaopin-other-filter-item { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 10px; border: 0; border-radius: 6px; background: transparent; color: #111b32; font: inherit; cursor: pointer; }
.zhaopin-other-filter-item:hover, .zhaopin-other-filter-item.is-active { background: #edf1ff; color: #416dff; }
.zhaopin-filter-caret { color: #8a95aa; font-size: 14px; }
.zhaopin-more-filter-panel { margin: 4px 0 0 140px; padding-top: 12px; border-top: 1px dashed #e2e8f5; }
@media (max-width: 720px) { .zhaopin-other-filter-row { display: block; } .zhaopin-other-filter-label { margin-bottom: 8px; } .zhaopin-more-filter-panel { margin-left: 0; } }
.zhaopin-filter-popover { position: absolute; z-index: 30; margin-top: 8px; min-width: 260px; max-width: 420px; padding: 14px; border: 1px solid #dfe5f2; border-radius: 8px; background: #fff; box-shadow: 0 12px 30px rgba(26,42,76,.16); }
.zhaopin-filter-popover-title { margin-bottom: 10px; font-weight: 600; color: #17213b; }
.zhaopin-filter-popover-options { display: flex; flex-wrap: wrap; gap: 8px; }
.zhaopin-filter-popover-option { border: 1px solid #dfe5f2; border-radius: 5px; padding: 7px 10px; background: #fff; color: #34405c; cursor: pointer; }
.zhaopin-filter-popover-option.is-active { border-color: #416dff; background: #edf1ff; color: #416dff; }
.zhaopin-filter-popover-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.zhaopin-filter-popover-actions button { border: 0; border-radius: 5px; padding: 7px 14px; cursor: pointer; }
.zhaopin-filter-popover-actions button:last-child { background: #416dff; color: #fff; }
/* 智联搜索页视觉覆盖：贴近真实页面的紧凑筛选布局 */
.zhaopin-search-toolbar { display: flex; align-items: center; gap: 0; padding: 16px 24px; background: #fff; border-bottom: 1px solid #edf0f5; }
.zhaopin-city-select { display: flex; align-items: center; height: 40px; padding-right: 18px; border-right: 1px solid #e6e9f0; }
.zhaopin-city-select::before { content: "城市"; margin-right: 8px; color: #333; font-size: 14px; }
.zhaopin-city-select select { width: 82px; height: 32px; padding: 0 20px 0 4px; border: 0; border-radius: 0; color: #222; font-size: 14px; font-weight: 400; outline: 0; }
.zhaopin-keyword-box { flex: 1; height: 40px; margin-left: 16px; border: 1px solid #dfe3eb; border-radius: 4px; background: #fff; }
.zhaopin-position-scope { flex: 0 0 128px; padding: 0 14px; border-right: 1px solid #e9ecf2; color: #333; font-size: 14px; font-weight: 400; }
.zhaopin-keyword-box .sourcing-row-input { height: 38px; padding: 0 14px; font-size: 14px; }
.zhaopin-search-button { flex: 0 0 88px; height: 40px; margin-left: 12px; border: 0; border-radius: 4px; background: #2878f0; font-size: 14px; font-weight: 400; }
.zhaopin-filter-card { padding: 16px 24px 0; border-radius: 0; background: #fff; }
.zhaopin-filter-card .liepin-filter-row { grid-template-columns: 86px minmax(0, 1fr); min-height: 42px; align-items: start; }
.zhaopin-filter-card .liepin-filter-label { padding-top: 7px; color: #666; font-size: 14px; }
.zhaopin-filter-card .liepin-filter-options { gap: 6px 22px; }
.zhaopin-filter-card .liepin-filter-option { min-width: auto; padding: 6px 10px; border-radius: 2px; color: #333; font-size: 14px; }
.zhaopin-filter-card .liepin-filter-option.is-active { background: #eaf2ff; color: #2878f0; font-weight: 400; }
.zhaopin-clear-button { top: 18px; right: 24px; color: #999; font-size: 13px; }
.zhaopin-other-filter-row { display: flex; gap: 0; margin-top: 4px; padding: 12px 0 14px; border-top: 1px solid #f0f1f4; }
.zhaopin-other-filter-label { flex: 0 0 86px; padding-top: 7px; color: #666; font-size: 14px; }
.zhaopin-other-filter-list { gap: 6px 8px; }
.zhaopin-other-filter-item { min-height: 30px; padding: 5px 10px; border-radius: 2px; color: #333; font-size: 14px; }
.zhaopin-other-filter-item:hover, .zhaopin-other-filter-item.is-active { background: #eaf2ff; color: #2878f0; }
.zhaopin-more-filter-panel { margin: 0 0 0 86px; padding: 10px 0 4px; border-top: 1px solid #f5f5f5; }
.zhaopin-filter-popover { left: 86px; top: 100%; margin-top: 2px; border-radius: 4px; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.zhaopin-search-guide { display: none; }
/* 真实智联页面尺寸校准 */
.zhaopin-search-toolbar { height: 78px; box-sizing: border-box; padding: 16px 0; background: #fff; }
.zhaopin-city-select { flex: 0 0 112px; width: 112px; height: 46px; box-sizing: border-box; padding: 0 10px 0 0; border-right: 0; border-radius: 16px 0 0 16px; background: #f7f8fb; }
.zhaopin-city-select::before { content: none; }
.zhaopin-city-select select { width: 100%; height: 46px; padding: 0 18px; border: 0; border-radius: 16px 0 0 16px; background: #f7f8fb; font-size: 14px; }
.zhaopin-keyword-box { height: 46px; margin-left: 0; border: 1px solid #e5e7ed; border-left: 0; border-radius: 0; }
.zhaopin-position-scope { flex-basis: 128px; height: 46px; padding: 0 14px; border-right: 1px solid #e5e7ed; }
.zhaopin-keyword-box .sourcing-row-input { height: 44px; }
.zhaopin-search-button { flex-basis: 100px; height: 46px; margin-left: 0; border-radius: 0 16px 16px 0; background: #426eff; font-size: 16px; }
.zhaopin-filter-card { padding: 8px 0 0; }
.zhaopin-filter-card .liepin-filter-row { grid-template-columns: 82px minmax(0, 1fr); min-height: 34px; }
.zhaopin-filter-card .liepin-filter-label { padding-top: 7px; font-size: 13px; }
.zhaopin-filter-card .liepin-filter-options { gap: 0 20px; }
.zhaopin-filter-card .liepin-filter-option { height: 34px; padding: 0; font-size: 13px; }
.zhaopin-other-filter-row { height: 40px; box-sizing: border-box; margin-top: 4px; padding: 0; }
.zhaopin-other-filter-label { flex-basis: 82px; padding-top: 10px; font-size: 13px; }
.zhaopin-other-filter-list { flex-wrap: nowrap; gap: 0 18px; overflow: hidden; }
.zhaopin-other-filter-item { min-height: 36px; padding: 0; border-radius: 0; font-size: 13px; white-space: nowrap; }
.zhaopin-filter-caret { margin-left: 4px; color: #999; }
.zhaopin-more-filter-panel { margin-left: 82px; }
.zhaopin-filter-card .liepin-filter-row { padding: 0; }
.zhaopin-filter-card { padding-top: 0; }
