/* ════════════════════════════════════════════
   博试通 SmartRecruit — 全局样式
   设计规范：
   · 色彩全部采用 Web 安全色（216 色）：
     文字 #000 / #333 / #666 / #999
     边框 #CCC，背景 #FFF / #F2F2F2
     主色 #0066CC，成功 #339933，警告 #FF9900，危险 #CC0000
   · 图标统一使用内联 SVG（.u-icon），不使用 Emoji
   ════════════════════════════════════════════ */

/* ── Reset & Base ── */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

:root {
	--primary: #0066CC;
	--primary-hover: #003399;
	--primary-light: rgba(0, 102, 204, .08);
	--success: #339933;
	--success-light: #CCFFCC;
	--warning: #FF9900;
	--warning-light: #FFCC99;
	--danger: #CC0000;
	--danger-hover: #990000;
	--danger-light: #FFCCCC;
	--info: #006699;
	--purple: #660099;
	--purple-light: #CCCCFF;
	--bg: #F2F2F2;
	--surface: #FFFFFF;
	--surface-2: #F2F2F2;
	--border: #CCCCCC;
	--border-light: #E6E6E6;
	--text: #000000;
	--text-secondary: #333333;
	--text-muted: #666666;
	--radius: 10px;
	--radius-sm: 6px;
	--shadow: 0 1px 3px rgba(0, 0, 0, .08);
	--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);
	--sidebar-w: 240px;
	--transition: 0.2s ease;
}

html,
body {
	height: 100%;
}

body {
	background: var(--bg);
	color: var(--text);
	font-size: 14px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

a {
	text-decoration: none;
	color: inherit;
}

button {
	cursor: pointer;
	font-family: inherit;
	border: none;
	outline: none;
}

input,
select,
textarea {
	font-family: inherit;
	font-size: 14px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 8px 12px;
	outline: none;
	transition: border var(--transition), box-shadow var(--transition);
	background: var(--surface);
	color: var(--text);
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px var(--primary-light);
}

svg {
	flex-shrink: 0;
}

/* ── SVG 图标（内联） ── */
.u-icon {
	display: inline-block;
	vertical-align: -2px;
	flex-shrink: 0;
}

.u-icon-success {
	color: var(--success);
}

.u-icon-danger {
	color: var(--danger);
}

.u-icon-spin {
	animation: iconSpin .9s linear infinite;
}

@keyframes iconSpin {
	to {
		transform: rotate(360deg);
	}
}

/* ── Layout ── */
.app-layout {
	display: flex;
	height: 100vh;
	overflow: hidden;
}

/* ── Sidebar ── */
.sidebar {
	width: var(--sidebar-w);
	background: linear-gradient(180deg, #000000 0%, #003366 100%);
	color: #fff;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	z-index: 100;
}

.sidebar-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 24px 20px;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.brand-icon {
	width: 40px;
	height: 40px;
	background: var(--primary);
	border-radius: var(--radius);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 20px;
	color: #fff;
}

.brand-title {
	font-size: 18px;
	font-weight: 700;
}

.brand-subtitle {
	font-size: 11px;
	color: rgba(255, 255, 255, .5);
}

.sidebar-nav {
	flex: 1;
	padding: 12px 10px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.nav-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: var(--radius-sm);
	color: rgba(255, 255, 255, .65);
	font-size: 14px;
	font-weight: 500;
	transition: all var(--transition);
	position: relative;
}

.nav-item:hover {
	background: rgba(255, 255, 255, .08);
	color: #fff;
}

.nav-item.active {
	background: rgba(0, 102, 204, .35);
	color: #fff;
}

.nav-badge {
	margin-left: auto;
	background: rgba(255, 255, 255, .15);
	color: #fff;
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 10px;
	font-weight: 600;
}

.nav-item.active .nav-badge {
	background: var(--primary);
}

.sidebar-footer {
	padding: 16px 20px;
	border-top: 1px solid rgba(255, 255, 255, .08);
}

.sidebar-stats {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.stat-row {
	display: flex;
	justify-content: space-between;
	font-size: 12px;
	color: rgba(255, 255, 255, .5);
}

.stat-row span:last-child {
	color: #fff;
	font-weight: 600;
}

/* ── Main Content ── */
.main-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--bg);
}

/* ── Top Bar ── */
.top-bar {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 24px;
	background: var(--surface);
	border-bottom: 1px solid var(--border);
	flex-shrink: 0;
}

.mobile-menu-btn {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	color: var(--text);
}

.page-title {
	font-size: 20px;
	font-weight: 700;
	flex: 1;
}

.top-bar-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.env-badge {
	background: linear-gradient(135deg, #660099, #0066CC);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: 20px;
}

/* ── Page Content ── */
.page-content {
	display: none;
	flex-direction: column;
	flex: 1;
	overflow: hidden;
	padding: 20px 24px;
}

.page-content.active {
	display: flex;
}

/* ── Toolbar ── */
.toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	flex-shrink: 0;
	flex-wrap: wrap;
}

.toolbar-left,
.toolbar-right {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.search-input {
	width: 120px;
}

.filter-select {
	min-width: 120px;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 14px;
	padding-right: 30px;
}

/* ── Buttons ── */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: var(--radius-sm);
	font-size: 14px;
	transition: all var(--transition);
	white-space: nowrap;
	line-height: 1.4;
}

.btn .u-icon {
	vertical-align: -1px;
}

.btn-primary {
	background: var(--primary);
	color: #fff;
}

.btn-primary:hover {
	background: var(--primary-hover);
}

.btn-primary:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.btn-outline {
	background: var(--surface);
	color: var(--text);
	border: 1px solid var(--border);
}

.btn-outline:hover {
	border-color: var(--primary);
	color: var(--primary);
	background: var(--primary-light);
}

.btn-danger {
	background: var(--danger);
	color: #fff;
}

.btn-danger:hover {
	background: var(--danger-hover);
}

.btn-danger-outline {
	background: transparent;
	color: var(--danger);
	border: 1px solid var(--danger);
}

.btn-danger-outline:hover {
	background: var(--danger);
	color: #fff;
}

.btn-sm {
	padding: 4px 10px;
	font-size: 12px;
}

.btn-xs {
	padding: 3px 8px;
	font-size: 12px;
}

/* ── Card List ── */
.candidate-list {
	flex: 1;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.candidate-card {
	background: var(--surface);
	border-radius: var(--radius);
	padding: 14px 16px;
	cursor: pointer;
	transition: all var(--transition);
}

.candidate-card:hover {
	border-color: var(--primary);
	box-shadow: 0 2px 8px rgba(0, 102, 204, .12);
	transform: translateY(-1px);
}

.card-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.card-left {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1;
	min-width: 0;
}

.card-right {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}

.avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--primary), #660099);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.job-avatar {
	background: linear-gradient(135deg, var(--warning), #FF6600);
}

.card-info {
	min-width: 0;
}

.card-name-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 4px;
}

.card-name {
	font-weight: 600;
	font-size: 14px;
	color: var(--text);
}

.card-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	color: var(--text-muted);
}

.meta-item {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	white-space: nowrap;
}

.meta-item .u-icon {
	vertical-align: -1px;
	color: var(--text-muted);
}

.card-city {
	font-size: 13px;
	font-weight: 500;
	color: var(--text-secondary);
}

.card-right .u-icon {
	vertical-align: -1px;
	color: var(--text-muted);
}

.card-salary {
	font-size: 13px;
	font-weight: 700;
	color: var(--primary);
	white-space: nowrap;
}

.card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--border-light);
}

.card-tags {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.card-actions {
	display: flex;
	gap: 4px;
	flex-shrink: 0;
	flex-wrap: wrap;
}

.tag {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 500;
	white-space: nowrap;
	background: var(--border-light);
	color: var(--text-secondary);
}

.tag .u-icon {
	vertical-align: -1px;
}

.time-tag {
	background: var(--surface-2);
	color: var(--text-muted);
	font-size: 12px;
}

.gender-tag {
	background: var(--primary-light);
	color: var(--primary);
}

.urgency-tag {
	background: var(--danger-light);
	color: var(--danger);
	font-weight: 600;
}

/* ── Status Badges ── */
.badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 11px;
	font-weight: 600;
	white-space: nowrap;
}

.badge-wait {
	background: var(--border-light);
	color: var(--text-secondary);
}

.badge-screened {
	background: var(--purple-light);
	color: #660099;
}

.badge-invited {
	background: var(--primary-light);
	color: var(--primary);
}

.badge-interview {
	background: var(--primary-light);
	color: var(--primary);
}

.badge-offer {
	background: var(--success-light);
	color: #006600;
}

.badge-first {
	background: var(--primary-light);
	color: var(--primary);
}

.badge-second {
	background: var(--purple-light);
	color: var(--purple);
}

.badge-hired {
	background: var(--success-light);
	color: #006600;
}

.badge-reject {
	background: var(--danger-light);
	color: var(--danger);
}

.badge-open {
	background: var(--primary-light);
	color: var(--primary);
}

.badge-closed {
	background: var(--border-light);
	color: var(--text-secondary);
}

.badge-urgency-high {
	background: var(--danger-light);
	color: var(--danger);
}

.badge-urgency-mid {
	background: var(--warning-light);
	color: #993300;
}

.badge-urgency-low {
	background: var(--success-light);
	color: #006600;
}

/* ── 状态变更弹窗预览 ── */
.status-change-preview {
	padding: 10px 14px;
	background: var(--surface-2);
	border: 1px solid var(--border);
	border-radius: 8px;
	display: inline-block;
}

/* ── 状态变更记录（时间线） ── */
.status-history {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 8px 0 4px;
}

.status-history-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 12px;
	background: var(--surface-2);
	border-left: 3px solid var(--border);
	border-radius: 8px;
}

.status-history-item:first-child {
	border-left-color: var(--primary);
}

.status-history-badge {
	flex-shrink: 0;
	margin-top: 2px;
}

.status-history-body {
	flex: 1;
	min-width: 0;
}

.status-history-reason {
	font-size: 13px;
	color: var(--text);
	line-height: 1.5;
	word-break: break-word;
}

.status-history-time {
	font-size: 11px;
	color: var(--text-muted);
	margin-top: 4px;
	display: inline-flex;
	align-items: center;
	gap: 3px;
}

/* ── Table Footer / Pagination ── */
.table-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 0 0 0;
	flex-shrink: 0;
}

.table-info {
	font-size: 12px;
	color: var(--text-muted);
}

.pagination {
	display: flex;
	align-items: center;
	gap: 4px;
}

.page-info {
	padding: 6px 10px;
	font-size: 12px;
	color: var(--text-muted);
	white-space: nowrap;
	margin-right: 4px;
}

.page-btn {
	padding: 6px 12px;
	border-radius: var(--radius-sm);
	font-size: 12px;
	background: var(--surface);
	border: 1px solid var(--border);
	color: var(--text);
	transition: all var(--transition);
}

.page-btn:hover {
	border-color: var(--primary);
	color: var(--primary);
}

.page-btn.active {
	background: var(--primary);
	color: #fff;
	border-color: var(--primary);
}

/* ── Detail Panel ── */
.detail-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .3);
	z-index: 200;
}

.detail-overlay.show {
	display: block;
}

.detail-panel {
	position: fixed;
	top: 0;
	right: 0;
	width: 420px;
	height: 100vh;
	background: var(--surface);
	box-shadow: var(--shadow-lg);
	z-index: 210;
	transform: translateX(100%);
	transition: transform .3s ease;
	display: flex;
	flex-direction: column;
}

.detail-panel.show {
	transform: translateX(0);
}

.detail-panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--border);
}

.detail-panel-header h3 {
	font-size: 16px;
	font-weight: 700;
}

.btn-close-detail {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--bg);
	color: var(--text-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--transition);
}

.btn-close-detail:hover {
	background: var(--danger-light);
	color: var(--danger);
}

.detail-panel-body {
	flex: 1;
	overflow-y: auto;
	padding: 20px;
}

/* ── Detail Content ── */
.detail-section {
	margin-bottom: 20px;
}

.detail-section h4 {
	font-size: 11px;
	font-weight: 700;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 10px;
}

.detail-readonly {
	max-height: 60vh;
	overflow-y: auto;
	padding-right: 4px;
}

.detail-status-bar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	margin-bottom: 14px;
	background: var(--surface-2);
	border: 1px solid var(--border);
	border-radius: 8px;
	font-size: 13px;
}

.detail-status-bar .detail-status-label {
	font-weight: 600;
	color: var(--text);
}

.detail-field {
	margin-bottom: 10px;
}

.detail-field .label {
	font-size: 11px;
	color: var(--text-muted);
	margin-bottom: 2px;
}

.detail-field .value {
	font-size: 14px;
	color: var(--text);
}

/* ── Detail Card (full panel) ── */
.detail-header {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 12px;
}

.detail-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--primary), #660099);
	color: #fff;
	font-size: 22px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.detail-title-block {
	min-width: 0;
}

.detail-name {
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 4px;
}

.detail-tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.detail-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 16px;
}

.field-label {
	font-size: 11px;
	color: var(--text-muted);
	margin-bottom: 2px;
	display: block;
}

.field-value {
	font-size: 13px;
	color: var(--text);
}

.field-value-summary {
	font-size: 13px;
	color: var(--text);
	line-height: 1.6;
	white-space: pre-wrap;
	background: var(--surface-2);
	padding: 10px 12px;
	border-radius: var(--radius-sm);
	margin-top: 4px;
}

.detail-tags-inline {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
}

.detail-section-title {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--text);
	margin: 20px 0 10px;
	padding-top: 16px;
	border-top: 1px solid var(--border);
}

.detail-section-title .u-icon {
	color: var(--primary);
}

.empty-state {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px 20px;
	color: var(--text-muted);
	font-size: 14px;
}

.empty-state-small {
	text-align: center;
	color: var(--text-muted);
	font-size: 13px;
}

.value-summary {
	font-size: 13px;
	color: var(--text);
	line-height: 1.6;
	background: var(--surface-2);
	padding: 10px 12px;
	border-radius: var(--radius-sm);
	margin-top: 4px;
}

.requirements-list {
	padding-left: 20px;
	font-size: 13px;
	color: var(--text);
	line-height: 1.8;
}

.requirements-list li {
	margin-bottom: 2px;
}

/* ── Interview Plan ── */
.interview-plan {
	font-size: 14px;
	line-height: 1.8;
	white-space: pre-wrap;
}

/* ── Evaluation ── */
.eval-container {
	max-height: 65vh;
	overflow-y: auto;
	padding-right: 4px;
}

.eval-score-ring {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	border: 6px solid;
	margin: 0 auto 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.eval-score-num {
	font-size: 32px;
	font-weight: 800;
	line-height: 1;
}

.eval-score-label {
	font-size: 11px;
	font-weight: 600;
	margin-top: 2px;
	color: var(--text-secondary);
}

.eval-section {
	margin-bottom: 16px;
}

.eval-section h4 {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--text);
	margin-bottom: 8px;
}

.eval-section h4 .u-icon {
	color: var(--primary);
}

.eval-section ul {
	padding-left: 18px;
	font-size: 13px;
	color: var(--text-secondary);
	line-height: 1.7;
}

.eval-section li {
	margin-bottom: 2px;
}

.eval-section p {
	font-size: 13px;
	color: var(--text-secondary);
	line-height: 1.6;
}

.eval-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.eval-tag {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 500;
	background: var(--primary-light);
	color: var(--primary);
}

/* ── Evaluation Card (面试提纲卡片) ── */
.eval-card {
	background: var(--warning-light);
	border: 1px solid #FFCC99;
	border-left: 3px solid var(--warning);
	border-radius: 6px;
	padding: 10px 12px;
	margin-bottom: 10px;
}

.eval-card-title {
	font-size: 13px;
	font-weight: 700;
	color: #993300;
	margin-bottom: 4px;
}

.eval-card-detail {
	font-size: 12px;
	color: var(--text-secondary);
	line-height: 1.5;
	margin-bottom: 6px;
}

.eval-card-question {
	display: flex;
	align-items: flex-start;
	gap: 4px;
	font-size: 12px;
	color: var(--primary);
	font-style: italic;
	line-height: 1.5;
	padding: 6px 8px;
	background: var(--surface);
	border-radius: 4px;
}

.eval-card-question .u-icon {
	margin-top: 2px;
}

/* ── Evaluation Dimension ── */
.eval-dimension {
	background: var(--surface-2);
	border-radius: 6px;
	padding: 10px 12px;
	margin-bottom: 10px;
}

.eval-dim-name {
	font-size: 13px;
	font-weight: 700;
	color: var(--text);
	margin-bottom: 6px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--border);
}

.eval-dim-questions,
.eval-dim-points {
	margin-bottom: 6px;
}

.eval-point {
	margin-bottom: 6px;
	padding: 4px 8px;
	background: var(--surface);
	border-radius: 4px;
	border-left: 2px solid var(--primary);
}

.eval-point-topic {
	font-size: 12px;
	font-weight: 600;
	color: var(--text);
	margin-bottom: 2px;
}

.eval-q {
	display: flex;
	align-items: flex-start;
	gap: 4px;
	font-size: 12px;
	color: var(--text-secondary);
	line-height: 1.6;
	padding: 2px 0;
}

.eval-q .u-icon {
	margin-top: 2px;
	color: var(--primary);
}

.eval-bullet {
	color: var(--primary);
	font-weight: 700;
	margin-right: 4px;
}

.eval-signals {
	font-size: 11px;
	line-height: 1.5;
	margin-top: 4px;
	padding: 4px 8px;
	border-radius: 4px;
}

.eval-signals .u-icon {
	vertical-align: -2px;
}

.eval-signal-low {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	color: #993300;
	font-weight: 600;
}

.eval-signal-high {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	color: var(--success);
	font-weight: 600;
}

/* ── Judgment Checklist Table ── */
.judgment-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
	margin-top: 4px;
}

.judgment-table td {
	padding: 8px 10px;
	border-bottom: 1px solid var(--border-light);
	vertical-align: middle;
	line-height: 1.5;
}

.judgment-table tr:last-child td {
	border-bottom: none;
}

.jc-item {
	font-weight: 600;
	color: var(--text);
	white-space: nowrap;
	width: 80px;
}

.jc-score {
	white-space: nowrap;
	width: 110px;
	text-align: center;
}

.jc-stars {
	display: inline-flex;
	align-items: center;
	gap: 1px;
	color: var(--border);
	font-size: 14px;
	letter-spacing: 1px;
}

.jc-star {
	display: inline-flex;
}

.jc-star.filled {
	color: var(--warning);
}

.jc-label {
	font-size: 11px;
	color: var(--text-secondary);
	margin-left: 4px;
}

.jc-num {
	font-weight: 700;
	color: var(--primary);
	margin-left: 4px;
}

.jc-reason {
	font-size: 11px;
	color: var(--text-secondary);
}

/* ── Evaluation Mini (详情面板内) ── */
.eval-mini {
	background: var(--surface-2);
	border-radius: var(--radius-sm);
	padding: 12px;
	margin-top: 4px;
}

.eval-mini-score {
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 6px;
}

.eval-mini-text {
	font-size: 13px;
	color: var(--text-secondary);
	line-height: 1.5;
	margin-bottom: 6px;
}

.eval-mini-roles {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-bottom: 4px;
}

/* ── Form Enhance ── */
.form-scroll {
	max-height: 60vh;
	overflow-y: auto;
	padding-right: 4px;
}

.form-label {
	font-size: 12px;
	font-weight: 600;
	color: var(--text-secondary);
	margin-bottom: 4px;
	display: block;
}

.form-input {
	width: 100%;
}

.form-textarea {
	width: 100%;
	resize: vertical;
	min-height: 80px;
}

/* ── JD Paste Area (表单顶部) ── */
.jd-paste-area {
	background: var(--primary-light);
	border: 1.5px solid #99CCFF;
	border-radius: 10px;
	padding: 16px;
	margin-bottom: 20px;
}

.jd-paste-header {
	font-size: 14px;
	font-weight: 700;
	color: #003399;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.modal-close-inline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	color: var(--text-muted);
	cursor: pointer;
	transition: all var(--transition);
}

.modal-close-inline:hover {
	background: var(--danger-light);
	color: var(--danger);
}

.jd-paste-row {
	margin-bottom: 10px;
}

.jd-paste-input {
	border-color: #99CCFF !important;
	background: var(--surface) !important;
	font-size: 13px;
}

.jd-paste-input:focus {
	border-color: var(--primary) !important;
	box-shadow: 0 0 0 3px var(--primary-light) !important;
}

.jd-paste-btn {
	width: 100%;
	background: var(--primary) !important;
	color: #fff !important;
	border: none !important;
	font-weight: 600;
	padding: 10px 0;
	border-radius: 8px;
	transition: all 0.2s;
}

.jd-paste-btn:hover {
	background: var(--primary-hover) !important;
	box-shadow: 0 4px 12px rgba(0, 102, 204, .3);
}

.required {
	color: var(--danger);
}

.modal-footer-btns {
	display: flex;
	gap: 8px;
}

/* ── Modal ── */
.modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .4);
	z-index: 300;
	align-items: center;
	justify-content: center;
}

.modal-overlay.show {
	display: flex;
}

.modal {
	background: var(--surface);
	border-radius: var(--radius);
	box-shadow: var(--shadow-lg);
	width: 90%;
	max-width: 600px;
	max-height: 85vh;
	display: flex;
	flex-direction: column;
}

.modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--border);
}

.modal-header h3 {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	font-weight: 700;
}

.modal-header h3 .u-icon {
	color: var(--primary);
}

.btn-close {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--bg);
	color: var(--text-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all var(--transition);
}

.btn-close:hover {
	background: var(--danger-light);
	color: var(--danger);
}

.modal-body {
	padding: 20px;
	overflow-y: auto;
	flex: 1;
}

.modal-footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	padding: 12px 20px;
	border-top: 1px solid var(--border);
}

/* ── Form ── */
.form-group {
	margin-bottom: 14px;
}

.form-group label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--text-secondary);
	margin-bottom: 4px;
}

.form-group input,
.form-group select,
.form-group textarea {
	width: 100%;
}

.form-group textarea {
	resize: vertical;
	min-height: 80px;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.form-row-3 {
	grid-template-columns: 1fr 1fr 1fr;
}

.radio-group {
	display: inline-flex;
	gap: 20px;
	align-items: center;
	min-height: 36px;
}

.radio-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	font-size: 13px;
	color: var(--text);
}

.radio-item input[type="radio"] {
	width: 16px;
	height: 16px;
	accent-color: var(--primary);
	cursor: pointer;
	margin: 0;
}

/* ── Loading ── */
.loading-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(255, 255, 255, .8);
	z-index: 500;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 16px;
}

.loading-overlay.show {
	display: flex;
}

.spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--border);
	border-top-color: var(--primary);
	border-radius: 50%;
	animation: spin .8s linear infinite;
}

.modal-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 48px 0;
	color: var(--text-secondary);
	font-size: 14px;
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

.loading-spinner p {
	font-size: 13px;
	color: var(--text-secondary);
}

/* ── Toast ── */
.toast-container {
	position: fixed;
	top: 20px;
	right: 20px;
	z-index: 600;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.toast {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	border-radius: var(--radius);
	font-size: 13px;
	font-weight: 500;
	color: #fff;
	animation: toastIn .3s ease;
	box-shadow: var(--shadow-lg);
	max-width: 360px;
}

@keyframes toastIn {
	from {
		opacity: 0;
		transform: translateX(20px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.toast-success {
	background: var(--success);
}

.toast-error {
	background: var(--danger);
}

.toast-info {
	background: var(--primary);
}

/* ── Scrollbar ── */
::-webkit-scrollbar {
	width: 6px;
	height: 6px;
}

::-webkit-scrollbar-track {
	background: transparent;
}

::-webkit-scrollbar-thumb {
	background: var(--border);
	border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--text-muted);
}

/* ── Utility ── */
/* ── Responsive ── */
@media (max-width: 768px) {
	.sidebar {
		position: fixed;
		top: 0;
		left: 0;
		height: 100vh;
		transform: translateX(-100%);
		transition: transform .3s ease;
		z-index: 90000;
		pointer-events: none;
	}

	.sidebar.show {
		transform: translateX(0);
		pointer-events: auto;
	}

	.mobile-menu-btn {
		display: block;
		position: relative;
	}

	.page-content {
		padding: 12px;
	}

	.toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.toolbar-left,
	.toolbar-right {
		flex-wrap: wrap;
	}

	.search-input {
		width: 100%;
	}

	/* 移动端：筛选下拉严格两列排布 */
	.toolbar-left {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}
	.toolbar-left .search-input,
	.toolbar-left .date-range {
		grid-column: 1 / -1;
	}
	.toolbar-left .filter-select {
		width: 100%;
		min-width: 0;
		flex: none;
		padding: 10px;
		font-size: 12px;
	}

	/* 移动端：批量添加 / 单个添加按钮一行均分铺满 */
	.toolbar-right {
		width: 100%;
		flex-wrap: nowrap;
	}

	.toolbar-right .btn {
		flex: 1 1 0;
		min-width: 0;
		white-space: nowrap;
		padding: 8px 6px;
		font-size: 13px;
	}

	.detail-panel {
		width: 100%;
	}

	.form-row,
	.form-row-3 {
		grid-template-columns: 1fr;
	}

	.card-footer {
		flex-wrap: wrap;
	}

	.card-actions {
		width: 100%;
		padding-top: 8px;
		border-top: 1px solid var(--border-light);
	}

	/* ── 移动端：卡片右侧(城市/薪资)独占一行，避免与左侧信息重叠 ── */
	.card-main {
		flex-wrap: wrap;
	}

	.card-right {
		flex-basis: 100%;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		gap: 8px;
		margin-top: 6px;
	}

	/* 岗位库右侧只有薪资一个元素时，单独靠右显示，避免与左侧贴在一起 */
	.card-right > :only-child {
		margin-left: auto;
	}

	/* ── 分页区移动端适配 ── */
	.table-footer {
		flex-direction: column;
		align-items: center;
		gap: 10px;
	}

	.table-info {
		white-space: nowrap;
		font-size: 12px;
	}

	.pagination {
		width: 100%;
		justify-content: center;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
	}

	.page-info {
		margin-right: 0;
		padding: 6px 8px;
		flex-shrink: 0;
	}

	.page-btn {
		padding: 6px 10px;
		font-size: 12px;
		flex-shrink: 0;
	}

	/* 移动端：顶部栏固定在视口顶部，不随内容滚动 */
	.top-bar {
		position: sticky;
		top: 0;
		z-index: 100;
		padding: 8px 12px;
		gap: 10px;
	}

	.mobile-menu-btn {
		padding: 2px;
	}

	.mobile-menu-btn svg {
		width: 20px;
		height: 20px;
	}

	.page-title {
		font-size: 16px;
	}

	/* 移动端：列表改为自然流式，统计/分页直接跟在内容下方，不再固定浮动在底部 */
	.app-layout {
		height: auto;
		min-height: 100vh;
		overflow: visible;
	}

	.main-content,
	.page-content {
		overflow: visible;
	}

	.candidate-list {
		flex: none;
		overflow: visible;
		height: auto;
	}

	.table-footer {
		padding-bottom: 16px;
	}

	/* ── 移动端：日期筛选换行，两个日期输入各占一半 ── */
	.date-range {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		white-space: normal;
		width: 100%;
	}
	.date-range > span {
		display: none;
	}
	.date-range > label {
		flex: 1 1 100%;
	}
	.date-range .filter-input {
		flex: 1 1 calc(50% - 4px);
		min-width: 0;
		width: auto;
	}

	/* ── 移动端：抽屉打开时主内容区变暗遮罩（点击遮罩即关闭抽屉）── */
	#sidebar.show ~ .main-content::after {
		content: '';
		position: fixed;
		inset: 0;
		background: rgba(15, 23, 42, .45);
		z-index: 89999;
	}

	/* ── 移动端：防止表格撑大页面，并支持触控滚动 + 固定表头 ── */
	.main-content {
		min-width: 0;
		overflow-x: hidden;
	}
	.page-section {
		min-width: 0;
		width: 100%;
	}
	/* ── 移动端：弹窗 / 详情面板内边距收紧 ── */
	.modal {
		width: 95%;
		max-height: 90vh;
	}
	.modal-header,
	.detail-panel-header {
		padding: 12px 14px;
	}
	.modal-body {
		padding: 14px;
	}
	.modal-footer {
		padding: 10px 14px;
	}
	.detail-panel-body {
		padding: 14px;
	}

	/* ── 移动端：Toast 顶部通栏展示 ── */
	.toast-container {
		top: 12px;
		left: 12px;
		right: 12px;
		align-items: stretch;
	}
	.toast {
		padding: 12px 14px;
		font-size: 13px;
	}
}

/* ── 窄屏（<480px）进一步收紧 ── */
@media (max-width: 480px) {
	.page-content {
		padding: 10px;
	}

	.top-bar {
		padding: 6px 10px;
	}

	.page-title {
		font-size: 15px;
	}

	.toolbar-right .btn {
		font-size: 12px;
		padding: 8px 4px;
	}

	.toolbar-left .filter-select {
		padding: 9px 8px;
	}
}

/* ── Resume Upload Zone ── */
.upload-zone {
	display: block;
	border: 2px dashed var(--border);
	border-radius: 8px;
	padding: 20px;
	text-align: center;
	cursor: pointer;
	transition: all .2s;
	margin-bottom: 16px;
	background: var(--surface-2);
}

.upload-zone:hover,
.upload-zone.drag-over {
	border-color: var(--primary);
	background: var(--primary-light);
}

.upload-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--primary);
	margin-bottom: 8px;
}

.upload-text {
	font-size: 14px;
	font-weight: 600;
	color: var(--text);
	margin-bottom: 4px;
}

.upload-hint {
	font-size: 11px;
	color: var(--text-muted);
}

.upload-progress {
	margin-top: 8px;
	font-size: 13px;
	color: var(--primary);
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.upload-result {
	margin-top: 8px;
	font-size: 13px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.upload-success {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--success);
	font-weight: 600;
}

.resume-link {
	color: var(--primary);
	text-decoration: underline;
	margin-left: 8px;
	font-size: 13px;
	display: inline-flex;
	align-items: center;
	gap: 3px;
}

/* ── Reg Form (登记表) Upload Zone ── */
.upload-zone-reg {
	border-style: dashed;
	border-color: #99CCFF;
	background: var(--primary-light);
}

.upload-zone-reg:hover,
.upload-zone-reg.drag-over {
	border-color: var(--primary);
	background: var(--primary-light);
}

.reg-form-btns {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 12px;
}

.btn-camera {
	color: var(--primary) !important;
	border-color: var(--primary) !important;
	background: var(--surface) !important;
}

.upload-error {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--danger);
	font-weight: 600;
}

.upload-progress-text {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--primary);
	font-weight: 600;
}

/* ── Batch Import ── */
.batch-import-container {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.batch-upload-zone {
	display: block;
	border: 2px dashed var(--border);
	border-radius: 10px;
	padding: 28px 20px;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s;
	background: var(--surface-2);
	user-select: none;
}

.batch-upload-zone:hover,
.batch-upload-zone.drag-over {
	border-color: var(--primary);
	background: var(--primary-light);
}

.batch-upload-zone .upload-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--primary);
	margin-bottom: 10px;
}

.batch-upload-zone .upload-text {
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 6px;
}

.batch-upload-zone .upload-hint {
	font-size: 12px;
}

.batch-file-list {
	max-height: 280px;
	overflow-y: auto;
	border: 1px solid var(--border-light);
	border-radius: 8px;
}

.batch-empty {
	padding: 32px 16px;
	text-align: center;
	color: var(--text-muted);
	font-size: 13px;
}

.batch-file-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border-bottom: 1px solid var(--border-light);
	font-size: 13px;
}

.batch-file-item:last-child {
	border-bottom: none;
}

.batch-file-item:hover {
	background: var(--surface-2);
}

.batch-file-icon {
	flex-shrink: 0;
	width: 22px;
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.batch-file-name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
	color: var(--text);
}

.batch-file-size {
	flex-shrink: 0;
	color: var(--text-muted);
	font-size: 11px;
	min-width: 55px;
	text-align: right;
}

.batch-file-status {
	flex-shrink: 0;
	color: var(--text-secondary);
	font-size: 12px;
	min-width: 70px;
	text-align: right;
}

.batch-file-remove {
	flex-shrink: 0;
	background: none;
	border: none;
	color: var(--text-muted);
	cursor: pointer;
	padding: 2px 6px;
	border-radius: 4px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.batch-file-remove:hover {
	color: var(--danger);
	background: var(--danger-light);
}

.batch-file-error {
	flex-shrink: 0;
	color: var(--danger);
	font-size: 11px;
	max-width: 140px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.batch-status-extracting .batch-file-status {
	color: var(--purple);
}

.batch-status-uploading .batch-file-status {
	color: var(--primary);
}

.batch-status-parsing .batch-file-status {
	color: var(--warning);
}

.batch-status-creating .batch-file-status {
	color: var(--info);
}

.batch-status-done .batch-file-status {
	color: var(--success);
	font-weight: 600;
}

.batch-status-failed .batch-file-status {
	color: var(--danger);
	font-weight: 600;
}

.batch-progress {
	margin-top: 4px;
}

.batch-progress-bar {
	height: 6px;
	background: var(--border);
	border-radius: 3px;
	overflow: hidden;
	margin-bottom: 6px;
}

.batch-progress-fill {
	height: 100%;
	background: var(--primary);
	border-radius: 3px;
	transition: width 0.3s ease;
	width: 0%;
}

.batch-progress-text {
	font-size: 12px;
	color: var(--text-secondary);
	text-align: center;
}

.batch-summary-content {
	display: flex;
	gap: 16px;
	justify-content: center;
	padding: 10px;
	background: var(--surface-2);
	border-radius: 8px;
}

.batch-summary-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 14px;
	font-weight: 600;
}

.batch-summary-item.success {
	color: var(--success);
}

.batch-summary-item.fail {
	color: var(--danger);
}

/* ── Work Experience Rows ── */
.form-section-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--border-light);
}

.form-section-title span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--text);
}

.form-section-title span .u-icon {
	color: var(--primary);
}

.work-exp-row {
	border: 1px solid var(--border-light);
	border-radius: 6px;
	padding: 10px;
	margin-bottom: 10px;
	background: var(--surface-2);
}

.work-exp-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

.work-exp-header span {
	font-size: 12px;
	font-weight: 600;
	color: var(--primary);
}

.btn-danger-outline {
	border: 1px solid var(--danger);
	color: var(--danger);
	background: transparent;
	border-radius: 4px;
	cursor: pointer;
}

.btn-danger-outline:hover {
	background: var(--danger);
	color: #fff;
}

/* ── Work Exp in Detail Panel ── */
.work-exp-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.work-exp-item {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	font-size: 12px;
	padding: 4px 8px;
	background: var(--surface-2);
	border-radius: 4px;
}

.work-exp-company {
	font-weight: 700;
	color: var(--text);
}

.work-exp-position {
	color: var(--primary);
	font-weight: 500;
}

.work-exp-period,
.work-exp-years {
	color: var(--text-secondary);
	font-size: 11px;
}

.work-exp-scale {
	color: var(--text-muted);
	font-size: 11px;
}

/* ── Match Dimension ── */
.match-card-wrap {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 14px 16px;
	margin-bottom: 10px;
	transition: all var(--transition);
}

.match-card-wrap:hover {
	border-color: var(--primary);
	box-shadow: 0 2px 8px rgba(0, 102, 204, .1);
}

.match-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.match-card-name {
	font-weight: 600;
	font-size: 15px;
	color: var(--text);
}

.match-score-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 52px;
	height: 28px;
	padding: 0 10px;
	border-radius: 14px;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	flex-shrink: 0;
}

.match-score-badge.score-high {
	background: var(--success);
}

.match-score-badge.score-mid {
	background: var(--warning);
}

.match-score-badge.score-low {
	background: var(--danger);
}

.dims-container {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.dim-row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
}

.dim-label {
	width: 56px;
	flex-shrink: 0;
	text-align: right;
	color: var(--text-secondary);
	font-weight: 500;
}

.dim-bar {
	flex: 1;
	height: 6px;
	background: var(--border-light);
	border-radius: 3px;
	overflow: hidden;
}

.dim-fill {
	height: 100%;
	border-radius: 3px;
	transition: width 0.5s ease;
}

.dim-high {
	background: var(--success);
}

.dim-mid {
	background: var(--warning);
}

.dim-low {
	background: var(--danger);
}

.dim-pct {
	width: 34px;
	flex-shrink: 0;
	text-align: right;
	font-weight: 600;
	color: var(--text);
	font-size: 11px;
}

.dim-comment {
	width: 90px;
	flex-shrink: 0;
	color: var(--text-muted);
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.match-item-reason {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 13px;
	color: #006600;
	background: var(--success-light);
	padding: 8px 10px;
	border-radius: 4px;
	margin-top: 10px;
	line-height: 1.5;
}

.match-item-reason .u-icon {
	margin-top: 2px;
}

.match-item-mismatch {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 13px;
	color: #990000;
	background: var(--danger-light);
	padding: 8px 10px;
	border-radius: 4px;
	margin-top: 6px;
	line-height: 1.5;
}

.match-item-mismatch .u-icon {
	margin-top: 2px;
}

.candidate-name-link {
	color: var(--primary);
	font-weight: 600;
	cursor: pointer;
}

.candidate-name-link:hover {
	text-decoration: underline;
}

/* ── Toolbar extensions ── */
.toolbar-wrap {
	flex: 1;
	max-width: 100%;
}

.date-range {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--text-secondary);
	white-space: nowrap;
}

.date-range .filter-input,
.filter-input {
	padding: 8px 10px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--surface);
	color: var(--text);
	font-size: 13px;
	outline: none;
	height: 36px;
}

.date-range .filter-input:focus,
.filter-input:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px var(--primary-light);
}

/* ── Result badges ── */
.result-badge {
	display: inline-flex;
	align-items: center;
	border-radius: 12px;
	font-weight: 600;
	padding: 2px 10px;
	background: var(--border-light);
	color: var(--text-secondary);
}

.result-badge.result-hired {
	background: var(--success-light);
	color: var(--success);
}

.result-badge.result-rejected,
.result-badge.result-不录用 {
	background: var(--danger-light);
	color: var(--danger);
}

.result-badge.result-pending,
.result-badge.result-待定 {
	background: var(--warning-light);
	color: var(--warning);
}

.result-badge.result-passed,
.result-badge.result-通过 {
	background: var(--info-light);
	color: var(--info);
}

/* 卡片内原因标签：超长省略，hover 查看完整 */
.reason-tag {
	max-width: 220px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	background: var(--surface-2);
	color: var(--text-secondary);
}

