:root {
  --ink: #272b33;
  --ink-2: #434b57;
  --cream: #f7f8fa;
  --paper: #ffffff;
  --surface: #ffffff;
  --surface-subtle: #f2f4f7;
  --line: #e0e4e9;
  --line-strong: #b7bec8;
  --muted: #616b78;
  --sage: #edf0f4;
  --mint: #dce2e9;
  --lime: #f1e3c6;
  --orange: #8a6524;
  --red: #a0443b;
  --blue: #245da7;
  --accent: #303640;
  --accent-hover: #20252d;
  --accent-line: #303640;
  --on-accent: #ffffff;
  --selected: #eaf1fa;
  --blue-soft: #eaf1fa;
  --apricot-soft: #f6eddc;
  --rose-soft: #f9eae7;
  --shadow-sm: none;
  --shadow: 0 16px 48px rgba(20, 27, 38, .16);
  --focus-ring: 0 0 0 3px rgba(36, 93, 167, .16);
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
html, body { margin: 0; min-height: 100%; }
body {
  color: var(--ink);
  background: var(--cream);
  font-family: "Segoe UI Variable Text", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.button, button, [role="button"] { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
::selection { background: #c5ddd2; color: #254e42; }
::placeholder { color: #6e766f; opacity: 1; }
* { scrollbar-width: thin; scrollbar-color: #aebbb3 transparent; }
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: #aebbb3; background-clip: padding-box; }
*::-webkit-scrollbar-track { background: transparent; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ambient { display: none; }

.login-view {
  --login-cyan: #35e4ee;
  --login-ice: #d9f6ff;
  min-height: 100vh;
  min-height: 100svh;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  place-items: center;
  padding: 124px 40px 116px;
  color-scheme: dark;
  color: var(--login-ice);
  background:
    radial-gradient(circle at 52% 42%, rgba(0, 157, 216, .16), transparent 33%),
    radial-gradient(circle at 88% 18%, rgba(23, 93, 137, .12), transparent 28%),
    linear-gradient(135deg, #020912 0%, #04111e 45%, #051827 100%);
}
.login-view::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .18;
  background-image:
    linear-gradient(rgba(49, 214, 237, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(49, 214, 237, .16) 1px, transparent 1px);
  background-size: 260px 220px;
  mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent);
}
.login-view::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(circle at 50% 48%, transparent 18%, rgba(1, 7, 14, .2) 62%, rgba(1, 6, 12, .68) 100%);
}
.login-view > :not(.login-backdrop) { position: relative; z-index: 3; }
.login-backdrop { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.login-cloud-ghost {
  position: absolute;
  left: 50%;
  top: 49%;
  width: clamp(660px, 61vw, 980px);
  aspect-ratio: 1;
  border-radius: 22%;
  object-fit: cover;
  opacity: .48;
  filter: blur(27px) brightness(1.32) saturate(1.35);
  mix-blend-mode: screen;
  transform: translate(-50%, -50%) scale(1.04);
  animation: loginCloudDrift 16s ease-in-out infinite alternate;
}
.login-orbit { position: absolute; border: 1px solid rgba(51, 210, 237, .23); border-radius: 50%; }
.login-orbit-one { width: 66vw; height: 68vh; left: -30vw; top: 18vh; transform: rotate(-9deg); }
.login-orbit-two { width: 62vw; height: 45vh; right: -35vw; bottom: -6vh; transform: rotate(9deg); }
.login-signal-dots {
  position: absolute;
  width: 112px;
  height: 112px;
  opacity: .47;
  background-image: radial-gradient(circle, rgba(36, 215, 241, .85) 1px, transparent 1.4px);
  background-size: 16px 16px;
  animation: loginSignalDrift 12s ease-in-out infinite alternate;
}
.login-signal-dots-one { left: 27%; top: 12%; }
.login-signal-dots-two { right: 4%; bottom: 24%; animation-delay: -5s; }
.login-coordinate {
  position: absolute;
  padding-left: 18px;
  color: rgba(85, 192, 225, .46);
  font-family: Consolas, "SFMono-Regular", monospace;
  font-size: 12px;
  line-height: 1.55;
  letter-spacing: .04em;
}
.login-coordinate::before { content: ""; position: absolute; left: 0; top: 3px; width: 6px; height: 6px; background: #21d8ef; box-shadow: 0 0 18px rgba(33, 216, 239, .72); }
.login-coordinate-one { left: 18%; top: 21%; }
.login-coordinate-two { left: 58%; bottom: 19%; }
.login-brand {
  position: absolute !important;
  left: clamp(28px, 5vw, 78px);
  top: clamp(28px, 5vw, 62px);
  display: flex;
  align-items: center;
  gap: 17px;
}
.login-brand img { width: 58px; height: 58px; border-radius: 15px; box-shadow: 0 14px 38px rgba(0, 148, 210, .2); }
.login-brand strong, .login-brand small { display: block; }
.login-brand strong {
  color: #f6fbff;
  font-family: "Segoe UI Variable Display", "Microsoft YaHei UI", sans-serif;
  font-size: 27px;
  line-height: 1.05;
  letter-spacing: .08em;
}
.login-brand small { margin-top: 8px; color: rgba(220, 242, 251, .82); font-size: 11px; letter-spacing: .28em; }
.login-panel {
  width: min(430px, calc(100vw - 40px));
  display: grid;
  gap: 19px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.login-field { display: grid; gap: 9px; margin: 0; color: rgba(229, 247, 255, .9); font-size: 13px; font-weight: 700; letter-spacing: .05em; }
.login-input-shell { position: relative; display: block; }
.login-input-shell svg {
  position: absolute;
  z-index: 1;
  left: 17px;
  top: 50%;
  width: 21px;
  height: 21px;
  transform: translateY(-50%);
  fill: none;
  stroke: rgba(218, 244, 255, .88);
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}
.login-panel input {
  min-height: 56px;
  padding: 13px 16px 13px 52px;
  border: 1px solid rgba(172, 221, 239, .68);
  border-radius: 9px;
  background: rgba(4, 24, 39, .34);
  color: #f1fbff;
  font-size: 16px;
  caret-color: var(--login-cyan);
  box-shadow: inset 0 0 0 1px rgba(3, 12, 22, .24), 0 8px 24px rgba(0, 10, 20, .12);
  backdrop-filter: blur(4px);
}
.login-panel input:hover { border-color: rgba(209, 243, 255, .88); background: rgba(6, 32, 50, .45); }
.login-panel input:focus { border-color: var(--login-cyan); background: rgba(5, 29, 46, .55); box-shadow: 0 0 0 3px rgba(53, 228, 238, .13), 0 0 26px rgba(20, 193, 225, .18); }
.login-panel input:-webkit-autofill,
.login-panel input:-webkit-autofill:hover,
.login-panel input:-webkit-autofill:focus {
  -webkit-text-fill-color: #f1fbff;
  caret-color: var(--login-cyan);
  border-color: rgba(172, 221, 239, .68);
  box-shadow: inset 0 0 0 1000px #0a2638, 0 8px 24px rgba(0, 10, 20, .12);
  transition: background-color 9999s ease-out 0s;
}
.login-view .login-submit {
  min-height: 58px;
  margin-top: 1px;
  border: 1px solid rgba(122, 250, 255, .8);
  border-radius: 9px;
  background: linear-gradient(100deg, #19d9e7, #42f0f4);
  color: #02121b;
  font-size: 16px;
  font-weight: 850;
  letter-spacing: .08em;
  box-shadow: 0 16px 38px rgba(0, 201, 225, .17), inset 0 1px rgba(255, 255, 255, .34);
}
.login-view .login-submit:hover { border-color: #98fbff; background: linear-gradient(100deg, #41eaf3, #6ff8fa); box-shadow: 0 18px 44px rgba(0, 201, 225, .24), inset 0 1px rgba(255, 255, 255, .45); }
.login-view .login-submit:focus-visible { outline-color: #8df9ff; }
.login-view .login-error { min-height: 18px; margin: -7px 0 -9px; color: #ff9f93; text-shadow: 0 1px 12px rgba(255, 80, 60, .22); }
.login-note {
  display: block;
  padding-top: 20px;
  border-top: 1px solid rgba(118, 202, 224, .25);
  color: rgba(211, 237, 247, .78);
  text-align: center;
  font-size: 12px;
  letter-spacing: .03em;
}
.login-capabilities {
  position: absolute !important;
  left: clamp(28px, 5vw, 78px);
  bottom: clamp(24px, 5vh, 52px);
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 0;
  padding: 0 0 0 80px;
  list-style: none;
  color: rgba(164, 215, 234, .38);
}
.login-capabilities::before { content: ""; position: absolute; left: 0; top: 50%; width: 56px; height: 1px; background: rgba(53, 228, 238, .58); }
.login-capabilities li { display: flex; align-items: center; gap: 11px; padding-right: 30px; border-right: 1px solid rgba(119, 191, 216, .22); font-size: 13px; letter-spacing: .08em; white-space: nowrap; }
.login-capabilities li:last-child { padding-right: 0; border-right: 0; }
.login-capabilities svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
@keyframes loginCloudDrift {
  0% { transform: translate(-51%, -50%) scale(1.01); opacity: .42; }
  100% { transform: translate(-49%, -49%) scale(1.075); opacity: .52; }
}
@keyframes loginSignalDrift { to { transform: translate3d(10px, -8px, 0); opacity: .65; } }
.brand-lockup { display: flex; align-items: center; gap: 12px; position: relative; z-index: 1; }
.brand-lockup strong, .brand-lockup small { display: block; }
.brand-lockup strong { font-family: "Segoe UI Variable Display", "Microsoft YaHei UI", sans-serif; font-size: 19px; letter-spacing: .02em; }
.brand-lockup small { font-size: 11px; color: #4c5868; margin-top: 2px; letter-spacing: .06em; }
.brand-mark { width: 40px; height: 40px; border-radius: 13px 13px 13px 3px; background: var(--accent); color: var(--on-accent); display: grid; place-items: center; font-weight: 800; }
.brand-lockup.large .brand-mark { width: 46px; height: 46px; }
.eyebrow { display: none; }
label { display: grid; gap: 8px; font-size: 13px; color: #4c5868; font-weight: 650; }
input, textarea, select { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 11px; background: var(--surface); color: var(--ink); caret-color: var(--accent); padding: 11px 13px; outline: none; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
textarea { resize: vertical; line-height: 1.65; }
input:hover, textarea:hover, select:hover { border-color: #6b7685; }
input:focus, textarea:focus, select:focus { border-color: var(--accent); box-shadow: var(--focus-ring); }
.form-error { min-height: 18px; color: var(--red); text-align: center; font-size: 12px; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid transparent; border-radius: 9px; min-height: 42px; padding: 10px 17px; font-size: 13px; font-weight: 750; text-decoration: none; transition: transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.button .ui-icon { width: 17px; height: 17px; }
.button:hover { transform: translateY(-1px); }
.button:active { transform: translateY(0) scale(.985); }
.button.primary, .button.dark { border-color: var(--accent-line); background: var(--accent); color: var(--on-accent); box-shadow: none; }
.button.primary:hover, .button.dark:hover { border-color: var(--accent-hover); background: var(--accent-hover); box-shadow: 0 4px 12px rgba(38, 104, 94, .12); }
.button.ghost { border-color: var(--line); background: var(--surface); color: var(--ink); }
.button.ghost:hover { border-color: #a2acb9; background: #f2f4f7; }
.button.muted { border-color: #e5e9ef; background: #f2f4f7; color: #4c5868; box-shadow: none; }
.button.danger-soft { border-color: #d8bbae; background: #f7eae1; color: #8d4d3d; }
.button.danger-soft:hover { border-color: #bd927e; background: #f2dfd2; }
.button:disabled, .button:disabled:hover { opacity: 1; border-color: #cdd4de; background: #e5e9ef; color: #4c5868; cursor: not-allowed; transform: none; box-shadow: none; }
.button.wide { width: 100%; }
.button-spinner { width: 15px; height: 15px; flex: 0 0 auto; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .7s linear infinite; }
.button.is-loading .ui-icon { display: none; }
.schedule-export-button { white-space: nowrap; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 230px minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 230px; border-right: 1px solid #cdd4de; background: #e5e9ef; color: var(--ink); padding: 28px 20px 22px; display: flex; flex-direction: column; z-index: 10; }
.sidebar nav { margin-top: 52px; }
.nav-item { width: 100%; min-height: 46px; border: 0; border-radius: 11px; background: transparent; color: #4c5868; padding: 12px 13px; text-align: left; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; transition: background .18s ease, color .18s ease, transform .18s ease; }
.nav-item:hover { background: #e5e9ef; color: #303a48; }
.nav-item.active { background: var(--accent); color: var(--on-accent); }
.nav-item.active:hover { background: var(--accent-hover); }
.nav-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.nav-icon, .ui-icon { display: inline-block; width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.sidebar-note { margin-top: auto; border: 1px solid #cdd4de; border-radius: 14px; background: #f2f4f7; padding: 13px; display: flex; gap: 10px; align-items: flex-start; }
.sidebar-note strong, .sidebar-note small { display: block; }
.sidebar-note strong { font-size: 12px; }
.sidebar-note small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.sidebar-note.is-error { border-color: #e7b9ae; background: #fbefeb; }
.sidebar-note.is-error .live-dot { background: #bf5f4d; box-shadow: 0 0 0 5px rgba(191,95,77,.12); }
.ai-settings-status { display: flex; align-items: flex-start; gap: 11px; padding: 14px 16px; border: 1px solid #cdd4de; border-radius: 14px; background: #f2f4f7; margin-bottom: 18px; }
.ai-settings-status strong, .ai-settings-status small { display: block; }
.ai-settings-status strong { color: var(--ink); font-size: 14px; }
.ai-settings-status small { margin-top: 4px; color: var(--muted); font-size: 12px; }
.ai-settings-status.is-error { border-color: #e7b9ae; background: #fbefeb; }
.ai-settings-status.is-error .live-dot { background: #bf5f4d; box-shadow: 0 0 0 5px rgba(191,95,77,.12); }
.live-dot { width: 8px; height: 8px; margin-top: 3px; border-radius: 50%; background: #3d8261; box-shadow: 0 0 0 4px #dceade; }
.nav-item.subtle { margin-top: 10px; justify-content: center; font-size: 11px; }
.main { grid-column: 2; width: 100%; max-width: 1760px; margin: 0 auto; padding: 30px clamp(24px, 2.25vw, 42px) 72px; min-width: 0; }
.topbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 30px; }
.breadcrumb { margin: 0 0 5px; color: #6b7685; font-size: 12px; }
.topbar h1 { margin: 0; color: var(--ink); font-family: "Segoe UI Variable Display", "Microsoft YaHei UI", sans-serif; font-size: 30px; letter-spacing: -.025em; }
.top-actions { display: flex; justify-content: flex-end; gap: 10px; }
.view { animation: reveal .35s ease both; }
@keyframes reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.overview-strip { display: grid; grid-template-columns: repeat(4, 1fr); background: #f2f4f7; color: var(--ink); border-radius: 16px; overflow: hidden; box-shadow: none; }
.overview-strip > div { padding: 22px 24px; border-right: 1px solid #cdd4de; }
.overview-strip > div:last-child { border: 0; }
.overview-strip span, .overview-strip strong { display: block; }
.overview-strip span { color: #4c5868; font-size: 12px; }
.overview-strip strong { margin-top: 6px; font-size: 30px; color: var(--accent); }
.interview-schedule { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.schedule-heading, .schedule-title-group, .schedule-actions, .schedule-period, .schedule-week-nav { display: flex; align-items: center; }
.schedule-heading { justify-content: space-between; gap: 20px; }
.schedule-title-group { gap: 14px; min-width: 0; }
.schedule-heading-icon { width: 38px; height: 38px; flex: 0 0 auto; color: var(--accent); }
.schedule-title-group h2 { margin: 0; font-size: 24px; line-height: 1.35; letter-spacing: -.02em; }
.schedule-title-group p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.schedule-actions { flex-wrap: wrap; gap: 12px; }
.schedule-job-filter { margin: 0; min-width: 150px; max-width: 260px; }
.schedule-job-filter select { width: 100%; min-height: 42px; padding: 9px 32px 9px 12px; background: var(--surface); font-size: 13px; }
.schedule-period { flex-wrap: wrap; gap: 22px; margin: 22px 0 16px; }
.schedule-period h3 { margin: 0; font-size: 20px; font-weight: 750; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.schedule-week-nav { gap: 9px; }
.schedule-week-nav .button { min-height: 38px; padding: 7px 17px; }
.schedule-week-nav .schedule-arrow { width: 38px; padding: 7px; }
.schedule-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-subtle); }
.schedule-day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0; min-height: 99px; padding: 10px 4px; border: 0; border-right: 1px solid var(--line); border-radius: 0; color: var(--muted); background: transparent; }
.schedule-day:last-child { border-right: 0; }
.schedule-day:hover { background: var(--sage); }
.schedule-day.is-today { background: var(--selected); color: var(--accent); }
.schedule-day[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); }
.schedule-day:focus-visible { outline-offset: -4px; }
.schedule-day[aria-pressed="true"]:focus-visible { outline-color: var(--on-accent); }
.schedule-day > span { font-size: 12px; }
.schedule-day > strong { font-size: 25px; font-weight: 750; line-height: 1.25; font-variant-numeric: tabular-nums; }
.schedule-day > small { font-size: 12px; min-height: 18px; }
.schedule-table-wrap { max-height: 520px; margin-top: 16px; overflow: auto; border: 1px solid var(--line); border-radius: 9px; scrollbar-gutter: stable; }
.schedule-table { table-layout: fixed; width: 100%; margin: 0; border-collapse: separate; border-spacing: 0; text-align: left; }
.schedule-date-col { width: 15%; }
.schedule-time-col { width: 11%; }
.schedule-name-col { width: 18%; }
.schedule-action-col { width: 134px; }
.schedule-table thead th { position: sticky; top: 0; z-index: 1; padding: 12px 15px; background: var(--surface-subtle); color: var(--muted); font-size: 12px; font-weight: 600; border-bottom: 1px solid var(--line); }
.schedule-table tbody td, .schedule-table tbody th { padding: 14px 15px; vertical-align: middle; font-weight: 400; border: 0; border-bottom: 1px solid var(--line); background: var(--paper); overflow-wrap: anywhere; }
.schedule-table tbody tr.is-today > * { background: #f2f4f7; }
.schedule-table tbody:last-child tr:last-child > *, .schedule-table tbody:last-child th[rowspan] { border-bottom: 0; }
.schedule-table .schedule-date { vertical-align: top; padding-top: 18px; }
.schedule-date strong, .schedule-date small { display: block; }
.schedule-date strong { font-size: 17px; font-weight: 750; font-variant-numeric: tabular-nums; }
.schedule-date small { margin-top: 3px; font-size: 12px; color: var(--muted); }
.schedule-table .schedule-time { font-size: 18px; font-weight: 750; white-space: nowrap; font-variant-numeric: tabular-nums; }
.schedule-name strong { font-weight: 750; font-size: 16px; }
.schedule-role { font-size: 13px; }
.schedule-candidate-link, .schedule-text-button { display: inline-flex; align-items: center; gap: 6px; padding: 6px 0; border: 0; border-radius: 4px; background: transparent; color: var(--accent); font-size: 12px; text-decoration: none; text-underline-offset: 4px; }
.schedule-candidate-link:hover, .schedule-text-button:hover { text-decoration: underline; }
.schedule-candidate-link .ui-icon { width: 16px; height: 16px; }
.schedule-candidate-link { min-height: 34px; }
.schedule-candidate-link:disabled { opacity: .65; cursor: wait; }
.schedule-message { min-height: 190px; padding: 32px 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; }
.schedule-message strong { font-size: 16px; }
.schedule-message p { margin: 0; color: var(--muted); max-width: 44ch; font-size: 13px; }
.schedule-error p { color: var(--red); }
.schedule-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin-top: 13px; color: var(--muted); }
.schedule-footer > div { display: flex; gap: 14px; align-items: center; }
.schedule-footer span { font-size: 12px; }
.schedule-footer small { font-size: 11px; }
.section-heading { margin: 38px 0 20px; display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.section-heading h2 { margin: 0; font-size: 23px; color: var(--ink); letter-spacing: -.015em; }
.section-heading > div > p:not(.eyebrow) { max-width: 68ch; margin: 7px 0 0; color: var(--muted); font-size: 13px; }
.status-filter { background: rgba(255,255,255,.7); border: 1px solid var(--line); border-radius: 12px; padding: 4px; display: flex; gap: 3px; }
.status-filter button { min-height: 36px; border: 0; background: transparent; color: var(--muted); border-radius: 8px; padding: 7px 12px; font-size: 12px; }
.status-filter button.active { background: var(--accent); color: var(--on-accent); }
.jobs-grid { display: grid; grid-template-columns: repeat(3, minmax(250px, 1fr)); gap: 18px; }
.job-card { background: rgba(255,253,248,.96); border: 1px solid rgba(24,63,51,.12); border-radius: 15px; padding: 22px; transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, border-color .22s ease; cursor: pointer; position: relative; overflow: hidden; }
.job-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #6b7685; transform: scaleX(.3); transform-origin: left; transition: transform .22s ease; }
.job-card:hover { transform: translateY(-3px); border-color: rgba(24,63,51,.22); box-shadow: var(--shadow-sm); }
.job-card:hover::before { transform: scaleX(1); }
.job-card-top { display: flex; justify-content: space-between; gap: 15px; align-items: flex-start; }
.job-card h3 { margin: 17px 0 8px; color: var(--ink); font-size: 20px; }
.job-card p { color: var(--muted); font-size: 13px; line-height: 1.55; min-height: 40px; max-height: 40px; overflow: hidden; }
.job-card-count { font-size: 12px; color: var(--muted); }
.job-card-count strong { display: block; font-size: 30px; color: var(--ink); text-align: right; }
.mini-pipeline { margin-top: 19px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
.mini-pipeline span { height: 6px; background: #f2f4f7; border-radius: 999px; overflow: hidden; }
.mini-pipeline span::after { content: ""; display: block; width: var(--fill); height: 100%; background: #4c5868; }
.job-card-footer { margin-top: 15px; display: flex; justify-content: space-between; color: #6b7685; font-size: 12px; }
.status-badge { display: inline-flex; align-items: center; min-height: 27px; width: fit-content; border-radius: 999px; padding: 5px 10px; background: var(--sage); color: var(--ink); font-size: 11px; font-weight: 800; }
.status-badge[data-status="暂停"] { background: #f5dfc7; color: #8a4e24; }
.status-badge[data-status="已关闭"] { background: #e6e6e3; color: #666; }
.empty-state { border: 1px dashed #cdd4de; border-radius: 20px; text-align: center; padding: 70px 20px; background: rgba(255,255,255,.45); }
.empty-glyph { width: 54px; height: 54px; margin: 0 auto 16px; display: grid; place-items: center; border-radius: 50%; background: var(--sage); color: var(--ink); font-size: 28px; }
.empty-state h3 { margin: 0 0 8px; color: var(--ink); }
.empty-state p { color: var(--muted); }

.job-hero { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 22px 24px 18px; }
.back-button { min-height: 32px; border: 0; border-radius: 8px; background: transparent; padding: 5px 7px; color: var(--muted); font-size: 12px; }
.back-button:hover { background: var(--surface-subtle); color: var(--ink); }
.job-hero-main { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 17px; }
.job-hero h2 { margin: 8px 0 4px; color: var(--ink); font-size: 27px; }
.job-hero p { margin: 0; color: var(--muted); font-size: 12px; }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.job-hero-main > div:first-child { min-width: 0; }
.job-hero h2, .job-card h3 { overflow-wrap: anywhere; }
.job-private-label { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-2); font-size: 12px; white-space: nowrap; }
.job-private-label .ui-icon { width: 15px; height: 15px; }
.job-card-private { display: flex; flex-direction: column; }
.job-card-private .job-card-footer { margin-top: auto; padding-top: 15px; gap: 12px; }
.job-hero .job-privacy-note { margin-top: 12px; color: var(--accent); font-size: 13px; line-height: 1.6; }
.job-modal .job-privacy-option { display: flex; align-items: center; gap: 9px; margin-top: 4px; font-size: 14px; cursor: pointer; }
.job-privacy-option input { width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--accent); }
.job-modal .job-privacy-hint { margin: 7px 0 18px 27px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.main:has(#jobView:not(.hidden)) { padding-top: 20px; }
.main:has(#jobView:not(.hidden)) .topbar { min-height: 20px; margin-bottom: 13px; gap: 10px; }
.main:has(#jobView:not(.hidden)) #pageTitle { display: none; }
.main:has(#jobView:not(.hidden)) .breadcrumb { margin: 0; color: #4c5868; }
.main:has(#jobView:not(.hidden)) .job-hero { padding: 15px 22px 14px; }
.main:has(#jobView:not(.hidden)) .back-button { min-height: 27px; padding: 3px 0; }
.main:has(#jobView:not(.hidden)) .job-hero-main { margin-top: 7px; gap: 16px; }
.main:has(#jobView:not(.hidden)) .job-hero h2 { margin: 6px 0 4px; font-size: 26px; }
.main:has(#jobView:not(.hidden)) .criteria-row { margin-top: 13px; padding-top: 11px; gap: 6px; }
.main:has(#jobView:not(.hidden)) .criteria-chip { padding: 5px 8px; }
.main:has(#jobView:not(.hidden)) .board-toolbar { margin: 14px 0 10px; }
.main:has(#jobView:not(.hidden)) .online-model-note { margin: 0 0 12px; padding: 8px 11px; }
.criteria-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.criteria-chip { border-radius: 8px; background: #f2f4f7; padding: 7px 10px; color: #4c5868; font-size: 11px; }
.criteria-chip b { color: var(--ink); margin-right: 4px; }
.board-toolbar { margin: 20px 0 13px; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.board-toolbar > div { display: flex; gap: 14px; align-items: center; color: var(--muted); font-size: 12px; }
.board-toolbar .board-toolbar-actions { justify-content: flex-end; gap: 8px; }
.online-model-note { margin: -3px 0 16px; border: 1px solid #e5e9ef; border-radius: 10px; background: rgba(239,245,241,.82); color: #4c5868; padding: 10px 12px; font-size: 11px; line-height: 1.55; }
.select-all { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: 7px; }
.select-all input, .candidate-select { width: 15px; height: 15px; accent-color: var(--ink); }
.kanban-board { display: grid; grid-template-columns: repeat(6, minmax(245px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 20px; scroll-snap-type: x proximity; }
.kanban-column { min-height: 520px; border: 1px solid #e5e9ef; border-radius: 16px; background: rgba(239,241,236,.75); padding: 12px; scroll-snap-align: start; transition: .2s ease; }
.kanban-column.drag-over { border-color: #6b7685; background: #f2f4f7; }
.column-header { display: flex; justify-content: space-between; align-items: center; padding: 3px 3px 12px; }
.column-header strong { color: var(--ink); font-size: 12px; }
.column-header span { min-width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: var(--muted); font-size: 10px; }
.candidate-list { min-height: 450px; display: grid; align-content: start; gap: 9px; }
.candidate-card { background: #fff; border: 1px solid #e5e9ef; border-radius: 13px; padding: 13px; box-shadow: 0 5px 15px rgba(24,63,51,.04); cursor: pointer; }
.candidate-card:hover { border-color: #a2acb9; }
.candidate-card.dragging { opacity: .45; }
.candidate-top { display: flex; justify-content: space-between; gap: 8px; }
.candidate-name { display: flex; gap: 8px; align-items: flex-start; }
.candidate-name strong { color: var(--ink); font-size: 13px; }
.candidate-name small { display: block; margin-top: 3px; color: #6b7685; font-size: 9px; }
.level-pill { border-radius: 8px; padding: 4px 7px; background: var(--sage); color: var(--ink); font-size: 9px; font-weight: 800; white-space: nowrap; }
.level-pill[data-level="夯"] { background: #f2d6a9; color: #7c5223; }
.level-pill[data-level="顶尖"] { background: #4c7496; color: #fffdf8; }
.level-pill[data-level="一般"] { background: #cee3d7; color: #35634e; }
.level-pill[data-level="拉完了"] { background: #a65f4b; color: #fffdf8; }
.candidate-facts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 11px; }
.candidate-facts span { border-radius: 7px; background: #f2f4f7; padding: 4px 6px; color: #6b7685; font-size: 8px; }
.score-line { margin-top: 11px; display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 9px; }
.score-line b { color: var(--ink); font-size: 13px; }

/* 岗位详情：左侧候选人列表 + 右侧评判工作区 */
#kanbanBoard { display: block; overflow: visible; padding-bottom: 24px; }
.candidate-workspace { min-height: 680px; display: grid; grid-template-columns: 304px minmax(0, 1fr); border-radius: 16px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.candidate-rail { min-width: 0; border-right: 1px solid var(--line); background: #fafbfc; }
.rail-search { position: relative; margin: 14px 14px 10px; }
.rail-search > .ui-icon { position: absolute; z-index: 1; left: 12px; top: 50%; width: 18px; height: 18px; color: var(--muted); transform: translateY(-50%); pointer-events: none; }
.rail-search input { min-height: 42px; padding: 9px 40px 9px 38px; border-color: #cdd4de; background: #fff; font-size: 12px; }
.rail-search input::-webkit-search-cancel-button { appearance: none; }
.rail-search input:focus { border-color: var(--accent); background: #fffefb; }
.rail-search-clear { position: absolute; right: 6px; top: 50%; width: 30px; height: 30px; border: 0; border-radius: 8px; display: grid; place-items: center; background: transparent; color: var(--muted); transform: translateY(-50%); }
.rail-search-clear:hover { background: var(--selected); color: var(--accent); }
.rail-search-clear .ui-icon { width: 16px; height: 16px; }
.rail-filters { margin: 0 14px 14px; display: grid; gap: 8px; }
.rail-filter { margin: 0; display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; align-items: center; }
.rail-filter > span { color: var(--ink-2); font-size: 12px; font-weight: 650; }
.rail-filter select { width: 100%; min-width: 0; min-height: 40px; padding: 8px 24px 8px 10px; border-color: #cdd4de; border-radius: 10px; background-color: #fff; color: var(--ink); font-size: 12px; text-overflow: ellipsis; }
.rail-filter select:hover { border-color: var(--accent); }
.rail-filter-reset { justify-self: end; min-height: 30px; padding: 3px 0; border: 0; background: transparent; color: var(--accent); font-size: 12px; font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }
.rail-upload { width: calc(100% - 28px); min-height: 104px; margin: 0 14px 14px; border: 1px dashed #a2acb9; border-radius: 12px; display: grid; place-items: center; align-content: center; gap: 5px; background: #fff; color: var(--ink); cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.rail-upload:hover { border-color: var(--ink); background: var(--sage); transform: translateY(-1px); }
.rail-upload span { color: var(--blue); font-size: 25px; line-height: 1; }
.rail-upload > .ui-icon { width: 26px; height: 26px; color: var(--accent); }
.rail-upload strong { font-size: 13px; }
.rail-upload small { color: var(--muted); font-size: 11px; }
.rail-heading { min-height: 50px; padding: 0 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.rail-heading strong { color: var(--ink); font-size: 13px; }
.rail-heading strong span, .rail-heading small { color: var(--muted); font-size: 11px; font-weight: 500; }
.rail-list { max-height: 680px; overflow-y: auto; padding: 8px; }
.rail-search-empty { min-height: 190px; padding: 34px 22px; display: grid; align-content: center; justify-items: center; gap: 7px; color: var(--muted); text-align: center; }
.rail-search-empty strong { color: var(--ink); font-size: 13px; }
.rail-search-empty span { font-size: 11px; line-height: 1.6; }
.rail-search-empty button { margin-top: 5px; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--accent); padding: 3px 1px; font-size: 11px; font-weight: 750; }
.rail-candidate { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; min-height: 80px; padding: 10px 9px; border: 1px solid transparent; border-radius: 10px; cursor: pointer; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.rail-candidate:hover { background: #f2f4f7; }
.rail-candidate.active { border-color: #a2acb9; background: #e5e9ef; box-shadow: none; }
.rail-candidate.pinned:not(.active) { background: #f7f0e3; }
.rail-candidate .candidate-select { position: absolute; left: 4px; top: 4px; width: 13px; height: 13px; accent-color: var(--ink); }
.rail-avatar { width: 38px; height: 38px; border: 1px solid #e5e9ef; border-radius: 50%; display: grid; place-items: center; background: #fafbfc; color: #4c5868; font-size: 13px; font-weight: 800; }
.rail-candidate:nth-child(4n+2) .rail-avatar { background: #e5e9ed; color: #52616e; }
.rail-candidate:nth-child(4n+3) .rail-avatar { background: #f2f4f7; color: #4c5868; }
.rail-candidate:nth-child(4n+4) .rail-avatar { background: #f0e6d7; color: #7b6246; }
.rail-candidate-copy { min-width: 0; }
.rail-candidate-copy strong, .rail-candidate-copy small, .rail-candidate-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rail-candidate-copy strong { color: var(--ink); font-size: 13px; }
.rail-candidate-copy small { margin-top: 3px; color: #4c5868; font-size: 10px; }
.rail-candidate-copy span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.candidate-flow-pill { display: inline-flex; align-items: center; margin-top: 6px; width: fit-content; border-radius: 999px; background: #f2f4f7; color: #4c5868; padding: 4px 8px; font-size: 10px; font-style: normal; font-weight: 800; }
.candidate-flow-pill.ready { background: #e5e9ef; color: #303a48; }
.candidate-flow-pill.technical { background: #e6edf0; color: #4d687b; }
.assessment-pill { flex: 0 0 auto; border-radius: 6px; padding: 5px 9px; background: #edf1eb; color: #59675f; font-size: 10px; font-weight: 750; white-space: nowrap; }
.assessment-pill.excellent { background: #f2d6a9; color: #7c5223; }
.assessment-pill.good { background: #4c7496; color: #fffdf8; }
.assessment-pill.average { background: #cee3d7; color: #35634e; }
.assessment-pill.risk { background: #a65f4b; color: #fffdf8; }
.pin-candidate { width: 30px; height: 30px; border: 0; border-radius: 8px; display: grid; place-items: center; background: transparent; color: #6b7685; font-size: 17px; line-height: 1; cursor: pointer; }
.pin-candidate:hover { background: #efe2cb; color: #8c6c3e; }
.pin-candidate.active { background: #efdfc0; color: #825c29; }
.pin-candidate .ui-icon { width: 18px; height: 18px; }
.pin-candidate.active .ui-icon { fill: #e9bb69; stroke: #9c712f; }
.assessment-workspace { min-width: 0; background: #fff; }
.assessment-person-header { min-height: 102px; padding: 20px 26px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.assessment-person-header > div:first-child { flex: 1 1 180px; min-width: 0; }
.assessment-title-line { display: flex; align-items: center; gap: 9px; }
.assessment-title-line h2 { margin: 0; color: var(--ink); font-size: 24px; letter-spacing: -.02em; }
.assessment-person-header p { max-width: 78ch; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.assessment-actions { display: flex; flex: 1 1 330px; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.assessment-stepper { display: grid; grid-template-columns: repeat(var(--step-count, 4), 1fr); padding: 0 24px; border-bottom: 1px solid var(--line); background: #fff; }
.assessment-stepper button { position: relative; min-width: 0; height: 64px; border: 0; background: transparent; display: flex; align-items: center; justify-content: center; gap: 8px; color: #6b7685; cursor: pointer; }
.assessment-stepper button:not(:last-child)::after { content: ""; position: absolute; right: -16%; top: 32px; width: 32%; height: 1px; background: #e5e9ef; }
.assessment-stepper button span { position: relative; z-index: 1; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: #f2f4f7; color: #6b7685; font-size: 9px; font-weight: 900; }
.assessment-stepper button b { font-size: 12px; }
.assessment-stepper button.active { color: var(--accent); }
.assessment-stepper button.active::before { content: ""; position: absolute; left: 10%; right: 10%; bottom: 0; height: 2px; border-radius: 999px; background: var(--accent); }
.assessment-stepper button.active span { background: var(--accent); color: var(--on-accent); box-shadow: none; }
.assessment-stepper button:disabled { color: #6b7685; cursor: not-allowed; }
.assessment-stepper button:disabled span { background: #f2f4f7; color: #6b7685; }
.assessment-detail { min-height: 650px; }
.fit-section { padding: 28px clamp(22px, 2.5vw, 34px) 44px; }
.fit-section-heading { margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.fit-section-heading > div { display: flex; align-items: center; gap: 9px; }
.fit-section-heading > div span { color: var(--blue); font-size: 10px; font-weight: 900; }
.fit-section-heading h3 { margin: 0; color: var(--ink); font-size: 17px; }
.fit-section-heading small { color: var(--muted); font-size: 11px; }
.fit-verdict { display: grid; grid-template-columns: 175px minmax(0, 1fr); align-items: center; gap: 20px; min-height: 108px; border: 1px solid #e5e9ef; border-radius: 12px; padding: 17px 20px; background: #fafbfc; }
.fit-verdict > div { text-align: center; }
.fit-verdict strong, .fit-verdict span { display: block; }
.fit-verdict strong { color: #4c5868; font-size: 18px; }
.fit-verdict span { margin-top: 5px; color: var(--muted); font-size: 11px; }
.fit-verdict p { margin: 0; border-left: 1px solid #e5e9ef; padding-left: 20px; color: #303a48; font-size: 12px; line-height: 1.72; }
.fit-verdict.excellent { border-color: #e3cba8; background: #fbf5e9; }
.fit-verdict.excellent strong { color: #91662c; }
.fit-verdict.good { border-color: #c1d2e0; background: #f0f5f8; }
.fit-verdict.good strong { color: #3b6d95; }
.fit-verdict.average { border-color: #cdd4de; background: #f2f4f7; }
.fit-verdict.average strong { color: #4c5868; }
.fit-verdict.risk { border-color: #dbbcae; background: #faf0e9; }
.fit-verdict.risk strong { color: #a25c46; }
.fit-verdict .fit-score-block { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; text-align: left; }
.fit-score-value { display: inline-flex; align-items: baseline; gap: 5px; }
.fit-verdict .fit-score-number { font-size: 42px; font-weight: 750; line-height: 1.05; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.fit-verdict .fit-score-unit { margin: 0; color: #4c5868; font-size: 12px; }
.fit-verdict .fit-score-label { margin: 0; font-size: 12px; line-height: 1.25; }
.fit-verdict .fit-score-label.excellent { color: #7c5223; }
.fit-verdict .fit-score-label.good, .fit-verdict .fit-score-label.risk { color: #fffdf8; }
.fit-verdict .fit-score-label.average { color: #303a48; }
.fit-verdict .fit-score-pending { flex-direction: column; gap: 3px; }
.fit-verdict .fit-score-pending > strong { font-size: 20px; }
.fit-verdict .fit-score-pending > span { margin: 0; }
.fit-points-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; }
.fit-point-card { min-width: 0; min-height: 172px; border: 1px solid var(--line); border-radius: 12px; padding: 18px 19px; background: #fff; }
.fit-point-card header { display: flex; align-items: center; gap: 8px; }
.fit-point-card header span { width: 21px; height: 21px; border-radius: 6px; display: grid; place-items: center; font-size: 10px; font-weight: 900; }
.fit-point-card.match header span { background: var(--accent); color: var(--on-accent); border-radius: 50%; }
.fit-point-card.risk header span { background: #f0d09e; color: #805617; border-radius: 50%; }
.fit-point-card header .ui-icon { width: 15px; height: 15px; }
.fit-point-card header strong { color: var(--ink); font-size: 13px; }
.fit-point-card ul { margin: 13px 0 0; padding-left: 18px; color: #4c5868; font-size: 12px; line-height: 1.75; }
.fit-point-card li + li { margin-top: 4px; }
.assessment-dimensions { margin-top: 16px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.assessment-dimensions > div { border: 1px solid #e5e9ef; border-radius: 9px; background: #fffefb; padding: 12px 13px; }
.assessment-dimensions span, .assessment-dimensions strong, .assessment-dimensions i { display: block; }
.assessment-dimensions span { color: var(--muted); font-size: 11px; }
.assessment-dimensions strong { margin: 4px 0 9px; color: var(--ink); font-size: 24px; font-weight: 650; font-variant-numeric: tabular-nums; }
.assessment-dimensions i { height: 4px; border-radius: 999px; background: #e5e9ef; overflow: hidden; }
.assessment-dimensions em { display: block; height: 100%; border-radius: inherit; background: #4a7998; }
.assessment-empty { min-height: 650px; display: grid; place-content: center; justify-items: center; color: var(--muted); text-align: center; }
.assessment-empty div { width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; background: var(--sage); color: var(--ink); font-size: 25px; }
.assessment-empty h3 { margin: 13px 0 5px; color: var(--ink); }
.assessment-empty p { margin: 0; font-size: 10px; }

.modal-backdrop, .drawer-backdrop { position: fixed; inset: 0; z-index: 50; background: rgba(61,65,53,.34); backdrop-filter: blur(3px); display: grid; place-items: center; padding: 24px; }
.modal { width: min(1080px, 96vw); max-height: 92vh; overflow: auto; background: var(--paper); border-radius: 18px; box-shadow: 0 30px 90px rgba(15,34,27,.34); padding: 30px; }
.job-modal { width: min(960px, 96vw); }
.modal-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.modal-header h2 { margin: 0; color: var(--ink); font-size: 25px; letter-spacing: -.02em; }
.modal-header p:last-child { max-width: 70ch; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.icon-button { width: 40px; height: 40px; border: 0; border-radius: 10px; background: #f2f4f7; color: var(--ink); font-size: 21px; transition: background .18s ease, transform .18s ease; }
.icon-button:hover { background: #e5e9ef; transform: rotate(2deg); }
.icon-button:disabled, .icon-button:disabled:hover { opacity: .55; cursor: not-allowed; transform: none; }
.form-grid { display: grid; gap: 14px; margin-bottom: 15px; }
.form-grid.two { grid-template-columns: repeat(2, 1fr); }
.form-grid.three { grid-template-columns: repeat(3, 1fr); margin-top: 15px; }
.file-label { margin: 6px 0 15px; border: 1px dashed #a2acb9; border-radius: 11px; padding: 14px; background: #fafbfc; }
.file-label input { border: 0; background: transparent; padding: 5px 0 0; }
.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; padding-top: 17px; border-top: 1px solid var(--line); }
.import-summary { margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 13px; }
.review-table { width: 100%; border-collapse: collapse; min-width: 1100px; }
.review-table th { position: sticky; top: 0; z-index: 1; background: #f2f4f7; color: #303a48; text-align: left; padding: 11px; font-size: 11px; letter-spacing: .02em; }
.review-table td { padding: 8px; border-top: 1px solid #f2f4f7; vertical-align: top; }
.review-table input { min-width: 110px; padding: 8px; font-size: 12px; }
.review-table .file-cell { max-width: 160px; color: var(--ink); font-size: 12px; word-break: break-all; }
.review-error { color: var(--red); font-size: 12px; }

.drawer-backdrop { place-items: stretch end; padding: 0; }
.drawer { width: min(780px, calc(100vw - 48px)); height: 100vh; background: var(--paper); box-shadow: -24px 0 80px rgba(15,34,27,.3); display: flex; flex-direction: column; animation: drawerIn .28s cubic-bezier(.2,.8,.2,1) both; }
@keyframes drawerIn { from { transform: translateX(35px); opacity: 0; } }
.drawer-header { padding: 28px 32px 20px; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.drawer-header > div:first-child { min-width: 0; }
.drawer-header h2 { margin: 9px 0 3px; color: var(--ink); font-size: 27px; letter-spacing: -.02em; overflow-wrap: anywhere; }
.drawer-header p { margin: 0; color: var(--muted); font-size: 12px; }
.drawer-header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 9px; }
.drawer-header-actions .button { min-height: 40px; }
.drawer-tabs { display: flex; gap: 7px; padding: 13px 32px; border-bottom: 1px solid var(--line); background: rgba(255,253,248,.96); }
.drawer-tabs button { min-height: 38px; border: 0; border-radius: 9px; padding: 8px 13px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 700; }
.drawer-tabs button:not(.active):hover { background: #f2f4f7; color: var(--ink); }
.drawer-tabs button.active { background: var(--accent); color: var(--on-accent); }
.drawer-tabs button.active:hover { background: var(--accent-hover); }
.drawer-content { min-height: 0; flex: 1; padding: 28px 32px 56px; overflow-y: auto; }
.schedule-review-drawer { width: min(760px, calc(100vw - 32px)); height: 100dvh; }
.schedule-review-drawer .drawer-header { padding: 28px 32px 22px; }
.schedule-review-drawer .drawer-header .icon-button { flex-shrink: 0; width: 44px; height: 44px; }
.schedule-review-drawer .drawer-header h2 { margin: 14px 0 6px; }
.schedule-review-drawer .drawer-header p { font-size: 14px; overflow-wrap: anywhere; }
.schedule-review-drawer .drawer-header .schedule-review-time { margin-top: 10px; color: var(--ink); font-variant-numeric: tabular-nums; }
.schedule-review-content { padding-bottom: 24px; overscroll-behavior: contain; }
.schedule-review-notice { margin: 0 0 26px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.schedule-review-section + .schedule-review-section { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 28px; }
.schedule-review-section h3 { margin: 0 0 16px; color: var(--ink); font-size: 18px; font-weight: 650; }
.schedule-review-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; margin: 0; }
.schedule-review-facts > div, .schedule-review-dimensions > div { min-width: 0; }
.schedule-review-facts dt, .schedule-review-dimensions dt { color: var(--muted); font-size: 14px; }
.schedule-review-facts dd { margin: 4px 0 0; font-size: 16px; overflow-wrap: anywhere; }
.schedule-review-assessment { display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px; }
.schedule-review-assessment strong { color: var(--accent); font-size: 26px; }
.schedule-review-assessment span { color: var(--ink); font-size: 18px; font-variant-numeric: tabular-nums; }
.schedule-review-reason, .schedule-review-section li, .schedule-review-muted { font-size: 16px; line-height: 1.75; overflow-wrap: anywhere; }
.schedule-review-reason { margin: 12px 0 20px; }
.schedule-review-muted { color: var(--muted); margin: 0; }
.schedule-review-section ul { padding-left: 20px; margin: 0; }
.schedule-review-section li + li { margin-top: 8px; }
.schedule-review-dimensions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; }
.schedule-review-dimensions dd { margin: 4px 0 0; color: var(--ink); font-size: 22px; font-weight: 650; font-variant-numeric: tabular-nums; }
.schedule-review-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 18px 32px max(18px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
.schedule-review-actions .button, .schedule-review-error .button { font-size: 14px; min-height: 44px; }
.schedule-review-loading { color: var(--muted); padding-block: 24px; font-size: 16px; }
.schedule-review-error { color: var(--red); font-size: 16px; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .drawer.schedule-review-drawer { width: calc(100vw - 12px); }
  .schedule-review-drawer .drawer-header { padding: 22px 20px 18px; }
  .schedule-review-drawer .schedule-review-content { padding: 22px 20px; }
  .schedule-review-facts { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .schedule-review-dimensions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-review-actions { padding-inline: 20px; }
}
.drawer-section { margin-bottom: 24px; }
.drawer-section h3 { margin: 0 0 12px; color: var(--ink); font-size: 15px; }
.hr-drawer { width: min(1040px, calc(100vw - 56px)); }
.private-drawer-tabs button:disabled { opacity: .45; cursor: not-allowed; }
.private-tab-panel { min-height: 0; }
.private-technical-shell { margin-top: 26px; border-top: 1px solid var(--line); padding-top: 24px; }
.private-section-divider { margin-bottom: 18px; }
.private-section-divider span { display: none; }
.private-section-divider h3 { margin: 0 0 4px; color: var(--ink); font-size: 21px; }
.private-section-divider p { max-width: 70ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.hr-record-card { border: 1px solid #cdd4de; border-radius: 14px; background: #f2f4f7; padding: 20px; }
.hr-record-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.hr-record-heading span { display: none; }
.hr-record-heading h3 { margin: 0 0 5px; color: var(--ink); font-size: 20px; }
.hr-record-heading p { max-width: 65ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.hr-flow-status { flex: 0 0 auto; border-radius: 999px; background: #e5e9ef; color: #303a48; padding: 7px 11px; font-size: 11px; font-weight: 800; }
.hr-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.hr-form-grid label { color: #4c5868; font-size: 12px; font-weight: 750; }
.hr-form-grid input, .hr-form-grid textarea { margin-top: 6px; }
.hr-form-grid textarea { min-height: 92px; resize: vertical; }
.hr-form-grid .wide { grid-column: 1 / -1; }
.hr-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; margin-top: 15px; }
.hr-confirmed-note { margin-top: 15px; border: 1px solid #cfddef; border-radius: 10px; background: #eef4fb; color: #3f5e82; padding: 12px 14px; font-size: 11px; line-height: 1.6; }
.trash-modal { width: min(780px, 95vw); }
.trash-list, .cleanup-list { display: grid; gap: 9px; max-height: 58vh; overflow-y: auto; margin-top: 16px; }
.trash-item, .cleanup-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 12px 14px; }
.cleanup-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; cursor: pointer; }
.cleanup-choice input { width: 16px; height: 16px; accent-color: var(--ink); }
.trash-item strong, .trash-item small, .cleanup-item strong, .cleanup-item small { display: block; }
.trash-item strong, .cleanup-item strong { color: var(--ink); font-size: 13px; }
.trash-item small, .cleanup-item small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.trash-item-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.trash-empty { border-radius: 12px; background: #f2f4f7; color: var(--muted); padding: 26px; text-align: center; font-size: 12px; }
.employee-directory-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.employee-trash-modal { width: min(820px, 100%); }
.employee-trash-modal .modal-header > div { min-width: 0; }
.employee-trash-modal .modal-header p:last-child { font-size: 14px; }
.employee-trash-status { margin: 0 0 12px; color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.employee-trash-modal .form-error { text-align: left; font-size: 14px; overflow-wrap: anywhere; }
.employee-trash-list { display: grid; }
.employee-trash-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 20px 0; border-top: 1px solid var(--line); }
.employee-trash-row > div { min-width: 0; }
.employee-trash-row h3 { margin: 0 0 5px; font-size: 17px; color: var(--ink); overflow-wrap: anywhere; }
.employee-trash-row p { margin: 4px 0; font-size: 14px; color: var(--muted); line-height: 1.6; overflow-wrap: anywhere; }
.employee-trash-row time { font-variant-numeric: tabular-nums; }
.employee-trash-row .employee-trash-reason { white-space: pre-wrap; }
.employee-trash-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.employee-trash-actions .button { min-height: 44px; }
.employee-trash-modal .trash-empty { font-size: 14px; }
.employee-trash-modal .trash-empty strong { color: var(--ink); }
.employee-trash-modal .trash-empty p { margin-bottom: 0; }
@media (max-width: 560px) {
  .employee-trash-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .employee-trash-actions { justify-content: flex-start; }
  .employee-trash-actions > button { flex: 1; }
  .employee-directory-actions { width: 100%; }
  .employee-directory-actions > button { flex: 1; }
}
.eliminate-modal { width: min(520px, calc(100vw - 32px)); }
#candidateEliminateModal { z-index: 70; }
.eliminate-candidate-note { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; border: 1px solid #d8bbae; border-radius: 12px; background: #f7eae1; color: #784538; padding: 13px 14px; overflow-wrap: anywhere; }
.eliminate-candidate-note .ui-icon { width: 19px; height: 19px; }
.eliminate-candidate-note strong { color: #65382e; }
.eliminate-reason-label { display: flex; align-items: center; gap: 8px; }
.required-mark { width: fit-content; border-radius: 999px; background: #f1dcd3; color: #82483b; padding: 2px 7px; font-size: 10px; font-weight: 800; }
.eliminate-modal textarea { min-height: 126px; margin-top: 8px; }
.eliminate-modal textarea[aria-invalid="true"] { border-color: #a95d4e; box-shadow: 0 0 0 3px rgba(169, 93, 78, .14); }
.eliminate-field-meta { display: flex; justify-content: space-between; gap: 14px; margin-top: 7px; color: var(--muted); font-size: 11px; }
.eliminate-field-meta span { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.eliminate-form-error { margin: 8px 0 0; text-align: left; line-height: 1.5; }
.profile-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.profile-grid .wide { grid-column: 1 / -1; }
.result-hero { display: grid; grid-template-columns: 120px 1fr; gap: 15px; border-radius: 16px; background: #f2f4f7; color: var(--ink); padding: 18px; margin-bottom: 20px; }
.result-score { display: grid; place-items: center; border-right: 1px solid #cdd4de; }
.result-score strong { font-size: 38px; color: #4c5868; }
.result-score span { font-size: 9px; color: #4c5868; }
.result-copy strong { color: #4c5868; }
.result-copy p { margin: 7px 0 0; color: #4c5868; font-size: 12px; line-height: 1.65; }
.dimension-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.dimension-card { border-radius: 11px; background: #f2f4f7; padding: 12px; text-align: center; }
.dimension-card span, .dimension-card strong { display: block; }
.dimension-card span { color: var(--muted); font-size: 11px; }
.dimension-card strong { margin-top: 5px; color: var(--ink); font-size: 19px; }
.bullet-panel { border-radius: 13px; background: #f2f4f7; padding: 14px; margin-bottom: 9px; }
.bullet-panel strong { color: var(--ink); font-size: 13px; }
.bullet-panel ul { margin: 9px 0 0; padding-left: 18px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.question-card { border: 1px solid var(--line); border-radius: 15px; padding: 15px; margin-bottom: 12px; }
.question-card header { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 11px; }
.question-card header span { flex: 0 0 auto; border-radius: 7px; background: var(--sage); color: var(--ink); padding: 4px 7px; font-size: 8px; font-weight: 800; }
.question-card header strong { color: var(--ink); font-size: 11px; line-height: 1.5; }
.question-card .evidence { margin: -3px 0 10px; color: var(--muted); font-size: 9px; }
.answer-grid { display: grid; grid-template-columns: 100px 120px 1fr; gap: 9px; margin-top: 9px; }
.report-paper { white-space: pre-wrap; font-family: "Microsoft YaHei UI", sans-serif; line-height: 1.8; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 20px; color: #303a48; font-size: 11px; max-height: 58vh; overflow: auto; }
.report-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 15px; }
.recommendation-banner { padding: 15px; border-radius: 13px; background: var(--sage); color: var(--ink); margin-bottom: 15px; }
.recommendation-banner strong { display: block; font-size: 18px; }
.recommendation-banner span { font-size: 10px; color: var(--muted); }

/* 一面题目与分岗位能力报告 */
.interview-loading { min-height: 340px; display: grid; place-content: center; justify-items: center; gap: 9px; text-align: center; color: var(--ink); }
.interview-loading p { max-width: 48ch; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.mini-loader { width: 34px; height: 34px; border: 3px solid #e5e9ef; border-top-color: var(--blue); border-radius: 50%; animation: spin .8s linear infinite; }
.interview-heading, .ability-report-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
.interview-heading h3, .ability-report-heading h3 { margin: 0; color: var(--ink); font-size: 21px; letter-spacing: -.015em; }
.interview-heading p:not(.eyebrow), .ability-report-heading p:not(.eyebrow) { max-width: 72ch; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.interview-status { flex: 0 0 auto; border: 1px solid #cdd4de; border-radius: 999px; background: #f2f4f7; color: #303a48; padding: 7px 11px; font-size: 11px; font-weight: 800; }
.interview-error-banner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px 13px; margin: -4px 0 14px; border: 1px solid #dfb4ae; border-radius: 11px; background: #fff7f6; color: #8d3f37; padding: 12px 14px; font-size: 12px; }
.interview-error-banner strong { white-space: nowrap; }
.interview-error-banner span { color: #6f4a46; line-height: 1.5; }
.interview-error-banner small { color: var(--muted); white-space: nowrap; }
.interview-setup { display: grid; gap: 15px; }
.current-job-confirm, .job-link-section, .all-jobs-picker { border: 1px solid var(--line); border-radius: 15px; background: #fff; padding: 16px; }
.current-job-confirm > span { display: block; margin-bottom: 9px; color: var(--blue); font-size: 11px; font-weight: 800; }
.current-job-confirm label { display: flex; align-items: center; grid-template-columns: auto 1fr; gap: 9px; color: var(--ink); }
.current-job-confirm input, .job-choice input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--ink); }
.current-job-confirm p { margin: 8px 0 0 25px; color: var(--muted); font-size: 11px; }
.section-inline-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.section-inline-heading span, .section-inline-heading strong { display: block; }
.section-inline-heading span { color: var(--ink); font-size: 14px; font-weight: 800; }
.section-inline-heading strong { margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 600; }
.section-inline-heading small { color: #6b7685; font-size: 10px; }
.job-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.job-choice-grid.all { max-height: 260px; overflow-y: auto; padding-right: 3px; }
.job-choice { position: relative; min-width: 0; display: flex; grid-template-columns: none; align-items: center; gap: 9px; border: 1px solid #e5e9ef; border-radius: 11px; background: #fafbfc; padding: 11px; cursor: pointer; }
.job-choice:has(input:checked) { border-color: #a2acb9; background: #f2f4f7; box-shadow: none; }
.job-choice span { min-width: 0; }
.job-choice strong, .job-choice small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.job-choice strong { color: var(--ink); font-size: 12px; }
.job-choice small { margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 500; }
.job-choice em { margin-left: auto; border-radius: 999px; background: var(--blue-soft); color: var(--blue); padding: 4px 7px; font-size: 9px; font-style: normal; font-weight: 800; }
.all-jobs-picker { padding: 0; overflow: hidden; }
.all-jobs-picker summary { padding: 14px 16px; color: var(--ink); font-size: 11px; font-weight: 800; cursor: pointer; list-style: none; }
.all-jobs-picker summary::-webkit-details-marker { display: none; }
.all-jobs-picker summary small { margin-left: 5px; color: var(--muted); font-weight: 500; }
.all-jobs-picker[open] summary { border-bottom: 1px solid var(--line); background: #fafbfc; }
.all-jobs-picker .job-choice-grid { padding: 12px; }
.inline-empty { grid-column: 1 / -1; border-radius: 10px; background: #fafbfc; color: var(--muted); padding: 14px; text-align: center; font-size: 9px; }
.interview-generate-bar { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-radius: 14px; background: #f2f4f7; padding: 15px 17px; }
.interview-generate-bar strong, .interview-generate-bar small { display: block; }
.interview-generate-bar strong { color: #303a48; font-size: 13px; }
.interview-generate-bar small { margin-top: 4px; color: #4c5868; font-size: 11px; }
.interview-progress { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.interview-progress > span { flex: 1; height: 7px; border-radius: 999px; background: #f2f4f7; overflow: hidden; }
.interview-progress i { display: block; height: 100%; border-radius: inherit; background: #4c5868; }
.interview-progress strong { flex: 0 0 auto; color: var(--muted); font-size: 11px; }
.question-group { margin-bottom: 24px; }
.question-group-heading { position: sticky; top: -24px; z-index: 2; display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; border: 1px solid #e5e9ef; border-radius: 11px; background: rgba(239,245,240,.97); backdrop-filter: blur(8px); padding: 10px 12px; }
.question-group-heading strong { color: var(--ink); font-size: 13px; }
.question-group-heading span { color: #4c5868; font-size: 10px; }
.interview-question-card { border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 17px; margin-bottom: 11px; }
.interview-question-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.interview-question-card > header > div { display: flex; align-items: center; gap: 7px; }
.interview-question-card > header span { border-radius: 7px; background: var(--blue-soft); color: var(--blue); padding: 4px 8px; font-size: 10px; font-weight: 800; }
.interview-question-card > header small { color: #6b7685; font-size: 10px; }
.question-regenerate { min-height: 34px; border: 0; border-radius: 8px; background: #f2f4f7; color: #4c5868; padding: 6px 9px; font-size: 10px; font-weight: 750; }
.question-regenerate:hover { background: #f2f4f7; color: var(--ink); }
.question-regenerate:disabled { opacity: .45; cursor: not-allowed; }
.interview-question-card h4 { max-width: 75ch; margin: 14px 0 11px; color: #303a48; font-size: 14px; line-height: 1.65; }
.evidence-guide { margin-bottom: 13px; border-radius: 10px; background: #fafbfc; padding: 9px 11px; }
.evidence-guide summary { color: #4c5868; font-size: 11px; font-weight: 800; cursor: pointer; }
.evidence-guide ul, .evidence-guide p { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.interview-answer-grid { display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 10px; margin-top: 10px; }
.question-ai-result { margin-top: 12px; border: 1px solid #cbd8ee; border-radius: 9px; background: #f3f6fc; padding: 11px 12px; }
.question-ai-score { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 9px; }
.question-ai-result strong, .question-ai-result span { display: inline-block; color: #315493; font-size: 11px; }
.question-ai-result span { color: #748399; }
.question-ai-result p { margin: 7px 0 0; color: #536273; font-size: 11px; line-height: 1.6; }
.question-ai-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 9px; }
.question-ai-details > div { border-radius: 8px; background: rgba(255,255,255,.72); padding: 8px; }
.question-ai-details > div > strong { color: #4a5e79; font-size: 11px; }
.question-ai-details ul { margin: 5px 0 0; padding-left: 16px; color: #5f6f82; font-size: 11px; line-height: 1.6; }
.question-ai-result.not-involved { border-color: #cdd4de; background: #f2f4f7; }
.question-ai-result.not-involved strong { color: #6b7685; }
.question-ai-result.not-involved p { color: #6b7685; }
.live-question-section { margin: 28px 0 8px; border: 1px solid #e5e9ef; border-radius: 14px; background: #f2f4f7; padding: 16px; }
.live-question-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 12px; }
.live-question-heading span, .interview-record-heading span { display: none; }
.live-question-heading h4 { margin: 0; color: var(--ink); font-size: 17px; }
.live-question-heading p { max-width: 70ch; margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.live-question-heading > strong { flex: 0 0 auto; border-radius: 999px; background: #f2f4f7; color: #4c5868; padding: 6px 9px; font-size: 10px; }
.live-question-card { border-color: #cdd4de; box-shadow: none; }
.interview-question-card > header .live-question-badge { background: #f2f4f7; color: #303a48; }
.live-question-card > label:first-of-type { margin-top: 12px; }
.live-question-remove { border: 0; border-radius: 8px; background: #f8e9e6; color: #9c4c42; padding: 6px 9px; font-size: 8px; font-weight: 800; }
.live-question-remove:hover { background: #f2d8d3; }
.live-question-composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 9px; border: 1px dashed #a2acb9; border-radius: 12px; background: rgba(255,255,255,.72); padding: 11px; }
.live-question-composer textarea { min-height: 64px; margin: 0; }
.live-question-composer .button { min-height: 42px; white-space: nowrap; }
.interview-record-section { margin: 20px 0 8px; border: 1px solid #cdd9df; border-radius: 14px; background: #f0f5f6; padding: 17px; box-shadow: none; }
.interview-record-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 13px; }
.interview-record-heading span { color: #4b72bc; font-size: 8px; font-weight: 850; letter-spacing: .09em; }
.interview-record-heading h4 { margin: 0; color: var(--ink); font-size: 17px; }
.interview-record-heading p { max-width: 70ch; margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.interview-record-heading > strong { flex: 0 0 auto; border-radius: 999px; background: #e8eef7; color: #526b91; padding: 6px 9px; font-size: 10px; }
.interview-record-heading > strong.error { background: #f8e7e4; color: #a04c43; }
.interview-record-main { display: block; color: #303a48; font-size: 12px; font-weight: 800; }
.interview-record-main em { color: #a54239; font-size: 10px; font-style: normal; }
.interview-record-main textarea { min-height: 210px; margin-top: 7px; resize: vertical; line-height: 1.7; }
.interview-overall-grid { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: start; gap: 10px; margin-top: 12px; }
.interview-overall-grid textarea { min-height: 82px; }
.sticky-interview-actions { position: sticky; bottom: -36px; z-index: 4; display: flex; justify-content: flex-end; gap: 9px; border-top: 1px solid var(--line); background: rgba(255,253,248,.94); backdrop-filter: blur(10px); padding: 13px 0; }
.error-state { border-color: #e5c4c0; background: #fff7f6; }

.ability-locked .lock-glyph { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 15px; border-radius: 50%; background: #f2f4f7; color: #6b7685; font-size: 24px; }
.ability-overall-summary { margin-bottom: 14px; border: 1px solid #e5e9ef; border-radius: 13px; background: #fafbfc; padding: 14px 16px; }
.ability-overall-summary strong { color: var(--ink); font-size: 13px; }
.ability-overall-summary p { margin: 7px 0 0; color: #4c5868; font-size: 12px; line-height: 1.7; }
.ability-job-list { display: grid; gap: 17px; }
.ability-job-card { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.ability-job-card > header { display: flex; justify-content: space-between; align-items: center; gap: 18px; background: #f2f4f7; padding: 18px; color: var(--ink); }
.ability-job-card > header span { color: #4c5868; font-size: 10px; letter-spacing: .03em; }
.ability-job-card > header h3 { margin: 5px 0 0; color: #303a48; font-size: 16px; }
.ability-score-columns { display: grid; grid-template-columns: repeat(2, minmax(92px, 1fr)); gap: 8px; }
.ability-score-columns > div { border: 1px solid #cdd4de; border-radius: 11px; background: #f2f4f7; padding: 9px 11px; }
.ability-score-columns small, .ability-score-columns strong, .ability-score-columns em { display: block; }
.ability-score-columns small { color: #4c5868; font-size: 10px; }
.ability-score-columns strong { margin-top: 3px; font-size: 20px; }
.ability-score-columns em { color: #4c5868; font-size: 9px; font-style: normal; }
.ability-score-columns .human strong { color: #4c5868; }
.ability-score-columns .ai { border-color: #b9cddd; background: #e8f0f5; }
.ability-score-columns .ai small, .ability-score-columns .ai em { color: #587083; }
.ability-score-columns .ai strong { color: #49677b; }
.ability-chart { padding: 18px; border-bottom: 1px solid var(--line); }
.ability-chart-legend { display: flex; justify-content: flex-end; gap: 13px; margin-bottom: 10px; }
.ability-chart-legend span { color: var(--muted); font-size: 10px; }
.ability-chart-legend span::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 5px; border-radius: 2px; vertical-align: -1px; }
.ability-chart-legend .human::before { background: #4c5868; }
.ability-chart-legend .ai::before { background: #4e7c9c; }
.ability-dimension-row { display: grid; grid-template-columns: 92px minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 10px; margin-top: 9px; }
.ability-dimension-row > strong { color: #303a48; font-size: 11px; }
.ability-dimension-row > div { display: grid; grid-template-columns: minmax(0, 1fr) 25px; align-items: center; gap: 6px; }
.ability-dimension-row > div > span { height: 8px; border-radius: 999px; background: #f2f4f7; overflow: hidden; }
.ability-dimension-row i { display: block; height: 100%; border-radius: inherit; }
.ability-dimension-row span.human i { background: #4c5868; }
.ability-dimension-row span.ai i { background: #4e7c9c; }
.ability-dimension-row small { color: #4c5868; font-size: 10px; text-align: right; }
.ability-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 18px; }
.ability-list-panel { min-width: 0; border-radius: 11px; background: #fafbfc; padding: 13px; }
.ability-list-panel h4 { margin: 0 0 8px; color: var(--ink); font-size: 12px; }
.ability-list-panel ul { margin: 0; padding-left: 18px; color: #4c5868; font-size: 11px; line-height: 1.7; }
.ability-list-panel li + li { margin-top: 4px; }
.ability-list-panel p { margin: 0; color: #4c5868; font-size: 11px; }
.ability-live-records { border-top: 1px solid var(--line); background: #fafbfc; padding: 0 18px 18px; }
.ability-live-records summary { padding: 14px 0 0; color: #303a48; font-size: 10px; font-weight: 850; cursor: pointer; }
.ability-live-records > div { display: grid; gap: 8px; margin-top: 10px; }
.ability-live-records article { border: 1px solid #e5e9ef; border-radius: 11px; background: #fff; padding: 11px 12px; }
.ability-live-records article header { display: flex; justify-content: space-between; gap: 10px; }
.ability-live-records article header span { color: #4c5868; font-size: 10px; font-weight: 850; }
.ability-live-records article header strong { color: #4c5868; font-size: 10px; }
.ability-live-records article h4 { margin: 8px 0 6px; color: var(--ink); font-size: 12px; line-height: 1.55; }
.ability-live-records article p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.ability-live-records article b { color: #4c5868; }
.ai-scoring-basis { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr); gap: 14px; margin-top: 17px; border: 1px solid #d4dfe4; border-radius: 15px; background: #f0f5f7; padding: 16px; }
.ai-scoring-basis strong { color: #4b687b; font-size: 11px; }
.ai-scoring-basis p { margin: 6px 0 0; color: #5f7381; font-size: 11px; line-height: 1.6; }
.ai-scoring-basis ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.ai-scoring-basis li { border-radius: 9px; background: #fff; padding: 9px 10px; color: #526378; font-size: 11px; }
.ai-scoring-basis b { display: inline-block; min-width: 30px; color: #4b687b; font-size: 10px; }

.sync-helper-shell { overflow: hidden; border: 1px solid #cdd4de; border-radius: 16px; background: var(--surface); }
.sync-helper-intro { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(290px, .82fr); gap: clamp(28px, 5vw, 72px); padding: clamp(26px, 4vw, 52px); background: #f2f4f7; }
.sync-helper-copy { min-width: 0; }
.sync-helper-badge { display: inline-flex; align-items: center; min-height: 28px; border-radius: 999px; background: #e5e9ef; padding: 5px 10px; color: #303a48; font-size: 11px; font-weight: 800; }
.sync-helper-copy h2 { max-width: 20ch; margin: 14px 0 13px; color: #303a48; font-size: clamp(26px, 3.2vw, 40px); line-height: 1.16; letter-spacing: -.025em; text-wrap: balance; }
.sync-helper-copy > p { max-width: 67ch; margin: 0; color: #4c5868; font-size: 14px; line-height: 1.75; }
.sync-folder { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 680px; margin-top: 25px; border: 1px solid #cdd4de; border-radius: 13px; background: rgba(255, 253, 248, .72); padding: 14px 14px 14px 17px; }
.sync-folder > div { min-width: 0; }
.sync-folder span, .sync-folder code { display: block; }
.sync-folder span { margin-bottom: 5px; color: #4c5868; font-size: 11px; font-weight: 750; }
.sync-folder code { color: #303a48; font-family: Consolas, "SFMono-Regular", monospace; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
.sync-helper-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 11px 14px; margin-top: 17px; }
.sync-helper-actions small { color: #4c5868; font-size: 11px; }
.sync-package-note { margin: 10px 0 0; color: #4c5868; font-size: 11px; line-height: 1.6; }
.sync-package-note a { margin-inline-start: 3px; color: #303a48; font-weight: 750; text-underline-offset: 3px; }
.sync-security-alert { max-width: 680px; margin-top: 14px; border: 1px solid #d8bbae; border-radius: 12px; background: #f7eae1; padding: 12px 14px; color: #7f4739; font-size: 12px; line-height: 1.65; }
.sync-steps { align-self: center; min-width: 0; }
.sync-steps h3 { margin: 0 0 20px; color: #303a48; font-size: 16px; }
.sync-steps ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.sync-steps li { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 13px; padding-bottom: 22px; }
.sync-steps li:last-child { padding-bottom: 0; }
.sync-step-index { position: relative; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fffdf8; color: #303a48; font-size: 12px; font-weight: 850; box-shadow: 0 7px 18px rgba(45, 63, 57, .08); }
.sync-steps li:not(:last-child)::after { content: ""; position: absolute; top: 34px; bottom: 0; left: 16px; width: 1px; background: #cdd4de; }
.sync-steps strong { display: block; padding-top: 2px; color: #303a48; font-size: 13px; }
.sync-steps p { margin: 4px 0 0; color: #4c5868; font-size: 12px; line-height: 1.6; }
.sync-device-section { padding: clamp(24px, 3vw, 38px) clamp(22px, 4vw, 52px) 32px; }
.sync-device-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.sync-device-heading h3 { margin: 0; color: var(--ink); font-size: 20px; }
.sync-device-heading p { max-width: 68ch; margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.sync-device-form { display: grid; grid-template-columns: auto minmax(220px, 420px) auto; align-items: center; gap: 11px; margin-top: 22px; }
.sync-device-form label { color: var(--ink); font-size: 12px; font-weight: 800; }
.sync-device-form input { width: 100%; min-height: 42px; border: 1px solid var(--line-strong); border-radius: 9px; background: #fff; padding: 9px 12px; color: var(--ink); }
.sync-device-error { min-height: 0; margin: 7px 0 0; text-align: left; }
.sync-token-result { margin-top: 20px; border: 1px solid #a2acb9; border-radius: 14px; background: #f2f4f7; padding: 18px; }
.sync-token-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.sync-token-heading strong { color: #303a48; font-size: 14px; }
.sync-token-heading p { margin: 5px 0 0; color: #4c5868; font-size: 12px; line-height: 1.6; }
.sync-token-copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; gap: 10px; margin-top: 14px; }
.sync-token-copy textarea { min-width: 0; resize: none; border: 1px solid #a2acb9; border-radius: 9px; background: #fff; padding: 11px 12px; color: #303a48; font-family: Consolas, "SFMono-Regular", monospace; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.sync-token-safety { margin: 10px 0 0; color: #755443; font-size: 11px; line-height: 1.6; }
.sync-device-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 27px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.sync-device-list-heading strong { color: var(--ink); font-size: 12px; }
.sync-device-list-heading span { color: var(--muted); font-size: 11px; }
.sync-device-list { display: grid; }
.sync-device-loading { margin: 0; padding: 20px 0; color: var(--muted); font-size: 12px; }
.sync-device-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-width: 0; border-bottom: 1px solid var(--line); padding: 15px 0; }
.sync-device-identity { display: grid; grid-template-columns: 10px minmax(0, 1fr); align-items: start; gap: 11px; min-width: 0; }
.sync-device-dot { width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: #4c5868; }
.sync-device-dot.revoked { background: #a2acb9; }
.sync-device-identity strong, .sync-device-identity small { display: block; overflow-wrap: anywhere; }
.sync-device-identity strong { color: var(--ink); font-size: 13px; }
.sync-device-identity small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.sync-device-row .button { flex: 0 0 auto; min-height: 36px; padding: 7px 12px; font-size: 11px; }
.sync-device-empty { padding: 24px 0 4px; text-align: center; }
.sync-device-empty strong { color: var(--ink); font-size: 13px; }
.sync-device-empty p { margin: 6px 0 0; color: var(--muted); font-size: 12px; }
.sync-devices-error { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; border-radius: 12px; background: #fff4ef; padding: 12px 14px; }
.sync-devices-error p { margin: 0; color: var(--red); font-size: 12px; }
.sync-security-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 13px 20px; border-top: 1px solid #e5e9ef; background: #fafbfc; padding: 18px clamp(22px, 4vw, 52px); }
.sync-security-note strong { color: #4c5868; font-size: 11px; }
.sync-security-note p { margin: 0; color: #4c5868; font-size: 11px; line-height: 1.65; }
.legacy-sync-area { margin-top: 20px; }
.sync-layout { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }
.sync-card { border: 1px solid var(--line); border-radius: 20px; background: rgba(255,253,248,.94); padding: 26px; box-shadow: 0 8px 28px rgba(24,63,51,.05); }
.sync-card.featured { border-color: #cdd4de; background: #f2f4f7; color: var(--ink); box-shadow: none; }
.sync-card h2, .sync-card h3 { margin: 4px 0 10px; color: var(--ink); }
.sync-card.featured h2 { color: #303a48; font-size: 26px; }
.sync-card p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.sync-card.featured p { color: #4c5868; }
.sync-card code { display: block; margin: 19px 0; border: 1px solid #cdd4de; border-radius: 11px; padding: 12px; color: #4c5868; background: #f2f4f7; font-family: Consolas, monospace; font-size: 12px; word-break: break-all; }
.sync-actions { display: flex; gap: 9px; }
.sync-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; margin: 18px 0; }
.sync-stats span { border-radius: 10px; background: #f2f4f7; padding: 11px; color: var(--muted); font-size: 11px; }
.sync-stats b { display: block; color: var(--ink); font-size: 20px; }
.progress-track { height: 8px; border-radius: 999px; background: #e5e9ef; overflow: hidden; }
.progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: #4c5868; }
.sync-detail { margin-bottom: 0 !important; }
.sync-note { margin-top: 18px; border-radius: 14px; background: var(--sage); padding: 15px 18px; }
.sync-note strong { color: var(--ink); font-size: 11px; }
.sync-note p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.issue-list { margin-top: 16px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.issue-list section { border: 1px solid var(--line); border-radius: 13px; background: #fff; padding: 14px; }
.issue-list section.error { border-color: #e6c2bd; background: #fff8f6; }
.issue-list strong { color: var(--ink); font-size: 11px; }
.issue-list p { color: var(--muted); font-size: 9px; line-height: 1.7; word-break: break-all; }

.employee-table-wrap { background: #fff; }
.employee-table { width: 100%; border-collapse: collapse; min-width: 1500px; }
.employee-table th { background: #f2f4f7; color: #303a48; padding: 12px; text-align: left; font-size: 11px; letter-spacing: .02em; position: sticky; top: 0; }
.employee-table td { border-top: 1px solid #f2f4f7; padding: 13px 12px; color: #303a48; font-size: 11px; vertical-align: top; }
.employee-table td strong, .employee-table td small { display: block; }
.employee-table td strong { color: var(--ink); font-size: 13px; }
.employee-table td small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.employee-table .address-cell { max-width: 220px; line-height: 1.55; }
.employee-table .work-terms-cell { min-width: 180px; max-width: 260px; line-height: 1.55; overflow-wrap: anywhere; }
.employee-status { display: inline-block; border-radius: 999px; padding: 5px 9px; background: #d5e8d8; color: #38634b; font-size: 10px; font-weight: 800; }
.employee-status[data-status="试用期"] { background: var(--apricot-soft); color: #805f3c; }
.employee-status[data-status="停薪留职"] { background: var(--blue-soft); color: var(--blue); }
.employee-status[data-status="离职"] { background: #edf0ee; color: #6c7771; }
.source-tag { display: inline-block; margin-bottom: 7px; border-radius: 7px; background: var(--sage); color: var(--ink); padding: 4px 8px; font-size: 10px; font-weight: 800; }
.employee-edit-btn { padding: 6px 10px; }
.file-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px; }
.file-actions button { border: 0; border-radius: 7px; background: var(--sage); color: var(--ink); padding: 6px 8px; font-size: 9px; font-weight: 800; }
.file-actions button:hover { background: #e5e9ef; }
.employee-history { position: relative; }
.employee-history summary { border-radius: 7px; background: var(--apricot-soft); color: #76572f; padding: 6px 8px; font-size: 9px; font-weight: 800; list-style: none; cursor: pointer; user-select: none; }
.employee-history summary::-webkit-details-marker { display: none; }
.employee-history summary::after { content: "⌄"; margin-left: 5px; }
.employee-history[open] summary::after { content: "⌃"; }
.employee-history-list { display: grid; gap: 5px; min-width: 112px; margin-top: 5px; padding: 6px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: var(--shadow-sm); }
.employee-history-list button { width: 100%; text-align: left; white-space: nowrap; }
.employee-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.employee-row-actions .button { min-height: 32px; padding: 6px 9px; font-size: 9px; }

.confirm-modal { width: min(620px, 94vw); }
.sync-confirm-copy, .salary-hint { border-radius: 13px; background: var(--sage); padding: 14px 16px; color: var(--ink); font-size: 11px; line-height: 1.7; }
.onboarding-modal { width: min(1180px, 96vw); }
.standalone-offer-modal { width: min(760px, calc(100vw - 32px)); border-radius: 16px; }
.standalone-offer-modal .modal-header > div { min-width: 0; }
.standalone-offer-modal .modal-header p:last-child { font-size: 14px; }
.standalone-offer-modal .icon-button { flex-shrink: 0; }
.standalone-offer-modal .button { min-height: 44px; font-size: 14px; }
.standalone-offer-modal label { min-width: 0; font-size: 14px; }
.standalone-offer-modal input, .standalone-offer-modal select { min-width: 0; min-height: 44px; font-size: 16px; caret-color: var(--accent); }
.standalone-offer-modal input[type="date"], .standalone-offer-modal input[type="time"] { font-variant-numeric: tabular-nums; }
.standalone-offer-modal small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; font-weight: 400; }
.offer-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.offer-field-hint { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.offer-section-title { margin: 26px 0 14px; font-size: 16px; }
.offer-form-actions { justify-content: space-between; }
.offer-preview-heading h3 { margin: 0; font-size: 18px; }
.offer-preview-heading p { margin: 6px 0 14px; color: var(--muted); font-size: 14px; }
.offer-history-field { display: block; margin-bottom: 16px; }
.offer-confirm-section { margin: 0 0 20px; padding: 0 0 20px; border-bottom: 1px solid var(--line); }
.offer-confirm-section h3 { margin: 0 0 14px; font-size: 16px; }
.offer-employment-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; margin: 0; }
.offer-employment-summary > div { min-width: 0; }
.offer-employment-summary dt { color: var(--muted); font-size: 12px; line-height: 1.5; }
.offer-employment-summary dd { margin: 3px 0 0; color: var(--ink); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.offer-confirm-actions { display: flex; align-items: center; gap: 18px; margin-top: 18px; }
.offer-confirm-actions p { flex: 1; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.offer-confirm-actions .button { flex-shrink: 0; }
.offer-document-text { margin: 0; padding: 20px; max-height: 48vh; overflow: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); font: inherit; font-size: 14px; line-height: 1.85; scrollbar-color: var(--line-strong) var(--surface); }
.offer-status, .offer-error { margin: 12px 0 0; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.standalone-offer-modal > .offer-status, .standalone-offer-modal > .offer-error { margin: 0 0 16px; }
.offer-status { color: var(--muted); }
.offer-status:empty, .offer-error:empty { display: none; }
.offer-input-error { display: block; margin-top: 6px; color: var(--red); font-size: 13px; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
.standalone-offer-modal [aria-invalid="true"] { border-color: var(--red); }
.standalone-offer-modal ::selection { background: var(--selected); color: var(--ink); }
.standalone-offer-modal :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 600px) {
  #standaloneOfferModal { padding: 12px; }
  .standalone-offer-modal { width: 100%; max-height: 94dvh; padding: 20px; }
  .standalone-offer-modal .form-grid.two { grid-template-columns: minmax(0, 1fr); }
  .standalone-offer-modal .modal-actions { flex-wrap: wrap; }
  .standalone-offer-modal .modal-actions .button { flex: 1 1 140px; }
  .standalone-offer-modal .modal-header { gap: 10px; }
  .offer-document-text { padding: 14px; }
  .offer-employment-summary { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .offer-employment-summary > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; }
  .offer-employment-summary dt { padding-top: 2px; }
  .offer-employment-summary dd { margin: 0; }
  .offer-confirm-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  #candidateDrawer .drawer-header-actions { flex-wrap: wrap; justify-content: flex-end; }
}
.employee-modal { width: min(1080px, 96vw); }
.employee-modal .modal-header > div { min-width: 0; }
.employee-modal .icon-button { flex-shrink: 0; }
.employee-modal label { min-width: 0; font-size: 14px; }
.employee-modal input, .employee-modal select, .employee-modal textarea { min-width: 0; min-height: 44px; font-size: 16px; caret-color: var(--accent); }
.employee-modal input[type="date"], .employee-modal input[type="time"] { font-variant-numeric: tabular-nums; }
.employee-modal :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.employee-modal ::selection { background: var(--selected); color: var(--ink); }
.employee-modal .salary-hint { font-size: 13px; line-height: 1.7; }
.employee-section-title { margin: 26px 0 14px; font-size: 16px; }
.password-modal { width: min(450px, calc(100vw - 32px)); }
.password-modal label { margin-top: 18px; }
.password-modal input { font-size: 20px; letter-spacing: .12em; }
.job-password-settings-modal { width: min(520px, calc(100vw - 24px)); border-radius: 16px; }
.job-password-settings-modal .modal-header p:last-child { font-size: 14px; }
.job-password-settings-modal .modal-header > div { min-width: 0; }
.job-password-settings-modal .icon-button { flex-shrink: 0; }
.job-password-settings-modal label { display: block; margin-top: 20px; font-size: 14px; }
.job-password-settings-modal input { font-size: 16px; letter-spacing: .08em; }
.job-password-settings-status { margin: 0 0 16px; color: var(--ink); font-size: 14px; line-height: 1.6; }
.job-password-settings-help { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.job-password-settings-modal .form-error { font-size: 14px; overflow-wrap: anywhere; }
.job-password-settings-modal .modal-actions { flex-wrap: wrap; }
.job-password-settings-modal .button { min-height: 44px; font-size: 14px; }
#jobPasswordSettingsBtn { white-space: nowrap; }
.password-privacy-note { margin: 10px 0 0; color: #4c5868; font-size: 11px; line-height: 1.6; }
.employee-form-grid { margin-bottom: 15px; }
.form-grid.three .wide { grid-column: 1 / -1; }
.salary-hint { margin-top: 4px; color: var(--muted); }
.salary-preview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 16px; }
.salary-preview > div { border-radius: 13px; background: #f2f4f7; padding: 14px; }
.salary-preview.compact { grid-template-columns: repeat(2, 1fr); margin-top: 13px; }
.salary-preview .salary-placeholder { grid-column: 1 / -1; color: var(--muted); font-size: 10px; text-align: center; }
.salary-preview span, .salary-preview strong, .salary-preview small { display: block; }
.salary-preview span { color: var(--muted); font-size: 11px; }
.salary-preview strong { margin: 5px 0; color: var(--ink); font-size: 19px; }
.salary-preview small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.document-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.document-preview-grid section { min-width: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; }
.preview-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line); background: #f2f4f7; }
.preview-header strong { color: var(--ink); font-size: 11px; }
.document-preview-grid pre { margin: 0; max-height: 49vh; overflow: auto; white-space: pre-wrap; word-break: break-word; padding: 16px; color: #303a48; font-family: "Microsoft YaHei UI", sans-serif; font-size: 11px; line-height: 1.75; }

.loading-overlay { position: fixed; inset: 0; z-index: 100; background: rgba(246,243,235,.9); backdrop-filter: blur(6px); display: grid; place-content: center; justify-items: center; gap: 10px; color: var(--ink); }
.loader { width: 44px; height: 44px; border: 4px solid #e5e9ef; border-top-color: var(--ink); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.loading-overlay small { color: var(--muted); font-size: 12px; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 120; max-width: min(440px, calc(100vw - 32px)); border-radius: 11px; background: #e5e9ef; color: #303a48; padding: 14px 18px; box-shadow: var(--shadow); font-size: 12px; line-height: 1.55; animation: toastIn .25s ease; }
.toast.error { background: #efd5c8; color: #77462f; }
@keyframes toastIn { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1180px) {
  .schedule-heading { align-items: flex-start; }
  .schedule-actions { justify-content: flex-end; }
  .schedule-job-filter { max-width: 190px; }
  .jobs-grid { grid-template-columns: repeat(2, minmax(250px, 1fr)); }
  .sidebar { width: 195px; }
  .app-shell { grid-template-columns: 195px minmax(0, 1fr); }
  .main { padding-inline: 24px; }
  .candidate-workspace { grid-template-columns: 245px minmax(0, 1fr); }
  .assessment-person-header { align-items: flex-start; flex-direction: column; }
  .assessment-person-header > div:first-child, .assessment-actions { flex-basis: auto; }
  .assessment-actions { justify-content: flex-start; }
}
@media (max-width: 1020px) {
  .sync-helper-intro { grid-template-columns: 1fr; }
  .sync-helper-copy h2 { max-width: 24ch; }
  .sync-steps ol { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .sync-steps li { grid-template-columns: 34px minmax(0, 1fr); padding-bottom: 0; }
  .sync-steps li::after { display: none; }
  .sync-layout { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .candidate-workspace { grid-template-columns: 1fr; }
  .candidate-rail { border-right: 0; border-bottom: 1px solid var(--line); }
  .rail-list { max-height: 340px; }
}
@media (max-width: 820px) {
  .interview-schedule { padding: 20px; }
  .schedule-title-group h2 { font-size: 22px; }
  .schedule-heading { flex-wrap: wrap; }
  .schedule-period { gap: 12px 18px; }
  .schedule-period h3 { font-size: 18px; }
  .login-view { padding: 112px 20px 104px; }
  .login-cloud-ghost { top: 47%; width: min(126vw, 720px); }
  .login-brand { left: 24px; top: 24px; gap: 13px; }
  .login-brand img { width: 49px; height: 49px; border-radius: 13px; }
  .login-brand strong { font-size: 23px; }
  .login-brand small { margin-top: 6px; font-size: 9px; }
  .login-coordinate { display: none; }
  .login-capabilities { left: 50%; bottom: 25px; gap: 18px; padding-left: 0; transform: translateX(-50%); }
  .login-capabilities::before { display: none; }
  .login-capabilities li { gap: 8px; padding-right: 18px; font-size: 11px; }
  .login-capabilities svg { width: 19px; height: 19px; }
  .sidebar { position: static; width: auto; min-height: auto; padding: 14px 16px; flex-direction: row; align-items: center; gap: 12px; overflow: hidden; }
  .sidebar .brand-lockup small { display: none; }
  .sidebar nav { min-width: 0; margin: 0 0 0 auto; display: flex; gap: 4px; overflow-x: auto; }
  .sidebar .nav-item { width: auto; min-width: max-content; min-height: 40px; padding: 9px 11px; font-size: 12px; }
  .sidebar-note, .nav-item.subtle { display: none; }
  .app-shell { display: block; }
  .main { padding: 22px 15px 60px; }
  .topbar { align-items: flex-start; flex-direction: column; margin-bottom: 22px; }
  .top-actions { width: 100%; overflow-x: auto; }
  .overview-strip { grid-template-columns: repeat(2, 1fr); }
  .overview-strip > div:nth-child(2) { border-right: 0; }
  .jobs-grid { grid-template-columns: 1fr; }
  .section-heading, .job-hero-main { align-items: flex-start; flex-direction: column; }
  .form-grid.two, .form-grid.three, .profile-grid { grid-template-columns: 1fr; }
  .profile-grid .wide { grid-column: auto; }
  .dimension-grid { grid-template-columns: repeat(2, 1fr); }
  .answer-grid { grid-template-columns: 1fr; }
  .sync-layout, .document-preview-grid, .salary-preview { grid-template-columns: 1fr; }
  .sync-steps ol { grid-template-columns: 1fr; gap: 0; }
  .sync-steps li { padding-bottom: 20px; }
  .sync-steps li:not(:last-child)::after { display: block; }
  .sync-device-form { grid-template-columns: minmax(0, 1fr) auto; }
  .sync-device-form label { grid-column: 1 / -1; }
  .issue-list { grid-template-columns: 1fr; }
  .candidate-workspace { grid-template-columns: 1fr; }
  .candidate-rail { border-right: 0; border-bottom: 1px solid var(--line); }
  .rail-list { max-height: 290px; }
  .assessment-stepper { overflow-x: auto; grid-template-columns: repeat(var(--step-count, 4), minmax(150px, 1fr)); padding-inline: 12px; }
  .fit-section { padding: 21px 16px 32px; }
  .fit-verdict, .fit-points-grid { grid-template-columns: 1fr; }
  .fit-verdict p { border-left: 0; border-top: 1px solid #e5e9ef; padding: 13px 0 0; }
  .assessment-dimensions { grid-template-columns: repeat(2, 1fr); }
  .interview-heading, .ability-report-heading, .ability-job-card > header { align-items: stretch; flex-direction: column; }
  .board-toolbar, .hr-record-heading { align-items: stretch; flex-direction: column; }
  .board-toolbar .board-toolbar-actions { justify-content: flex-start; }
  .hr-form-grid { grid-template-columns: 1fr; }
  .hr-form-grid .wide { grid-column: auto; }
  .trash-item, .cleanup-item { grid-template-columns: 1fr; }
  .trash-item-actions { justify-content: flex-start; }
  .job-choice-grid, .interview-answer-grid, .interview-overall-grid, .ability-evidence-grid, .question-ai-details, .ai-scoring-basis, .ai-scoring-basis ol, .live-question-composer, .interview-error-banner { grid-template-columns: 1fr; }
  .interview-error-banner strong, .interview-error-banner small { white-space: normal; }
  .interview-generate-bar { align-items: stretch; flex-direction: column; }
  .live-question-heading, .interview-record-heading, .ability-live-records article header { flex-direction: column; }
  .ability-score-columns { grid-template-columns: repeat(2, 1fr); }
  .ability-dimension-row { grid-template-columns: 72px minmax(0, 1fr); }
  .ability-dimension-row > div:last-child { grid-column: 2; }
  .drawer, .hr-drawer { width: 100vw; max-width: 100vw; }
  .drawer-header { padding: 22px 20px 17px; }
  .drawer-tabs { padding-inline: 20px; overflow-x: auto; }
  .drawer-content { padding: 22px 20px 48px; }
  .modal-backdrop { padding: 12px; }
  .modal { width: 100%; max-height: calc(100vh - 24px); padding: 22px 18px; border-radius: 14px; }
}

@media (max-width: 560px) {
  .interview-schedule { padding: 18px 14px; }
  .schedule-heading { gap: 16px; }
  .schedule-heading-icon { width: 30px; height: 30px; }
  .schedule-title-group { gap: 10px; }
  .schedule-title-group h2 { font-size: 21px; }
  .schedule-title-group p { font-size: 12px; }
  .schedule-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; width: 100%; gap: 8px; }
  .schedule-job-filter { min-width: 0; max-width: none; }
  .schedule-job-filter select { font-size: 16px; min-height: 44px; }
  .schedule-actions .button { min-height: 44px; padding-inline: 10px; }
  .schedule-period { margin-top: 18px; justify-content: space-between; gap: 10px; }
  .schedule-period h3 { font-size: 16px; width: 100%; }
  .schedule-week-nav { width: 100%; justify-content: space-between; }
  .schedule-week-nav .button { min-height: 44px; }
  .schedule-day { min-height: 88px; padding-inline: 1px; }
  .schedule-day > span, .schedule-day > small { font-size: 11px; }
  .schedule-day > strong { font-size: 22px; }
  .schedule-table-wrap { margin-top: 14px; max-height: 560px; border: 0; border-radius: 0; scrollbar-gutter: auto; }
  .schedule-table, .schedule-table tbody { display: block; }
  .schedule-table colgroup, .schedule-table thead { display: none; }
  .schedule-table .schedule-row { display: grid; grid-template-columns: 60px minmax(0, 1fr) 36px; grid-template-areas: "time name action" "time role action"; gap: 3px 10px; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .schedule-table .schedule-row.has-date { grid-template-areas: "date date date" "time name action" "time role action"; }
  .schedule-table tbody td, .schedule-table tbody th { display: block; padding: 0; border: 0; background: transparent; }
  .schedule-table tbody tr.is-today > * { background: transparent; }
  .schedule-table .schedule-date { grid-area: date; display: flex; align-items: center; gap: 9px; padding: 0 0 12px; }
  .schedule-date strong { font-size: 15px; }
  .schedule-date small { margin: 0; font-size: 11px; }
  .schedule-table .schedule-time { grid-area: time; font-size: 17px; }
  .schedule-name { grid-area: name; }
  .schedule-name strong { font-size: 16px; }
  .schedule-role { grid-area: role; color: var(--muted); font-size: 12px; }
  .schedule-action { grid-area: action; align-self: center; }
  .schedule-candidate-link { justify-content: center; min-height: 44px; width: 36px; }
  .schedule-candidate-link span { display: none; }
  .schedule-candidate-link .ui-icon { width: 20px; height: 20px; }
  .schedule-footer { align-items: flex-start; gap: 6px; }
  .schedule-footer small { display: block; font-size: 10px; }
  .schedule-message { min-height: 160px; padding: 24px 8px; }
  .login-view { padding: 102px 20px 88px; }
  .login-view::before { background-size: 170px 170px; opacity: .13; }
  .login-panel { width: 100%; max-width: 390px; gap: 16px; }
  .login-panel input { min-height: 54px; }
  .login-view .login-submit { min-height: 55px; }
  .login-note { padding-top: 17px; font-size: 10px; }
  .login-cloud-ghost { width: min(160vw, 650px); opacity: .43; }
  .login-signal-dots-one { left: 2%; top: 17%; }
  .login-signal-dots-two { right: -9%; bottom: 19%; }
  .login-capabilities { width: calc(100% - 32px); justify-content: center; gap: 12px; }
  .login-capabilities li { gap: 6px; padding-right: 12px; font-size: 10px; letter-spacing: .03em; }
  .login-capabilities svg { width: 17px; height: 17px; }
  .sidebar .brand-lockup div { display: none; }
  .overview-strip { grid-template-columns: 1fr 1fr; }
  .overview-strip > div { padding: 17px 16px; }
  .overview-strip strong { font-size: 25px; }
  .status-filter { width: 100%; overflow-x: auto; }
  .drawer-header { gap: 12px; }
  .drawer-header-actions { gap: 6px; }
  .drawer-header-actions .button { padding-inline: 11px; }
  .eliminate-modal textarea { font-size: 16px; }
  .job-hero, .candidate-workspace { border-radius: 13px; }
  .sync-helper-intro { padding: 25px 18px 30px; }
  .sync-helper-copy h2 { font-size: 27px; }
  .sync-helper-copy > p { font-size: 14px; }
  .sync-folder, .sync-device-heading, .sync-device-row, .sync-devices-error { align-items: stretch; flex-direction: column; }
  .sync-folder .button, .sync-helper-actions, .sync-helper-actions .button, .sync-device-heading .button, .sync-device-row .button { width: 100%; }
  .sync-helper-actions { align-items: stretch; flex-direction: column; }
  .sync-helper-actions small { text-align: center; }
  .sync-device-section { padding: 24px 18px 28px; }
  .sync-device-form, .sync-token-copy { grid-template-columns: 1fr; }
  .sync-device-form label { grid-column: auto; }
  .sync-device-form input, .sync-token-copy textarea { font-size: 16px; }
  .sync-device-form .button, .sync-token-copy .button, .sync-device-row .button { min-height: 44px; }
  .sync-device-row { gap: 12px; }
  .sync-security-note { grid-template-columns: 1fr; gap: 5px; padding: 17px 18px; }
  .assessment-dimensions, .dimension-grid, .ability-score-columns { grid-template-columns: 1fr 1fr; }
  .ability-dimension-row { grid-template-columns: 1fr; }
  .ability-dimension-row > div, .ability-dimension-row > div:last-child { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Personnel workspace: one protected visit, monthly payroll and future templates. */
.personnel-month-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:0 0 20px; }
.personnel-month-toolbar > label { font-weight:700; }
.personnel-month-toolbar > input { width:170px; min-height:44px; }
.personnel-month-toolbar > span,.personnel-help { color:#4c5868; font-size:14px; line-height:1.65; }
.personnel-month-toolbar > span { flex:1 1 260px; }
.payroll-modal,.personnel-templates-modal { width:min(900px,calc(100vw - 32px)); }
.payroll-mode-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 8px; }
.payroll-mode-row label { color:var(--ink); font-size:15px; font-weight:750; }
.payroll-mode-row select { width:min(280px,100%); font-weight:700; }
.payroll-mode-hint { margin:0 0 20px; }
.payroll-rate-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.payroll-rate-fields label { display:flex; flex-direction:column; gap:8px; color:var(--ink); font-weight:700; }
.payroll-rate-fields input { font-variant-numeric:tabular-nums; }
.payroll-rate-help { margin:8px 0 0; }
.payroll-historical-daily { padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.payroll-historical-daily strong { color:var(--ink); }
.payroll-historical-daily p { margin:8px 0 0; color:#4c5868; line-height:1.75; overflow-wrap:anywhere; }
.payroll-rule-row { display:flex; gap:12px; margin:8px 0; }
.payroll-rule-row input { flex:1; min-width:0; }
.attendance-modes { border:0; padding:0; margin:22px 0 16px; display:flex; flex-wrap:wrap; gap:8px 20px; }
.attendance-modes legend { margin-bottom:10px; font-size:14px; color:#4c5868; }
.attendance-modes label,.personnel-check { display:flex; align-items:center; gap:8px; min-height:44px; }
.attendance-modes input,.personnel-check input { width:18px; height:18px; flex:none; accent-color:#303a48; }
.payroll-weekdays,.payroll-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.payroll-weekdays { text-align:center; margin-bottom:8px; color:#4c5868; }
.payroll-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:64px; padding:8px 2px; border:1px solid #cdd4de; border-radius:8px; color:#303a48; background:#fffdf7; cursor:pointer; font:inherit; font-variant-numeric:tabular-nums; }
.payroll-day small { font-size:12px; }
.payroll-day[data-status="online"] { background:#f2f4f7; border-color:#4c5868; }
.payroll-day[data-status="offline"] { background:#dbe8f0; border-color:#60839b; color:#2c526b; }
.payroll-day[data-status="absent"] { background:#f0ede5; color:#4c5868; }
.payroll-day:hover:not(:disabled) { border-color:#303a48; background:#f2f4f7; }
.payroll-day:focus-visible { outline:3px solid #4c5868; outline-offset:2px; }
.payroll-day:disabled { opacity:.45; cursor:not-allowed; }
.payroll-flags { display:flex; flex-wrap:wrap; gap:12px 32px; margin-top:20px; }
.payroll-save-status { min-height:22px; margin:14px 0 0; color:#303a48; font-size:14px; font-weight:700; }
.payroll-save-status[data-state="pending"] { color:#765826; }
.payroll-save-status[data-state="error"] { color:#9a3e30; }
.payroll-total { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:10px; padding:20px 0 8px; border-top:1px solid #cdd4de; margin-top:18px; font-variant-numeric:tabular-nums; }
.payroll-total strong { font-size:28px; color:#303a48; }
.template-upload-form { display:grid; grid-template-columns:1fr 1.4fr auto; align-items:end; gap:12px; margin:24px 0; }
.template-upload-form label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.template-upload-form input { max-width:100%; }
.template-field-help { margin:20px 0; color:#303a48; }
.template-field-help summary { cursor:pointer; padding:10px 0; }
.template-field-help code { overflow-wrap:anywhere; }
.template-version-row { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; border-top:1px solid #e5e9ef; padding:18px 0; }
.template-version-row h3 { margin:0 0 8px; font-size:17px; }
.template-version-row p { margin:6px 0; color:#4c5868; overflow-wrap:anywhere; }
.template-version-actions { display:flex; flex-wrap:wrap; gap:8px; flex-shrink:0; }
.employee-row-actions { flex-wrap:wrap; }
@media (max-width:600px) {
  .payroll-modal,.personnel-templates-modal { width:calc(100vw - 20px); padding:20px 14px; }
  .payroll-mode-row { align-items:stretch; flex-direction:column; gap:8px; }
  .payroll-mode-row select { width:100%; }
  .payroll-rate-fields { grid-template-columns:minmax(0,1fr); gap:12px; }
  .payroll-rate-fields input,.payroll-mode-row select { font-size:16px; }
  .payroll-rule-row { flex-direction:column; }
  .payroll-calendar,.payroll-weekdays { gap:3px; }
  .payroll-day { min-height:60px; }
  .template-upload-form { grid-template-columns:minmax(0,1fr); }
  .template-version-row { flex-direction:column; gap:10px; }
  .personnel-month-toolbar > span { flex-basis:100%; }
  .personnel-month-toolbar > .button { flex:1 1 auto; }
}
.template-kind-section { border-top: 1px solid var(--line, #e5e9ef); padding: 20px 0; }
.template-kind-section h3 { margin: 0 0 8px; }
.template-kind-section p, .template-fields-line { overflow-wrap: anywhere; }
.template-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; margin: 16px 0; }
.template-field-grid code { overflow-wrap: anywhere; }
@media (max-width: 600px) { .template-field-grid { grid-template-columns: 1fr; } }
.employee-contract-preview { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.8; max-height: 48vh; overflow-y: auto; padding: 16px; border: 1px solid var(--line); background: var(--paper); }
.employee-contract-preview:empty { display: none; }
.payroll-modal { display: flex; flex-direction: column; overflow: hidden; }
.payroll-modal .modal-header, .payroll-footer { flex: none; }
.payroll-scroll { overflow-y: auto; min-height: 0; padding: 0 4px 4px; }
.payroll-footer .payroll-total { margin-top: 8px; padding: 12px 0 6px; }
.payroll-footer .modal-actions { border: 0; padding-top: 6px; margin-top: 2px; }
.template-version-row small { display: block; margin-top: 4px; color: var(--muted); }
.template-version-row .file-actions button, .file-actions button[data-contract-employee], .employee-row-actions button[data-payroll-employee] { min-height: 44px; padding: 10px 12px; font-size: 14px; }
.template-version-row .file-actions button { border: 1px solid var(--line); }
.template-version-row .file-actions button.primary { background: var(--accent); color: var(--on-accent); }

/* Graphite workbench. Layout rules follow the shared, neutral component tokens. */
html { scroll-behavior: auto; }
body { background: var(--cream); color: var(--ink); }
::selection { background: #dbe8f8; color: #203d63; }
::placeholder { color: var(--muted); }
* { scrollbar-color: #adb6c2 transparent; }
*::-webkit-scrollbar-thumb { background-color: #adb6c2; }
input, textarea { caret-color: var(--blue); }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline-color: var(--blue); }
.workspace-header { position: fixed; inset: 0 0 auto; height: 52px; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 24px; background: var(--surface); border-bottom: 1px solid var(--line); }
.workspace-header .brand-lockup { gap: 10px; }
.brand-symbol { display: block; width: 34px; height: 38px; object-fit: contain; }
.workspace-header .brand-lockup > div { display: flex; align-items: center; gap: 18px; }
.workspace-header .brand-lockup strong { font-size: 19px; color: var(--ink); letter-spacing: 0; }
.workspace-header .brand-lockup small { padding-left: 18px; margin: 0; border-left: 1px solid var(--line-strong); color: var(--ink-2); font-size: 14px; letter-spacing: 0; }
.workspace-label { color: var(--muted); font-size: 12px; }
.app-shell { grid-template-columns: 210px minmax(0, 1fr); padding-top: 52px; }
.sidebar { top: 52px; width: 210px; padding: 22px 10px 18px; background: var(--surface); border-color: var(--line); }
.sidebar nav { margin-top: 0; }
.nav-item { position: relative; min-height: 48px; margin-bottom: 6px; padding: 12px 16px; border-radius: 3px; color: var(--ink-2); font-size: 14px; font-weight: 500; transition: background .16s, color .16s; }
.nav-item:hover, .nav-item.active:hover { background: #edf0f4; color: var(--ink); }
.nav-item.active { background: #f0f2f5; color: var(--ink); font-weight: 650; }
.nav-item.active::before { content: ""; position: absolute; left: -10px; top: 8px; bottom: 8px; width: 3px; background: var(--ink-2); }
.sidebar-note { padding: 14px 10px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
.sidebar-note strong { color: var(--ink-2); font-size: 12px; font-weight: 500; }
.sidebar-note small { color: var(--muted); font-size: 11px; }
.sidebar-note .live-dot { box-shadow: none; flex-shrink: 0; margin-top: 5px; }
.nav-item.subtle { justify-content: flex-start; min-height: 40px; margin: 10px 0 0; font-size: 13px; }
.main { max-width: none; padding: 20px 24px 48px; }
.topbar { gap: 16px; margin-bottom: 20px; }
.breadcrumb { margin: 0 0 8px; color: var(--muted); font-size: 13px; }
.topbar h1 { font-size: 28px; font-weight: 650; letter-spacing: 0; line-height: 1.3; }
.top-actions { flex-wrap: wrap; gap: 8px; }
.main:has(#jobView:not(.hidden)) .breadcrumb { color: var(--muted); }
.main:has(#jobsView:not(.hidden)) #exportInterviewScheduleBtn { display: none; }
.view { animation: none; }
.button { min-height: 38px; padding: 8px 14px; border-radius: 3px; font-weight: 600; transition: background .16s, border-color .16s, color .16s; }
.button:hover, .button:active { transform: none; }
.button.primary:hover, .button.dark:hover { box-shadow: none; }
.button.ghost { background: var(--surface); border-color: var(--line); color: var(--ink-2); }
.button.ghost:hover { background: var(--surface-subtle); border-color: var(--line-strong); }
.button.muted, .button:disabled, .button:disabled:hover { background: #edf0f4; border-color: var(--line); color: #626d7c; }
.button.danger-soft { background: #fcf1ef; border-color: #e7c9c4; color: #9b3f35; }
.button.danger-soft:hover { background: #f9e7e3; border-color: #c99891; }
.icon-button { border-radius: 4px; background: var(--surface-subtle); }
.icon-button:hover { transform: none; background: #e4e8ee; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea { border-radius: 3px; }
.interview-schedule { padding: 20px; border-radius: 3px; background: var(--surface); }
.schedule-heading { gap: 12px; }
.schedule-heading-icon { display: none; }
.schedule-title-group h2, .section-heading h2 { font-size: 20px; font-weight: 650; letter-spacing: 0; }
.schedule-title-group p { font-size: 12px; color: var(--muted); }
.schedule-actions { gap: 12px; flex: 1; }
.schedule-actions .schedule-export-button { margin-left: auto; }
.schedule-job-filter select { min-height: 38px; padding-block: 7px; }
.schedule-period { gap: 20px; margin: 14px 0 12px; }
.schedule-period h3 { font-size: 14px; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.schedule-week-nav { gap: 0; }
.schedule-week-nav .button { min-height: 32px; padding: 5px 13px; border-radius: 0; }
.schedule-week-nav .schedule-arrow { width: auto; }
.schedule-week-nav .button { min-width: 72px; }
.schedule-week-nav #scheduleThisWeek { background: var(--selected); color: var(--blue); }
.schedule-week-nav .button + .button { margin-left: -1px; }
.schedule-days { border-radius: 2px; background: #fafbfc; }
.schedule-day { min-height: 62px; gap: 0; padding: 6px 4px; }
.schedule-day > strong { font-size: 15px; font-weight: 600; }
.schedule-day > span, .schedule-day > small { font-size: 11px; }
.schedule-day.is-today, .schedule-day[aria-pressed="true"] { background: var(--selected); color: var(--blue); }
.schedule-day[aria-pressed="true"] { box-shadow: inset 0 -2px var(--blue); }
.schedule-day:hover { background: #e6ecf4; }
.schedule-day[aria-pressed="true"]:focus-visible { outline-color: var(--blue); }
.schedule-table-wrap { margin-top: 14px; border-radius: 2px; scrollbar-gutter: auto; max-height: 356px; }
.schedule-table thead th { padding: 10px 16px; background: var(--surface-subtle); color: var(--ink-2); font-size: 13px; }
.schedule-table tbody td, .schedule-table tbody th { padding: 10px 16px; font-size: 14px; }
.schedule-table tbody tr.is-today > * { background: #fcfdff; }
.schedule-table tr > * + * { border-left: 1px solid var(--line); }
.schedule-table .schedule-date { padding-top: 12px; }
.schedule-date strong { font-size: 14px; font-weight: 600; }
.schedule-table .schedule-time, .schedule-name strong { font-size: 14px; font-weight: 500; }
.schedule-date small { font-size: 11px; }
.schedule-candidate-link, .schedule-text-button { color: var(--blue); font-size: 13px; }
.schedule-candidate-link { padding-block: 2px; min-height: 28px; }
.schedule-footer { margin-top: 12px; }
.schedule-footer small { font-size: 13px; }
.jobs-ledger-panel { min-width: 0; margin-top: 18px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 3px; }
.jobs-ledger-panel > .section-heading { margin: 0 0 16px; align-items: center; }
.status-filter { border-radius: 3px; border: 1px solid var(--line); padding: 0; gap: 0; background: var(--surface); }
.status-filter button { min-height: 34px; padding: 6px 16px; border-radius: 0; font-weight: 500; }
.status-filter button + button { border-left: 1px solid var(--line); }
.status-filter button.active { background: var(--selected); color: var(--blue); }
.status-filter button:hover { background: #edf0f4; }
.jobs-grid.jobs-ledger { display: block; min-width: 0; overflow-x: auto; border: 1px solid var(--line); border-radius: 2px; }
.jobs-table { width: 100%; table-layout: fixed; border-collapse: collapse; text-align: left; }
.jobs-table th { padding: 11px 16px; background: var(--surface-subtle); color: var(--ink-2); font-size: 13px; font-weight: 600; }
.jobs-table th:first-child { width: 29%; }
.jobs-table th:nth-child(2) { width: 14%; }
.jobs-table th:nth-child(3) { width: 18%; }
.jobs-table th:nth-child(4) { width: 18%; }
.jobs-table th:last-child { width: 44px; }
.jobs-table td { padding: 8px 16px; height: 46px; border-top: 1px solid var(--line); font-size: 14px; overflow-wrap: anywhere; vertical-align: middle; }
.jobs-table tr > * + * { border-left: 1px solid var(--line); }
.job-row { cursor: pointer; }
.job-row:hover, .job-row:focus-within { background: #f7f9fc; }
.job-name { display: block; max-width: 100%; border: 0; border-radius: 2px; padding: 2px 0; text-align: left; background: transparent; color: var(--ink); font-weight: 600; font-size: 14px; overflow-wrap: anywhere; }
.job-name:hover { color: var(--blue); }
.job-name:focus-visible { outline-offset: 4px; }
.job-row-preview { margin-top: 2px; color: var(--muted); cursor: auto; }
.job-row-preview summary { width: fit-content; min-height: 20px; font-size: 11px; color: var(--muted); cursor: pointer; }
.job-row-preview p { max-width: 65ch; margin: 10px 0; font-size: 13px; line-height: 1.7; }
.job-row-preview small, .job-row-note { display: block; font-size: 11px; color: var(--muted); }
.job-row-note { margin-top: 3px; }
.job-row-preview .mini-pipeline { margin: 8px 0; }
.job-row-number { font-variant-numeric: tabular-nums; }
.job-row-number span { color: var(--muted); font-size: 12px; }
.jobs-table .job-row-arrow { padding: 8px; text-align: center; color: var(--muted); }
.job-row-arrow .ui-icon { width: 16px; height: 16px; }
.jobs-table .status-badge { padding: 0; background: transparent; border-radius: 0; font-size: 12px; font-weight: 500; color: var(--ink-2); white-space: nowrap; }
.jobs-table .status-badge::before { display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: #3e8261; content: ""; vertical-align: 1px; }
.jobs-table .status-badge[data-status="暂停"]::before { background: #9c7c3f; }
.jobs-table .status-badge[data-status="已关闭"]::before { background: #858e99; }
.section-heading { margin-top: 24px; }
.job-hero, .candidate-workspace, .sync-helper-shell, .sync-card, .table-wrap, .overview-strip, .fit-points, .fit-verdict, .interview-answer-card, .interview-job-group, .ability-job-card, .ability-card, .question-card { border-radius: 4px; box-shadow: none; }
.candidate-workspace { border: 1px solid var(--line); }
.candidate-rail { background: #fafbfc; }
.rail-upload, .rail-filter select, .rail-candidate, .criteria-chip, .candidate-flow-pill { border-radius: 3px; }
.rail-upload:hover { transform: none; }
.rail-candidate:hover { background: #f0f3f7; }
.rail-candidate.active { border-color: #a8bad2; background: var(--selected); }
.rail-candidate.pinned:not(.active) { background: #f4f5f8; }
.rail-avatar, .rail-candidate:nth-child(n) .rail-avatar { background: #edf0f4; color: #505e70; border-color: var(--line); }
.rail-candidate-copy strong { font-size: 14px; }
.rail-candidate-copy small, .rail-candidate-copy span, .candidate-flow-pill { font-size: 11px; }
.assessment-pill { border-radius: 3px; }
.overview-strip { border: 1px solid var(--line); background: var(--surface); }
.overview-strip > div { padding: 18px 22px; border-color: var(--line); }
.overview-strip span { color: var(--muted); }
.overview-strip strong { color: var(--ink); font-size: 26px; }
.modal { border-radius: 6px; box-shadow: 0 16px 64px rgba(20,27,38,.2); }
.modal-header h2 { font-size: 23px; }
.drawer { box-shadow: -12px 0 40px rgba(20,27,38,.16); }
.modal-backdrop, .drawer-backdrop { background: rgba(24,30,40,.32); }
.drawer-tabs { background: var(--surface); }
.drawer-tabs button { border-radius: 3px; }
.drawer-tabs button.active { background: var(--selected); color: var(--blue); }
.drawer-tabs button.active:hover { background: #dce8f8; }
.file-actions button, .employee-history summary { border-radius: 3px; }
.payroll-day { border-radius: 3px; background: var(--surface); border-color: var(--line-strong); color: var(--ink); }
.payroll-day[data-status="online"] { color: #225c9d; background: #e9f2fc; border-color: #7c9fc6; }
.payroll-day[data-status="offline"] { color: #363d49; background: #e9ecf1; border-color: #8a96a7; }
.payroll-day[data-status="absent"] { color: var(--muted); background: #f6f7f9; }
.payroll-day:hover:not(:disabled) { background: #e0e9f5; border-color: var(--blue); }
.payroll-day:focus-visible { outline-color: var(--blue); }
.attendance-modes input, .personnel-check input { accent-color: var(--blue); }
.payroll-total strong, .payroll-save-status { color: var(--ink); }
.payroll-save-status[data-state="pending"] { color: #846222; }
.payroll-save-status[data-state="error"] { color: var(--red); }
.toast { background: #edf4f0; color: #305744; border-radius: 4px; }
.toast.error { background: #faeae6; color: #963c31; }
.login-brand img { object-fit: contain; border-radius: 0; box-shadow: none; }
.performance-week-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; padding: 16px 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 3px; }
.performance-week-buttons { display: flex; gap: 6px; }
.performance-week-toolbar > label { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--ink-2); font-size: 13px; }
.performance-week-toolbar input { width: 166px; padding: 8px 10px; }
.performance-week-toolbar > strong { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.performance-load-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; }
.performance-load-row p, .performance-supporting { margin: 6px 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
#performanceView .form-error { margin: 0 0 12px; text-align: left; overflow-wrap: anywhere; font-size: 13px; }
#performanceView .form-error:empty { display: none; }
.performance-content { display: grid; grid-template-columns: minmax(220px, 29%) minmax(0, 1fr); background: var(--surface); border: 1px solid var(--line); border-radius: 3px; }
.performance-directory { min-width: 0; padding: 20px 0; border-right: 1px solid var(--line); }
.performance-directory > label, .performance-directory > p { margin-inline: 16px; }
.performance-directory > label { display: grid; gap: 8px; font-size: 13px; font-weight: 600; }
.performance-directory input { min-width: 0; width: 100%; padding: 9px 10px; }
.performance-employee-list { max-height: 650px; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: var(--line-strong) var(--surface-subtle); scrollbar-width: thin; }
.performance-employee { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; width: 100%; min-height: 68px; padding: 12px 16px; background: var(--surface); color: var(--ink); border: 0; border-top: 1px solid var(--line); border-radius: 0; text-align: left; cursor: pointer; }
.performance-employee > span:first-child { min-width: 0; }
.performance-employee strong { font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.performance-employee small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.performance-employee:hover { background: var(--surface-subtle); }
.performance-employee.selected { background: var(--selected); color: var(--blue); }
.performance-employee:focus-visible { position: relative; outline: 2px solid var(--blue); outline-offset: -3px; }
.performance-list-status { flex-shrink: 0; padding-top: 2px; color: var(--muted); font-size: 12px; }
.performance-search-empty { padding: 12px 16px; color: var(--muted); font-size: 13px; }
.performance-detail { min-width: 0; padding: 24px; }
.performance-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.performance-editor-heading h3 { margin: 0; font-size: 20px; font-weight: 650; overflow-wrap: anywhere; }
.performance-record-state { flex-shrink: 0; color: var(--muted); font-size: 13px; }
#performanceForm > label { display: grid; gap: 8px; margin-bottom: 18px; font-size: 13px; font-weight: 600; }
#performanceForm textarea { width: 100%; min-width: 0; resize: vertical; line-height: 1.65; }
.performance-score-field { max-width: 230px; }
.performance-score-field .performance-supporting { margin: 0; font-weight: 400; }
.performance-save-row { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; padding-top: 2px; }
.performance-save-row > p { flex: 1 1 180px; margin: 0; color: var(--muted); font-size: 13px; }
.performance-history { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.performance-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.performance-history-heading h3 { margin: 0; font-size: 16px; font-weight: 650; }
#performanceHistoryStatus { color: var(--muted); font-size: 13px; }
.performance-history-record { padding: 14px 0; border-bottom: 1px solid var(--line); }
.performance-history-record summary { cursor: pointer; font-size: 13px; line-height: 1.6; }
.performance-history-record summary > span { margin-right: 18px; font-variant-numeric: tabular-nums; }
.performance-history-record summary > strong { display: inline-block; font-size: 13px; font-weight: 600; }
.performance-history-record summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.performance-history-record dl { margin: 18px 0; }
.performance-history-record dt { margin-top: 16px; font-size: 13px; font-weight: 650; }
.performance-history-record dd { margin: 6px 0 0; color: var(--ink-2); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.65; }
.performance-history-record > .button { margin-top: 8px; }
#performanceHistoryMore, #performanceHistoryRetry { margin-top: 14px; }
@media (max-width: 1050px) {
  .performance-content { grid-template-columns: minmax(190px, 31%) minmax(0, 1fr); }
  .performance-detail { padding: 20px; }
  .performance-week-toolbar > strong { flex-basis: 100%; }
}
@media (max-width: 640px) {
  .performance-week-toolbar { gap: 12px; padding: 14px; }
  .performance-week-buttons { width: 100%; }
  .performance-week-buttons > button { flex: 1; padding-inline: 8px; }
  .performance-week-toolbar > label { width: 100%; justify-content: space-between; }
  .performance-week-toolbar input { max-width: 65%; }
  .performance-week-toolbar > strong { font-size: 13px; }
  .performance-content { display: block; }
  .performance-directory { padding-block: 16px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .performance-employee-list { max-height: 218px; }
  .performance-employee { min-height: 66px; }
  .performance-detail { padding: 20px 16px; }
  .performance-editor-heading { gap: 10px; }
  .performance-save-row > p { flex-basis: 100%; }
  .performance-save-row > button { flex: 1; }
  .performance-history-record summary > span { margin-right: 8px; }
}
@media (min-width: 1100px) {
  #newJobBtn { min-width: 130px; min-height: 42px; }
  .schedule-heading { gap: 24px; }
  .schedule-title-group { flex: none; }
  .schedule-title-group p, .schedule-period { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .schedule-job-filter { min-width: 145px; max-width: 160px; }
  .schedule-heading .button, .schedule-job-filter select { min-height: 36px; }
  .schedule-days { margin-top: 16px; }
  .schedule-day { line-height: 1.2; }
  .schedule-day > small { min-height: 14px; }
  .schedule-table tbody td, .schedule-table tbody th { padding-block: 7px; }
  .schedule-table .schedule-date { padding-top: 11px; white-space: nowrap; }
  .schedule-date strong, .schedule-date small { display: inline; }
  .schedule-date small { margin-left: 5px; }
  .schedule-date-col { width: 19%; }
  .schedule-action-col { width: 17%; }
  .schedule-footer { min-height: 24px; }
  .schedule-footer small { order: -1; }
  .status-filter button { min-width: 86px; }
  .jobs-table th { padding-block: 8px; }
  .jobs-table td { height: 40px; padding-block: 6px; }
  .job-name { display: inline-block; }
  .job-row-preview { display: inline-block; margin: 0 0 0 10px; vertical-align: middle; }
  .job-row-preview[open] { display: block; margin-left: 0; }
  .job-row-note { display: inline; margin-left: 8px; }
}
@media (min-width: 1700px) { .main { padding-inline: 32px; } }
@media (max-width: 1180px) and (min-width: 821px) {
  .app-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .sidebar { width: 190px; }
  .main { padding-inline: 20px; }
  .topbar { align-items: flex-start; }
  .top-actions { max-width: 68%; }
  .jobs-table th, .jobs-table td { padding-inline: 12px; }
}
@media (max-width: 820px) {
  .workspace-header { padding-inline: 16px; }
  .workspace-label { display: none; }
  .app-shell { display: block; }
  .sidebar { position: relative; top: auto; width: 100%; padding: 8px 12px; display: flex; flex-wrap: wrap; gap: 0; border-right: 0; border-bottom: 1px solid var(--line); overflow: visible; }
  .sidebar nav { display: flex; flex: 1 1 100%; width: 100%; margin: 0; gap: 2px; overflow-x: auto; }
  .sidebar .nav-item { min-width: max-content; min-height: 44px; margin: 0; padding: 10px 12px; font-size: 13px; }
  .nav-item.active::before { inset: auto 12px 0; width: auto; height: 2px; }
  .sidebar-note { display: none; }
  .sidebar .nav-item.subtle { display: flex; margin-left: auto; min-height: 32px; padding: 4px 10px; font-size: 11px; }
  .main { padding: 16px 14px 36px; }
  .topbar { gap: 12px; margin-bottom: 16px; }
  .topbar h1 { font-size: 25px; }
  .top-actions { width: 100%; overflow: visible; justify-content: flex-start; gap: 7px; }
  .top-actions .button { font-size: 12px; padding-inline: 10px; }
  .interview-schedule, .jobs-ledger-panel { padding: 16px; }
  .schedule-heading { flex-wrap: wrap; }
  .schedule-actions { flex-basis: 100%; }
  .schedule-week-nav { order: 3; grid-column: 1 / -1; }
  .schedule-title-group h2, .section-heading h2 { font-size: 19px; }
  .jobs-ledger-panel > .section-heading { flex-direction: row; flex-wrap: wrap; gap: 12px; }
  .jobs-table th, .jobs-table td { padding-inline: 10px; }
  .jobs-table th:first-child { width: 32%; }
  .jobs-table th:nth-child(3) { width: 15%; }
  .jobs-table .job-row-number span { display: none; }
  .modal { border-radius: 6px; }
  .button { min-height: 44px; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px; }
}
@media (max-width: 560px) {
  .workspace-header .brand-lockup > div { gap: 12px; }
  .workspace-header .brand-lockup small { padding-left: 12px; font-size: 12px; }
  .workspace-header .brand-lockup strong { font-size: 17px; }
  .brand-symbol { width: 30px; height: 34px; }
  .sidebar nav .nav-icon { width: 17px; height: 17px; }
  .sidebar .nav-item { padding-inline: 10px; }
  .main { padding-inline: 12px; }
  .interview-schedule, .jobs-ledger-panel { padding: 14px 12px; }
  .schedule-actions { gap: 7px; }
  .schedule-period { margin-top: 12px; }
  .schedule-period h3 { font-size: 13px; }
  .schedule-week-nav .button { min-height: 40px; }
  .schedule-day { min-height: 65px; }
  .schedule-day > strong { font-size: 14px; }
  .schedule-table-wrap { max-height: 460px; border: 0; }
  .schedule-table tr > * + * { border: 0; }
  .schedule-table tbody td, .schedule-table tbody th { padding: 0; }
  .schedule-table tbody tr.is-today > * { background: transparent; }
  .schedule-table .schedule-date { padding: 0 0 10px; }
  .schedule-table .schedule-time { font-size: 15px; font-weight: 600; }
  .schedule-name strong { font-size: 15px; }
  .schedule-candidate-link { min-width: 36px; min-height: 44px; }
  .schedule-footer small { font-size: 11px; }
  .status-filter { width: auto; max-width: 100%; }
  .status-filter button { min-height: 38px; padding-inline: 13px; }
  .jobs-grid.jobs-ledger { overflow: visible; border: 0; }
  .jobs-table, .jobs-table tbody { display: block; }
  .jobs-table thead { display: none; }
  .jobs-table .job-row { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; padding: 14px 0; border-top: 1px solid var(--line); }
  .jobs-table .job-row td { display: block; height: auto; padding: 0; border: 0; font-size: 13px; }
  .jobs-table .job-row-title { grid-column: 1 / -1; padding-right: 26px; }
  .job-name { font-size: 15px; min-height: 32px; }
  .job-row td[data-label]:not(.job-row-title)::before { content: attr(data-label); color: var(--muted); margin-right: 8px; font-size: 12px; }
  .jobs-table .job-row-arrow { position: absolute; top: 21px; right: 2px; }
  .job-row-private .job-row-number { display: none; }
  .jobs-ledger-panel .empty-state { padding: 32px 12px; }
  .drawer-header, .drawer-content { padding-inline: 20px; }
  .candidate-workspace, .job-hero { border-radius: 4px; }
  .payroll-rate-fields { gap: 12px; }
  .employee-directory-actions > button { flex: 1 1 auto; white-space: nowrap; }
  .employee-directory-actions > #newEmployeeBtn { flex-basis: 100%; }
}

/* Shared interview review follows the existing Graphite workspace. */
.interview-pool-heading, .interview-pool-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.interview-pool-heading { margin-bottom: 20px; }
.interview-pool-heading p, #interviewPoolSummary { color: var(--muted); margin: 0; }
.interview-pool-toolbar { margin-bottom: 16px; }
.interview-pool-filters { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; background: var(--surface-subtle); border-radius: 4px; }
.interview-pool-filters button { min-height: 40px; border: 0; padding: 8px 16px; color: var(--ink-2); background: transparent; border-radius: 3px; cursor: pointer; font: inherit; }
.interview-pool-filters button[aria-pressed="true"] { color: var(--on-accent); background: var(--accent); }
.interview-pool-filters button:hover:not([aria-pressed="true"]) { background: var(--mint); }
.interview-pool-table-wrap { border: 1px solid var(--line); border-radius: 4px; overflow: auto; background: var(--paper); }
.interview-pool-table { width: 100%; border-collapse: collapse; text-align: left; }
.interview-pool-table th, .interview-pool-table td { padding: 18px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; overflow-wrap: anywhere; }
.interview-pool-table thead th { font-size: 13px; font-weight: 600; color: var(--ink-2); background: var(--surface-subtle); white-space: nowrap; }
.interview-pool-table tbody tr:last-child > * { border-bottom: 0; }
.interview-pool-table tbody tr:hover { background: var(--cream); }
.interview-pool-table .pool-person { font-weight: 650; min-width: 110px; }
.interview-pool-table .pool-date { font-variant-numeric: tabular-nums; color: var(--muted); font-size: 13px; }
.interview-pool-table .pool-action { width: 116px; }
.interview-pool-table .button { min-height: 44px; white-space: nowrap; }
.pool-status { display: inline-block; color: var(--ink-2); background: var(--surface-subtle); padding: 4px 8px; border-radius: 4px; white-space: nowrap; font-size: 13px; }
.pool-status.is-accepted { color: #285940; background: #e8f1eb; }
.interview-pool-drawer .drawer-header h2 { margin-top: 0; }
.interview-pool-drawer .status-badge { margin-top: 10px; }
.interview-pool-resume { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; line-height: 1.8; }
.interview-pool-reject { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 24px; }
.interview-pool-reject h3 { font-size: 18px; margin: 0 0 16px; }
.interview-pool-reject label { display: block; font-weight: 600; margin-bottom: 8px; }
.interview-pool-reject textarea { width: 100%; resize: vertical; min-height: 100px; font: inherit; line-height: 1.6; }
.interview-pool-reject p { color: var(--muted); font-size: 13px; }
.interview-pool-actions { flex-shrink: 0; background: var(--paper); }
.interview-pool-actions #interviewPoolDownloadBtn { margin-right: auto; }
.candidate-pool-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 16px 32px; border-bottom: 1px solid var(--line); }
.candidate-pool-tools .button { min-height: 44px; }
.candidate-pool-tools [role="status"] { font-weight: 600; }
.candidate-pool-tools .form-error { width: 100%; margin: 0; }
#interviewPoolDialog :focus-visible, #interviewPoolView :focus-visible, .candidate-pool-tools :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
@media (max-width: 700px) {
  .interview-pool-heading { align-items: flex-start; }
  .interview-pool-heading p { flex: 1 1 180px; }
  .interview-pool-toolbar { gap: 12px; }
  .interview-pool-table, .interview-pool-table tbody { display: block; }
  .interview-pool-table thead { display: none; }
  .interview-pool-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; padding: 18px 16px; border-bottom: 1px solid var(--line); }
  .interview-pool-table tbody tr:last-child { border-bottom: 0; }
  .interview-pool-table tbody th, .interview-pool-table tbody td { display: block; padding: 0; border: 0; min-width: 0; }
  .interview-pool-table .pool-person, .interview-pool-table .pool-job { grid-column: 1 / -1; }
  .interview-pool-table .pool-person { font-size: 16px; }
  .interview-pool-table td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; margin-bottom: 4px; color: var(--muted); }
  .interview-pool-table .pool-action { width: auto; align-self: end; text-align: right; }
  .interview-pool-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .interview-pool-actions #interviewPoolDownloadBtn { grid-column: 1 / -1; margin-right: 0; }
  .candidate-pool-tools { padding-inline: 20px; }
}
