/* 合并自原 workbench.css */
/* JobMorse professional recruiting workbench. This layer intentionally
   supersedes the legacy portal and local Scout decorative styles. */
:root { --jm-ink:#17212b; --jm-muted:#64748b; --jm-line:#dbe3ed; --jm-surface:#fff; --jm-canvas:#f4f7fa; --jm-blue:#1769e0; --jm-blue-dark:#0e54b7; --jm-green:#16805c; --jm-red:#c2414d; --jm-radius:12px; font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif; color:var(--jm-ink); background:var(--jm-canvas); }
* { box-sizing:border-box; } body { margin:0; min-width:320px; background:var(--jm-canvas); color:var(--jm-ink); font-family:inherit; } button,input,select { font:inherit; } button { cursor:pointer; } button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid rgba(23,105,224,.28); outline-offset:2px; } [hidden] { display:none!important; }
.auth-screen { min-height:100vh; display:grid; place-items:center; padding:32px; background:linear-gradient(145deg,#edf3fa,#f8fafc 55%,#e4edf8); }.auth-card { width:min(440px,100%); background:#fff; padding:44px; border:1px solid var(--jm-line); border-radius:18px; box-shadow:0 24px 60px rgba(15,31,50,.13); }.auth-card h1 { font-size:30px; margin:20px 0 10px; letter-spacing:-.03em; }.auth-card>p { color:var(--jm-muted); line-height:1.7; margin:0 0 26px; }.brand-mark { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:9px; background:var(--jm-blue); color:#fff; font-size:12px; font-weight:800; letter-spacing:-.05em; }.auth-card .brand-mark { width:42px; height:42px; border-radius:12px; }
.eyebrow { margin:0; color:#5d7188; font-size:11px; line-height:1.2; font-weight:800; letter-spacing:.13em; }.auth-card label,.form-grid label { display:grid; gap:8px; color:#344155; font-size:13px; font-weight:700; }.auth-card label+label { margin-top:16px; } input,select { width:100%; min-height:42px; padding:9px 11px; border:1px solid #c8d4e0; border-radius:8px; background:#fff; color:var(--jm-ink); }.auth-card .button { width:100%; margin-top:24px; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:232px minmax(0,1fr); }.sidebar { position:sticky; top:0; align-self:start; height:100vh; display:flex; flex-direction:column; padding:22px 14px; background:#132131; color:#dbe6f1; border-right:1px solid #24384e; }.sidebar-brand { display:flex; align-items:center; gap:10px; padding:0 10px 28px; color:#fff; font-size:19px; font-weight:750; letter-spacing:-.02em; }.sidebar-brand .brand-mark { background:#2b80ef; }.nav-list { display:grid; gap:5px; }.nav-item { width:100%; display:flex; align-items:center; gap:12px; min-height:42px; padding:0 12px; border:0; border-radius:8px; color:#b8c7d6; background:transparent; text-align:left; font-size:14px; font-weight:650; }.nav-item>span { width:16px; text-align:center; font-size:18px; font-weight:400; }.nav-item:hover { background:#1d334a; color:#fff; }.nav-item.is-active { background:#204b77; color:#fff; box-shadow:inset 3px 0 0 #63a8ff; }.sidebar-footer { margin-top:auto; padding:16px 0 4px; border-top:1px solid #2a3d52; }.sidebar-footer p { margin:16px 12px 0; color:#8fa4ba; font-size:11px; line-height:1.65; }
.workspace { min-width:0; padding:0 36px 44px; }.topbar { min-height:106px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--jm-line); }.topbar h1 { margin:4px 0 0; font-size:24px; letter-spacing:-.025em; }.topbar-actions,.user-menu { display:flex; align-items:center; gap:10px; }.user-menu { color:#4d5f72; font-size:13px; }.agent-dot { display:inline-flex; align-items:center; gap:7px; color:#53657a; font-size:12px; }.agent-dot i { width:8px; height:8px; background:#f59e0b; border-radius:50%; }.button { min-height:38px; padding:0 14px; border:1px solid transparent; border-radius:8px; font-size:13px; font-weight:750; transition:background .16s,border-color .16s,transform .16s; }.button:active { transform:translateY(1px); }.button-primary { background:var(--jm-blue); color:#fff; }.button-primary:hover { background:var(--jm-blue-dark); }.button-secondary { background:#fff; border-color:#cbd6e2; color:#26384b; }.button-secondary:hover { border-color:#7fa8d7; background:#f5f9fe; }.button-quiet { background:transparent; color:#4f6073; }.button-quiet:hover { background:#edf2f7; }
.view { display:none; padding-top:28px; }.view.is-active { display:block; }.privacy-banner { display:flex; gap:12px; align-items:center; padding:13px 16px; color:#35465c; background:#eaf2ff; border:1px solid #cbdefa; border-radius:9px; font-size:13px; }.privacy-banner strong { color:#164b95; }.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:20px 0; }.metrics article { min-height:135px; display:flex; flex-direction:column; padding:20px; background:var(--jm-surface); border:1px solid var(--jm-line); border-radius:var(--jm-radius); box-shadow:0 2px 4px rgba(25,43,61,.025); }.metrics span { color:var(--jm-muted); font-size:12px; font-weight:650; }.metrics strong { margin:12px 0 6px; font-size:32px; letter-spacing:-.04em; }.metrics small { color:#7a8999; font-size:12px; }.metrics .metric-agent { border-top:3px solid #5295ed; }.metrics .metric-agent strong { font-size:22px; margin-top:17px; }.action-strip { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 24px; background:#172b43; color:#fff; border-radius:var(--jm-radius); }.action-strip .eyebrow { color:#9cc5f7; }.action-strip h2 { margin:7px 0; font-size:19px; }.action-strip p:not(.eyebrow) { margin:0; color:#c6d5e5; font-size:13px; }.action-strip .button { flex:0 0 auto; background:#3a91f3; }.today-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(320px,.85fr); gap:20px; margin-top:20px; }.panel { background:#fff; border:1px solid var(--jm-line); border-radius:var(--jm-radius); box-shadow:0 2px 4px rgba(25,43,61,.025); }.panel-heading { display:flex; justify-content:space-between; align-items:start; gap:14px; padding:20px 20px 14px; border-bottom:1px solid #e6edf4; }.panel h2 { margin:5px 0 0; font-size:18px; letter-spacing:-.02em; }.text-button { padding:4px 0; color:var(--jm-blue); border:0; background:none; font-size:13px; font-weight:750; }.priority-list,.activity-list { margin:0; padding:8px 20px 16px; list-style:none; }.priority-item { display:grid; grid-template-columns:8px 1fr auto; gap:12px; align-items:center; min-height:66px; padding:12px 0; border-bottom:1px solid #edf1f5; }.priority-item:last-child,.activity-item:last-child { border-bottom:0; }.priority-item i { width:8px; height:8px; border-radius:50%; background:#e8a33a; }.priority-item strong { display:block; font-size:14px; }.priority-item small { display:block; margin-top:4px; color:var(--jm-muted); font-size:12px; }.activity-item { padding:15px 0; border-bottom:1px solid #edf1f5; color:#3a4c5f; font-size:13px; line-height:1.55; }.activity-item time { display:block; margin-top:4px; color:#8491a0; font-size:11px; }
.section-toolbar { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:18px; }.section-toolbar h2 { margin:5px 0; font-size:22px; }.section-toolbar p:not(.eyebrow) { margin:0; color:var(--jm-muted); font-size:13px; }.jobs-layout { display:grid; grid-template-columns:minmax(430px,1.3fr) minmax(300px,.7fr); gap:20px; }.job-table { overflow:hidden; }.job-table-header,.job-row { display:grid; grid-template-columns:minmax(150px,1.4fr) .8fr .65fr .6fr; gap:12px; align-items:center; }.job-table-header { padding:14px 18px; color:#748397; background:#f6f8fb; border-bottom:1px solid var(--jm-line); font-size:11px; font-weight:750; }.job-row { width:100%; min-height:78px; padding:13px 18px; border:0; border-bottom:1px solid #e8eef4; background:#fff; color:inherit; text-align:left; }.job-row:hover,.job-row.is-selected { background:#f1f7ff; }.job-row strong { display:block; font-size:14px; }.job-row small { display:block; margin-top:4px; color:#78889a; font-size:11px; }.status-chip { display:inline-flex; align-items:center; min-height:24px; padding:0 8px; border-radius:999px; font-size:11px; font-weight:750; white-space:nowrap; }.status-active { color:#08654a; background:#dff6ed; }.status-waiting { color:#915d00; background:#fff1d1; }.status-paused { color:#596879; background:#e8edf2; }.job-detail { min-height:340px; padding:22px; }.job-detail h2 { margin:8px 0 4px; }.job-detail>p { color:var(--jm-muted); font-size:13px; }.detail-meta { display:grid; gap:12px; margin:22px 0; }.detail-meta div { display:flex; justify-content:space-between; gap:12px; padding-bottom:12px; border-bottom:1px solid #edf1f5; }.detail-meta dt { color:#768698; font-size:12px; }.detail-meta dd { margin:0; font-size:13px; font-weight:700; }.empty-state { display:grid; place-items:center; min-height:260px; padding:36px; text-align:center; color:#748397; }.empty-state strong { color:#34465a; font-size:16px; }.empty-panel { max-width:720px; padding:34px; }.empty-panel h2 { margin:8px 0; font-size:22px; }.empty-panel p:not(.eyebrow) { color:var(--jm-muted); line-height:1.7; }.automation-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:20px; }.automation-layout .panel,.settings-panel { padding:28px; }.automation-layout h2,.settings-panel h2 { margin:8px 0 12px; font-size:21px; }.automation-layout p:not(.eyebrow),.settings-panel p:not(.eyebrow) { color:var(--jm-muted); line-height:1.7; }.definition-list { margin:24px 0; }.definition-list div { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid #e9eff5; }.definition-list dt,.definition-list dd { margin:0; font-size:13px; }.definition-list dt { color:#6a7b8f; }.definition-list dd { font-weight:700; }.inline-notice { display:inline-block; padding:10px 12px; background:#f4f7fa; border-radius:8px; }
.modal { width:min(560px,calc(100% - 32px)); padding:0; border:1px solid #c7d4e1; border-radius:16px; box-shadow:0 24px 70px rgba(8,25,43,.28); color:var(--jm-ink); }.modal::backdrop { background:rgba(14,28,44,.54); }.modal form,.modal>section { padding:26px; }.modal header { display:flex; align-items:start; justify-content:space-between; gap:20px; }.modal header h2 { margin:7px 0 0; font-size:23px; }.modal footer { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }.modal-wide { width:min(720px,calc(100% - 32px)); }.icon-button { display:grid; place-items:center; width:34px; height:34px; border:1px solid #d2dce6; border-radius:8px; background:#fff; color:#56677a; font-size:24px; line-height:1; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; }.form-message { min-height:20px; margin:12px 0 0; color:var(--jm-red); font-size:12px; }.modal-lead { color:#637386; line-height:1.65; }.member-list { display:grid; gap:8px; margin-top:20px; }.member-row { display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center; padding:14px; border:1px solid #dce5ed; border-radius:9px; }.member-row strong { display:block; font-size:14px; }.member-row small { display:block; margin-top:3px; color:#708195; font-size:12px; }.member-actions { display:flex; align-items:center; gap:8px; }.member-actions select { width:auto; min-height:34px; padding:4px 8px; font-size:12px; }.danger-button { min-height:34px; padding:0 9px; border:1px solid #f0b5ba; border-radius:7px; color:#b52835; background:#fff; font-size:12px; font-weight:750; }.member-form { margin-top:22px; padding-top:22px; border-top:1px solid #dce5ed; }.member-form h3 { margin:0; font-size:16px; }.checkbox-row { display:flex; gap:8px; align-items:center; margin-top:15px; color:#43566b; font-size:13px; font-weight:650; }.checkbox-row input { width:16px; min-height:auto; height:16px; }.toast-region { position:fixed; right:24px; bottom:24px; z-index:10; display:grid; gap:8px; }.toast { min-width:260px; max-width:420px; padding:13px 15px; border-radius:9px; background:#1b2a3a; color:#fff; box-shadow:0 12px 28px rgba(12,28,46,.22); font-size:13px; }.toast.is-success { background:#086b50; }.toast.is-error { background:#a52f3d; }
@media (max-width:1180px) { .workspace { padding:0 24px 36px; }.metrics { grid-template-columns:repeat(2,1fr); }.jobs-layout,.today-grid { grid-template-columns:1fr; }.job-detail { min-height:auto; }.automation-layout { grid-template-columns:1fr; } }
@media (max-width:760px) { .app-shell { grid-template-columns:1fr; }.sidebar { position:static; height:auto; padding:12px; border-right:0; }.sidebar-brand { padding:0 8px 12px; }.nav-list { grid-template-columns:repeat(3,1fr); }.nav-item { justify-content:center; min-height:38px; padding:0 6px; font-size:11px; }.nav-item>span { display:none; }.sidebar-footer { display:none; }.workspace { padding:0 16px 28px; }.topbar { min-height:auto; align-items:start; padding:20px 0; }.topbar-actions { align-items:flex-end; flex-direction:column; }.user-menu { gap:6px; }.agent-dot { display:none; }.privacy-banner { align-items:start; flex-direction:column; gap:4px; }.metrics { grid-template-columns:1fr 1fr; gap:10px; }.metrics article { min-height:110px; padding:14px; }.metrics strong { font-size:25px; }.action-strip { align-items:start; flex-direction:column; padding:18px; }.today-grid { gap:12px; margin-top:12px; }.section-toolbar { align-items:start; flex-direction:column; }.job-table-header { display:none; }.job-row { grid-template-columns:1fr auto; }.job-row>span:nth-of-type(2),.job-row>span:nth-of-type(3) { display:none; }.form-grid { grid-template-columns:1fr; }.modal form,.modal>section { padding:20px; }.member-row { grid-template-columns:1fr; }.member-actions { justify-content:space-between; }.toast-region { right:16px; bottom:16px; left:16px; }.toast { min-width:0; max-width:none; } }

/* 合并自原 workbench-v2.css */
/* Visual refresh: quieter density, white navigation, and a precise blue action system. */
:root { --jm-ink:#162033; --jm-muted:#6b778c; --jm-line:#e4e8ef; --jm-surface:#fff; --jm-canvas:#f6f7f9; --jm-blue:#155eef; --jm-blue-dark:#0b46bd; --jm-blue-soft:#eff4ff; --jm-green:#067647; --jm-red:#b42318; --jm-radius:14px; font-family:"PingFang SC","Microsoft YaHei",Inter,-apple-system,BlinkMacSystemFont,sans-serif; }
body { background:var(--jm-canvas); }
.auth-screen { background:#f8fafc; }
.auth-card { border-color:var(--jm-line); border-radius:20px; box-shadow:0 20px 52px rgba(16,24,40,.08); }
.brand-mark { background:var(--jm-ink); }
.auth-card h1 { font-size:28px; letter-spacing:-.045em; }
.auth-card>p { font-size:14px; }
.app-shell { grid-template-columns:248px minmax(0,1fr); }
.sidebar { padding:24px 14px 18px; border-right-color:var(--jm-line); background:#fff; color:var(--jm-ink); }
.sidebar-brand { padding:0 12px 30px; color:#182230; font-size:18px; font-weight:780; letter-spacing:-.03em; }
.sidebar-brand .brand-mark { background:var(--jm-blue); }
.nav-list { gap:4px; }
.nav-item { min-height:42px; padding:0 12px; border-radius:8px; color:#475467; font-size:13px; font-weight:700; }
.nav-item>span { display:none; }
.nav-item:hover { background:#f5f7fb; color:#182230; }
.nav-item.is-active { background:var(--jm-blue-soft); color:var(--jm-blue); box-shadow:none; }
.sidebar-footer { border-top-color:var(--jm-line); }.sidebar-footer p { color:#98a2b3; }
.workspace { padding:0 42px 48px; }
.topbar { min-height:104px; border-bottom-color:var(--jm-line); }.topbar h1 { font-size:27px; letter-spacing:-.05em; }
.agent-dot { padding:8px 10px; border-radius:999px; background:#f8fafc; color:#667085; }.agent-dot i { width:7px; height:7px; background:#f79009; box-shadow:0 0 0 3px #fef0c7; }
.button { border-radius:8px; }.button-primary { background:var(--jm-blue); box-shadow:0 1px 2px rgba(16,24,40,.12); }.button-primary:hover { background:var(--jm-blue-dark); }.button-secondary { border-color:#d0d5dd; color:#344054; }.button-secondary:hover { border-color:#98a2b3; background:#f9fafb; }.button-quiet { color:#475467; }
.view { padding-top:28px; }
.privacy-banner { padding:11px 14px; border-color:#dbe7ff; border-radius:10px; background:#f5f8ff; color:#475467; }.privacy-banner strong { color:#175cd3; }
.metrics { gap:12px; margin:18px 0; }.metrics article { min-height:124px; padding:18px 20px; border-color:var(--jm-line); border-radius:12px; box-shadow:none; }.metrics span { color:#667085; }.metrics strong { font-size:30px; letter-spacing:-.055em; }.metrics small { color:#98a2b3; }.metrics .metric-agent { border:1px solid #c7d7fe; background:#f7f9ff; }.metrics .metric-agent strong { color:#1849a9; font-size:20px; }
.action-strip { padding:24px; border:1px solid var(--jm-line); border-left:4px solid var(--jm-blue); border-radius:12px; background:#fff; }.action-strip .eyebrow { color:var(--jm-blue); }.action-strip h2 { font-size:20px; letter-spacing:-.035em; }.action-strip p:not(.eyebrow) { color:var(--jm-muted); }.action-strip .button { background:var(--jm-blue); }
.today-grid { gap:16px; margin-top:18px; }.panel { border-color:var(--jm-line); border-radius:12px; box-shadow:none; }.panel-heading { padding:18px 20px 14px; border-bottom-color:#eef1f5; }.panel h2 { font-size:17px; }.text-button { color:var(--jm-blue); }.priority-list,.activity-list { padding:7px 20px 12px; }.priority-item { min-height:68px; border-bottom-color:#eef1f5; }.priority-item i { background:#f79009; }.priority-item strong { color:#182230; }.priority-item small,.activity-item time { color:#98a2b3; }.activity-item { border-bottom-color:#eef1f5; color:#475467; }
.section-toolbar h2 { font-size:24px; letter-spacing:-.045em; }.jobs-layout { gap:16px; }.job-table-header { border-bottom-color:var(--jm-line); background:#f9fafb; color:#98a2b3; }.job-row { border-bottom-color:#eef1f5; }.job-row:hover,.job-row.is-selected { background:#f7faff; }.job-row.is-selected { box-shadow:inset 3px 0 0 var(--jm-blue); }.job-row small { color:#98a2b3; }.status-active { color:var(--jm-green); background:#e9f9ef; }.status-waiting { color:#b54708; background:#fff3e8; }.status-paused { color:#667085; background:#f2f4f7; }.job-detail h2 { font-size:20px; }.detail-meta div { border-bottom-color:#eef1f5; }.detail-meta dt { color:#98a2b3; }.detail-meta dd { color:#344054; }
.empty-panel { padding:32px; }.empty-panel h2,.automation-layout h2,.settings-panel h2 { letter-spacing:-.035em; }.automation-layout { gap:16px; }.automation-layout .panel,.settings-panel { padding:28px; }.definition-list div { border-bottom-color:#eef1f5; }.definition-list dt { color:#667085; }
.modal { border-color:#d0d5dd; border-radius:16px; box-shadow:0 24px 68px rgba(16,24,40,.22); }.modal::backdrop { background:rgba(16,24,40,.48); }.modal header h2 { letter-spacing:-.04em; }.icon-button { border-color:#d0d5dd; color:#667085; }.member-row { border-color:var(--jm-line); border-radius:10px; }.member-row small { color:#98a2b3; }.danger-button { border-color:#fecdca; color:var(--jm-red); }.member-form { border-top-color:var(--jm-line); }.toast { background:#182230; }.toast.is-success { background:#067647; }.toast.is-error { background:#b42318; }
@media (max-width:1180px) { .workspace { padding:0 26px 38px; } }
@media (max-width:760px) { .sidebar { border-right:0; border-bottom-color:var(--jm-line); }.workspace { padding:0 16px 28px; }.topbar h1 { font-size:23px; }.action-strip { padding:20px; } }

.greeting-preview {
  margin: 18px 0;
  padding: 16px;
  min-height: 92px;
  border: 1px solid var(--canva-line);
  border-radius: 8px;
  background: #f8f8f3;
  color: var(--canva-ink);
  line-height: 1.75;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* 合并自原 workbench-canva.css（最终生效层） */
/* Selected Canva direction: editorial, calm, and deliberately spacious. */
:root {
  --canva-canvas: #f7f6f0;
  --canva-paper: #fffefa;
  --canva-ink: #3f4440;
  --canva-muted: #80847d;
  --canva-line: #e7e4da;
  --canva-moss: #788756;
  --canva-moss-dark: #607143;
  --canva-moss-soft: #eff2e7;
  --canva-blush: #ead1c7;
  --canva-mint: #9eb8a9;
  --jm-canvas: var(--canva-canvas);
  --jm-surface: var(--canva-paper);
  --jm-ink: var(--canva-ink);
  --jm-muted: var(--canva-muted);
  --jm-line: var(--canva-line);
  --jm-blue: var(--canva-moss);
  --jm-blue-dark: var(--canva-moss-dark);
  --jm-blue-soft: var(--canva-moss-soft);
  --jm-radius: 10px;
  color: var(--canva-ink);
  font-family: "Avenir Next", "PingFang SC", "Hiragino Sans GB", sans-serif;
}

body,
.auth-screen { background: var(--canva-canvas); }

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

.sidebar {
  padding: 28px 18px 22px;
  background: var(--canva-paper);
  color: var(--canva-ink);
  border-right: 1px solid var(--canva-line);
}

.sidebar-brand {
  gap: 11px;
  padding: 0 11px 42px;
  color: var(--canva-ink);
  font-size: 18px;
  font-weight: 720;
  letter-spacing: -.045em;
}

.brand-mark,
.sidebar-brand .brand-mark {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--canva-moss);
  font-size: 10px;
}

.nav-list { gap: 8px; }
.nav-item {
  min-height: 39px;
  padding: 0 12px;
  border-radius: 6px;
  color: #696d66;
  font-size: 13px;
  font-weight: 650;
}
.nav-item > span { display: none; }
.nav-item:hover { background: #f5f4ed; color: var(--canva-ink); }
.nav-item.is-active {
  background: var(--canva-moss-soft);
  color: var(--canva-moss-dark);
  box-shadow: none;
}
.sidebar-footer { border-top-color: var(--canva-line); }
.sidebar-footer p { color: #a0a39b; }

.workspace { padding: 0 56px 64px; }
.topbar {
  min-height: 112px;
  border-bottom-color: var(--canva-line);
}
.topbar h1 {
  margin-top: 6px;
  font-size: 31px;
  font-weight: 650;
  letter-spacing: -.075em;
}
.eyebrow { color: var(--canva-moss); letter-spacing: .16em; }
.topbar-actions { gap: 14px; }
.user-menu { color: #72766f; font-size: 12px; }
.agent-dot {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f2f2ec;
  color: #767a73;
}
.agent-dot i { background: #d5a24e; box-shadow: 0 0 0 3px #fff5dc; }

.button { min-height: 36px; border-radius: 18px; font-size: 12px; font-weight: 700; }
.button-primary,
.action-strip .button { background: var(--canva-moss); box-shadow: none; }
.button-primary:hover,
.action-strip .button:hover { background: var(--canva-moss-dark); }
.button-secondary { border-color: #deddd4; color: #555a53; background: var(--canva-paper); }
.button-secondary:hover { border-color: #bbbdb2; background: #f8f8f2; }
.button-quiet { color: #6f736c; }

.view { padding-top: 34px; }
.privacy-banner {
  padding: 12px 15px;
  border-color: #e2e5d8;
  border-radius: 6px;
  background: #f4f6ef;
  color: #73776f;
}
.privacy-banner strong { color: var(--canva-moss-dark); }

.metrics { gap: 14px; margin: 22px 0 16px; }
.metrics article {
  min-height: 118px;
  padding: 17px 19px;
  border-color: var(--canva-line);
  border-radius: 7px;
  box-shadow: none;
}
.metrics article:nth-child(2) { background: #fffaf4; }
.metrics article:nth-child(3) { background: #fbfcf7; }
.metrics span { color: #8b8d86; }
.metrics strong {
  margin: 10px 0 4px;
  color: var(--canva-ink);
  font-size: 30px;
  font-weight: 610;
  letter-spacing: -.07em;
}
.metrics small { color: #a1a39b; }
.metrics .metric-agent { border: 1px solid #d8e2d7; background: #f7fbf6; }
.metrics .metric-agent strong { color: var(--canva-moss-dark); font-size: 19px; }

.action-strip {
  align-items: center;
  padding: 22px 24px;
  border: 1px solid var(--canva-line);
  border-left: 2px solid var(--canva-moss);
  border-radius: 7px;
  background: var(--canva-paper);
  color: var(--canva-ink);
}
.action-strip .eyebrow { color: var(--canva-moss); }
.action-strip h2 { margin: 5px 0 4px; font-size: 19px; font-weight: 650; letter-spacing: -.05em; }
.action-strip p:not(.eyebrow) { color: #898c84; }
.action-strip .button { padding: 0 19px; }

.today-grid { grid-template-columns: minmax(0, 1.28fr) minmax(330px, .72fr); gap: 14px; margin-top: 16px; }
.panel { border-color: var(--canva-line); border-radius: 7px; box-shadow: none; }
.panel-heading { padding: 21px 23px 13px; border-bottom-color: var(--canva-line); }
.panel h2 { font-size: 17px; font-weight: 650; letter-spacing: -.04em; }
.text-button { color: var(--canva-moss-dark); }
.priority-list,.activity-list { padding: 7px 23px 13px; }
.priority-item { min-height: 68px; border-bottom-color: #efede6; }
.priority-item i { width: 7px; height: 7px; background: #d5a24e; }
.priority-item strong { font-weight: 650; }.priority-item small,.activity-item time { color: #a3a59d; }
.activity-item { color: #676b64; border-bottom-color: #efede6; }

.section-toolbar h2 { font-size: 27px; font-weight: 650; letter-spacing: -.065em; }
.section-toolbar p:not(.eyebrow) { color: #90938c; }
.jobs-layout { gap: 14px; }.job-table-header { border-bottom-color: var(--canva-line); background: #f5f4ee; color: #969991; }
.job-row { border-bottom-color: #efede6; }.job-row:hover,.job-row.is-selected { background: #f5f7ef; }
.job-row.is-selected { box-shadow: inset 2px 0 0 var(--canva-moss); }.job-row small { color: #a2a49d; }
.status-active { color: #526b47; background: #edf3e8; }.status-waiting { color: #9e6e28; background: #fff3e3; }.status-paused { color: #6f746e; background: #f0f0eb; }
.job-detail { padding: 25px; }.job-detail h2 { font-size: 21px; letter-spacing: -.05em; }.detail-meta div { border-bottom-color: #efede6; }

.empty-panel,.automation-layout .panel,.settings-panel { padding: 32px; }.definition-list div { border-bottom-color: #efede6; }
.modal { border-color: #dedcd1; border-radius: 12px; box-shadow: 0 24px 72px rgba(62, 65, 55, .19); }
.modal::backdrop { background: rgba(45, 49, 42, .4); }.icon-button { border-color: #deddd4; color: #72766d; }
.member-row { border-color: var(--canva-line); border-radius: 7px; }.member-form { border-top-color: var(--canva-line); }.toast { background: #4a5046; }.toast.is-success { background: var(--canva-moss-dark); }
.member-row { width:100%; background:var(--canva-paper); color:var(--canva-ink); text-align:left; cursor:pointer; }.member-row:hover,.member-row:focus-visible { background:#f5f7ef; outline:2px solid #c9d9c2; outline-offset:2px; }.member-role { color:var(--canva-moss-dark); font-size:12px; font-weight:700; white-space:nowrap; }.account-summary { display:grid; gap:4px; margin:21px 0 0; padding:13px 14px; border:1px solid var(--canva-line); border-radius:7px; background:#f8f8f4; }.account-summary span,.account-summary small { color:#8b8e87; font-size:12px; }.account-summary strong { font-size:16px; }.detail-hint { margin:18px 0 0; }.dialog-footer-spacer { flex:1; }

@media (max-width: 1180px) { .workspace { padding: 0 30px 44px; } }
@media (max-width: 760px) {
  .workspace { padding: 0 16px 32px; }
  .sidebar { border-bottom-color: var(--canva-line); }
  .topbar h1 { font-size: 25px; }
  .metrics { gap: 10px; }
}

.modal-steps { margin: 12px 0 0; padding-left: 20px; display: grid; gap: 8px; color: var(--canva-ink, #3c3f36); line-height: 1.6; }
.modal-steps code { background: rgba(0, 0, 0, .05); border-radius: 4px; padding: 1px 6px; font-size: .9em; }

.agent-link-box { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--canva-line, #e3e1d8); }
.agent-link-box h3 { margin: 0 0 8px; font-size: 16px; }
.agent-link-box code { background: rgba(0, 0, 0, .05); border-radius: 4px; padding: 2px 8px; font-size: .88em; word-break: break-all; user-select: all; }

.profile-form { display: grid; gap: 14px; margin-top: 20px; }
.profile-form label { display: grid; gap: 6px; color: #344155; font-size: 13px; font-weight: 700; }
.profile-form textarea { width: 100%; padding: 9px 11px; border: 1px solid #c8d4e0; border-radius: 8px; background: #fff; color: inherit; font: inherit; resize: vertical; }
.profile-form .profile-check { display: flex; align-items: center; gap: 8px; }
.profile-form .profile-check input { width: 16px; min-height: auto; height: 16px; }
.profile-version { margin: 0; color: #708195; font-size: 12px; }

.jd-extract { display: grid; gap: 10px; margin-top: 18px; padding: 14px; border: 1px dashed #c8d4e0; border-radius: 9px; }
.jd-extract label { display: grid; gap: 6px; color: #344155; font-size: 13px; font-weight: 700; }
.jd-extract textarea { width: 100%; padding: 9px 11px; border: 1px solid #c8d4e0; border-radius: 8px; background: #fff; color: inherit; font: inherit; resize: vertical; }
.jd-actions { display: flex; gap: 10px; }

/* 本机连接与平台就绪指示灯 */
.agent-dot i { background: #b6bfca; }
.agent-dot.is-live i { background: #12b76a; box-shadow: 0 0 0 3px rgba(18, 183, 106, .18); }
.probe-light { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: #667085; font-size: 11px; font-weight: 650; }
.probe-light i { width: 9px; height: 9px; border-radius: 50%; background: #c4ccd6; display: inline-block; }
.probe-light.is-ready { color: #067647; }
.probe-light.is-ready i { background: #12b76a; box-shadow: 0 0 0 3px rgba(18, 183, 106, .16); }
.probe-light.is-login { color: #b54708; }
.probe-light.is-login i { background: #f79009; box-shadow: 0 0 0 3px rgba(247, 144, 9, .16); }
.probe-light.is-blocked { color: #b42318; }
.probe-light.is-blocked i { background: #d92d20; box-shadow: 0 0 0 3px rgba(217, 45, 32, .16); }

/* 寻访平台页：连接状态灯板与岗位操作区 */
.platform-panel { margin-top: 16px; }
.platform-light-list { padding: 6px 20px 18px; }
.local-control-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.local-control-hint { margin: 12px 0 0; color: #8a8f87; font-size: 12px; }
.job-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; }
/* 启动平台勾选：与运行灯同一视觉层级，按钮区之前 */
.platform-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0 0 14px; padding: 10px 12px; border: 1px solid #e4e7ec; border-radius: 10px; background: #fbfcfe; }
.platform-picker-label { color: #667085; font-size: 12px; font-weight: 750; }
.platform-picker .checkbox-row { margin-top: 0; }
.runtime-indicator { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 8px 11px; border: 1px solid #e4e7ec; border-radius: 999px; color: #667085; background: #f9fafb; font-size: 12px; font-weight: 750; }
.runtime-indicator i { width: 10px; height: 10px; border-radius: 50%; background: #98a2b3; }
.runtime-indicator.is-idle { color: #9e6e28; background: #fff8ed; border-color: #fedf89; }
.runtime-indicator.is-idle i { background: #f79009; }
.runtime-indicator.is-running { color: #067647; background: #ecfdf3; border-color: #abefc6; }
.runtime-indicator.is-running i { background: #12b76a; box-shadow: 0 0 0 4px rgba(18, 183, 106, .16); animation: runtimePulse 1.35s ease-in-out infinite; }
.runtime-indicator.is-offline i { background: #98a2b3; }
.job-detail-actions button:disabled { cursor: not-allowed; filter: none; opacity: .52; }
@keyframes runtimePulse { 0%, 100% { transform: scale(.86); opacity: .72; } 50% { transform: scale(1.08); opacity: 1; } }
/* 岗位详情里的 JD 原文块：保留换行、限制高度避免撑爆详情区 */
.job-jd { margin: 0 0 18px; }
.job-jd dt { color: #98a2b3; font-size: 12px; margin-bottom: 6px; }
.job-jd dd { margin: 0; max-height: 180px; overflow: auto; padding: 12px 14px; border: 1px solid #eef1f5; border-radius: 10px; background: #f9fafb; color: #344054; font-size: 12.5px; line-height: 1.6; white-space: pre-wrap; }
/* 岗位弹窗里的 JD 多行输入 */
#jobForm>label { display: block; margin-top: 16px; color: #43566b; font-size: 13px; font-weight: 650; }
#jobForm textarea { display: block; width: 100%; margin-top: 6px; padding: 9px 11px; border: 1px solid #c8d4e0; border-radius: 8px; background: #fff; color: inherit; font: inherit; resize: vertical; box-sizing: border-box; }
/* 寻访时间滑块选择器 */
.schedule-picker { margin-top: 16px; padding: 12px 14px; border: 1px solid #e2e9f0; border-radius: 10px; background: #fbfcfe; }
.schedule-picker-title { display: block; color: #43566b; font-size: 13px; font-weight: 650; margin-bottom: 4px; }
.schedule-picker .checkbox-row { margin-top: 6px; }
.schedule-controls { display: grid; gap: 10px; margin-top: 12px; }
.schedule-controls label { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 10px; color: #637386; font-size: 12px; }
.schedule-controls select { min-height: 32px; padding: 2px 8px; border: 1px solid #c8d4e0; border-radius: 7px; background: #fff; font: inherit; }
.schedule-controls input[type="range"] { width: 100%; accent-color: var(--jm-blue, #2563eb); }
#schedulePreview { justify-self: start; padding: 4px 12px; border-radius: 999px; background: #eef4ff; color: #1d4ed8; font-size: 12.5px; font-weight: 700; }
/* 平台搜索配置模块 */
.platform-config { margin-top: 12px; border: 1px solid #e2e9f0; border-radius: 10px; background: #fff; }
.platform-config summary { padding: 10px 14px; cursor: pointer; color: #43566b; font-size: 13px; font-weight: 650; list-style-position: inside; }
.platform-config-body { padding: 4px 14px 14px; }
.platform-config-body .form-grid { margin-top: 12px; }
.pc-keyword-bar { display: flex; gap: 8px; margin-top: 12px; }
.pc-keyword-bar select { flex: 0 0 auto; width: auto; min-width: 150px; }
.pc-keyword-bar input { flex: 1 1 160px; width: auto; min-width: 160px; }
.pc-dual-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-top: 12px; }
.pc-dual-row label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: #43566b; }
.pc-dual-row textarea, .pc-tile textarea { resize: vertical; }
.pc-chip-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; font-size: 13px; color: #43566b; }
.pc-chip-row > strong { flex: 0 0 auto; }
.pc-chip-group { display: flex; flex-wrap: wrap; gap: 6px; }
.pc-chip { padding: 4px 12px; border-radius: 999px; border: 1px solid #d7e0ea; background: #f6f9fc; color: #43566b; font-size: 12.5px; cursor: pointer; }
.pc-chip:hover { border-color: #b9cbe0; }
.pc-chip.is-active { background: #e8f1fe; border-color: #7db2f7; color: #1d4ed8; font-weight: 650; }
.pc-other { flex: 1 1 120px; min-width: 110px; }
.pc-tile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-top: 12px; }
.pc-tile { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: #43566b; }
.pc-picker { min-width: 0; padding: 10px; border: 1px solid #d7e0ea; border-radius: 10px; background: #fff; }
.pc-picker select { width: 100%; min-width: 0; text-overflow: ellipsis; }
.pc-picker-tags { display: flex; flex-wrap: wrap; gap: 5px; min-height: 28px; }
.pc-picker-tags .pc-chip { white-space: normal; overflow-wrap: anywhere; text-align: left; }
.pc-picker-add { display: flex; align-items: center; gap: 5px; }
.pc-picker-add input { min-width: 0; flex: 1; width: 100%; }
.pc-picker-add button, .pc-picker-clear { padding: 6px 9px; font-size: 12px; flex-shrink: 0; color: #54643d; background: #f0f3e9; border: 1px solid #d9dfcb; }
.pc-picker-clear { align-self: flex-start; }
.pc-picker small { color: #66788f; line-height: 1.5; }
.pc-more { margin-top: 12px; border: 1px dashed #d7e0ea; border-radius: 10px; background: #fafcfe; }
.pc-more summary { padding: 8px 12px; cursor: pointer; color: #66788f; font-size: 12.5px; }
.pc-more-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; padding: 4px 12px 12px; }
.pc-more-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: #43566b; }
.job-platforms { margin: 0 0 18px; }
.job-platforms dt { color: #98a2b3; font-size: 12px; margin-bottom: 6px; }
.job-platforms dd { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.platform-chip { padding: 4px 10px; border-radius: 999px; background: #f0f7ff; border: 1px solid #d6e6fb; color: #1d4ed8; font-size: 12px; font-weight: 650; }

.usage-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.usage-table th { text-align: left; color: #667085; font-weight: 600; padding: 8px 10px; border-bottom: 1px solid #eaecf0; }
.usage-table td { padding: 8px 10px; border-bottom: 1px solid #f2f4f7; }
.usage-range { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #475467; }
.usage-range select { padding: 6px 10px; border-radius: 8px; border: 1px solid #d0d5dd; }
.search-draft #jd, .search-draft #applyDiff, .search-draft #applyFull { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 28rem; overflow: auto; }
.search-draft #queries label { display: block; margin-block: 1rem; }
.search-draft #cities label { display: inline-block; margin-right: 1rem; }
