html,
body {
  margin: 0;
  min-height: 100%;
}

body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Microsoft YaHei", sans-serif; background:#f6f7fb; color:#222; font-size:15px; line-height:1.4; }
.container { max-width: 1400px; margin: 24px auto; padding: 0 16px; }
.page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding: 16px 0; }
h1 { margin: 0; font-size: 32px; line-height: 1.2; }
.header-logo { height: 48px; width: auto; object-fit: contain; vertical-align: middle; }
.panel { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 18px 20px; margin-bottom: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.form-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:12px; }
.finance-summary-period-row select { min-width: 96px; }
#summary-year { min-width: 108px; }
input, select { padding:8px 12px; height:36px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; background:#fff; box-sizing:border-box; }
input[type="file"] { height:auto; padding:6px 12px; line-height:normal; }
textarea { padding:10px 12px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; width:100%; box-sizing:border-box; }
/* 两列对称排版 */
.form-col { flex: 1 1 480px; min-width: 280px; }
button { padding:8px 14px; height:36px; border:1px solid #3b82f6; background:#3b82f6; color:#fff; border-radius:8px; cursor:pointer; }
button:hover { background:#2563eb; }
button:disabled { opacity:.68; cursor:wait; }
.message { margin-top:10px; color:#2563eb; }
.muted-text { color:#6b7280; font-size:13px; }
.table-wrap {
  overflow: auto;
  max-height: 560px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  display: block;
  position: relative;
}
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #e5e7eb; padding: 10px 12px; text-align: right; font-size:14px; line-height: 1.5; }
th:first-child, td:first-child { text-align:left; }
th { background:#f3f4f6; }

table th,
table td {
  padding: 10px 12px;
  line-height: 1.5;
  text-align: left;
  vertical-align: middle;
}

/* 数据标红样式 */
td.highlight-red {
  color: #d32f2f !important;
  font-weight: 600;
}

/* 年度汇总表底部说明样式 */
.table-note { margin-top: 8px; color:#6b7280; font-size:13px; }

#team-annual-summary,
.chart-wrap { scroll-margin-top: 88px; }
.finance-summary-loading,
.finance-summary-error { padding:24px; text-align:center; font-size:14px; }
.finance-summary-loading { color:#2563eb; background:#eff6ff; }
.finance-summary-error { color:#b91c1c; background:#fef2f2; }
.finance-summary-download-row {
  margin-top: 16px;
  margin-bottom: 20px;
}

/* 年度摘要下方展示历史走势图（宽度随容器自适应） */
.chart-wrap { background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:12px 12px; }
.chart-wrap canvas { width: 100% !important; height: 400px !important; }

/* 树形选择样式 - 美化版 */
.tree-container {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  padding: 12px;
  max-height: 360px;
  overflow: auto;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.tree-list { list-style: none; padding: 0; margin: 0; }
.tree-item { padding: 2px 0; }
.tree-row {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 8px;
  padding: 8px 12px;
  cursor: pointer;
  transition: all 0.15s ease;
  border: 1px solid transparent;
}
.tree-row:hover {
  background: #f8fafc;
  border-color: #e5e7eb;
  transform: translateY(-1px);
}
.tree-item.hover .tree-row { background: #f1f5f9; }
.tree-row.focused {
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
  background: #eff6ff;
}
.toggle {
  width: 22px;
  text-align: center;
  color: #6b7280;
  font-size: 14px;
  transition: transform 0.2s ease;
}
.toggle.expanded { transform: rotate(90deg); }
.toggle .placeholder { color: #d1d5db; }
.label {
  color: #374151;
  font-size: 14px;
  transition: color 0.15s ease;
}
.spacer { flex: 1; }
.checkbox {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  border: 2px solid #d1d5db;
  background: #fff;
  transition: all 0.15s ease;
  position: relative;
}
.checkbox:checked {
  background: #3b82f6;
  border-color: #3b82f6;
}
.checkbox:checked::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 12px;
  font-weight: bold;
}
.is-selected .tree-row {
  background: #eff6ff;
  border-color: #93c5fd;
}
.is-selected .label {
  color: #1e40af;
  font-weight: 600;
}
.depth-0 .tree-row {
  font-weight: 600;
  background: #f9fafb;
  border-bottom: 1px solid #f3f4f6;
}
.depth-0 .label { color: #111827; }
.depth-1 .tree-row { padding-left: 32px; }
.depth-2 .tree-row { padding-left: 48px; }

/* 动画：展开/折叠 */
.tree-enter-active, .tree-leave-active {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.tree-enter-from, .tree-leave-to {
  opacity: 0;
  transform: translateY(-8px);
}

/* 选择统计区域美化 */
.merge-selection-stats {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 12px;
}
.merge-selection-stats .count {
  color: #3b82f6;
  font-weight: 600;
  font-size: 16px;
}
.merge-selection-stats .names {
  color: #6b7280;
  font-size: 13px;
  line-height: 1.4;
  margin-top: 6px;
}

/* 模式切换按钮美化 */
.mode-toggle {
  display: flex;
  gap: 8px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 8px;
  margin-bottom: 12px;
}
.mode-toggle button {
  flex: 1;
  padding: 6px 12px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #6b7280;
  border-radius: 6px;
  font-size: 13px;
}
.mode-toggle button.active {
  background: #3b82f6;
  border-color: #3b82f6;
  color: #fff;
}

/* 响应式优化：窄屏下增大点击区域 */
@media (max-width: 640px) {
  .tree-row { padding: 12px 16px; }
  .checkbox { width: 22px; height: 22px; }
  .tree-container { max-height: 300px; }
}

/* 月度摘要（#summary）首列加宽并防止中文竖排换行 */
#summary .annual-summary-table th:first-child,
#summary .annual-summary-table td:first-child {
  min-width: 140px;
  white-space: nowrap;
  word-break: keep-all;
}


/* 年度/当月摘要首列统一宽度与不换行（两者保持一致） */
.annual-summary-table th:first-child,
.annual-summary-table td:first-child {
  min-width: 140px;
  white-space: nowrap;
  word-break: keep-all;
}

/* 摘要表格固定表头和首列 */
#summary .annual-summary-table th,
#team-annual-summary .annual-summary-table th {
  position: sticky;
  top: 0;
  background: #f3f4f6;
  z-index: 10;
}

#summary .annual-summary-table th:first-child,
#team-annual-summary .annual-summary-table th:first-child {
  position: sticky;
  left: 0;
  z-index: 15;
}

#summary .annual-summary-table td:first-child,
#team-annual-summary .annual-summary-table td:first-child {
  position: sticky;
  left: 0;
  background: #fff;
  z-index: 5;
}

/* 摘要表格固定表头和首列 */
#summary table.annual-summary-table,
#team-annual-summary table.annual-summary-table {
  border-collapse: separate !important;
  border-spacing: 0;
}

/* 固定表头 - 所有表头单元格 */
#summary table.annual-summary-table thead th,
#team-annual-summary table.annual-summary-table thead th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 10;
  background: #f3f4f6 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* 固定首列 - 数据行第一列 */
#summary table.annual-summary-table tbody td:first-child,
#team-annual-summary table.annual-summary-table tbody td:first-child {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  z-index: 5;
  background: #fff !important;
  box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
}

/* 固定左上角单元格 - 表头第一列 */
#summary table.annual-summary-table thead th:first-child,
#team-annual-summary table.annual-summary-table thead th:first-child {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  top: 0;
  z-index: 20;
  background: #f3f4f6 !important;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.15);
}

/* 模态框样式 */
.modal {
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 从简历详情中打开的二级弹窗必须高于详情弹窗。 */
#resume-complete-modal,
#generate-report-modal,
#convert-mode-modal,
#ai-analysis-modal,
#resume-recommend-modal,
#talent-favorite-modal {
  z-index: 1200;
}

.modal-content {
  background-color: #fff;
  border-radius: 12px;
  width: 90%;
  max-width: 800px;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid #e5e7eb;
}

.modal-header h3 {
  margin: 0;
  color: #111827;
  font-size: 20px;
}

.close-modal {
  width: 32px;
  height: 32px;
  color: #9ca3af;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  line-height: 1;
  border-radius: 8px;
  transition: color 0.2s, background 0.2s;
}

.close-modal:hover {
  color: #374151;
  background: #f3f4f6;
}

.modal-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
}

.modal-footer {
  padding: 16px 24px;
  border-top: 1px solid #e5e7eb;
  display: flex;
  gap: 12px;
  align-items: center;
}

.modal-close,
.close-btn {
  width: 32px;
  height: 32px;
  color: #9ca3af;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: 8px;
  padding: 0;
  line-height: 1;
  transition: color 0.2s, background 0.2s;
}

.modal-close:hover,
.close-btn:hover {
  color: #374151;
  background: #f3f4f6;
}

.icon-x {
  width: 16px;
  height: 16px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

.close-modal .icon-x,
.modal-close .icon-x,
.close-btn .icon-x,
.tiger-chat-close .icon-x,
.profile-panel-close .icon-x,
.btn-link .icon-x,
.btn-remove-order .icon-x,
.recommendation-row .btn-remove .icon-x,
.btn-icon .icon-x {
  width: 16px;
  height: 16px;
}

.case-card {
  background: #fff;
  border-radius: 10px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.case-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.case-type {
  font-weight: 600;
  color: #6366f1;
}

.case-status {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 4px;
}

.case-status.published {
  background: #d1fae5;
  color: #059669;
}

.case-status.draft {
  background: #fef3c7;
  color: #d97706;
}

.case-body {
  flex: 1;
}

.case-job {
  color: #374151;
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 8px;
}

.case-meta {
  display: flex;
  gap: 16px;
  font-size: 13px;
  color: #6b7280;
}

.case-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: #9ca3af;
}

.case-actions {
  display: flex;
  gap: 8px;
}

.case-actions button {
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 4px;
  cursor: pointer;
}

.cases-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

.download-info {
  background: #f3f4f6;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 20px;
  font-size: 14px;
  color: #374151;
}

.download-info strong {
  color: #111827;
}

.download-files {
  margin-bottom: 20px;
}

.file-category {
  margin-bottom: 24px;
}

.file-category-title {
  font-weight: 600;
  font-size: 16px;
  color: #111827;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #3b82f6;
}

.file-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.file-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  transition: all 0.2s;
}

.file-item:hover {
  background: #f3f4f6;
  border-color: #d1d5db;
}

.file-name {
  font-size: 14px;
  color: #374151;
  flex: 1;
}

.file-download-btn {
  padding: 6px 12px;
  height: auto;
  font-size: 13px;
  background: #3b82f6;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s;
}

.file-download-btn:hover {
  background: #2563eb;
}

.download-actions {
  display: flex;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid #e5e7eb;
}

.download-actions button {
  flex: 1;
  padding: 12px 20px;
  font-size: 15px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-primary {
  background: #3b82f6;
  color: #fff;
  border: 1px solid #3b82f6;
}

.btn-primary:hover {
  background: #2563eb;
  border-color: #2563eb;
}

.btn-secondary {
  background: #fff;
  color: #3b82f6;
  border: 1px solid #3b82f6;
}

.btn-secondary:hover {
  background: #eff6ff;
}

.btn-sm {
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 4px;
  background: #f97316;
  color: #fff;
  border: none;
  cursor: pointer;
}

.btn-sm:hover {
  background: #ea580c;
}

.empty-message {
  text-align: center;
  padding: 40px 20px;
  color: #9ca3af;
  font-size: 15px;
}

/* 下载区域分组样式 */
.download-section {
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e5e7eb;
}

.download-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.section-title {
  font-size: 16px;
  font-weight: 600;
  color: #111827;
  margin: 0 0 8px 0;
}

.section-desc {
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 16px;
}

.file-info {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}

.file-count {
  font-size: 12px;
  color: #6b7280;
  background: #f3f4f6;
  padding: 2px 8px;
  border-radius: 4px;
}

.section-actions {
  margin-top: 16px;
  display: flex;
  gap: 12px;
}

.btn-action {
  padding: 10px 20px;
  background: #3b82f6;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  transition: background 0.2s;
}

.btn-action:hover {
  background: #2563eb;
}

.btn-action-secondary {
  padding: 10px 20px;
  background: #fff;
  color: #3b82f6;
  border: 1px solid #3b82f6;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.2s;
}

.btn-action-secondary:hover {
  background: #eff6ff;
}

/* 业绩明细管理样式 */
.perf-panel {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.perf-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
}

.perf-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.perf-card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.perf-card-upload .perf-card-header h3 {
  margin: 0;
}

.perf-upload-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.perf-upload-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  align-items: center;
}

.perf-filter-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 10px;
}

.perf-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px 16px;
  margin-bottom: 0;
}

.perf-filter-grid-tight label {
  font-size: 14px;
  color: #111827;
}

.perf-section {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e5e7eb;
}

.perf-section:last-child {
  border-bottom: none;
}

/* 业绩筛选区域Grid布局 */
.perf-filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px 12px;
  margin-bottom: 12px;
  align-items: center;
}

.perf-filter-grid label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
  color: #374151;
  white-space: nowrap;
}

.perf-filter-grid select,
.perf-filter-grid input {
  flex: 1;
  width: auto;
  height: 32px;
  padding: 4px 8px;
  font-size: 13px;
}

.perf-filter-grid select,
.perf-filter-grid input {
  width: 100%;
  min-width: 0;
}

.perf-filter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.perf-filter-row-compact {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 10px 12px;
}

.perf-filter-actions {
  display: flex;
  gap: 10px;
}

.perf-search-input {
  min-width: 220px;
  flex: 1;
  max-width: 320px;
}

.amount-range {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
}

.amount-range input {
  width: 80px;
}

.perf-action-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  margin-bottom: 16px;
}

.perf-action-row-tight {
  justify-content: space-between;
  align-items: center;
  margin-top: 6px;
}

.perf-action-left {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.perf-stats-info {
  margin-left: auto;
  font-size: 14px;
  color: #6b7280;
}

/* 业绩管理整合工具栏 */
.perf-toolbar {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 16px;
}

.perf-upload-bar {
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #e5e7eb;
}

.perf-upload-groups {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
}

.perf-upload-group {
  min-width: 0;
  padding: 14px;
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background: #fff;
}

.perf-upload-group.is-performance {
  border-top: 3px solid #3b82f6;
}

.perf-upload-group.is-receivable {
  border-top: 3px solid #14b8a6;
}

.perf-upload-group-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
}

.perf-upload-type {
  min-width: 40px;
  height: 24px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #2563eb;
  font-size: 13px;
  font-weight: 700;
}

.perf-upload-group.is-receivable .perf-upload-type {
  background: #e6fffb;
  color: #0f766e;
}

.perf-upload-group-head strong,
.perf-upload-group-head small {
  display: block;
}

.perf-upload-group-head strong {
  color: #1f2937;
  font-size: 15px;
}

.perf-upload-group-head small {
  margin-top: 3px;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.4;
}

.perf-upload-group-actions,
.perf-upload-template-actions,
.perf-upload-utility-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.perf-upload-group-actions input[type="file"] {
  min-width: 210px;
  max-width: 100%;
}

.perf-receivable-month input {
  margin-left: 4px;
}

.perf-upload-template-actions {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #e5e7eb;
}

.perf-upload-template-actions span {
  color: #6b7280;
  font-size: 12px;
}

.perf-upload-template-actions button {
  height: 30px;
  padding: 5px 10px;
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #2563eb;
  font-size: 12px;
}

.perf-upload-template-actions button:hover {
  background: #dbeafe;
}

.perf-upload-utility-actions {
  margin-top: 12px;
}

@media (max-width: 1100px) {
  .perf-upload-groups {
    grid-template-columns: 1fr;
  }
}

.perf-bar-title {
  font-size: 14px;
  font-weight: 600;
  color: #374151;
}

.perf-radio {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  color: #374151;
}

.perf-toolbar .perf-upload-bar .message,
.perf-toolbar .perf-upload-bar #perf-upload-msg {
  margin-top: 0;
}

.perf-toolbar .perf-filter-grid {
  margin-bottom: 12px;
}

/* 上传姓名校验弹窗 */
.upload-name-issues-modal {
  z-index: 1300;
  padding: 24px;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(3px);
}

.upload-name-issues-card {
  width: min(760px, 94vw);
  max-width: 760px;
  max-height: min(84vh, 760px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.26);
  animation: upload-name-modal-in 180ms ease-out;
}

@keyframes upload-name-modal-in {
  from { opacity: 0; transform: translateY(10px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.upload-name-issues-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px;
  border-bottom: 1px solid #fee2e2;
  background: linear-gradient(135deg, #fff7ed 0%, #fff 60%);
}

.upload-name-issues-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.upload-name-issues-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: #ffedd5;
  color: #ea580c;
}

.upload-name-issues-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.upload-name-issues-eyebrow {
  display: block;
  margin-bottom: 3px;
  color: #c2410c;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

.upload-name-issues-header h3 {
  margin: 0;
  color: #172033;
  font-size: 21px;
  line-height: 1.25;
}

.upload-name-issues-body {
  padding: 22px 24px 18px;
  background: #f8fafc;
}

.upload-name-issues-summary {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  background: #fff;
}

.upload-name-issues-summary > div {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: #c2410c;
}

.upload-name-issues-summary strong {
  font-size: 28px;
  line-height: 1;
}

.upload-name-issues-summary span {
  font-size: 13px;
  font-weight: 700;
}

.upload-name-issues-summary p {
  margin: 0;
  color: #475569;
  font-size: 14px;
  line-height: 1.6;
}

.upload-name-issues-section {
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
}

.upload-name-issues-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px 13px;
  border-bottom: 1px solid #eef2f7;
}

.upload-name-issues-section-head h4 {
  margin: 0;
  color: #1e293b;
  font-size: 15px;
}

.upload-name-issues-section-head p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.5;
}

.upload-name-issues-badge {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  background: #fff1f2;
  color: #e11d48;
  font-size: 12px;
  font-weight: 700;
}

.upload-name-issues-section.is-missing .upload-name-issues-badge {
  background: #eff6ff;
  color: #2563eb;
}

.upload-name-issues-list {
  max-height: 290px;
  overflow-y: auto;
}

.upload-name-issue-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 12px;
  padding: 15px 18px;
  border-bottom: 1px solid #f1f5f9;
}

.upload-name-issue-item:last-child {
  border-bottom: 0;
}

.upload-name-issue-index {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #fff1f2;
  color: #e11d48;
  font-size: 12px;
  font-weight: 800;
}

.upload-name-issue-content {
  min-width: 0;
}

.upload-name-issue-team {
  display: inline-flex;
  margin-bottom: 9px;
  padding: 3px 8px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
}

.upload-name-issue-compare {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.upload-name-issue-compare > div {
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid #fecdd3;
  border-radius: 9px;
  background: #fff7f8;
}

.upload-name-issue-compare > div.is-suggestion {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.upload-name-issue-compare span,
.upload-name-issue-compare strong {
  display: block;
}

.upload-name-issue-compare span {
  margin-bottom: 2px;
  color: #64748b;
  font-size: 11px;
}

.upload-name-issue-compare strong {
  overflow: hidden;
  color: #9f1239;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.upload-name-issue-compare .is-suggestion strong {
  color: #15803d;
}

.upload-name-issue-compare > svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #94a3b8;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.upload-name-issue-content > p {
  margin: 7px 0 0;
  color: #64748b;
  font-size: 12px;
}

.upload-name-issue-item.is-missing .upload-name-issue-index {
  background: #eff6ff;
  color: #2563eb;
}

.upload-name-missing-name {
  display: block;
  color: #1e293b;
  font-size: 15px;
}

.upload-name-issues-tip {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 16px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.55;
}

.upload-name-issues-tip svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin-top: 1px;
  fill: none;
  stroke: #3b82f6;
  stroke-width: 2;
  stroke-linecap: round;
}

.upload-name-issues-footer {
  justify-content: space-between;
  gap: 18px;
  background: #fff;
}

.upload-name-issues-footer > span {
  max-width: 390px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.5;
}

.upload-name-issues-footer > div {
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
}

.upload-name-issues-footer button {
  min-height: 38px;
  padding: 8px 16px;
  border-radius: 8px;
  font-weight: 600;
}

.upload-name-issues-footer .btn-name-continue {
  border: 1px solid #f59e0b;
  background: #fffbeb;
  color: #b45309;
}

.upload-name-issues-footer .btn-name-continue:hover {
  border-color: #d97706;
  background: #fef3c7;
  color: #92400e;
}

.upload-name-issues-footer .btn-name-continue:focus-visible {
  outline: 3px solid rgba(245, 158, 11, 0.24);
  outline-offset: 2px;
}

@media (max-width: 640px) {
  .upload-name-issues-modal { padding: 10px; }
  .upload-name-issues-card { width: 100%; max-height: 92vh; border-radius: 14px; }
  .upload-name-issues-header { padding: 17px 16px; }
  .upload-name-issues-body { padding: 16px; }
  .upload-name-issues-summary { align-items: flex-start; }
  .upload-name-issue-compare { grid-template-columns: 1fr; }
  .upload-name-issue-compare > svg { transform: rotate(90deg); justify-self: center; }
  .upload-name-issues-footer { align-items: stretch; flex-direction: column; padding: 14px 16px; }
  .upload-name-issues-footer > div { justify-content: flex-end; flex-wrap: wrap; }
}

.perf-filter-grid .perf-filter-wide {
  grid-column: span 2;
}

.perf-filter-grid .perf-filter-wide input {
  width: 100%;
  min-width: 0;
}

.perf-filter-grid .amount-range {
  grid-column: span 2;
  flex-direction: row;
  align-items: center;
  gap: 6px;
  font-weight: 500;
}

.perf-filter-grid .amount-range input {
  flex: 1;
  width: auto;
  min-width: 0;
}

.perf-toolbar .perf-action-row {
  margin-bottom: 0;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
}

@media (max-width: 640px) {
  .perf-filter-grid {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px 12px;
  }
  .perf-filter-grid .perf-filter-wide,
  .perf-filter-grid .amount-range {
    grid-column: span 2;
  }
  .perf-toolbar {
    padding: 12px;
  }
  .perf-action-row .perf-stats-info {
    margin-left: 0;
    width: 100%;
  }
}

.perf-table-card {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 12px;
  background: #fff;
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.01);
}

.perf-table-container {
  max-height: 600px;
  overflow: auto;
}

/* 业绩表行高加倍 */
#perf-table th, #perf-table td {
  padding-top: 20px;
  padding-bottom: 20px;
}

.perf-pagination-tight {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.btn-warn {
  background: #f97316;
  color: #fff;
  border: none;
}

.btn-warn:hover {
  background: #ea580c;
}

/* 图标按钮样式 */
.icon-btn {
  padding: 4px 8px;
  min-width: auto;
  font-size: 14px;
  background: transparent;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
}

.icon-btn:hover {
  background: #f3f4f6;
  border-color: #9ca3af;
}

.icon-btn.btn-approve {
  color: #059669;
  border-color: #10b981;
}

.icon-btn.btn-approve:hover {
  background: #d1fae5;
}

.icon-btn.btn-reject {
  color: #dc2626;
  border-color: #ef4444;
}

.icon-btn.btn-reject:hover {
  background: #fee2e2;
}

.icon-btn.btn-delete {
  color: #dc2626;
}

.icon-btn.btn-delete:hover {
  background: #fee2e2;
  border-color: #ef4444;
}

/* 操作按钮行样式 */
.btn-primary {
  background: #3b82f6;
  color: white;
  border: none;
}

.btn-primary:hover {
  background: #2563eb;
}

.btn-success {
  background: #10b981;
  color: white;
  border: none;
}

.btn-success:hover {
  background: #059669;
}

.btn-danger {
  background: #ef4444;
  color: white;
  border: none;
}

.btn-danger:hover {
  background: #dc2626;
}

.btn-secondary {
  background: #6b7280;
  color: white;
  border: none;
}

.btn-secondary:hover {
  background: #4b5563;
}

.section-subtitle {
  font-size: 18px;
  font-weight: 600;
  color: #374151;
  margin: 0 0 16px 0;
}

.perf-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
  padding: 12px;
}

.perf-pagination button {
  min-width: 80px;
}

#perf-page-info {
  font-size: 14px;
  color: #6b7280;
}

/* 表单网格布局 */
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-group label {
  font-size: 14px;
  font-weight: 500;
  color: #374151;
}

.form-group input,
.form-group select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 14px;
}

.form-group input:focus,
.form-group select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.admin-data-permission-field {
  margin-top: 2px;
  padding: 12px 14px;
  border: 1px solid #dbe7f5;
  border-radius: 10px;
  background: linear-gradient(135deg, #f8fbff, #f5f8ff);
}
.admin-permission-toggle {
  display: flex;
  align-items: center;
  gap: 11px;
  cursor: pointer;
}
.admin-permission-toggle > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.admin-permission-switch {
  position: relative;
  flex: 0 0 38px;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: #cbd5e1;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .06);
  transition: background .18s ease;
}
.admin-permission-switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .2);
  transition: transform .18s ease;
}
.admin-permission-toggle > input:checked + .admin-permission-switch { background: #3b82f6; }
.admin-permission-toggle > input:checked + .admin-permission-switch::after { transform: translateX(16px); }
.admin-permission-toggle > input:focus-visible + .admin-permission-switch { outline: 3px solid rgba(59, 130, 246, .2); outline-offset: 2px; }
.admin-permission-toggle > input:disabled + .admin-permission-switch { opacity: .55; }
.admin-permission-toggle:has(input:disabled) { cursor: not-allowed; }
.admin-permission-copy { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.admin-permission-copy strong { color: #26364d; font-size: 13px; }
.admin-permission-copy small { color: #7b8ba3; font-size: 11px; font-weight: 400; line-height: 1.4; }

.required {
  color: #ef4444;
  font-weight: bold;
}

.warning-msg {
  font-size: 13px;
  color: #f59e0b;
  margin-top: 4px;
}

.onboard-only {
  display: none;
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid #e5e7eb;
}

.form-actions button {
  min-width: 100px;
  padding: 10px 20px;
}

/* 审核按钮和批量操作 */
.btn-approve {
  background-color: #4CAF50;
  color: white;
  border: none;
  padding: 4px 8px;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
  margin: 0 2px;
}

.btn-approve:hover {
  background-color: #45a049;
}

.btn-reject {
  background-color: #f44336;
  color: white;
  border: none;
  padding: 4px 8px;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
  margin: 0 2px;
}

.btn-reject:hover {
  background-color: #da190b;
}

.batch-audit-btns {
  margin-bottom: 10px;
  padding: 10px;
  background-color: #f5f5f5;
  border-radius: 4px;
}

.perf-table-header {
  margin-bottom: 10px;
}

.audit-actions {
  text-align: center;
}

/* 通知功能 */
.notification-bell {
  position: relative;
  cursor: pointer;
  font-size: 24px;
  margin-right: 15px;
  padding: 5px;
}

.notification-count {
  position: absolute;
  top: -5px;
  right: -5px;
  background-color: #f44336;
  color: white;
  border-radius: 50%;
  min-width: 18px;
  height: 18px;
  font-size: 11px;
  font-weight: bold;
  line-height: 18px;
  text-align: center;
  padding: 0 4px;
  box-sizing: border-box;
}

.header-right {
  display: flex;
  align-items: center;
}

.pending-badge {
  background-color: #ff9800;
  color: white;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 13px;
  margin-left: 10px;
  font-weight: normal;
}

.audit-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.audit-summary-item {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #ffffff;
  color: #111827;
  padding: 14px 16px;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.audit-summary-item:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.audit-summary-item span {
  font-size: 14px;
}

.audit-summary-item strong {
  font-size: 20px;
  color: #2563eb;
}

.audit-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  align-items: flex-end;
  margin-bottom: 12px;
}

.audit-filter-row label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #374151;
}

.audit-filter-row input,
.audit-filter-row select {
  min-width: 140px;
  height: 34px;
  padding: 6px 10px;
}

.audit-keyword-field {
  min-width: 260px;
  flex: 1 1 260px;
}

.audit-keyword-field input {
  width: 100%;
}

.audit-table-wrap {
  max-height: 420px;
}

.audit-table-wrap table {
  min-width: 980px;
}

.audit-pagination-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.audit-pagination-row span {
  color: #6b7280;
  font-size: 13px;
}

.audit-empty-message {
  padding: 16px;
  color: #6b7280;
  text-align: center;
}

.admin-tiger-log-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.admin-tiger-log-item {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 12px;
  cursor: pointer;
  background: #ffffff;
  transition: all 0.2s ease;
}

.admin-tiger-log-item:hover {
  border-color: #f97316;
  background: #fff7ed;
}

.admin-tiger-log-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  font-size: 12px;
  color: #6b7280;
  flex-wrap: wrap;
}

.admin-tiger-log-time {
  font-weight: 500;
}

.admin-tiger-log-user {
  color: #111827;
  font-weight: 600;
}

.admin-tiger-log-source {
  padding: 2px 8px;
  border-radius: 999px;
  background: #ffedd5;
  color: #c2410c;
  border: 1px solid #fdba74;
}

.admin-tiger-log-question,
.admin-tiger-log-answer {
  font-size: 13px;
  line-height: 1.6;
  color: #374151;
}

.admin-tiger-log-answer {
  color: #4b5563;
  margin-top: 4px;
}

.admin-tiger-log-detail-modal {
  max-width: 760px;
  width: 92%;
  max-height: 82vh;
}

.admin-tiger-log-detail-body {
  overflow-y: auto;
}

.admin-tiger-log-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 14px;
}

.admin-tiger-log-detail-section {
  margin-bottom: 14px;
}

.admin-tiger-log-detail-section h4 {
  margin: 0 0 8px 0;
  font-size: 14px;
  color: #111827;
}

.admin-tiger-log-detail-text {
  white-space: pre-wrap;
  word-break: break-word;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 10px 12px;
  color: #374151;
  line-height: 1.65;
}

.notification-modal {
  max-width: 600px;
  max-height: 80vh;
  overflow-y: auto;
}

.notification-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px;
  border-bottom: 1px solid #ddd;
}

.notification-list {
  padding: 10px;
}

.notification-item {
  padding: 12px;
  margin-bottom: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.2s;
}

.notification-item.unread {
  background-color: #e3f2fd;
  border-left: 4px solid #2196F3;
}

.notification-item.read {
  background-color: #f9f9f9;
}

.notification-item:hover {
  background-color: #f0f0f0;
}

.notification-title {
  font-weight: bold;
  margin-bottom: 5px;
  color: #333;
}

.notification-content {
  color: #666;
  margin-bottom: 5px;
  font-size: 14px;
}

.notification-time {
  font-size: 12px;
  color: #999;
}

/* 审核状态标签 */
.audit-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}

.audit-pending {
  background: #fef3c7;
  color: #92400e;
}

.audit-approved {
  background: #d1fae5;
  color: #065f46;
}

.audit-rejected {
  background: #fee2e2;
  color: #991b1b;
}

/* 业绩表格特殊样式 */
.perf-col-settings {
  position: relative;
  display: inline-block;
}

.perf-col-panel {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 50;
  margin-top: 4px;
  padding: 8px 10px;
  min-width: 160px;
  max-height: 320px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px 12px;
}

.perf-col-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #475569;
  white-space: nowrap;
  cursor: pointer;
  padding: 2px 0;
}

#perf-table {
  max-height: 600px;
  overflow: auto;
}

#perf-table table {
  font-size: 14px;
  width: max-content;
  min-width: 100%;
  white-space: nowrap;
}

#perf-table th {
  position: sticky;
  top: 0;
  background: #f8fafc;
  z-index: 10;
  font-weight: 600;
  padding: 4px 6px;
  line-height: 1.2;
  font-size: 12px;
  text-align: left;
  color: #475569;
  border-bottom: 2px solid #e2e8f0;
}

#perf-table th,
#perf-table td {
  padding: 2px 5px;
}

#perf-table td {
  line-height: 1.2;
  font-size: 12px;
  vertical-align: middle;
  border-bottom: 1px solid #f1f5f9;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
}

#perf-table td[data-col="client"] {
  max-width: 220px;
}

#perf-table td[data-col="select"],
#perf-table td[data-col="action"] {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
}

#perf-table td:nth-child(1) {
  text-align: center;
  width: 40px;
}

#perf-table .amount-cell {
  font-weight: 600;
  color: #059669;
  text-align: right;
}

#perf-table .amount-negative {
  color: #dc2626;
}

#perf-table tbody tr {
  border-bottom: 1px solid #eef2ff;
}

#perf-table tbody tr:hover {
  background: #f8fafc;
}


.action-pill {
  border: none;
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
  padding: 4px 8px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  gap: 6px;
  letter-spacing: 0.02em;
  line-height: 1;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.action-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.action-pill .pill-icon {
  font-size: 13px;
  line-height: 1;
}

.action-pill-edit {
  background: #3b82f6;
  color: #fff;
}

.action-pill-edit:hover {
  background: #2563eb;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.action-pill-delete {
  background: #3b82f6;
  color: #fff;
}

.action-pill-delete:hover {
  background: #2563eb;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}

.action-pill-approve {
  background: rgba(16, 185, 129, 0.12);
  color: #047857;
  box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.3);
}

.action-pill-approve:hover {
  background: rgba(16, 185, 129, 0.22);
}

.action-pill-reject {
  background: rgba(245, 158, 11, 0.12);
  color: #92400e;
  box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.3);
}

.action-pill-reject:hover {
  background: rgba(245, 158, 11, 0.2);
}

/* 关键词高亮样式 */
.keyword-highlight {
  background-color: #fef08a;
  color: #854d0e;
  font-weight: 600;
  padding: 1px 2px;
  border-radius: 2px;
}

/* 响应式调整 */
@media (max-width: 768px) {
  .form-grid {
    grid-template-columns: 1fr;
  }
}

/* ==================== 新版V2样式 ==================== */

/* === 登录页样式 === */
.login-page {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.login-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  z-index: -1;
}

.login-bg::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.login-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  padding: 48px 40px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  text-align: center;
}

.login-logo img {
  height: 80px;
  margin-bottom: 16px;
}

.login-title {
  font-size: 28px;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 8px 0;
}

.login-subtitle {
  font-size: 14px;
  color: #6b7280;
  margin: 0 0 32px 0;
}

.login-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.input-group {
  position: relative;
  display: flex;
  align-items: center;
}

.input-icon {
  position: absolute;
  left: 16px;
  color: #9ca3af;
  display: flex;
  align-items: center;
}

.input-group input {
  width: 100%;
  padding: 14px 16px 14px 48px;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  font-size: 15px;
  transition: all 0.2s;
  height: auto;
}

.input-group input:focus {
  outline: none;
  border-color: #667eea;
  box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);
}

.input-group.has-password-toggle input {
  padding-right: 54px;
}

.login-password-toggle {
  position: absolute;
  right: 9px;
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #8b98aa;
  cursor: pointer;
  transition: color 0.16s ease, background 0.16s ease;
}

.login-password-toggle:hover {
  background: rgba(102, 126, 234, 0.1);
  color: #5f6fd8;
}

.login-password-toggle:focus-visible {
  outline: 2px solid #667eea;
  outline-offset: 1px;
  background: rgba(102, 126, 234, 0.08);
}

.login-password-toggle svg {
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.login-password-toggle .password-toggle-hide {
  display: none;
}

.login-password-toggle[aria-pressed='true'] {
  color: #5f6fd8;
}

.login-password-toggle[aria-pressed='true'] .password-toggle-show {
  display: none;
}

.login-password-toggle[aria-pressed='true'] .password-toggle-hide {
  display: block;
}

.login-btn {
  width: 100%;
  padding: 14px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  height: auto;
  margin-top: 8px;
}

.login-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3);
}

.login-msg {
  display: none;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid #fecaca;
  border-radius: 10px;
  background: #fef2f2;
  font-size: 14px;
  color: #b91c1c;
  line-height: 1.45;
  text-align: left;
  margin: 0;
}

.login-msg.is-visible {
  display: flex;
}

.login-msg.is-visible::before {
  content: "!";
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
  border-radius: 50%;
  background: #ef4444;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.login-msg.is-success {
  border-color: #a7f3d0;
  background: #ecfdf5;
  color: #047857;
}

.login-msg.is-success::before {
  content: "✓";
  background: #10b981;
}

.login-btn:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

/* === 主应用布局 === */
.main-app {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #f3f4f6;
}

/* === 顶部导航栏 === */
.top-navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  height: 64px;
  background: linear-gradient(135deg, #0066cc, #004499);
  border-bottom: 1px solid #e5e7eb;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  position: sticky;
  top: 0;
  z-index: 100;
}

.navbar-left {
  display: flex;
  align-items: center;
  gap: 24px;
}

.navbar-logo {
  height: 40px;
}

.mobile-menu-btn {
  display: none;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #ffffff;
}

.navbar-nav {
  display: flex;
  gap: 4px;
}

.nav-menu {
  position: relative;
  display: flex;
}

.nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 8px;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s;
}

button.nav-link {
  border: 0;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
}

.nav-menu-chevron {
  transition: transform 0.2s ease;
}

.nav-menu.is-open .nav-menu-chevron {
  transform: rotate(180deg);
}

.nav-submenu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 140;
  width: 168px;
  padding: 7px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.2);
}

.nav-submenu[hidden] {
  display: none;
}

.nav-submenu-link {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #334155;
  font-family: inherit;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}

.nav-submenu-link:hover,
.nav-submenu-link:focus-visible {
  background: #eff6ff;
  color: #1d4ed8;
  outline: none;
}

.nav-link:hover {
  background: #f3f4f6;
  color: #374151;
}

.nav-link.active {
  background: rgba(255, 255, 255, 0.25);
  color: #ffffff;
}

.data-management-panel {
  min-height: 520px;
}

.data-management-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.data-management-heading h2 {
  margin: 0 0 5px;
  color: #182230;
  font-size: 20px;
}

.data-management-heading p {
  margin: 0;
  color: #64748b;
  font-size: 14px;
}

.data-stats-updated { padding-top: 5px; color: #98a2b3; font-size: 12px; white-space: nowrap; }

.data-stats-toolbar {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 12px;
  border: 1px solid #dfe5ec;
  border-radius: 10px;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}

.data-stats-primary-actions,
.data-period-controls { display: flex; align-items: center; gap: 6px; }

.data-stats-primary-actions > button,
.data-stats-primary-actions .data-column-picker-wrap > button {
  min-height: 34px;
  padding: 6px 15px;
  border: 1px solid #3b82f6;
  border-radius: 8px;
  background: linear-gradient(135deg, #3b82f6, #2878e6);
  color: #fff;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(59, 130, 246, 0.16);
}

.data-stats-primary-actions > button:hover,
.data-stats-primary-actions .data-column-picker-wrap > button:hover,
.data-stats-primary-actions > button.active { background: #1d6fe0; transform: translateY(-1px); }

.data-column-picker-wrap { position: relative; }
.data-column-picker {
  position: absolute;
  z-index: 30;
  top: calc(100% + 7px);
  left: 0;
  width: 360px;
  padding: 12px;
  border: 1px solid #dbe2ea;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.16);
}
.data-column-picker-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 1px 2px 9px; border-bottom: 1px solid #eef2f6; }
.data-column-picker-head strong { color: #1d2939; font-size: 13px; }
.data-column-picker-head span { color: #667085; font-size: 11px; white-space: nowrap; }
.data-column-picker-actions { display: flex; justify-content: flex-end; gap: 6px; padding: 9px 0 5px; }
.data-column-picker-actions button {
  min-height: 26px;
  padding: 3px 11px;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}
.data-column-picker-actions button:hover { background: #dbeafe; }
.data-column-picker-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; }
.data-column-picker-options label { display: flex; align-items: center; gap: 7px; min-height: 30px; color: #475467; font-size: 12px; cursor: pointer; }

.data-period-controls { flex: 1 1 auto; justify-content: flex-end; overflow-x: auto; scrollbar-width: thin; }
.data-period-controls strong { min-width: 150px; margin-right: 8px; color: #344054; font-size: 13px; text-align: right; white-space: nowrap; }
.data-period-controls button {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 5px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #475467;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.data-period-controls button:hover { background: #eff6ff; color: #2563eb; }
.data-period-controls button.active { background: #3b82f6; color: #fff; box-shadow: 0 3px 8px rgba(59, 130, 246, 0.22); }

.data-custom-period {
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 12px 0;
  color: #667085;
  font-size: 12px;
}
.data-custom-period label { display: flex; align-items: center; gap: 6px; }
.data-custom-period input { min-height: 32px; padding: 4px 8px; border: 1px solid #d0d5dd; border-radius: 7px; }
.data-custom-period button { min-height: 32px; padding: 5px 13px; border: 0; border-radius: 7px; background: #2563eb; color: #fff; cursor: pointer; }

.data-stats-filters {
  display: grid;
  grid-template-columns: 150px 130px 220px 220px minmax(24px, 1fr) minmax(260px, 320px) 76px;
  justify-content: stretch;
  align-items: end;
  gap: 12px;
  margin-top: 12px;
  padding: 12px 14px 13px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}
.data-stats-filters label {
  display: flex;
  min-width: 0;
  align-items: stretch;
  flex-direction: column;
  gap: 6px;
  color: #64748b;
  font-size: 11px;
  font-weight: 650;
}
.data-stats-filters select,
.data-stats-filters input {
  width: 100%;
  height: 40px;
  min-width: 0;
  min-height: 40px;
  box-sizing: border-box;
  padding: 6px 11px;
  border: 1px solid #d7dee8;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 12px;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

/* 管理员编辑资料：可搜索的直属下属多选框 */
.admin-subordinate-multiselect {
  position: relative;
  width: 100%;
}

.admin-subordinate-multiselect [hidden] {
  display: none !important;
}

.admin-subordinate-multiselect-trigger {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 5px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: #334155;
  text-align: left;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.admin-subordinate-multiselect-trigger:hover {
  border-color: #94a3b8;
  background: #fff;
}

.admin-subordinate-multiselect-trigger:focus,
.admin-subordinate-multiselect-trigger[aria-expanded="true"] {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .1);
}

.admin-subordinate-multiselect-trigger > svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: #64748b;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .16s ease;
}

.admin-subordinate-multiselect-trigger[aria-expanded="true"] > svg {
  transform: rotate(180deg);
}

.admin-subordinate-multiselect-summary {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 5px;
  overflow: hidden;
}

.admin-subordinate-multiselect-placeholder {
  overflow: hidden;
  color: #94a3b8;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-subordinate-multiselect-chip,
.admin-subordinate-multiselect-more {
  display: inline-flex;
  max-width: 180px;
  min-height: 25px;
  align-items: center;
  padding: 2px 5px 2px 8px;
  overflow: hidden;
  border-radius: 5px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-subordinate-multiselect-chip {
  gap: 4px;
}

.admin-subordinate-multiselect-chip-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-subordinate-multiselect-chip-remove {
  display: inline-flex;
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #64748b;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  transition: background .16s ease, color .16s ease;
}

.admin-subordinate-multiselect-chip-remove:hover,
.admin-subordinate-multiselect-chip-remove:focus-visible {
  background: #dbeafe;
  color: #1d4ed8;
  outline: none;
}

.admin-subordinate-multiselect-more {
  flex: 0 0 auto;
  padding-inline: 7px;
  background: #f1f5f9;
  color: #64748b;
}

.admin-subordinate-multiselect-panel {
  position: absolute;
  z-index: 120;
  top: calc(100% + 6px);
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid #dbe3ed;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .16);
}

.admin-subordinate-multiselect-search-wrap {
  position: relative;
  padding: 10px;
  border-bottom: 1px solid #edf2f7;
}

.admin-subordinate-multiselect-search-wrap > svg {
  position: absolute;
  top: 50%;
  left: 21px;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: #94a3b8;
  stroke-width: 1.7;
  stroke-linecap: round;
  transform: translateY(-50%);
  pointer-events: none;
}

.form-group .admin-subordinate-multiselect-search-wrap > input[type="search"] {
  height: 36px;
  padding: 7px 10px 7px 34px;
  border-color: #d8e0ea;
  border-radius: 7px;
  background: #f8fafc;
}

.admin-subordinate-multiselect-options {
  max-height: 220px;
  padding: 5px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.admin-subordinate-multiselect-option {
  display: flex;
  min-height: 36px;
  align-items: center;
  gap: 9px;
  padding: 6px 9px;
  border-radius: 7px;
  color: #334155;
  cursor: pointer;
  font-size: 13px;
  font-weight: 400;
}

.admin-subordinate-multiselect-option:hover {
  background: #f8fafc;
}

.admin-subordinate-multiselect-option.is-selected {
  background: #eff6ff;
  color: #1d4ed8;
}

.form-group .admin-subordinate-multiselect-option > input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin: 0;
  padding: 0;
  accent-color: #3b82f6;
  box-shadow: none;
}

.admin-subordinate-multiselect-option > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-subordinate-multiselect-empty {
  padding: 22px 12px;
  color: #94a3b8;
  font-size: 13px;
  text-align: center;
}
.data-stats-filters select {
  appearance: none;
  padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 12px center;
  background-repeat: no-repeat;
  background-size: 12px 12px;
}
.data-stats-filters select:focus,
.data-stats-filters input:focus {
  outline: none;
  border-color: #60a5fa;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .11);
}
.data-stats-filters select option:disabled { color: #a8b2c1; }
.data-stats-combobox { position: relative; display: inline-flex; width: 100%; min-width: 0; align-items: stretch; }
.data-stats-combobox > input[type="search"] { width: 100%; padding-right: 42px; }
.data-stats-combobox > input[type="search"]::-webkit-search-cancel-button { display: none; }
.data-stats-combobox-toggle {
  position: absolute;
  top: 2px;
  right: 2px;
  bottom: 2px;
  display: grid;
  width: 38px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #64748b;
  font-size: 0;
  line-height: 1;
  cursor: pointer;
}

.data-stats-combobox-toggle::before {
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: '';
  transform: translateY(-2px) rotate(45deg);
}
.data-stats-combobox-toggle:hover { background: #eff6ff; color: #2563eb; }
.data-stats-combobox:focus-within > input[type="search"] { outline: none; border-color: #60a5fa; box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.data-stats-combobox-options { position: absolute; top: calc(100% + 5px); right: 0; left: 0; z-index: 40; max-height: 260px; padding: 5px; overflow-y: auto; border: 1px solid #d8e0ec; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.16); }
.data-stats-combobox-options[hidden] { display: none; }
.data-stats-combobox-option { display: flex; width: 100%; min-height: 34px; align-items: flex-start; justify-content: center; flex-direction: column; gap: 1px; padding: 6px 9px; border: 0; border-radius: 6px; background: #fff; color: #334155; text-align: left; cursor: pointer; }
.data-stats-combobox-option:hover,
.data-stats-combobox-option:focus-visible { outline: none; background: #eff6ff; }
.data-stats-combobox-option.is-selected { background: #eaf2ff; color: #1d4ed8; }
.data-stats-combobox-option strong { max-width: 100%; overflow: hidden; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.data-stats-combobox-option small { color: #94a3b8; font-size: 10px; }
.data-stats-combobox-empty { display: block; padding: 12px 8px; color: #98a2b3; font-size: 11px; text-align: center; }
.data-stats-search-label { grid-column: 6; }
.data-stats-search-label input { width: 100%; }
.data-stats-query-button {
  grid-column: 7;
  min-width: 72px;
  height: 40px;
  min-height: 40px;
  padding: 6px 18px;
  border: 0;
  border-radius: 8px;
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  color: #fff;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(37, 99, 235, .2);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.data-stats-query-button:hover { background: #1d6fe0; box-shadow: 0 6px 14px rgba(37, 99, 235, .25); transform: translateY(-1px); }

.data-stats-summary-row { display: flex; align-items: center; justify-content: space-between; padding: 5px 2px 10px; color: #344054; font-size: 13px; }
.data-stats-summary-row span { color: #98a2b3; font-size: 12px; }

.data-stats-table-wrap {
  max-width: 100%;
  border: 1px solid #e1e6ec;
  border-radius: 10px;
  overflow: auto;
  background: #fff;
  scrollbar-color: #b8c3d1 #f3f5f7;
}

.data-stats-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: #344054;
  font-size: 12px;
}
.data-stats-table th,
.data-stats-table td { min-width: 112px; height: 48px; box-sizing: border-box; padding: 8px 10px; border-bottom: 1px solid #edf0f3; text-align: center; white-space: nowrap; }
.data-stats-table th { position: sticky; top: 0; z-index: 4; height: 46px; background: linear-gradient(180deg, #f7f8fa, #eef1f4); color: #344054; font-size: 12px; font-weight: 700; }
.data-stats-table th:first-child,
.data-stats-table td:first-child { position: sticky; left: 0; z-index: 3; min-width: 150px; text-align: left; }
.data-stats-table:not(.is-team-mode) th:nth-child(2),
.data-stats-table:not(.is-team-mode) td:nth-child(2) {
  position: sticky;
  left: 150px;
  z-index: 3;
  width: 160px;
  min-width: 160px;
  max-width: 160px;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
}
.data-stats-table.is-team-mode th:nth-child(2),
.data-stats-table.is-team-mode td:nth-child(2) { position: static; min-width: 112px; text-align: center; }
.data-stats-table th:first-child,
.data-stats-table th:nth-child(2) { z-index: 6; }
.data-stats-table tbody tr:nth-child(odd) td { background: #fff; }
.data-stats-table tbody tr:nth-child(even) td { background: #fff; }
.data-stats-table tbody tr:hover td { background: #f8fbff; }
.data-user-cell strong { display: block; color: #1d65c1; font-size: 12.5px; }
.data-user-cell small { display: block; margin-top: 2px; color: #98a2b3; font-size: 10px; }
.data-team-cell { overflow: hidden; color: #475467; text-overflow: ellipsis; }
.data-metric-cell button { min-width: 32px; padding: 5px; border: 0; border-radius: 6px; background: transparent; color: #64748b; font-weight: 550; cursor: pointer; }
.data-metric-cell button,
.data-metric-cell.data-recommendation-drilldown > span,
.data-total-cell > strong,
.data-total-cell.data-recommendation-total-drilldown > span {
  text-decoration-line: underline;
  text-decoration-color: rgba(100, 116, 139, 0.48);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.data-metric-cell button.is-zero { color: #9aa6b5; font-weight: 500; }
.data-metric-cell button.has-value { color: #256fca; font-weight: 650; }
.data-metric-cell button:hover { background: #dbeafe; }
.data-metric-cell.data-recommendation-drilldown {
  color: #2779d9;
  font-weight: 650;
  cursor: pointer;
}
.data-metric-cell.data-recommendation-drilldown.is-zero { color: #9aa6b5; font-weight: 500; }
.data-metric-cell.data-recommendation-drilldown.has-value { color: #256fca; }
.data-metric-cell.data-recommendation-drilldown span {
  text-decoration: underline;
  text-decoration-color: rgba(39, 121, 217, 0.38);
  text-underline-offset: 3px;
}
.data-stats-table tbody td.data-recommendation-drilldown:hover {
  background: #dbeafe;
}
.data-metric-cell.data-recommendation-drilldown:hover span {
  text-decoration-color: currentColor;
}
.data-metric-cell.data-recommendation-drilldown:focus-visible,
.data-total-cell.data-recommendation-total-drilldown:focus-visible {
  outline: 2px solid #2779d9;
  outline-offset: -3px;
}
.data-stats-loading { min-width: 100% !important; height: 180px !important; color: #98a2b3; text-align: center !important; }
.data-stats-loading.is-error { color: #dc2626; }
.data-stats-table tfoot td { position: sticky; bottom: 0; z-index: 4; border-bottom: 0; background: #f1f4f7; color: #64748b; font-weight: 650; }
.data-stats-table tfoot td:first-child,
.data-stats-table tfoot td:nth-child(2) { z-index: 5; background: #f1f4f7; }
.data-total-cell { padding-top: 4px !important; padding-bottom: 4px !important; }
.data-total-cell strong { display: block; }
.data-total-cell.is-zero { color: #9aa6b5; font-weight: 500; }
.data-total-cell.has-value { color: #256fca; font-weight: 700; }
.data-recommendation-total-drilldown {
  color: #2475d0;
  font-weight: 700;
  cursor: pointer;
}
.data-recommendation-total-drilldown span {
  text-decoration: underline;
  text-decoration-color: rgba(36, 117, 208, 0.38);
  text-underline-offset: 3px;
}
.data-stats-table tfoot td.data-recommendation-total-drilldown:hover { background: #dbeafe; }
.data-recommendation-total-drilldown:hover span { text-decoration-color: currentColor; }
.data-total-label { color: #344054 !important; font-size: 13px; }

.data-stats-pagination {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 4px 0;
  color: #667085;
  font-size: 12px;
}
.data-pagination-summary strong { color: #344054; font-weight: 650; }
.data-pagination-controls { display: flex; align-items: center; gap: 5px; }
.data-pagination-controls label { display: flex; align-items: center; gap: 6px; margin-right: 7px; color: #667085; }
.data-pagination-controls select {
  min-height: 31px;
  padding: 4px 24px 4px 8px;
  border: 1px solid #d7dee8;
  border-radius: 7px;
  background: #fff;
  color: #475467;
  font-size: 12px;
}
.data-pagination-controls button {
  min-width: 31px;
  height: 31px;
  padding: 0 8px;
  border: 1px solid #dce3eb;
  border-radius: 7px;
  background: #fff;
  color: #475467;
  font-size: 12px;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.data-pagination-controls button:hover:not(:disabled) { border-color: #93c5fd; background: #eff6ff; color: #2563eb; }
.data-pagination-controls button.active { border-color: #3b82f6; background: #3b82f6; color: #fff; box-shadow: 0 3px 8px rgba(59, 130, 246, .18); }
.data-pagination-controls button:disabled { color: #c4cad4; background: #f8fafc; cursor: not-allowed; }
.data-pagination-ellipsis { min-width: 22px; color: #98a2b3; text-align: center; }

.data-recruitment-chart { padding: 14px 16px; border: 1px solid #cfe2fb; border-radius: 10px; margin-bottom: 12px; background: linear-gradient(135deg, #f8fbff, #fff); }
.data-chart-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.data-chart-head > div { display: flex; align-items: center; gap: 8px; }
.data-chart-head strong { color: #1d2939; font-size: 14px; }
.data-chart-head span { padding: 2px 7px; border-radius: 999px; background: #dbeafe; color: #2563eb; font-size: 10px; }
.data-chart-head button { border: 0; background: none; color: #98a2b3; font-size: 20px; cursor: pointer; }
.data-chart-bars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
.data-chart-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) 32px; align-items: center; gap: 8px; min-width: 0; }
.data-chart-row > span { overflow: hidden; color: #475467; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.data-chart-row > div { height: 8px; border-radius: 99px; background: #eaf0f7; overflow: hidden; }
.data-chart-row i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #60a5fa, #2563eb); }
.data-chart-row strong { color: #2563eb; font-size: 11px; text-align: right; }

.data-recommendation-detail-content {
  width: min(820px, calc(100vw - 32px));
  max-width: 820px;
  max-height: min(720px, calc(100vh - 48px));
  overflow: hidden;
  border-radius: 14px;
}

.data-recommendation-detail-content .modal-header {
  align-items: flex-start;
}

.data-recommendation-detail-content .modal-header h3 {
  margin-bottom: 4px;
}

.data-recommendation-detail-subtitle {
  margin: 0;
  color: #98a2b3;
  font-size: 12px;
  font-weight: 500;
}

.data-recommendation-detail-body {
  min-height: 180px;
  padding: 18px 20px 22px;
  overflow: auto;
}

.data-recommendation-detail-table-wrap {
  overflow: auto;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}

.data-recommendation-detail-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #344054;
  font-size: 12.5px;
}

.data-recommendation-detail-table th,
.data-recommendation-detail-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #edf1f5;
  text-align: left;
  vertical-align: middle;
}

.data-recommendation-detail-table th {
  background: #f7f9fc;
  color: #667085;
  font-size: 11.5px;
  font-weight: 700;
}

.data-recommendation-detail-table th:nth-child(1) { width: 29%; }
.data-recommendation-detail-table th:nth-child(2) { width: 29%; }
.data-recommendation-detail-table th:nth-child(3) { width: 20%; }
.data-recommendation-detail-table th:nth-child(4) { width: 22%; }

.data-recommendation-detail-table tbody tr:last-child td { border-bottom: 0; }
.data-recommendation-detail-table tbody tr:hover td { background: #f8fbff; }
.data-recommendation-detail-table td:nth-child(1),
.data-recommendation-detail-table td:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.data-recommendation-candidate {
  color: #1d4ed8;
  font-weight: 650;
}

.data-recommendation-candidate-link {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  text-decoration: underline;
  text-decoration-color: #bfdbfe;
  text-underline-offset: 3px;
  cursor: pointer;
}

.data-recommendation-project-link {
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
  color: #1d4ed8;
  font: inherit;
  text-align: left;
  text-decoration: underline;
  text-decoration-color: #bfdbfe;
  text-overflow: ellipsis;
  text-underline-offset: 3px;
  white-space: nowrap;
  cursor: pointer;
}

.data-recommendation-candidate-link:hover,
.data-recommendation-candidate-link:focus-visible,
.data-recommendation-project-link:hover,
.data-recommendation-project-link:focus-visible {
  color: #1e40af;
  text-decoration-color: currentColor;
}

.data-recommendation-progress {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #2563eb;
  font-size: 11px;
  font-weight: 650;
  white-space: nowrap;
}

.data-recommendation-progress.is-offer,
.data-recommendation-progress.is-onboarded,
.data-recommendation-progress.is-payment {
  background: #ecfdf5;
  color: #047857;
}

.data-recommendation-progress.is-eliminated,
.data-recommendation-progress.is-offer_cancelled {
  background: #fff1f2;
  color: #be123c;
}

.data-recommendation-progress.is-pending_onboard,
.data-recommendation-progress.is-pending_payment {
  background: #fff7ed;
  color: #c2410c;
}

.data-recommendation-detail-empty {
  height: 160px;
  color: #98a2b3;
  text-align: center !important;
}

.data-recommendation-detail-empty.is-error { color: #dc2626; }

@media (max-width: 1200px) {
  .data-stats-toolbar { align-items: flex-start; flex-direction: column; }
  .data-period-controls { width: 100%; justify-content: flex-start; }
  .data-period-controls strong { text-align: left; }
  .data-stats-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .data-stats-search-label { grid-column: 1 / 4; }
  .data-stats-query-button { grid-column: 4; }
  .data-stats-query-button { justify-self: end; }
}

@media (max-width: 900px) {
  .data-stats-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .data-stats-search-label,
  .data-stats-query-button { grid-column: auto; }
}

@media (max-width: 768px) {
  .data-stats-primary-actions { width: 100%; flex-wrap: wrap; }
  .data-column-picker { width: min(330px, calc(100vw - 48px)); }
  .data-stats-filters { grid-template-columns: 1fr; }
  .data-stats-filters select,
  .data-stats-filters input { width: 100%; }
  .data-stats-combobox { width: 100%; }
  .data-stats-combobox > input[type="search"] { width: 100%; }
  .data-stats-query-button { width: 100%; justify-self: stretch; }
  .data-chart-bars { grid-template-columns: 1fr; }
  .data-stats-pagination { align-items: flex-start; flex-direction: column; }
  .data-pagination-controls { width: 100%; overflow-x: auto; padding-bottom: 3px; }
  .data-recommendation-detail-content { width: calc(100vw - 20px); max-height: calc(100vh - 24px); }
  .data-recommendation-detail-body { padding: 12px; }
}

.data-channel-switcher {
  padding: 3px;
  gap: 3px;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  background: #eef2f7;
}

.data-channel-switcher .panel-tab {
  min-width: 92px;
  padding: 8px 18px;
  border: 0;
  background: transparent;
}

.data-channel-switcher .panel-tab:hover:not(.active) {
  background: rgba(255, 255, 255, 0.7);
}

.data-channel-switcher .panel-tab.active {
  background: #2563eb;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.22);
}

.performance-header-divider {
  width: 1px;
  height: 28px;
  background: #dbe3ee;
}

.navbar-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.quote-bar {
  max-width: 400px;
  cursor: pointer;
}

.quote-text {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  font-style: italic;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-section {
  display: flex;
  align-items: center;
  gap: 12px;
}

.user-name {
  font-size: 14px;
  font-weight: 500;
  color: #ffffff;
}

.notification-btn {
  position: relative;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #6b7280;
  border-radius: 8px;
  transition: all 0.2s;
  height: auto;
}

.notification-btn:hover {
  background: #f3f4f6;
  color: #374151;
}

.help-btn {
  position: relative;
  background: none;
  border: none;
  padding: 8px;
  cursor: pointer;
  color: #6b7280;
  border-radius: 8px;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.help-btn:hover {
  background: #f3f4f6;
  color: #374151;
}

/* 手机端励志话语栏 */
.mobile-quote-bar {
  display: none;
  padding: 12px 16px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  text-align: center;
}

.mobile-quote-bar .quote-text {
  color: white;
  font-size: 12px;
}

/* === 主内容区 === */
.main-content {
  flex: 1;
  padding: 24px;
  overflow-y: auto;
}

/* === 频道面板 === */
.channel-panel {
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.panel-header h2 {
  margin: 0;
  font-size: 24px;
  color: #1f2937;
}

.panel-header-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

.panel-tabs {
  display: flex;
  gap: 8px;
}

.panel-tab {
  padding: 8px 16px;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  color: #6b7280;
  transition: all 0.2s;
  height: auto;
}

.panel-tab:hover {
  background: #f3f4f6;
}

.panel-tab.active {
  background: #3b82f6;
  color: white;
  border-color: #3b82f6;
}

/* === 首页V2样式 === */
.home-v2-container {
  max-width: 1600px;
  margin: 0 auto;
}

.welcome-section-v2 {
  margin-bottom: 24px;
  background: #ffffff;
  border-radius: 16px;
  padding: 24px 32px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  border: 1px solid #f3f4f6;
  border-left: 4px solid #4f46e5;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}

.welcome-section-v2::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  height: 100%;
  background: linear-gradient(135deg, transparent 0%, rgba(79, 70, 229, 0.03) 100%);
  border-radius: 0 16px 16px 0;
  pointer-events: none;
}

.welcome-text-v2 {
  font-size: 24px;
  font-weight: 600;
  color: #1f2937;
  line-height: 1.4;
  position: relative;
  z-index: 1;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 9px;
  min-height: 96px;
}

.home-welcome-loading {
  display: none;
  width: min(460px, 100%);
  min-height: 96px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 11px;
  padding-top: 2px;
}

.welcome-section-v2.is-loading .home-welcome-loading,
.welcome-section-v2.has-load-error .home-welcome-loading {
  display: flex;
}

.welcome-section-v2.is-loading .welcome-greeting-row-v2,
.welcome-section-v2.is-loading .welcome-quote-v2,
.welcome-section-v2.is-loading .welcome-meta-row-v2,
.welcome-section-v2.has-load-error .welcome-greeting-row-v2,
.welcome-section-v2.has-load-error .welcome-quote-v2,
.welcome-section-v2.has-load-error .welcome-meta-row-v2 {
  display: none;
}

.home-welcome-skeleton {
  display: block;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, #eef2f7 20%, #f8fafc 45%, #eef2f7 70%);
  background-size: 220% 100%;
  animation: home-welcome-shimmer 1.2s ease-in-out infinite;
}

.home-welcome-skeleton-title {
  width: min(410px, 92%);
  height: 28px;
}

.home-welcome-skeleton-quote {
  width: min(300px, 72%);
}

.home-welcome-skeleton-meta {
  width: min(180px, 48%);
  height: 24px;
}

.home-welcome-loading-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.home-welcome-retry {
  display: none;
  border: 1px solid #c7d2fe;
  border-radius: 999px;
  padding: 6px 14px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 13px;
  cursor: pointer;
}

.welcome-section-v2.has-load-error .home-welcome-skeleton {
  display: none;
}

.welcome-section-v2.has-load-error .home-welcome-loading-text {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  color: #64748b;
  font-size: 14px;
  font-weight: 500;
  white-space: normal;
}

.welcome-section-v2.has-load-error .home-welcome-retry {
  display: inline-flex;
}

@keyframes home-welcome-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

.welcome-greeting-row-v2 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-width: 0;
  line-height: 1.25;
  margin-top: 0;
}

.welcome-meta-row-v2 {
  min-height: 28px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 5px;
  transform: none;
}

.welcome-meta-leading-v2,
.welcome-meta-separator-v2 {
  width: 2px;
  height: 22px;
  flex: 0 0 2px;
  margin: 0 14px 0 8px;
  border-radius: 999px;
  background: #dbe2ea;
}

.welcome-meta-separator-v2 {
  margin: 0 12px;
}

#home-rank.rank-highlight {
  background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

#home-rank.rank-basic {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

.welcome-quote-v2 {
  font-size: 15px;
  color: #6b7280;
  font-weight: 400;
  margin-top: 0;
  display: block;
  line-height: 1.45;
  transform: none;
}

.latest-announcement {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 4px 10px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border-radius: 16px;
  font-size: 13px;
  color: #92400e;
  transition: all 0.2s;
  max-width: 200px;
}
.latest-announcement:hover {
  background: linear-gradient(135deg, #fde68a 0%, #fcd34d 100%);
  transform: translateY(-1px);
}
.latest-announcement .announcement-icon {
  flex-shrink: 0;
}
#latest-announcement-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.announcement-list-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  margin-bottom: 8px;
  background: #fff;
  cursor: pointer;
  transition: all 0.15s;
}
.announcement-list-item:hover {
  background: #f9fafb;
  border-color: #3b82f6;
}
.announcement-list-title {
  font-weight: 500;
  color: #1f2937;
  font-size: 14px;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-right: 12px;
}
.announcement-list-time {
  font-size: 12px;
  color: #9ca3af;
  flex-shrink: 0;
}

.announcement-split-layout {
  display: flex;
  gap: 16px;
  max-height: 55vh;
}
.announcement-left-panel {
  width: 40%;
  overflow-y: auto;
  border-right: 1px solid #e5e7eb;
  padding-right: 16px;
}
.announcement-right-panel {
  width: 60%;
  overflow-y: auto;
}
.announcement-list-item.active {
  background: #eff6ff;
  border-color: #3b82f6;
}

.btn-back {
  background: none;
  border: none;
  color: #6b7280;
  font-size: 13px;
  cursor: pointer;
  padding: 4px 0;
}
.btn-back:hover {
  color: #3b82f6;
}
.btn-danger {
  background: #ef4444;
  color: #fff;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  margin-left: 8px;
}
.btn-danger:hover {
  background: #dc2626;
}

.welcome-tiger-icon {
  height: 32px;
  margin-left: 8px;
  object-fit: contain;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.welcome-tiger-icon.show {
  opacity: 1;
}

.top-deals-section {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
  z-index: 1;
}

.welcome-insights-v2 {
  width: min(620px, 52%);
  min-width: 520px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  position: relative;
  z-index: 1;
}

.welcome-insights-v2 .top-deals-section,
.welcome-insights-v2 .deal-stage {
  justify-content: flex-end;
}

.home-talent-kpi-strip {
  min-height: 58px;
  display: grid;
  grid-template-columns: minmax(112px, auto) repeat(4, minmax(72px, 1fr));
  align-items: center;
  gap: 0;
  padding: 9px 8px;
  border: 1px solid #edf0f5;
  border-radius: 12px;
  background: rgba(248, 250, 252, 0.94);
  box-shadow: none;
}

.home-talent-kpi-title {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 14px 0 8px;
  color: #334155;
  white-space: nowrap;
}

.home-talent-kpi-title-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.home-talent-kpi-title-copy strong {
  color: #334155;
  font-size: 13px;
  font-weight: 700;
}

.home-talent-kpi-title-copy small {
  margin-top: 4px;
  color: #94a3b8;
  font-size: 10px;
  font-weight: 500;
}

.home-talent-kpi-icon {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  color: #3b82f6;
  background: #eaf2ff;
  box-shadow: none;
}

.home-talent-kpi-icon svg {
  width: 17px;
  height: 17px;
}

.home-talent-kpi-item {
  min-width: 0;
  min-height: 38px;
  padding: 2px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 0;
  border-left: 1px solid #e4e9f0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  line-height: 1.15;
}

.home-talent-kpi-item strong {
  color: #0f172a;
  font-size: 16px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.home-talent-kpi-item > span:last-child {
  margin-top: 3px;
  color: #64748b;
  font-size: 11px;
  white-space: nowrap;
}

.home-talent-kpi-item.home-talent-kpi-rate strong {
  color: #059669;
}

@media (max-width: 1200px) {
  .welcome-insights-v2 {
    width: 100%;
    min-width: 0;
  }

  .welcome-insights-v2 .top-deals-section,
  .welcome-insights-v2 .deal-stage {
    justify-content: flex-start;
  }
}

@media (max-width: 700px) {
  .home-talent-kpi-strip {
    grid-template-columns: repeat(2, minmax(100px, 1fr));
    row-gap: 8px;
    padding: 10px;
  }

  .home-talent-kpi-title {
    grid-column: 1 / -1;
    padding: 0 2px 8px;
    border-bottom: 1px solid #e4e9f0;
  }

  .home-talent-kpi-item:nth-of-type(2),
  .home-talent-kpi-item:nth-of-type(4) {
    border-left: 0;
  }
}

/* 喜报聚光灯舞台：承载单卡轮播与粒子叠层 */
.deal-stage {
  position: relative;
  overflow: visible;
  display: flex;
  gap: 12px;
}

.deal-card {
  position: relative;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;
  max-width: 260px;
  animation: spotlightPop 0.55s cubic-bezier(0.18, 1.25, 0.4, 1) forwards;
}

@keyframes spotlightPop {
  0% { opacity: 0; transform: scale(0.6) translateY(-6px); }
  60% { opacity: 1; transform: scale(1.06); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

.normal-deal {
  background: linear-gradient(135deg, #ff6b6b 0%, #ff9f43 100%);
  border: 1px solid #ff7675;
  color: #fff;
  box-shadow: 0 4px 14px rgba(255, 107, 107, 0.45);
}

.normal-deal .deal-label { color: #fff; font-weight: 700; text-shadow: 0 1px 4px rgba(0,0,0,0.25); }
.normal-deal b { color: #fff7ed; }
.normal-deal .deal-amount { color: #fff; font-weight: 700; }

.gold-deal {
  background: linear-gradient(135deg, #ffd200 0%, #ff8c00 55%, #ff4d4f 100%);
  border: 2px solid #ffcc00;
  color: #fff;
  animation: spotlightPop 0.55s cubic-bezier(0.18, 1.25, 0.4, 1) forwards, goldGlow 1.5s ease-in-out infinite;
  box-shadow: 0 4px 18px rgba(255, 140, 0, 0.55);
}

.gold-deal .deal-label {
  color: #fff;
  font-weight: 800;
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
}
.gold-deal b { color: #fffbe6; }

.gold-deal .deal-amount {
  font-weight: 800;
  color: #fff;
  text-shadow: 0 0 8px rgba(255, 236, 61, 0.9);
  animation: countPulse 1s ease-in-out infinite;
}

@keyframes goldGlow {
  0%, 100% { box-shadow: 0 0 12px rgba(255, 200, 0, 0.5); }
  50% { box-shadow: 0 0 26px rgba(255, 140, 0, 0.95); }
}

@keyframes countPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

.deal-amount { display: inline-block; }

/* 粒子叠层 */
.confetti-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: visible;
  z-index: 5;
}

/* 喜报：飘落彩带 */
.confetti-particle {
  position: absolute;
  top: -8px;
  width: 7px;
  height: 12px;
  border-radius: 2px;
  opacity: 0.95;
  animation: confettiFall 1.6s ease-in forwards;
}

@keyframes confettiFall {
  0% { transform: translateY(-10px) rotate(0deg); opacity: 1; }
  100% { transform: translateY(120px) rotate(var(--rot, 360deg)); opacity: 0; }
}

/* 金报：放射状烟花 */
.firework-particle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  animation: fireworkBurst 1.2s ease-out forwards;
}

@keyframes fireworkBurst {
  0% { transform: translate(-50%, -50%) translate(0, 0) scale(1); opacity: 1; }
  100% { transform: translate(-50%, -50%) translate(var(--dx, 0), var(--dy, 0)) scale(0.3); opacity: 0; }
}

.content-scroll-v2 {
  overflow: visible;
}

.dashboard-grid-v2 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
}

.col-span-2-v2 { grid-column: span 2; }
.col-span-3-v2 { grid-column: span 3; }
.col-span-4-v2 { grid-column: span 4; }
.col-span-6-v2 { grid-column: span 6; }
.col-span-10-v2 { grid-column: span 10; }
.col-span-12-v2 { grid-column: span 12; }

.card-v2 {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  border: 1px solid #f3f4f6;
  transition: transform 0.2s, box-shadow 0.2s;
}

.card-v2:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* === 统计卡片 === */
.stat-card-v2 {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.stat-header-v2 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.stat-icon-v2 {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stat-icon-v2 svg {
  width: 20px;
  height: 20px;
}

.stat-icon-v2.blue { background: #dbeafe; color: #2563eb; }
.stat-icon-v2.orange { background: #ffedd5; color: #ea580c; }
.stat-icon-v2.green { background: #dcfce7; color: #16a34a; }
.stat-icon-v2.purple { background: #f3e8ff; color: #9333ea; }

.status-badge-v2 {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 12px;
  font-weight: 500;
}

.status-info-v2 { background: #dbeafe; color: #1e40af; }
.status-warning-v2 { background: #fef3c7; color: #92400e; }
.status-success-v2 { background: #dcfce7; color: #166534; }

.stat-value-v2 {
  font-size: 28px;
  font-weight: 700;
  color: #1f2937;
}

.stat-trend-v2 {
  font-size: 13px;
  color: #6b7280;
}

.trend-up-v2 span { color: #10b981; }
.trend-down-v2 span { color: #ef4444; }

/* === 龙虎榜样式 === */
.rank-card-v2 {
  height: auto;
  overflow: visible;
  display: flex;
  flex-direction: column;
}

.rank-title-v2 {
  margin: 0 0 16px 0;
  font-size: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.rank-title-v2 > span:first-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.rank-title-v2 svg {
  width: 18px;
  height: 18px;
}

.rank-subtitle-v2 {
  font-size: 12px;
  color: #6b7280;
  font-weight: 400;
  flex: 0 0 auto;
  white-space: nowrap;
}

.rank-list-v2 {
  flex: none;
  overflow-y: visible;
}

.rank-table-v2 {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.rank-table-v2 th,
.rank-table-v2 td {
  padding: 10px 8px;
  border: none;
  text-align: left;
}

.rank-table-v2 thead th {
  color: #6b7280;
  font-weight: 500;
  border-bottom: 1px solid #f3f4f6;
}

.rank-row-v2 {
  border-bottom: 1px solid #f9fafb;
}

.rank-row-v2:last-child {
  border-bottom: none;
}

.rank-cell-v2 {
  width: 50px;
  text-align: center;
}

.name-cell-v2 {
  font-weight: 500;
  color: #374151;
}

.rank-amount-v2 {
  float: right;
  font-weight: 600;
  color: #f59e0b;
  font-size: 13px;
}

.rank-badge-v2 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  font-weight: 600;
  color: #fff;
  font-size: 12px;
}

.rank-1-v2 { background: linear-gradient(135deg, #fbbf24, #f59e0b); }
.rank-2-v2 { background: linear-gradient(135deg, #94a3b8, #64748b); }
.rank-3-v2 { background: linear-gradient(135deg, #fb923c, #ea580c); }

.rank-num-v2 {
  display: inline-block;
  width: 26px;
  text-align: center;
  color: #9ca3af;
  font-size: 14px;
  font-weight: 500;
}

/* === 日历样式 === */
.calendar-widget-v2 {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.calendar-header-v2 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f3f4f6;
}

.calendar-title-v2 {
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
}

.calendar-nav-v2 {
  display: flex;
  gap: 8px;
}

.calendar-nav-v2 button {
  width: 28px;
  height: 28px;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #6b7280;
  transition: all 0.2s;
}

.calendar-nav-v2 button:hover {
  background: #f3f4f6;
  color: #374151;
}

.calendar-grid-v2 {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  flex: 1;
  text-align: center;
  overflow: auto;
}

.cal-day-name-v2 {
  font-size: clamp(10px, 0.9vw, 12px);
  text-align: center;
  color: #9ca3af;
  padding: 0.5em 0;
  font-weight: 500;
}

.cal-date-v2 {
  min-height: 3.6em;
  padding: 4px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  font-size: clamp(12px, 1vw, 14px);
  border-radius: 6px;
  cursor: pointer;
  color: #374151;
  transition: all 0.2s;
  overflow: hidden;
}

.cal-date-v2:hover {
  background: #f3f4f6;
}

.cal-date-num-v2 {
  font-weight: 600;
  line-height: 1.1;
}

.cal-date-v2.has-event-v2 {
  background: #f8fafc;
}

.cal-date-event-v2 {
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.15;
  color: #2563eb;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cal-date-more-v2 {
  margin-top: 1px;
  font-size: 10px;
  line-height: 1.1;
  color: #6b7280;
}

.cal-date-v2.today-v2 {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  font-weight: 600;
}

.cal-date-v2.today-v2 .cal-date-event-v2,
.cal-date-v2.today-v2 .cal-date-more-v2 {
  color: #eef2ff;
}

.cal-date-v2.has-custom-event-v2 {
  background: #fffbeb;
}
.cal-date-v2.has-todo-v2 {
  background: #f0fdf4;
}
.cal-date-todo-v2 {
  margin-top: 2px;
  max-width: 100%;
  overflow: hidden;
  color: #047857;
  font-size: 10px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cal-date-v2.has-event-v2.has-custom-event-v2 {
  background: linear-gradient(135deg, #f8fafc 50%, #fffbeb 50%);
}
.cal-date-custom-event-v2 {
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.15;
  color: #92400e;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-date-v2.today-v2.has-custom-event-v2 {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
}
.cal-date-v2.today-v2 .cal-date-custom-event-v2 {
  color: #fde68a;
}
.cal-date-v2.today-v2.has-todo-v2 {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
}
.cal-date-v2.today-v2 .cal-date-todo-v2 { color: #d1fae5; }

.cal-event-modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center;
}
.cal-event-modal-box {
  background: #fff; border-radius: 12px;
  width: 380px; max-width: 92vw; max-height: 80vh;
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.cal-event-modal-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 18px; border-bottom: 1px solid #f3f4f6;
  font-weight: 600; font-size: 15px; color: #1f2937;
}
.cal-event-modal-close {
  background: none; border: none; font-size: 20px; cursor: pointer; color: #9ca3af; line-height: 1;
}
.cal-event-modal-close:hover { color: #374151; }
.cal-event-modal-body {
  padding: 14px 18px; overflow-y: auto; flex: 1;
}
.cal-event-section-title {
  font-size: 12px; font-weight: 600; color: #6b7280;
  margin: 10px 0 6px; text-transform: uppercase; letter-spacing: .5px;
}
.cal-event-section-title:first-child { margin-top: 0; }
.cal-event-item {
  padding: 8px 10px; border-radius: 8px; margin-bottom: 6px; font-size: 13px;
}
.cal-event-item.anniv-item {
  background: #eff6ff; color: #2563eb;
}
.cal-event-item.custom-item {
  background: #fffbeb; color: #92400e;
  display: flex; justify-content: space-between; align-items: flex-start; gap: 8px;
}
.cal-event-item.todo-item {
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #166534;
  line-height: 1.5;
  word-break: break-word;
}
.cal-event-item.editing {
  background: #f9fafb; border: 1px solid #e5e7eb;
}
.cal-event-item-text { flex: 1; word-break: break-all; }
.cal-evt-input {
  display: block; width: 100%; padding: 7px 10px;
  border: 1px solid #d1d5db; border-radius: 6px;
  font-size: 13px; margin-bottom: 6px; outline: none;
  box-sizing: border-box;
}
.cal-evt-input:focus { border-color: #6366f1; }
.cal-evt-actions { display: flex; gap: 4px; flex-shrink: 0; }
.cal-evt-btn {
  padding: 4px 10px; border: none; border-radius: 5px;
  font-size: 12px; cursor: pointer; white-space: nowrap;
}
.cal-evt-btn.save { background: #6366f1; color: #fff; }
.cal-evt-btn.save:hover { background: #4f46e5; }
.cal-evt-btn.edit { background: #e0e7ff; color: #4338ca; }
.cal-evt-btn.edit:hover { background: #c7d2fe; }
.cal-evt-btn.del { background: #fee2e2; color: #dc2626; }
.cal-evt-btn.del:hover { background: #fecaca; }
.cal-evt-btn.cancel { background: #f3f4f6; color: #374151; }
.cal-evt-btn.cancel:hover { background: #e5e7eb; }

/* 普通用户点击日历事件后的详情弹窗 */
.calendar-day-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, .38);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  opacity: 0;
  transition: opacity .2s ease;
}

.calendar-day-detail-overlay.is-visible { opacity: 1; }
.calendar-day-detail-overlay.is-closing { opacity: 0; }

.calendar-day-detail-card {
  width: min(440px, 100%);
  max-height: min(680px, calc(100vh - 40px));
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 26px 70px rgba(15, 23, 42, .24), 0 8px 24px rgba(37, 99, 235, .12);
  transform: translateY(14px) scale(.97);
  transition: transform .22s cubic-bezier(.22, 1, .36, 1);
}

.calendar-day-detail-overlay.is-visible .calendar-day-detail-card {
  transform: translateY(0) scale(1);
}

.calendar-day-detail-hero {
  position: relative;
  min-height: 148px;
  padding: 28px 30px 24px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, #2563eb 0%, #4f46e5 56%, #7c3aed 100%);
}

.calendar-day-detail-orb {
  position: absolute;
  border-radius: 999px;
  background: rgba(255, 255, 255, .13);
  pointer-events: none;
}

.calendar-day-detail-orb.orb-one {
  width: 150px;
  height: 150px;
  top: -78px;
  right: 54px;
}

.calendar-day-detail-orb.orb-two {
  width: 105px;
  height: 105px;
  right: -28px;
  bottom: -42px;
}

.calendar-day-detail-close {
  position: absolute;
  z-index: 3;
  top: 18px;
  right: 18px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .38);
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(145deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .1));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 8px 20px rgba(31, 38, 135, .18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.calendar-day-detail-close svg {
  width: 17px;
  height: 17px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  transition: transform .2s cubic-bezier(.22, 1, .36, 1);
}

.calendar-day-detail-close:hover {
  border-color: rgba(255, 255, 255, .58);
  background: linear-gradient(145deg, rgba(255, 255, 255, .34), rgba(255, 255, 255, .17));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .36), 0 10px 24px rgba(31, 38, 135, .25);
  transform: translateY(-1px);
}

.calendar-day-detail-close:hover svg {
  transform: rotate(90deg);
}

.calendar-day-detail-close:active {
  box-shadow: inset 0 1px 3px rgba(49, 46, 129, .16), 0 4px 10px rgba(31, 38, 135, .14);
  transform: translateY(0) scale(.94);
}

.calendar-day-detail-close:focus-visible,
.calendar-day-detail-confirm:focus-visible {
  outline: 3px solid rgba(191, 219, 254, .85);
  outline-offset: 2px;
}

.calendar-day-detail-kicker {
  position: relative;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  opacity: .82;
}

.calendar-day-detail-hero h3 {
  position: relative;
  margin: 0;
  font-size: 28px;
  line-height: 1.25;
  letter-spacing: -.02em;
}

.calendar-day-detail-hero p {
  position: relative;
  margin: 8px 0 0;
  font-size: 14px;
  opacity: .82;
}

.calendar-day-detail-body {
  padding: 22px 24px 10px;
  overflow-y: auto;
  background: linear-gradient(180deg, #f8faff 0, #fff 60px);
}

.calendar-day-detail-item {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 72px;
  margin-bottom: 12px;
  padding: 14px;
  border: 1px solid #e6ecf5;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(30, 64, 175, .06);
}

.calendar-day-detail-item.anniversary {
  border-color: #dbeafe;
  background: linear-gradient(135deg, #fff 0%, #f5f8ff 100%);
}

.calendar-day-detail-item.notice {
  border-color: #fde7ba;
  background: linear-gradient(135deg, #fff 0%, #fffbeb 100%);
}

.calendar-day-detail-item.todo {
  align-items: flex-start;
  border-color: #bbf7d0;
  background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%);
}

.calendar-day-detail-item-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #eef2ff;
  font-size: 22px;
}

.calendar-day-detail-item.notice .calendar-day-detail-item-icon { background: #fef3c7; }
.calendar-day-detail-item.todo .calendar-day-detail-item-icon {
  background: #dcfce7;
  color: #047857;
  font-size: 20px;
  font-weight: 800;
}

.calendar-day-detail-item-copy {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.calendar-day-detail-item-copy strong {
  overflow: hidden;
  color: #172033;
  font-size: 15px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-day-detail-item.todo .calendar-day-detail-item-copy strong {
  overflow: visible;
  font-size: 13px;
  line-height: 1.55;
  text-overflow: clip;
  white-space: normal;
  word-break: break-word;
}

.calendar-day-detail-item-copy span {
  color: #718096;
  font-size: 12px;
  line-height: 1.45;
  word-break: break-word;
}

.calendar-day-detail-years {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 3px;
  padding: 7px 10px;
  border-radius: 11px;
  color: #4338ca;
  background: #eef2ff;
}

.calendar-day-detail-years b { font-size: 20px; line-height: 1; }
.calendar-day-detail-years span { font-size: 11px; font-weight: 700; }

.calendar-day-detail-footer {
  padding: 10px 24px 22px;
  background: #fff;
}

.calendar-day-detail-confirm {
  width: 100%;
  height: 44px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #4f46e5);
  box-shadow: 0 8px 18px rgba(79, 70, 229, .22);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}

.calendar-day-detail-confirm:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(79, 70, 229, .28);
}

@media (max-width: 520px) {
  .calendar-day-detail-overlay { padding: 14px; }
  .calendar-day-detail-card { border-radius: 18px; }
  .calendar-day-detail-hero { min-height: 132px; padding: 24px 22px 20px; }
  .calendar-day-detail-hero h3 { font-size: 24px; }
  .calendar-day-detail-body { padding: 18px 16px 8px; }
  .calendar-day-detail-footer { padding: 8px 16px 18px; }
  .calendar-day-detail-item { padding: 12px; gap: 10px; }
  .calendar-day-detail-close { top: 14px; right: 14px; width: 36px; height: 36px; border-radius: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .calendar-day-detail-overlay,
  .calendar-day-detail-card,
  .calendar-day-detail-close,
  .calendar-day-detail-close svg { transition: none; }
}

.cal-date-v2.empty-v2 {
  pointer-events: none;
  color: transparent;
  background: transparent;
}

/* === 木鱼样式 (design-v2.css 完整版) === */
.muyu-card-v2 {
  background: linear-gradient(135deg, #fff 0%, #fffbf0 100%);
  border: 1px solid #fed7aa;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
}

.muyu-title-v2 {
  position: absolute;
  top: 20px;
  left: 20px;
  font-size: 16px;
  font-weight: 600;
  color: #9a3412;
  display: flex;
  align-items: center;
  gap: 8px;
}

.muyu-wrapper-v2 {
  position: relative;
  width: 160px;
  height: 140px;
  cursor: pointer;
  margin-top: 20px;
}

/* 木鱼主体 - 纯CSS绘制 */
.muyu-body-v2 {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 80px;
  background: radial-gradient(circle at 40% 30%, #b45309, #78350f);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow:
    0 10px 20px rgba(120, 53, 15, 0.3),
    inset 0 5px 10px rgba(255,255,255,0.2),
    inset 0 -5px 15px rgba(0,0,0,0.3);
  z-index: 1;
  transition: transform 0.1s;
}

/* 木鱼开口 */
.muyu-body-v2::before {
  content: '';
  position: absolute;
  top: 55%;
  left: 10%;
  width: 80%;
  height: 12px;
  background: #451a03;
  border-radius: 20px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
}

/* 木鱼纹理 */
.muyu-body-v2::after {
  content: '';
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 30%;
  border-radius: 50%;
  border-top: 2px solid rgba(255,255,255,0.1);
}

/* 木槌 - 纯CSS绘制 */
.muyu-mallet-v2 {
  position: absolute;
  top: 0px;
  right: -15px;
  width: 10px;
  height: 100px;
  background: #92400e;
  border-radius: 6px;
  transform-origin: 50% 100%;
  transform: rotate(-45deg);
  z-index: 2;
  transition: transform 0.1s;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
}

/* 木槌头部 */
.muyu-mallet-v2::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  background: radial-gradient(circle at 30% 30%, #d97706, #92400e);
  border-radius: 50%;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
}

/* 敲击动画 - 向下敲击 */
.muyu-wrapper-v2.active .muyu-mallet-v2 {
  animation: strikeDown 0.2s cubic-bezier(0.1, 0.7, 1.0, 0.1) forwards;
}

.muyu-wrapper-v2.active .muyu-body-v2 {
  animation: shake 0.2s ease-out forwards;
  animation-delay: 0.1s;
}

@keyframes strikeDown {
  0% { transform: rotate(-45deg); }
  50% { transform: rotate(-60deg); }
  100% { transform: rotate(-80deg); }
}

@keyframes shake {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.98); }
  100% { transform: translateX(-50%) scale(1); }
}

.muyu-count-v2 {
  margin-top: 24px;
  font-size: 14px;
  color: #92400e;
  font-weight: 500;
  background: rgba(255,255,255,0.6);
  padding: 4px 12px;
  border-radius: 20px;
}

/* 功德+1 动画文字 */
.merit-text-v2 {
  position: absolute;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -50%);
  color: #d97706;
  font-weight: bold;
  font-size: 20px;
  pointer-events: none;
  animation: floatUpMuyu 1s ease-out forwards;
  z-index: 10;
  text-shadow: 0 2px 4px rgba(255,255,255,0.8);
  white-space: nowrap;
}

.merit-text-v2.tiger { color: #dc2626; font-size: 24px; text-shadow: 0 2px 10px rgba(220, 38, 38, 0.3); }
.merit-text-v2.offer { color: #d97706; }
.merit-text-v2.onboard { color: #059669; }
.merit-text-v2.interview { color: #2563eb; }
.merit-text-v2.merit { color: #92400e; }

@keyframes floatUpMuyu {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(0.5); }
  100% { opacity: 0; transform: translate(-50%, -150%) scale(1.2); }
}

/* === 便签样式 === */
.dashboard-grid-v2.home-side-stack-v2 {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 24px;
  height: 100%;
  margin: 0;
  padding: 0;
}

.sticky-widget-v2 {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: none;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.sticky-textarea-v2 {
  flex: 1;
  min-height: 0;
  width: 100%;
  border: none;
  background: transparent;
  resize: none;
  font-size: 14px;
  color: #92400e;
  line-height: 1.6;
}

.sticky-textarea-v2::placeholder {
  color: #b45309;
  opacity: 0.6;
}

.sticky-textarea-v2:focus {
  outline: none;
}

/* === 美猴王助手样式 === */
/* 美猴王聊天设计变量:颜色/圆角/阴影统一从这里取值 */
.tiger-assistant {
  --tg-accent: #f97316;
  --tg-accent-strong: #ea580c;
  --tg-accent-deep: #c2410c;
  --tg-accent-ink: #9a3412;
  --tg-accent-soft: #fff7ed;
  --tg-accent-mist: #ffedd5;
  --tg-accent-border: #fed7aa;
  --tg-gold: #f59e0b;
  --tg-gold-soft: #fffbeb;
  --tg-gold-border: #fde68a;
  --tg-ink: #1f2937;
  --tg-ink-strong: #111827;
  --tg-muted: #6b7280;
  --tg-faint: #9ca3af;
  --tg-line: #e8eaef;
  --tg-surface: #ffffff;
  --tg-canvas: #f8f7f5;
  --tg-radius-bubble: 16px;
  --tg-radius-card: 12px;
  --tg-radius-pill: 999px;
  --tg-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05), 0 2px 8px rgba(15, 23, 42, 0.04);
  --tg-shadow-md: 0 6px 18px rgba(15, 23, 42, 0.08);
  --tg-shadow-window: 0 8px 20px rgba(15, 23, 42, 0.08), 0 28px 70px rgba(15, 23, 42, 0.18);
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 1000;
}

.tiger-chat-toggle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  box-shadow: 0 4px 20px rgba(249, 115, 22, 0.4);
  transition: all 0.3s;
  position: relative;
}

.tiger-assistant-reveal {
  position: absolute;
  z-index: 3;
  right: -16px;
  bottom: -17px;
  display: inline-flex;
  width: 34px;
  height: 22px;
  min-width: 34px;
  min-height: 22px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid #fed7aa;
  border-radius: 8px 8px 3px 3px;
  background: rgba(255, 247, 237, 0.96);
  color: #ea580c;
  box-shadow: 0 4px 12px rgba(154, 52, 18, 0.12);
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.tiger-assistant-reveal:hover {
  border-color: #fdba74;
  background: #ffedd5;
  color: #c2410c;
}

.tiger-assistant-reveal:focus-visible {
  outline: 2px solid rgba(249, 115, 22, 0.35);
  outline-offset: 2px;
}

.tiger-assistant-reveal svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.22s ease;
}

.tiger-assistant:not(.is-collapsed) .tiger-assistant-reveal svg {
  transform: rotate(180deg);
}

.tiger-assistant.is-collapsed .tiger-chat-toggle {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px) scale(0.72);
}

.tiger-chat-toggle:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 25px rgba(249, 115, 22, 0.5);
}

.tiger-avatar-small {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}

video.tiger-avatar-small {
  pointer-events: none;
}

.tiger-avatar-super {
  pointer-events: none;
  background: #fff;
}

.tiger-chat-toggle.is-super {
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.55);
}

.tiger-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 20px;
  height: 20px;
  background: #ef4444;
  color: white;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tiger-chat-window {
  position: absolute;
  bottom: 70px;
  right: 0;
  width: min(560px, calc(100vw - 48px));
  height: min(680px, calc(100vh - 128px));
  min-width: 420px;
  min-height: 520px;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 128px);
  background: var(--tg-surface);
  border: 1px solid rgba(251, 146, 60, 0.22);
  border-radius: 18px;
  box-shadow: var(--tg-shadow-window);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  resize: both;
  scrollbar-gutter: stable;
}

.tiger-chat-window.is-floating-positioned {
  position: fixed;
  right: auto;
  bottom: auto;
}

.tiger-chat-window.is-channel-mode {
  position: relative;
  inset: auto;
  width: 100% !important;
  height: 100% !important;
  min-width: 0;
  min-height: 0;
  max-width: none;
  max-height: none;
  resize: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: var(--tiger-home-bg, #f8f8fa);
}

.tiger-chat-window.is-channel-mode .tiger-chat-header,
.tiger-chat-window.is-channel-mode .tiger-tab-buttons {
  display: none;
}

.tiger-chat-window.is-channel-mode .tiger-chat-messages {
  width: min(760px, 100%);
  box-sizing: border-box;
  margin: 0 auto;
  padding: 36px 20px 28px;
  gap: 24px;
  background: var(--tiger-home-bg, #f8f8fa);
}

.tiger-chat-window.is-channel-mode .tiger-message {
  max-width: 100%;
}

.tiger-chat-window.is-channel-mode .tiger-message.bot {
  width: 100%;
}

/* 频道全屏模式:沿用卡片气泡,仅放宽内边距 */
.tiger-chat-window.is-channel-mode .tiger-message.bot .tiger-message-content {
  padding: 12px 16px;
  color: #1f2937;
}

.tiger-chat-window.is-channel-mode .tiger-message.bot .tiger-message-content.tiger-results-content {
  padding: 2px 0;
}

.tiger-chat-window.is-channel-mode .tiger-message.user {
  max-width: min(80%, 600px);
}

.tiger-chat-window.is-channel-mode .tiger-search-results {
  width: min(760px, calc(100% - 48px));
  box-sizing: border-box;
  margin: 0 auto 10px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
}

.tiger-chat-window.is-channel-mode .tiger-chat-input-area {
  width: min(760px, calc(100% - 48px));
  box-sizing: border-box;
  flex: 0 0 auto;
  margin: 0 auto 18px;
  padding: 10px 12px 8px;
  border: 1px solid #dfe3e8;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.07);
}

.tiger-chat-window.is-channel-mode .tiger-chat-input-area input,
.tiger-chat-window.is-channel-mode .tiger-chat-input-area textarea {
  border: 0;
  background: transparent;
}

.tiger-assistant.is-channel-mode .tiger-chat-toggle {
  display: none;
}

.tiger-assistant.is-channel-mode .tiger-assistant-reveal,
.tiger-assistant.is-tiger-page .tiger-assistant-reveal {
  display: none;
}

.tiger-assistant.is-tiger-page .tiger-chat-toggle {
  display: none;
}

.tiger-upload-overlay {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px;
  background: rgba(255, 247, 237, 0.97);
  border: 2px dashed #f97316;
  color: #9a3412;
  text-align: center;
  pointer-events: none;
}

.tiger-chat-window.is-file-dragging .tiger-upload-overlay {
  display: flex;
}

.tiger-upload-overlay svg {
  width: 40px;
  height: 40px;
  color: #ea580c;
}

.tiger-upload-overlay strong {
  font-size: 16px;
}

.tiger-upload-overlay span {
  font-size: 12px;
  color: #7c2d12;
}

.tiger-chat-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  background: linear-gradient(180deg, var(--tg-accent-soft, #fff7ed) 0%, rgba(255, 247, 237, 0.55) 100%);
  border-bottom: 1px solid var(--tg-accent-mist, #ffedd5);
  color: var(--tg-accent-ink, #9a3412);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.tiger-chat-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 15px;
  color: var(--tg-ink-strong, #111827);
}

.tiger-usage-display {
  font-size: 11px;
  font-weight: 600;
  background: rgba(249, 115, 22, 0.1);
  color: var(--tg-accent-deep, #c2410c);
  padding: 3px 10px;
  border-radius: var(--tg-radius-pill, 999px);
  margin-left: auto;
}

.tiger-avatar-header {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 2px solid var(--tg-surface, #fff);
  box-shadow: 0 2px 8px rgba(249, 115, 22, 0.22);
  background: var(--tg-surface, #fff);
}

.tiger-chat-close {
  background: none;
  border: none;
  color: var(--tg-accent-ink, #9a3412);
  cursor: pointer;
  padding: 0;
  line-height: 1;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s;
}

.tiger-chat-close:hover {
  background: var(--tg-accent-mist, #ffedd5);
  color: var(--tg-accent-deep, #c2410c);
}

.tiger-chat-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
}

.tiger-chat-icon {
  width: 34px;
  height: 34px;
  border: 1px solid var(--tg-accent-border, #fed7aa);
  border-radius: 10px;
  background: var(--tg-surface, #fff);
  color: var(--tg-accent-deep, #c2410c);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, transform 0.18s;
}

.tiger-chat-icon svg,
.tiger-channel-action svg,
.tiger-channel-nav-icon svg,
.tiger-channel-brief button svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tiger-chat-icon:hover,
.tiger-chat-icon:focus-visible {
  background: var(--tg-accent-soft, #fff7ed);
  border-color: #fb923c;
  outline: none;
  transform: translateY(-1px);
}

/* ===== 超级美猴王模式 UI ===== */
.tiger-super-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px 2px 3px;
  border-radius: 999px;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  box-shadow: 0 0 6px rgba(245, 158, 11, 0.5);
}

.tiger-super-badge img {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  object-fit: cover;
  background: #fff;
}

.tiger-mode-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
  align-self: center;
  margin: 0 12px 0 auto;
  padding: 3px;
  background: #fff;
  border: 1px solid #fed7aa;
  border-radius: 999px;
}

.tiger-mode-btn {
  border: none;
  background: none;
  padding: 4px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: #9a3412;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
}

.tiger-mode-btn svg {
  width: 13px;
  height: 13px;
}

.tiger-mode-btn.active {
  background: #fff7ed;
  color: #f97316;
  box-shadow: inset 0 0 0 1px #fdba74;
}

#tiger-mode-super.active {
  background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
  color: #fff;
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.45);
}

.tiger-chat-input-area.super-active #tiger-chat-input {
  border-color: #f59e0b;
  box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.18);
}

/* 超级美猴王回复:金橙渐变卡片 */
.tiger-message.tiger-super-reply .tiger-message-content {
  border: 1px solid var(--tg-gold-border, #fde68a);
  background: linear-gradient(180deg, var(--tg-gold-soft, #fffbeb) 0%, #fff 60%);
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.1);
}

.tiger-super-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  margin-bottom: 6px;
  border-radius: var(--tg-radius-pill, 999px);
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  color: #b45309;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.tiger-agent-progress {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--tg-muted, #6b7280);
  font-size: 13px;
}

.tiger-agent-dots {
  display: inline-flex;
  gap: 4px;
}

.tiger-agent-dots i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fb923c;
  animation: tigerDotPulse 1.2s ease-in-out infinite;
}

/* "美猴王思考中"加载气泡 */
.tiger-message.tiger-thinking .tiger-message-content {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 13px 16px;
}

.tiger-agent-dots i:nth-child(2) { animation-delay: 0.2s; }
.tiger-agent-dots i:nth-child(3) { animation-delay: 0.4s; }

@keyframes tigerDotPulse {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
  40% { transform: scale(1); opacity: 1; }
}

.tiger-file-card {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  max-width: 320px;
}

.tiger-file-badge {
  flex: 0 0 auto;
  padding: 2px 6px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
}

.tiger-file-badge.xlsx { background: #16a34a; }
.tiger-file-badge.ppt { background: #ea580c; }
.tiger-file-badge.doc { background: #2563eb; }
.tiger-file-badge.img { background: #0ea5e9; }
.tiger-file-badge.other { background: #6b7280; }

.tiger-file-name {
  flex: 1;
  font-size: 12px;
  color: #374151;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiger-file-download {
  flex: 0 0 auto;
  padding: 4px 12px;
  border: 1px solid #f97316;
  border-radius: 8px;
  background: #fff;
  color: #f97316;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.tiger-file-download:hover {
  background: #f97316;
  color: #fff;
}

.tiger-confirm-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 12px 14px;
}

.tiger-confirm-title {
  font-weight: 700;
  color: #b45309;
  font-size: 13px;
  margin-bottom: 6px;
}

.tiger-confirm-body {
  font-size: 13px;
  color: #57534e;
  line-height: 1.6;
}

.tiger-confirm-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.tiger-confirm-ok {
  padding: 6px 16px;
  border: none;
  border-radius: 8px;
  background: #f97316;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.tiger-confirm-ok:hover {
  filter: brightness(1.08);
}

.tiger-confirm-cancel {
  padding: 6px 16px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #6b7280;
  font-size: 13px;
  cursor: pointer;
}

.tiger-welcome-title {
  font-weight: 700;
  font-size: 14px;
  color: #1f2937;
}

.tiger-welcome-sub {
  margin-top: 4px;
  font-size: 13px;
  color: #6b7280;
  line-height: 1.6;
}

.tiger-welcome-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.tiger-welcome-chip {
  padding: 5px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  color: #4b5563;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.tiger-welcome-chip:hover {
  border-color: #fdba74;
  color: #ea580c;
}

.tiger-chat-window.is-channel-mode .tiger-channel-enter {
  display: none;
}

.tiger-chat-messages {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  background: var(--tg-canvas, #f8f7f5);
}

.tiger-message {
  display: flex;
  gap: 10px;
  max-width: 100%;
  animation: tigerMsgIn 0.24s cubic-bezier(0.21, 0.85, 0.4, 1);
}

@keyframes tigerMsgIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-message { animation: none; }
}

.tiger-message.bot {
  align-self: flex-start;
  width: 100%;
}

.tiger-message.user {
  align-self: flex-end;
  flex-direction: row-reverse;
  max-width: 80%;
}

.tiger-message-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 2px;
  border: 1px solid var(--tg-accent-mist, #ffedd5);
  background: var(--tg-surface, #fff);
  box-shadow: var(--tg-shadow-sm);
}

.tiger-message-content {
  min-width: 0;
  font-size: 14.5px;
  line-height: 1.7;
}

/* 助手消息:白色卡片气泡 */
.tiger-message.bot .tiger-message-content {
  max-width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--tg-line, #e8eaef);
  border-radius: 4px var(--tg-radius-bubble, 16px) var(--tg-radius-bubble, 16px) var(--tg-radius-bubble, 16px);
  background: var(--tg-surface, #fff);
  color: var(--tg-ink, #1f2937);
  box-shadow: var(--tg-shadow-sm);
}

/* 用户消息:品牌橙浅色气泡 */
.tiger-message.user .tiger-message-content {
  padding: 10px 14px;
  border: 1px solid rgba(249, 115, 22, 0.16);
  border-radius: var(--tg-radius-bubble, 16px) 4px var(--tg-radius-bubble, 16px) var(--tg-radius-bubble, 16px);
  background: linear-gradient(160deg, #fff3e6 0%, var(--tg-accent-mist, #ffedd5) 100%);
  color: #7c2d12;
  box-shadow: var(--tg-shadow-sm);
}

/* Markdown 正文排版 */
.tiger-message-body p { margin: 0 0 10px; }
.tiger-message-body p:last-child { margin-bottom: 0; }
.tiger-message-body ul, .tiger-message-body ol { margin: 6px 0 10px; padding-left: 22px; }
.tiger-message-body ul:last-child, .tiger-message-body ol:last-child { margin-bottom: 0; }
.tiger-message-body li { margin: 4px 0; }
.tiger-message-body li::marker { color: var(--tg-accent, #f97316); }
.tiger-message-body h3, .tiger-message-body h4, .tiger-message-body h5 {
  margin: 14px 0 6px;
  font-size: 15px;
  font-weight: 700;
  color: var(--tg-ink-strong, #111827);
}
.tiger-message-body h3:first-child,
.tiger-message-body h4:first-child,
.tiger-message-body h5:first-child { margin-top: 2px; }
.tiger-message-body strong { color: var(--tg-ink-strong, #111827); }
.tiger-message-body pre {
  margin: 8px 0;
  padding: 10px 12px;
  background: #f6f7f9;
  border: 1px solid var(--tg-line, #e8eaef);
  border-radius: 10px;
  font-size: 13px;
  overflow-x: auto;
  white-space: pre-wrap;
}
.tiger-message-body pre code {
  padding: 0;
  border: 0;
  background: transparent;
}
.tiger-message-body code {
  background: rgba(249, 115, 22, 0.08);
  border: 1px solid rgba(249, 115, 22, 0.14);
  color: var(--tg-accent-deep, #c2410c);
  border-radius: 5px;
  padding: 1px 5px;
  font-size: 13px;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}
.tiger-message-body .tiger-md-table-wrap {
  max-width: 100%;
  margin: 8px 0;
  overflow-x: auto;
  border: 1px solid var(--tg-line, #e8eaef);
  border-radius: 10px;
}
.tiger-message-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: 13px;
}
.tiger-message-body th, .tiger-message-body td {
  border: 0;
  border-bottom: 1px solid var(--tg-line, #e8eaef);
  padding: 7px 12px;
  text-align: left;
  white-space: nowrap;
}
.tiger-message-body th {
  background: var(--tg-accent-soft, #fff7ed);
  color: var(--tg-accent-ink, #9a3412);
  font-weight: 700;
}
.tiger-message-body tbody tr:nth-child(even) td {
  background: #fafaf9;
}
.tiger-message-body tbody tr:last-child td {
  border-bottom: 0;
}

/* 错误消息:浅红小卡片 */
.tiger-message.bot .tiger-message-content.is-error,
.tiger-message-content.is-error {
  padding: 10px 14px;
  border: 1px solid #fecaca;
  border-radius: var(--tg-radius-card, 12px);
  background: #fef2f2;
  color: #b91c1c;
  font-size: 13px;
  line-height: 1.6;
  box-shadow: none;
}

.tiger-results-message {
  max-width: 96%;
}

/* 结果卡列表本身就是卡片,外层不再包白色气泡 */
.tiger-message.bot .tiger-message-content.tiger-results-content {
  width: 100%;
  min-width: 0;
  padding: 2px 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.tiger-results-title,
.tiger-search-title {
  font-size: 14px;
  font-weight: 700;
  color: #92400e;
  margin: 2px 0 10px;
}

.tiger-search-results {
  flex-shrink: 0;
  max-height: min(42vh, 260px);
  overflow-y: auto;
  padding: 12px;
  border-top: 1px solid #e5e7eb;
  background: #fafafa;
}

.tiger-search-empty {
  padding: 10px;
  color: #9a3412;
  font-size: 13px;
  text-align: center;
}

.tiger-result-card {
  width: 100%;
  height: auto;
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  margin: 8px 0;
  padding: 12px 14px;
  border: 1px solid var(--tg-accent-border, #fed7aa);
  border-radius: var(--tg-radius-card, 12px);
  background: var(--tg-surface, #fff);
  color: #374151;
  text-decoration: none;
  text-align: left;
  cursor: pointer;
  box-shadow: var(--tg-shadow-sm);
  transition: border-color 0.16s, box-shadow 0.16s, transform 0.16s;
  overflow: hidden;
}

.tiger-result-card.is-compact {
  padding: 9px 12px;
}

.tiger-result-card:hover {
  border-color: #fb923c;
  box-shadow: 0 6px 16px rgba(249, 115, 22, 0.16);
  transform: translateY(-2px);
}

.tiger-result-card:focus-visible {
  border-color: #f97316;
  outline: 3px solid rgba(249, 115, 22, 0.22);
  outline-offset: 2px;
}

.tiger-result-card:disabled,
.tiger-result-card.is-disabled {
  cursor: not-allowed;
  opacity: 0.58;
  transform: none;
}

.tiger-result-card.is-selected {
  border-color: #ff6a00;
  background: #fff7ed;
  box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.12);
}

.tiger-reply-cta {
  display: inline;
  margin: 0 1px;
  padding: 2px 8px;
  border: 1px solid #fdba74;
  border-radius: 999px;
  background: #fff7ed;
  color: #c2410c;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  cursor: pointer;
  transition: background 0.16s, border-color 0.16s;
}

.tiger-reply-cta:hover {
  background: #ffedd5;
  border-color: #fb923c;
}

.tiger-result-line {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.tiger-result-type {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  max-width: 40%;
  padding: 0 9px;
  border-radius: var(--tg-radius-pill, 999px);
  border: 1px solid var(--tg-accent-border, #fed7aa);
  background: var(--tg-accent-soft, #fff7ed);
  color: var(--tg-accent-deep, #c2410c);
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiger-result-arrow {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #ea580c;
  opacity: 0.78;
  transition: background 0.16s, opacity 0.16s, transform 0.16s;
}

.tiger-result-arrow svg {
  width: 15px;
  height: 15px;
}

.tiger-result-card:hover .tiger-result-arrow {
  background: #fff7ed;
  opacity: 1;
  transform: translateX(2px);
}

.tiger-result-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-result-title {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--tg-ink-strong, #111827);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tiger-result-subtitle,
.tiger-result-snippet {
  color: #4b5563;
  font-size: 13px;
  line-height: 1.6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tiger-result-meta {
  color: var(--tg-accent-ink, #9a3412);
  font-size: 12px;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tiger-result-card:not(.is-compact) .tiger-result-title,
.tiger-result-card:not(.is-compact) .tiger-result-subtitle,
.tiger-result-card:not(.is-compact) .tiger-result-snippet,
.tiger-result-card:not(.is-compact) .tiger-result-meta {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}

/* 简历结果卡片（本地库 + 伯乐库） */
.tiger-resume-card {
  height: auto;
  min-height: 62px;
  align-items: center;
  gap: 11px;
  margin: 7px 0;
  padding: 10px 12px;
  border-color: #e5e7eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.tiger-resume-card:hover {
  background: #fffaf5;
}

.tiger-resume-avatar {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: linear-gradient(135deg, #fb923c, #f97316);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 2px 5px rgba(249, 115, 22, 0.22);
}

.tiger-resume-card.is-hibole .tiger-resume-avatar {
  background: linear-gradient(135deg, #60a5fa, #2563eb);
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.25);
}

.tiger-resume-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 7px;
  border-radius: 999px;
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #c2410c;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.4px;
}

.tiger-resume-card.is-hibole .tiger-resume-badge {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.tiger-resume-card.is-hibole:hover {
  border-color: #60a5fa;
  background: #f8fbff;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.12);
}

.tiger-resume-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.tiger-resume-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 1px 8px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 11px;
  line-height: 1.6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 伯乐简历详情弹窗 */
.hibole-modal-content {
  max-width: 720px;
  width: min(720px, 94vw);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
}

.hibole-modal-content .modal-body {
  overflow-y: auto;
}

.hibole-modal-loading {
  padding: 42px 0;
  text-align: center;
  color: #6b7280;
  font-size: 13px;
}

.hibole-modal-loading.is-error {
  color: #b91c1c;
}

.hibole-avatar {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background: linear-gradient(135deg, #60a5fa, #2563eb);
  color: #fff;
  font-size: 22px;
  font-weight: 700;
}

.hibole-source-badge {
  display: inline-flex;
  align-items: center;
  vertical-align: 2px;
  margin-left: 6px;
  height: 18px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 600;
}

.hibole-section {
  margin-top: 18px;
}

.hibole-section-title {
  margin: 0 0 10px;
  padding-left: 9px;
  border-left: 3px solid #f97316;
  color: #111827;
  font-size: 13.5px;
  font-weight: 700;
}

.hibole-timeline-item {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 5px 0 5px 14px;
}

.hibole-timeline-dot {
  position: absolute;
  left: 0;
  top: 11px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d1d5db;
}

.hibole-timeline-item.is-current .hibole-timeline-dot {
  background: #f97316;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.18);
}

.hibole-timeline-time {
  flex: 0 0 auto;
  min-width: 128px;
  color: #6b7280;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.hibole-timeline-title {
  flex: 1 1 auto;
  min-width: 0;
  color: #1f2937;
  font-size: 12.5px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.hibole-tag-current {
  display: inline-block;
  margin-left: 6px;
  padding: 0 6px;
  border-radius: 999px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #c2410c;
  font-size: 10.5px;
  font-style: normal;
  font-weight: 600;
}

.hibole-raw-text {
  margin: 0;
  padding: 12px;
  max-height: 320px;
  overflow-y: auto;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #f9fafb;
  color: #374151;
  font-size: 12px;
  line-height: 1.7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-family: inherit;
}

.tiger-performance-results-message {
  width: 100%;
  max-width: 100%;
  align-items: flex-start;
}

.tiger-performance-results {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.tiger-performance-results-head {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 4px 0 14px;
  padding: 14px 16px;
  border: 1px solid #fed7aa;
  border-radius: 16px;
  background: linear-gradient(135deg, #fffaf5 0%, #fff7ed 100%);
  box-shadow: 0 8px 24px rgba(154, 52, 18, 0.06);
}

.tiger-performance-results-icon {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: #f97316;
  color: #fff;
  box-shadow: 0 6px 14px rgba(249, 115, 22, 0.22);
}

.tiger-performance-results-icon svg {
  width: 22px;
  height: 22px;
}

.tiger-performance-results-copy {
  min-width: 0;
}

.tiger-performance-results-copy strong,
.tiger-performance-results-copy small {
  display: block;
}

.tiger-performance-results-copy strong {
  color: #111827;
  font-size: 16px;
  line-height: 1.35;
  font-weight: 750;
}

.tiger-performance-results-copy small {
  margin-top: 3px;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.5;
}

.tiger-performance-results-hint {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 11px;
  border: 1px solid #fdba74;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: #9a3412;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  white-space: nowrap;
}

.tiger-performance-results-hint svg {
  width: 14px;
  height: 14px;
}

.tiger-performance-results-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.tiger-performance-result-card {
  min-height: 132px;
  align-items: stretch;
  gap: 14px;
  margin: 0;
  padding: 15px 14px 14px 16px;
  border-color: #e5e7eb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.045);
}

.tiger-performance-result-card:hover {
  border-color: #fb923c;
  box-shadow: 0 10px 24px rgba(154, 52, 18, 0.1);
  transform: none;
}

.tiger-performance-result-card .tiger-result-main {
  gap: 7px;
}

.tiger-performance-result-card .tiger-result-line {
  align-items: flex-start;
}

.tiger-performance-result-card .tiger-result-title {
  color: #111827;
  font-size: 14px;
  line-height: 1.45;
}

.tiger-performance-result-card .tiger-result-subtitle {
  color: #374151;
  font-size: 13px;
  line-height: 1.55;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

.tiger-performance-result-card .tiger-result-snippet {
  color: #6b7280;
  font-size: 12px;
  line-height: 1.5;
}

.tiger-performance-result-card .tiger-result-meta {
  margin-top: auto;
  color: #9a3412;
  font-size: 11px;
  line-height: 1.45;
}

.tiger-result-external {
  width: 58px;
  height: auto;
  min-height: 44px;
  flex-basis: 58px;
  align-self: stretch;
  flex-direction: column-reverse;
  gap: 6px;
  padding-left: 12px;
  border-left: 1px solid #ffedd5;
  border-radius: 0;
  color: #c2410c;
  opacity: 1;
}

.tiger-result-external span {
  font-size: 11px;
  line-height: 1;
  font-weight: 700;
  white-space: nowrap;
}

.tiger-performance-result-card:hover .tiger-result-external {
  background: transparent;
  transform: none;
}

.tiger-performance-result-card.is-compact {
  min-height: 56px;
  padding: 10px 12px;
}

.tiger-performance-result-card.is-compact .tiger-result-external span {
  display: none;
}

.tiger-performance-result-card.is-compact .tiger-result-external {
  width: 32px;
  flex-basis: 32px;
  padding-left: 8px;
}

@media (max-width: 760px) {
  .tiger-performance-results-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .tiger-performance-results-head {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .tiger-performance-results-hint {
    grid-column: 2;
    justify-self: start;
  }
}

@media (max-width: 480px) {
  .tiger-performance-results-message .tiger-message-avatar {
    display: none;
  }

  .tiger-performance-results-head {
    padding: 12px;
  }

  .tiger-performance-result-card {
    min-height: 120px;
  }
}

.tiger-confirm-resolved {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 2px 0 8px;
}

.tiger-confirm-chip {
  max-width: 100%;
  padding: 4px 7px;
  border-radius: 7px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.tiger-simple-clarify {
  max-width: 100%;
  padding: 12px 14px;
}

.tiger-simple-question {
  color: #111827;
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 10px;
  overflow-wrap: anywhere;
}

.tiger-simple-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tiger-choice-chip {
  border: 1px solid var(--tg-accent-border, #fed7aa);
  border-radius: var(--tg-radius-pill, 999px);
  background: var(--tg-accent-soft, #fff7ed);
  color: var(--tg-accent-deep, #c2410c);
  font-size: 13px;
  line-height: 1.25;
  font-weight: 700;
  padding: 7px 14px;
  cursor: pointer;
  max-width: 100%;
  overflow-wrap: anywhere;
  transition: background 0.16s, border-color 0.16s, color 0.16s, transform 0.16s, box-shadow 0.16s;
}

.tiger-choice-chip:hover,
.tiger-choice-chip.is-selected {
  background: var(--tg-accent-strong, #ea580c);
  border-color: var(--tg-accent-strong, #ea580c);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(234, 88, 12, 0.25);
}

.tiger-choice-chip:disabled {
  cursor: not-allowed;
  opacity: 0.72;
  transform: none;
}

.tiger-clarify-ai-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.4;
}

.tiger-ai-answer-button {
  min-height: 44px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 14px;
  border: 1px solid #ea580c;
  border-radius: 999px;
  background: #ea580c;
  color: #fff;
  font-size: 13px;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(234, 88, 12, 0.18);
  transition: background 0.16s, border-color 0.16s, box-shadow 0.16s;
}

.tiger-ai-answer-button svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tiger-ai-answer-button:hover,
.tiger-ai-answer-button:focus-visible {
  background: #c2410c;
  border-color: #c2410c;
  box-shadow: 0 5px 14px rgba(194, 65, 12, 0.24);
  outline: none;
}

.tiger-ai-answer-button:focus-visible {
  box-shadow: 0 0 0 3px rgba(251, 146, 60, 0.32), 0 5px 14px rgba(194, 65, 12, 0.24);
}

.tiger-ai-answer-button:disabled {
  cursor: not-allowed;
  opacity: 0.68;
  box-shadow: none;
}

.tiger-ai-answer-button.is-loading svg {
  animation: tiger-ai-spin 0.9s linear infinite;
}

.tiger-simple-clarify.is-resolved .tiger-clarify-ai-action,
.tiger-simple-clarify.is-resolved .tiger-simple-options {
  opacity: 0.58;
}

@keyframes tiger-ai-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 480px) {
  .tiger-clarify-ai-action {
    align-items: stretch;
    flex-direction: column;
  }

  .tiger-ai-answer-button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-ai-answer-button.is-loading svg {
    animation: none;
  }
}

.tiger-chat-input-area {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  margin: 12px;
  padding: 10px 12px 8px;
  border: 1px solid var(--tg-line, #e8eaef);
  border-radius: 22px;
  background: var(--tg-surface, #fff);
  box-shadow: var(--tg-shadow-sm);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.tiger-chat-input-area:focus-within {
  border-color: #fb923c;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1), var(--tg-shadow-md);
}

.tiger-chat-input-toolbar,
.tiger-chat-input-tools {
  display: flex;
  align-items: center;
}

.tiger-chat-input-toolbar {
  min-height: 36px;
  justify-content: space-between;
  gap: 12px;
}

.tiger-chat-input-tools {
  min-width: 0;
  gap: 6px;
}

.tiger-attach-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex: 0 0 auto;
  max-height: 116px;
  overflow-y: auto;
  padding: 10px 16px 0;
}

.tiger-attach-basket-head {
  flex: 0 0 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #6b7280;
  font-size: 11px;
}

.tiger-attach-basket-head button,
.tiger-attach-chip-retry {
  padding: 0;
  border: 0;
  background: transparent;
  color: #ea580c;
  cursor: pointer;
  font-size: 11px;
}

.tiger-attach-bar[hidden] {
  display: none;
}

.tiger-attach-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 260px;
  padding: 6px 8px 6px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #f9fafb;
  font-size: 12px;
  line-height: 1.35;
  cursor: pointer;
  opacity: .58;
}

.tiger-attach-chip.is-selected {
  border-color: #fb923c;
  background: #fff7ed;
  opacity: 1;
}

.tiger-attach-chip.is-loading {
  border-color: #fdba74;
  background: #fff7ed;
}

.tiger-attach-chip.is-error {
  border-color: #fca5a5;
  background: #fef2f2;
}

.tiger-attach-chip-icon {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: #e5e7eb;
  color: #4b5563;
  font-size: 11px;
  font-weight: 700;
}

.tiger-attach-chip.is-loading .tiger-attach-chip-icon {
  background: #fed7aa;
  color: #c2410c;
}

.tiger-attach-chip.is-error .tiger-attach-chip-icon {
  background: #fecaca;
  color: #b91c1c;
}

.tiger-attach-chip-thumb {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  object-fit: cover;
}

.tiger-attach-chip-body {
  min-width: 0;
}

.tiger-attach-chip-name {
  display: block;
  overflow: hidden;
  color: #111827;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiger-attach-chip-meta {
  display: block;
  color: #6b7280;
  font-size: 11px;
}

.tiger-attach-chip.is-error .tiger-attach-chip-meta {
  color: #b91c1c;
}

.tiger-attach-chip-remove {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #9ca3af;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
}

.tiger-attach-chip-remove:hover {
  background: #e5e7eb;
  color: #374151;
}

.tiger-attachment-action-card {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tiger-attachment-action-card span {
  color: #4b5563;
  font-size: 12px;
}

.tiger-attachment-action-card button {
  flex: 0 0 auto;
  padding: 7px 12px;
  border: 0;
  border-radius: 8px;
  background: #f97316;
  color: #fff;
  cursor: pointer;
}

.tiger-attachment-action-card button:disabled {
  cursor: wait;
  opacity: .6;
}

.tiger-message-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.tiger-message-attachments span {
  padding: 2px 8px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e5e7eb;
  color: #6b7280;
  font-size: 11px;
}

.tiger-chat-input-area input,
.tiger-chat-input-area textarea {
  width: 100%;
  padding: 4px 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 15px;
  line-height: 1.5;
  min-height: 48px;
  max-height: 160px;
  resize: none;
  overflow-y: auto;
  box-sizing: border-box;
  font-family: inherit;
}

.tiger-chat-input-area input:focus,
.tiger-chat-input-area textarea:focus {
  outline: none;
}

.tiger-file-button {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #4b5563;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease;
}

.tiger-file-button:hover,
.tiger-file-button:focus-visible {
  background: #f3f4f6;
  color: #ea580c;
  outline: none;
}

.tiger-file-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.tiger-file-button svg {
  width: 18px;
  height: 18px;
}

.tiger-upload-card {
  width: 100%;
  min-width: 0;
}

.tiger-upload-status {
  font-size: 13px;
  color: #374151;
  overflow-wrap: anywhere;
}

.tiger-upload-progress {
  height: 5px;
  margin-top: 9px;
  overflow: hidden;
  border-radius: 3px;
  background: #e5e7eb;
}

.tiger-upload-progress-bar {
  width: 4%;
  height: 100%;
  background: #f97316;
  transition: width 0.2s ease;
}

.tiger-project-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 10px 0;
}

.tiger-project-metric {
  padding: 8px;
  border: 1px solid #fed7aa;
  border-radius: 7px;
  background: #fff;
}

.tiger-project-metric strong,
.tiger-project-metric span {
  display: block;
}

.tiger-project-metric strong {
  color: #9a3412;
  font-size: 16px;
}

.tiger-project-metric span {
  margin-top: 2px;
  color: #6b7280;
  font-size: 11px;
}

.tiger-project-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.tiger-project-action {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid #fdba74;
  border-radius: 7px;
  background: #fff;
  color: #c2410c;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.tiger-project-action.primary {
  border-color: #ea580c;
  background: #ea580c;
  color: #fff;
}

.tiger-project-action:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.tiger-expense-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 8px 0;
  font-size: 13px;
  color: #374151;
}

.tiger-expense-meta label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.tiger-expense-month {
  padding: 3px 6px;
  border: 1px solid #fdba74;
  border-radius: 6px;
  font-size: 12px;
}

.tiger-expense-rows-wrap {
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  margin: 6px 0;
}

.tiger-expense-rows {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.tiger-expense-rows th,
.tiger-expense-rows td {
  padding: 5px 8px;
  border-bottom: 1px solid #ffedd5;
  text-align: left;
  white-space: nowrap;
}

.tiger-expense-rows td:last-child {
  white-space: normal;
  overflow-wrap: anywhere;
}

.tiger-expense-rows thead th {
  position: sticky;
  top: 0;
  background: #fff7ed;
  color: #9a3412;
}

.tiger-expense-images {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 8px 0;
}

.tiger-expense-image-item {
  display: flex;
  gap: 10px;
  padding: 8px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff;
}

.tiger-expense-image-thumb {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 6px;
  background: #f3f4f6;
  flex-shrink: 0;
  cursor: zoom-in;
}

.tiger-expense-image-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tiger-expense-image-name {
  font-size: 12px;
  font-weight: 700;
  color: #1f2937;
  overflow-wrap: anywhere;
}

.tiger-expense-match-badge {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  background: #dcfce7;
  color: #15803d;
}

.tiger-expense-match-badge.is-pending {
  background: #fef3c7;
  color: #b45309;
}

.tiger-expense-image-summary {
  font-size: 12px;
  color: #6b7280;
  overflow-wrap: anywhere;
}

.tiger-expense-bind-select {
  max-width: 100%;
  padding: 4px 6px;
  border: 1px solid #fdba74;
  border-radius: 6px;
  font-size: 12px;
}

.tiger-smart-issue-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 10px 0;
}

.tiger-smart-issue-file {
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.tiger-smart-issue-file-head,
.tiger-smart-issue-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.tiger-smart-issue-file-head {
  padding: 9px 10px;
  background: #fff7ed;
}

.tiger-smart-issue-file-head strong {
  min-width: 0;
  color: #111827;
  font-size: 13px;
  overflow-wrap: anywhere;
}

.tiger-smart-issue-file-head span {
  flex: 0 0 auto;
  color: #9a3412;
  font-size: 11px;
  font-weight: 800;
}

.tiger-smart-issue-group {
  padding: 9px 10px;
  border-top: 1px solid #ffedd5;
}

.tiger-smart-issue-group.is-manual {
  background: #fff;
}

.tiger-smart-issue-group-head {
  margin-bottom: 7px;
  color: #166534;
  font-size: 12px;
  font-weight: 800;
}

.tiger-smart-issue-group.is-manual .tiger-smart-issue-group-head {
  color: #9a3412;
}

.tiger-smart-issue-group ul {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tiger-smart-issue-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  min-height: 34px;
  padding: 7px;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
  background: #f9fafb;
}

.tiger-smart-issue-item.is-fixable {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.tiger-smart-issue-item.is-error {
  border-color: #fecaca;
  background: #fef2f2;
}

.tiger-smart-issue-item.is-fixed {
  opacity: 0.62;
}

.tiger-smart-issue-badge {
  border-radius: 999px;
  background: #e5e7eb;
  color: #374151;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 7px;
  white-space: nowrap;
}

.tiger-smart-issue-item.is-fixable .tiger-smart-issue-badge {
  background: #dcfce7;
  color: #166534;
}

.tiger-smart-issue-item.is-error .tiger-smart-issue-badge {
  background: #fee2e2;
  color: #991b1b;
}

.tiger-smart-issue-text {
  min-width: 0;
  color: #374151;
  font-size: 12px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.tiger-smart-issue-action {
  min-height: 44px;
  border: 1px solid #16a34a;
  border-radius: 6px;
  background: #16a34a;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  padding: 4px 8px;
  cursor: pointer;
}

.tiger-smart-issue-action.ghost {
  border-color: #fdba74;
  background: #fff;
  color: #c2410c;
}

.tiger-smart-issue-action:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}

.tiger-smart-issue-empty {
  padding: 8px 10px;
  border-top: 1px solid #ffedd5;
  color: #6b7280;
  font-size: 12px;
}

.tiger-smart-issue-done {
  margin: 10px;
  padding: 10px 12px;
  border: 1px solid #bbf7d0;
  border-radius: 7px;
  background: #f0fdf4;
  color: #166534;
  font-size: 13px;
  font-weight: 800;
}

.tiger-smart-import-confirm {
  --smart-text: #172033;
  --smart-muted: #5b6475;
  --smart-border: #dfe3ea;
  --smart-surface: #ffffff;
  --smart-surface-soft: #f7f8fa;
  --smart-brand: #c2410c;
  --smart-brand-strong: #9a3412;
  --smart-success: #147d46;
  --smart-success-soft: #edf9f2;
  --smart-warning: #a15c05;
  --smart-warning-soft: #fff8e7;
  --smart-danger: #b42318;
  --smart-danger-soft: #fff1f0;
}

.tiger-smart-import-confirm .tiger-upload-card {
  color: var(--smart-text);
}

.tiger-smart-state-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid #f6c48f;
  border-radius: 12px;
  background: #fff8f1;
}

.tiger-smart-state-icon {
  position: relative;
  width: 20px;
  height: 20px;
  border: 2px solid #ea580c;
  border-radius: 50%;
}

.tiger-smart-state-icon::after {
  content: '';
  position: absolute;
  inset: 5px;
  border-radius: 50%;
  background: #ea580c;
}

.tiger-smart-state-banner > div {
  min-width: 0;
}

.tiger-smart-state-banner strong,
.tiger-smart-state-banner > div > span {
  display: block;
}

.tiger-smart-state-banner strong {
  color: var(--smart-text);
  font-size: 15px;
  line-height: 1.4;
}

.tiger-smart-state-banner > div > span {
  margin-top: 3px;
  color: var(--smart-muted);
  font-size: 12px;
  line-height: 1.5;
}

.tiger-smart-state-badge {
  padding: 5px 9px;
  border-radius: 999px;
  background: #ffedd5;
  color: var(--smart-brand-strong);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.tiger-smart-state-banner.is-success {
  border-color: #a7dfbf;
  background: var(--smart-success-soft);
}

.tiger-smart-state-banner.is-success .tiger-smart-state-icon {
  border-color: var(--smart-success);
}

.tiger-smart-state-banner.is-success .tiger-smart-state-icon::after,
.tiger-smart-state-banner.is-success .tiger-smart-state-badge {
  background: var(--smart-success);
}

.tiger-smart-state-banner.is-success .tiger-smart-state-badge {
  color: #fff;
}

.tiger-smart-state-banner.is-warning {
  border-color: #f4cf83;
  background: var(--smart-warning-soft);
}

.tiger-smart-state-banner.is-warning .tiger-smart-state-icon {
  border-color: var(--smart-warning);
}

.tiger-smart-state-banner.is-warning .tiger-smart-state-icon::after,
.tiger-smart-state-banner.is-warning .tiger-smart-state-badge {
  background: var(--smart-warning);
}

.tiger-smart-state-banner.is-warning .tiger-smart-state-badge {
  color: #fff;
}

.tiger-smart-state-banner.is-danger {
  border-color: #f1b7b2;
  background: var(--smart-danger-soft);
}

.tiger-smart-state-banner.is-danger .tiger-smart-state-icon {
  border-color: var(--smart-danger);
}

.tiger-smart-state-banner.is-danger .tiger-smart-state-icon::after,
.tiger-smart-state-banner.is-danger .tiger-smart-state-badge {
  background: var(--smart-danger);
}

.tiger-smart-state-banner.is-danger .tiger-smart-state-badge {
  color: #fff;
}

.tiger-smart-state-banner.is-neutral {
  border-color: var(--smart-border);
  background: var(--smart-surface-soft);
}

.tiger-smart-state-banner.is-neutral .tiger-smart-state-icon {
  border-color: #667085;
}

.tiger-smart-state-banner.is-neutral .tiger-smart-state-icon::after,
.tiger-smart-state-banner.is-neutral .tiger-smart-state-badge {
  background: #667085;
}

.tiger-smart-state-banner.is-neutral .tiger-smart-state-badge {
  color: #fff;
}

.tiger-smart-preflight-report,
.tiger-smart-final-report {
  margin-top: 12px;
}

.tiger-smart-preflight-report[hidden],
.tiger-smart-final-report[hidden] {
  display: none;
}

.tiger-smart-simple-review {
  margin-top: 12px;
  padding: 16px;
  border: 1px solid var(--smart-border);
  border-radius: 12px;
  background: var(--smart-surface);
}

.tiger-smart-simple-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.tiger-smart-simple-heading h4,
.tiger-smart-simple-heading p {
  margin: 0;
}

.tiger-smart-simple-heading h4 {
  color: var(--smart-text);
  font-size: 15px;
}

.tiger-smart-simple-heading p {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 11px;
}

.tiger-smart-simple-heading > span {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #fff0e3;
  color: var(--smart-brand-strong);
  font-size: 10px;
  font-weight: 800;
}

.tiger-smart-simple-plan {
  margin-top: 12px;
}

.tiger-smart-simple-plan-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid #b9dfc8;
  border-radius: 10px;
  background: var(--smart-success-soft);
}

.tiger-smart-simple-plan-empty > span,
.tiger-smart-simple-complete-icon {
  position: relative;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 50%;
  background: var(--smart-success);
}

.tiger-smart-simple-plan-empty > span::after,
.tiger-smart-simple-complete-icon::after {
  content: '';
  position: absolute;
  left: 6px;
  top: 4px;
  width: 7px;
  height: 11px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg);
}

.tiger-smart-simple-plan-empty strong,
.tiger-smart-simple-plan-empty small {
  display: block;
}

.tiger-smart-simple-plan-empty strong {
  color: var(--smart-success);
  font-size: 13px;
}

.tiger-smart-simple-plan-empty small {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 11px;
}

.tiger-smart-simple-plan-group {
  padding: 12px 13px;
  border: 1px solid #f4cf83;
  border-radius: 10px;
  background: var(--smart-warning-soft);
}

.tiger-smart-simple-plan-group + .tiger-smart-simple-plan-group {
  margin-top: 8px;
}

.tiger-smart-simple-plan-group.is-manual {
  border-color: #f1b7b2;
  background: var(--smart-danger-soft);
}

.tiger-smart-simple-plan-group > strong {
  color: var(--smart-warning);
  font-size: 12px;
}

.tiger-smart-simple-plan-group.is-manual > strong {
  color: var(--smart-danger);
}

.tiger-smart-simple-plan-group ul {
  margin: 7px 0 0;
  padding-left: 20px;
  color: var(--smart-text);
  font-size: 12px;
  line-height: 1.55;
}

.tiger-smart-simple-plan-group li + li {
  margin-top: 4px;
}

.tiger-smart-simple-target {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 9px;
  background: var(--smart-surface-soft);
  font-size: 11px;
  line-height: 1.55;
}

.tiger-smart-simple-target strong {
  color: var(--smart-text);
}

.tiger-smart-simple-target span {
  color: var(--smart-muted);
}

.tiger-smart-collapsed-audit {
  margin-top: 8px;
  border-top: 1px solid var(--smart-border);
}

.tiger-smart-collapsed-audit > summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--smart-muted);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.tiger-smart-collapsed-audit > summary:focus-visible {
  outline: 3px solid rgba(234, 88, 12, 0.25);
  outline-offset: 2px;
  border-radius: 6px;
}

.tiger-smart-collapsed-audit-body {
  padding: 0 0 12px;
}

.tiger-smart-collapsed-audit-body > p {
  margin: 8px 0 0;
  color: var(--smart-muted);
  font-size: 11px;
  line-height: 1.5;
}

.tiger-smart-collapsed-audit-body > p strong {
  color: var(--smart-text);
}

.tiger-smart-simple-complete {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 12px;
  padding: 16px;
  border: 1px solid #b9dfc8;
  border-radius: 12px;
  background: var(--smart-success-soft);
}

.tiger-smart-simple-complete strong,
.tiger-smart-simple-complete p,
.tiger-smart-simple-complete small {
  display: block;
  margin: 0;
}

.tiger-smart-simple-complete strong {
  color: var(--smart-success);
  font-size: 15px;
}

.tiger-smart-simple-complete p {
  margin-top: 3px;
  color: var(--smart-text);
  font-size: 12px;
  font-weight: 700;
}

.tiger-smart-simple-complete small {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 11px;
}

.tiger-smart-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tiger-smart-steps li {
  display: flex;
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--smart-border);
  border-radius: 10px;
  background: var(--smart-surface);
}

.tiger-smart-steps li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border: 1px solid #c7ccd4;
  border-radius: 50%;
  color: #667085;
  font-size: 11px;
  font-weight: 800;
}

.tiger-smart-steps li strong,
.tiger-smart-steps li small {
  display: block;
}

.tiger-smart-steps li strong {
  color: var(--smart-text);
  font-size: 12px;
}

.tiger-smart-steps li small {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 10px;
}

.tiger-smart-steps li.is-complete {
  border-color: #b9dfc8;
  background: var(--smart-success-soft);
}

.tiger-smart-steps li.is-complete > span {
  border-color: var(--smart-success);
  background: var(--smart-success);
  color: #fff;
}

.tiger-smart-steps li.is-current {
  border-color: #f4b875;
  background: #fff8f1;
  box-shadow: inset 0 0 0 1px rgba(234, 88, 12, 0.08);
}

.tiger-smart-steps li.is-current > span {
  border-color: #ea580c;
  background: #ea580c;
  color: #fff;
}

.tiger-smart-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 10px 0 0;
}

.tiger-smart-summary .tiger-project-metric {
  border-color: var(--smart-border);
  border-radius: 10px;
  background: var(--smart-surface-soft);
}

.tiger-smart-summary .tiger-project-metric strong {
  color: var(--smart-text);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.tiger-smart-summary .tiger-project-metric.is-zero strong {
  color: var(--smart-success);
}

.tiger-smart-report-section {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid var(--smart-border);
  border-radius: 12px;
  background: var(--smart-surface);
}

.tiger-smart-section-heading {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.tiger-smart-section-heading > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 7px;
  background: #fff0e3;
  color: var(--smart-brand);
  font-size: 12px;
  font-weight: 900;
}

.tiger-smart-section-heading h4,
.tiger-smart-section-heading p {
  margin: 0;
}

.tiger-smart-section-heading h4 {
  color: var(--smart-text);
  font-size: 14px;
  line-height: 1.45;
}

.tiger-smart-section-heading p {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 11px;
  line-height: 1.5;
}

.tiger-smart-category-line {
  margin: 10px 0 0;
  color: var(--smart-muted);
  font-size: 12px;
}

.tiger-smart-audit-files,
.tiger-smart-result-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

.tiger-smart-audit-file {
  overflow: hidden;
  border: 1px solid var(--smart-border);
  border-radius: 10px;
  background: var(--smart-surface-soft);
}

.tiger-smart-audit-file-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 12px;
  border-bottom: 1px solid var(--smart-border);
  background: var(--smart-surface);
}

.tiger-smart-audit-file-head > div {
  min-width: 0;
}

.tiger-smart-audit-file-head strong,
.tiger-smart-audit-file-head > div > span {
  display: block;
}

.tiger-smart-audit-file-head strong {
  color: var(--smart-text);
  font-size: 13px;
  overflow-wrap: anywhere;
}

.tiger-smart-audit-file-head > div > span {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 10px;
}

.tiger-smart-type-badge {
  flex: 0 0 auto;
  padding: 4px 8px;
  border: 1px solid #f4b875;
  border-radius: 999px;
  background: #fff8f1;
  color: var(--smart-brand-strong);
  font-size: 10px;
  font-weight: 800;
}

.tiger-smart-fact-grid,
.tiger-smart-result-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--smart-border);
}

.tiger-smart-fact-grid > div,
.tiger-smart-result-grid > div {
  min-width: 0;
  padding: 9px 11px;
  background: var(--smart-surface);
}

.tiger-smart-fact-grid dt,
.tiger-smart-result-grid dt {
  color: var(--smart-muted);
  font-size: 10px;
  font-weight: 600;
}

.tiger-smart-fact-grid dd,
.tiger-smart-result-grid dd {
  margin: 3px 0 0;
  color: var(--smart-text);
  font-size: 12px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.tiger-smart-repair-suggestion {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 10px 11px 0;
  padding: 10px 12px;
  border: 1px solid #f4cf83;
  border-radius: 9px;
  background: var(--smart-warning-soft);
}

.tiger-smart-repair-suggestion strong {
  color: var(--smart-warning);
  font-size: 12px;
}

.tiger-smart-repair-suggestion span {
  color: var(--smart-text);
  font-size: 12px;
  line-height: 1.55;
}

.tiger-smart-repair-suggestion small {
  color: var(--smart-muted);
  font-size: 10px;
  line-height: 1.5;
}

.tiger-smart-mapping-details {
  padding: 0 11px 9px;
  background: var(--smart-surface);
}

.tiger-smart-mapping-details summary {
  min-height: 40px;
  display: flex;
  align-items: center;
  color: var(--smart-brand);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.tiger-smart-mapping-details summary:focus-visible {
  outline: 2px solid #ea580c;
  outline-offset: 2px;
  border-radius: 4px;
}

.tiger-smart-mapping-details ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tiger-smart-mapping-details li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  padding: 7px 0;
  border-top: 1px solid #eceef2;
  color: var(--smart-muted);
  font-size: 11px;
}

.tiger-smart-mapping-details li strong {
  color: var(--smart-text);
  font-weight: 700;
}

.tiger-smart-mapping-details li small {
  color: var(--smart-success);
  font-variant-numeric: tabular-nums;
}

.tiger-smart-mapping-details p {
  margin: 5px 0 0;
  color: var(--smart-muted);
  font-size: 11px;
  line-height: 1.5;
}

.tiger-smart-mapping-arrow {
  color: #98a2b3;
}

.tiger-smart-permission-list {
  margin: 10px 0 0;
}

.tiger-smart-permission-list > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid #eceef2;
}

.tiger-smart-permission-list dt {
  color: var(--smart-muted);
  font-size: 11px;
  font-weight: 700;
}

.tiger-smart-permission-list dd {
  margin: 0;
}

.tiger-smart-permission-list dd strong,
.tiger-smart-permission-list dd small {
  display: block;
}

.tiger-smart-permission-list dd strong {
  color: var(--smart-text);
  font-size: 12px;
}

.tiger-smart-permission-list dd small {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 10px;
  line-height: 1.5;
}

.tiger-smart-change-list {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.tiger-smart-change-list li {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid #eceef2;
  font-size: 11px;
  line-height: 1.5;
}

.tiger-smart-change-list li strong {
  color: var(--smart-muted);
}

.tiger-smart-change-list li.is-done strong {
  color: var(--smart-success);
}

.tiger-smart-change-list li span {
  color: var(--smart-text);
}

.tiger-smart-check-passed {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #b9dfc8;
  border-radius: 9px;
  background: var(--smart-success-soft);
}

.tiger-smart-check-passed strong {
  color: var(--smart-success);
  font-size: 12px;
}

.tiger-smart-check-passed span,
.tiger-smart-skipped-notice {
  color: var(--smart-muted);
  font-size: 11px;
}

.tiger-smart-skipped-notice {
  margin-top: 8px;
  padding: 9px 11px;
  border: 1px solid #f4cf83;
  border-radius: 8px;
  background: var(--smart-warning-soft);
}

.tiger-smart-final-warning {
  margin-top: 12px;
  padding: 12px 14px;
  border-left: 4px solid #ea580c;
  border-radius: 8px;
  background: #fff8f1;
}

.tiger-smart-final-warning strong,
.tiger-smart-final-warning span {
  display: block;
}

.tiger-smart-final-warning strong {
  color: var(--smart-text);
  font-size: 12px;
}

.tiger-smart-final-warning span {
  margin-top: 3px;
  color: var(--smart-muted);
  font-size: 11px;
  line-height: 1.55;
}

.tiger-smart-primary-actions .tiger-project-action {
  min-height: 44px;
  padding: 9px 13px;
}

.tiger-smart-primary-actions .tiger-project-action:hover:not(:disabled) {
  border-color: #ea580c;
  background: #fff8f1;
}

.tiger-smart-primary-actions .tiger-project-action.primary:hover:not(:disabled) {
  background: #c2410c;
}

.tiger-smart-primary-actions .tiger-project-action:focus-visible {
  outline: 3px solid rgba(234, 88, 12, 0.25);
  outline-offset: 2px;
}

.tiger-smart-action-note {
  margin: 7px 0 0;
  color: var(--smart-muted);
  font-size: 10px;
  line-height: 1.5;
}

.tiger-smart-ask-tiger {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.tiger-smart-ask-tiger input {
  flex: 1;
  min-height: 40px;
  padding: 8px 11px;
  border: 1px solid #e2ddd6;
  border-radius: 8px;
  font-size: 12px;
  background: #fff;
}

.tiger-smart-ask-tiger input:focus {
  outline: none;
  border-color: #ea580c;
  box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.15);
}

.tiger-smart-ask-reply {
  margin-top: 8px;
  padding: 9px 11px;
  border-radius: 8px;
  background: #f6f4f1;
  color: #4b4741;
  font-size: 12px;
  line-height: 1.6;
}

.tiger-smart-result-summary {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid var(--smart-border);
  border-radius: 10px;
  background: var(--smart-surface-soft);
}

.tiger-smart-result-summary strong {
  color: var(--smart-text);
  font-size: 13px;
}

.tiger-smart-result-summary span {
  color: var(--smart-muted);
  font-size: 11px;
  line-height: 1.5;
}

.tiger-smart-result-summary.is-success {
  border-color: #b9dfc8;
  background: var(--smart-success-soft);
}

.tiger-smart-result-summary.is-warning {
  border-color: #f4cf83;
  background: var(--smart-warning-soft);
}

.tiger-smart-result-summary.is-danger {
  border-color: #f1b7b2;
  background: var(--smart-danger-soft);
}

.tiger-smart-result-item {
  overflow: hidden;
  border: 1px solid var(--smart-border);
  border-radius: 10px;
  background: var(--smart-surface);
}

.tiger-smart-result-item.is-success {
  border-color: #b9dfc8;
}

.tiger-smart-result-item.is-failed {
  border-color: #f1b7b2;
}

.tiger-smart-result-item.is-cancelled {
  border-color: #d5d9e0;
}

.tiger-smart-result-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--smart-border);
  background: var(--smart-surface-soft);
}

.tiger-smart-result-head > div {
  min-width: 0;
}

.tiger-smart-result-head strong,
.tiger-smart-result-head > div > span {
  display: block;
}

.tiger-smart-result-head strong {
  color: var(--smart-text);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.tiger-smart-result-head > div > span {
  margin-top: 2px;
  color: var(--smart-muted);
  font-size: 10px;
}

.tiger-smart-result-head > span {
  flex: 0 0 auto;
  color: var(--smart-muted);
  font-size: 10px;
  font-weight: 800;
}

.tiger-smart-result-item.is-success .tiger-smart-result-head > span {
  color: var(--smart-success);
}

.tiger-smart-result-item.is-failed .tiger-smart-result-head > span {
  color: var(--smart-danger);
}

.tiger-smart-result-head > .tiger-smart-treatment {
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.2;
}

.tiger-smart-result-item.is-failed .tiger-smart-result-head > .tiger-smart-treatment.is-automatic {
  background: #fef3c7;
  color: #92400e;
}

.tiger-smart-result-item.is-failed .tiger-smart-result-head > .tiger-smart-treatment.is-manual {
  background: #fee2e2;
  color: #991b1b;
}

.tiger-smart-result-grid > div.is-wide {
  grid-column: 1 / -1;
}

.tiger-smart-repair-box {
  padding: 10px 11px;
  border: 1px solid #f1b7b2;
  border-radius: 9px;
  background: var(--smart-danger-soft);
}

.tiger-smart-repair-box.is-automatic {
  border-color: #f4cf83;
  background: var(--smart-warning-soft);
}

.tiger-smart-repair-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.tiger-smart-repair-title strong {
  color: var(--smart-text);
  font-size: 12px;
}

.tiger-smart-repair-title span {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 10px;
  font-weight: 800;
}

.tiger-smart-repair-box.is-automatic .tiger-smart-repair-title span {
  background: #fef3c7;
  color: #92400e;
}

.tiger-smart-repair-box p,
.tiger-smart-repair-box ol {
  margin: 7px 0 0;
  color: var(--smart-text);
  font-size: 12px;
  line-height: 1.6;
}

.tiger-smart-repair-box ol {
  padding-left: 20px;
}

.tiger-smart-repair-box li + li {
  margin-top: 4px;
}

.tiger-smart-result-item > p {
  margin: 0;
  padding: 11px 12px;
  color: var(--smart-muted);
  font-size: 11px;
  line-height: 1.55;
}

.tiger-smart-final-report[aria-busy="true"] {
  opacity: 0.64;
}

@media (max-width: 640px) {
  .tiger-smart-state-banner {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .tiger-smart-state-badge {
    grid-column: 2;
    justify-self: start;
  }

  .tiger-smart-steps,
  .tiger-smart-summary,
  .tiger-smart-fact-grid,
  .tiger-smart-result-grid {
    grid-template-columns: 1fr;
  }

  .tiger-smart-result-grid > div.is-wide {
    grid-column: auto;
  }

  .tiger-smart-audit-file-head,
  .tiger-smart-result-head {
    align-items: flex-start;
  }

  .tiger-smart-permission-list > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .tiger-smart-simple-target {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .tiger-smart-mapping-details li {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .tiger-smart-mapping-details li small {
    grid-column: 3;
  }

  .tiger-smart-primary-actions {
    flex-direction: column;
  }

  .tiger-smart-primary-actions .tiger-project-action {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-smart-import-confirm *,
  .tiger-smart-import-confirm *::before,
  .tiger-smart-import-confirm *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

.tiger-project-report {
  max-height: 220px;
  margin-top: 10px;
  padding: 9px;
  overflow: auto;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
  background: #fff;
  color: #4b5563;
  font-size: 12px;
  line-height: 1.6;
}

.tiger-project-report h3,
.tiger-project-report h4,
.tiger-project-report h5 {
  margin: 10px 0 6px;
  color: #1f2937;
}

.tiger-project-report p,
.tiger-project-report li {
  margin: 4px 0;
}

.tiger-project-report ul {
  margin: 4px 0;
  padding-left: 18px;
}

.project-report-actions {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}

.project-report-actions .btn-upload-resume-mini {
  margin-left: 0;
}

#detail-project-report-metrics {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  text-align: center;
}

#detail-project-report-body {
  max-height: none;
  overflow-y: visible;
}

.project-report-overlay {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 24px;
  overflow-y: auto;
  background: rgba(15, 23, 42, 0.5);
}

.project-report-page {
  width: 100%;
  max-width: 1200px;
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
  padding: 24px 40px 28px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 60px rgba(15, 23, 42, 0.28);
}

.project-report-toolbar {
  display: flex;
  flex-shrink: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px solid #e5e7eb;
}

.project-report-title {
  font-size: 22px;
  font-weight: 700;
  color: #111827;
}

.project-report-meta {
  margin-top: 4px;
  font-size: 13px;
  color: #6b7280;
}

.project-report-toolbar-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.project-report-metrics {
  margin-bottom: 18px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  text-align: center;
  flex-shrink: 0;
}

.project-report-content {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 8px;
  font-size: 16px;
  line-height: 1.9;
  color: #1f2937;
}

.project-report-content h3 {
  margin: 22px 0 10px;
  font-size: 20px;
  color: #111827;
}

.project-report-content h4 {
  margin: 18px 0 8px;
  font-size: 18px;
  color: #111827;
}

.project-report-content h5 {
  margin: 14px 0 6px;
  font-size: 16px;
  color: #111827;
}

.project-report-content p,
.project-report-content li {
  margin: 6px 0;
  font-size: 16px;
}

.project-report-content ul {
  margin: 6px 0;
  padding-left: 22px;
}

#tiger-chat-send {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--tg-accent, #f97316) 0%, var(--tg-accent-strong, #ea580c) 100%);
  border: none;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 4px 12px rgba(249, 115, 22, 0.3);
  transition: background 0.18s ease, transform 0.18s ease, opacity 0.18s ease, box-shadow 0.18s ease;
}

#tiger-chat-send:hover,
#tiger-chat-send:focus-visible {
  outline: none;
  transform: translateY(-1px) scale(1.05);
  box-shadow: 0 6px 16px rgba(234, 88, 12, 0.36);
}

#tiger-chat-send:active {
  transform: scale(0.96);
}

#tiger-chat-send:disabled {
  cursor: default;
  opacity: 0.45;
  transform: none;
  box-shadow: none;
}

.tiger-tab-buttons {
  display: flex;
  border-bottom: 1px solid var(--tg-line, #e8eaef);
  background: var(--tg-surface, #fff);
}

.tiger-tab-btn {
  flex: 1;
  padding: 11px 16px;
  background: none;
  border: none;
  font-size: 13px;
  font-weight: 600;
  color: var(--tg-muted, #6b7280);
  cursor: pointer;
  transition: all 0.2s;
  border-bottom: 2px solid transparent;
}

.tiger-tab-btn:hover {
  background: var(--tg-accent-soft, #fff7ed);
  color: var(--tg-accent-deep, #c2410c);
}

.tiger-tab-btn.active {
  color: var(--tg-accent, #f97316);
  border-bottom-color: var(--tg-accent, #f97316);
  background: var(--tg-surface, #fff);
}

.tiger-chat-history {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tiger-history-date {
  font-size: 12px;
  font-weight: 600;
  color: #9ca3af;
  text-align: center;
  margin: 8px 0;
  padding: 4px 0;
}

.tiger-channel-panel {
  min-height: calc(100vh - 110px);
}

.tiger-channel-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(15, 118, 110, 0.08), rgba(249, 115, 22, 0.12)),
    #ffffff;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
}

.tiger-channel-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.tiger-channel-avatar {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  border-radius: 16px;
  object-fit: cover;
  border: 1px solid rgba(249, 115, 22, 0.24);
  box-shadow: 0 10px 24px rgba(249, 115, 22, 0.18);
}

.tiger-channel-brand h2 {
  margin: 0;
  color: #0f172a;
  font-size: 26px;
  line-height: 1.2;
  font-weight: 800;
}

.tiger-channel-brand p {
  margin: 6px 0 0;
  color: #475569;
  font-size: 14px;
  line-height: 1.55;
}

.tiger-channel-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tiger-channel-action {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #ffffff;
  color: #0f172a;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.18s, color 0.18s, box-shadow 0.18s, transform 0.18s;
}

.tiger-channel-action:hover,
.tiger-channel-action:focus-visible {
  border-color: #f97316;
  color: #c2410c;
  box-shadow: 0 8px 18px rgba(249, 115, 22, 0.13);
  outline: none;
  transform: translateY(-1px);
}

.tiger-channel-layout {
  display: grid;
  grid-template-columns: minmax(210px, 240px) minmax(0, 1fr) minmax(220px, 260px);
  gap: 16px;
  height: calc(100vh - 248px);
  min-height: 620px;
  margin-top: 16px;
}

.tiger-channel-nav,
.tiger-channel-brief {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
}

.tiger-channel-nav {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  overflow-y: auto;
}

.tiger-channel-nav-item {
  width: 100%;
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: #334155;
  text-align: left;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, color 0.18s, transform 0.18s;
}

.tiger-channel-nav-item:hover,
.tiger-channel-nav-item:focus-visible,
.tiger-channel-nav-item.active {
  border-color: #fdba74;
  background: #fff7ed;
  color: #9a3412;
  outline: none;
}

.tiger-channel-nav-item:hover {
  transform: translateY(-1px);
}

.tiger-channel-nav-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #ecfeff;
  color: #0f766e;
}

.tiger-channel-nav-item.active .tiger-channel-nav-icon,
.tiger-channel-nav-item:hover .tiger-channel-nav-icon {
  background: #ffedd5;
  color: #c2410c;
}

.tiger-channel-nav-item strong,
.tiger-channel-nav-item small {
  display: block;
}

.tiger-channel-nav-item strong {
  font-size: 14px;
  line-height: 1.25;
}

.tiger-channel-nav-item small {
  margin-top: 3px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.25;
}

.tiger-channel-mount {
  min-width: 0;
  min-height: 0;
}

.tiger-channel-brief {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px;
  overflow-y: auto;
}

.tiger-channel-brief-block {
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}

.tiger-channel-brief-label {
  display: block;
  margin-bottom: 7px;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
}

.tiger-channel-brief-block strong {
  display: block;
  color: #0f172a;
  font-size: 14px;
  line-height: 1.45;
}

.tiger-channel-brief button {
  width: 100%;
  min-height: 38px;
  margin-top: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #334155;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.18s, color 0.18s, background 0.18s;
}

.tiger-channel-brief button:hover,
.tiger-channel-brief button:focus-visible {
  border-color: #0f766e;
  color: #0f766e;
  background: #f0fdfa;
  outline: none;
}

.tiger-history-item {
  background: #f9fafb;
  border-radius: 8px;
  padding: 12px;
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid #e5e7eb;
}

.tiger-history-item:hover {
  background: #f3f4f6;
  border-color: #f97316;
  box-shadow: 0 2px 8px rgba(249, 115, 22, 0.1);
}

.tiger-history-time {
  font-size: 11px;
  color: #9ca3af;
  margin-bottom: 6px;
}

.tiger-history-question {
  font-size: 13px;
  color: #374151;
  margin-bottom: 6px;
  line-height: 1.4;
}

.tiger-history-question strong {
  color: #f97316;
}

.tiger-history-answer {
  font-size: 12px;
  color: #6b7280;
  line-height: 1.4;
}

.tiger-history-answer strong {
  color: #ea580c;
}

.tiger-loading,
.tiger-empty,
.tiger-error {
  text-align: center;
  padding: 40px 20px;
  color: #9ca3af;
  font-size: 14px;
}

.tiger-error {
  color: #ef4444;
}

#change-password-modal,
#leader-add-employee-modal {
  z-index: 2100;
}

/* === 个人主页面板 === */
.profile-panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.profile-panel-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.5);
}

.profile-panel-content {
  position: relative;
  width: 90%;
  max-width: 500px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2);
  overflow: hidden;
}

.profile-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid #e5e7eb;
}

.profile-panel-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.profile-panel-header h2 {
  margin: 0;
  font-size: 20px;
}

.profile-panel-back {
  background: none;
  border: none;
  color: #6b7280;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  align-items: center;
  justify-content: center;
  transition: color 0.2s, background 0.2s;
}

.profile-panel-back:hover {
  color: #374151;
  background: #f3f4f6;
}

.profile-panel-back .icon-arrow-left {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.profile-panel-close {
  background: none;
  border: none;
  color: #9ca3af;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s, background 0.2s;
}

.profile-panel-close:hover {
  color: #374151;
  background: #f3f4f6;
}

.profile-panel-body {
  padding: 24px;
}

.profile-avatar-section {
  text-align: center;
  margin-bottom: 24px;
}

.profile-avatar-large {
  width: 100px;
  height: 100px;
  margin: 0 auto 16px;
}

.profile-avatar-large img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 4px solid #f97316;
}

.profile-avatar-section h3 {
  margin: 0 0 4px 0;
  font-size: 22px;
  color: #1f2937;
}

.profile-role {
  color: #6b7280;
  font-size: 14px;
  margin: 0;
}

.profile-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.profile-stat-card {
  background: #f9fafb;
  border-radius: 12px;
  padding: 16px;
  text-align: center;
}

.profile-stat-label {
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 4px;
}

.profile-stat-value {
  font-size: 20px;
  font-weight: 700;
  color: #1f2937;
}

.profile-info-section h4 {
  margin: 0 0 16px 0;
  font-size: 16px;
  color: #374151;
}

.profile-info-item {
  display: flex;
  padding: 10px 0;
  border-bottom: 1px solid #f3f4f6;
}

.profile-info-label {
  width: 80px;
  color: #6b7280;
  font-size: 14px;
}

.profile-info-item span:last-child {
  flex: 1;
  color: #1f2937;
  font-size: 14px;
}

.profile-panel-body {
  padding: 24px;
  max-height: 80vh;
  overflow-y: auto;
}

.profile-name-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin-bottom: 8px;
}

.profile-name-row h3 {
  margin: 0;
  font-size: 24px;
  color: #1f2937;
}

.profile-english-name-display {
  color: #6b7280;
  font-size: 14px;
}

.profile-badges {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 8px;
}

.profile-level-badge {
  background: linear-gradient(135deg, #f97316, #ea580c);
  color: #fff;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
}

.profile-position-badge {
  background: #e0e7ff;
  color: #4338ca;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
}

.profile-basic-info {
  background: #f9fafb;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 20px;
}

.profile-info-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 14px;
  color: #4b5563;
}

.profile-info-row i {
  color: #9ca3af;
  margin-right: 6px;
}

.profile-perf-section,
.profile-team-section,
.profile-subordinates-section,
.profile-coins-section,
.profile-bio-section,
.profile-expertise-section {
  margin-bottom: 20px;
}

.profile-perf-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.profile-perf-header h4 {
  margin: 0;
  font-size: 16px;
  color: #374151;
}

.profile-perf-header select {
  padding: 4px 8px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
  background: #fff;
}

.profile-stat-rank {
  font-size: 12px;
  color: #f97316;
  margin-top: 4px;
}

.profile-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.profile-section-header h4 {
  margin: 0;
  font-size: 16px;
  color: #374151;
}

.btn-link {
  background: none;
  border: none;
  color: #f97316;
  font-size: 13px;
  cursor: pointer;
  padding: 0;
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
}

.btn-link:hover {
  text-decoration: none;
  background: #f3f4f6;
}

.btn-link .icon-x {
  width: 12px;
  height: 12px;
  stroke-width: 2.6;
}

.profile-subordinates-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.subordinate-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px;
  border-radius: 8px;
  transition: background 0.2s;
}

.subordinate-item:hover {
  background: #f3f4f6;
}

.subordinate-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f97316, #fb923c);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 4px;
}

.subordinate-name {
  font-size: 12px;
  color: #4b5563;
  text-align: center;
  max-width: 60px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.subordinate-remove-inline {
  height: 26px;
  margin-top: 5px;
  padding: 3px 9px;
  border: 1px solid #fecaca;
  border-radius: 999px;
  background: #fff;
  color: #dc2626;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap;
}

.subordinate-remove-inline:hover {
  border-color: #ef4444;
  background: #fef2f2;
  color: #b91c1c;
}

.subordinate-remove-inline:disabled {
  cursor: wait;
  opacity: 0.65;
}

.subordinate-action-status {
  margin-right: 6px;
  color: #16a34a;
  font-size: 12px;
}

.subordinate-action-status.is-error {
  color: #dc2626;
}

.subordinate-remove-confirm-modal {
  z-index: 3400;
  padding: 20px;
  background: rgba(15, 23, 42, 0.56);
  backdrop-filter: blur(3px);
}

.subordinate-remove-confirm-overlay {
  position: absolute;
  inset: 0;
}

.subordinate-remove-confirm-card {
  position: relative;
  width: min(420px, 100%);
  padding: 30px;
  overflow: visible;
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: 20px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
  animation: subordinate-confirm-enter 180ms ease-out;
}

.subordinate-remove-confirm-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #94a3b8;
}

.subordinate-remove-confirm-close:hover {
  background: #f1f5f9;
  color: #475569;
}

.subordinate-remove-confirm-close .icon-x {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.subordinate-remove-confirm-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border-radius: 16px;
  background: #fff1f2;
  color: #e11d48;
}

.subordinate-remove-confirm-icon svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.subordinate-remove-confirm-copy {
  padding-right: 24px;
}

.subordinate-remove-confirm-kicker {
  display: inline-block;
  margin-bottom: 6px;
  color: #e11d48;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.subordinate-remove-confirm-copy h3 {
  margin: 0;
  color: #0f172a;
  font-size: 21px;
  line-height: 1.35;
}

.subordinate-remove-confirm-copy p {
  margin: 10px 0 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}

.subordinate-remove-confirm-copy strong {
  color: #1e293b;
  font-weight: 700;
}

.subordinate-remove-confirm-note {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 20px;
  padding: 12px 14px;
  border: 1px solid #fde68a;
  border-radius: 12px;
  background: #fffbeb;
  color: #92400e;
  font-size: 13px;
  line-height: 1.55;
}

.subordinate-remove-confirm-note svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin-top: 1px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.subordinate-remove-confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 24px;
}

.subordinate-remove-confirm-actions button {
  width: 100%;
  height: 42px;
  margin: 0;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 650;
}

.subordinate-remove-confirm-cancel {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #475569;
}

.subordinate-remove-confirm-cancel:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}

.subordinate-remove-confirm-submit {
  border: 1px solid #e11d48;
  background: #e11d48;
  color: #fff;
  box-shadow: 0 8px 18px rgba(225, 29, 72, 0.2);
}

.subordinate-remove-confirm-submit:hover {
  border-color: #be123c;
  background: #be123c;
}

@keyframes subordinate-confirm-enter {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.employee-departure-confirm-card {
  background: linear-gradient(180deg, #fff 0%, #fff 72%, #fffaf8 100%);
  border-color: #fed7aa;
}

.employee-departure-confirm-icon {
  background: linear-gradient(145deg, #fff7ed, #ffedd5);
  color: #ea580c;
  box-shadow: 0 8px 20px rgba(234, 88, 12, 0.14);
}

.employee-departure-confirm-kicker {
  color: #ea580c;
}

.employee-departure-confirm-note {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.employee-departure-confirm-submit {
  border-color: #ea580c;
  background: linear-gradient(135deg, #f97316, #ea580c);
  box-shadow: 0 8px 18px rgba(234, 88, 12, 0.22);
}

.employee-departure-confirm-submit:hover {
  border-color: #c2410c;
  background: linear-gradient(135deg, #ea580c, #c2410c);
}

@media (max-width: 480px) {
  .subordinate-remove-confirm-card {
    padding: 24px 20px 20px;
    border-radius: 16px;
  }

  .subordinate-remove-confirm-actions {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .subordinate-remove-confirm-card {
    animation: none;
  }
}

.subordinate-empty {
  width: 100%;
  color: #6b7280;
  font-size: 13px;
}

.subordinate-preview-modal {
  z-index: 3200;
}

.subordinate-preview-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.subordinate-preview-actions button {
  width: 100%;
  min-width: 0;
  height: 40px;
  margin: 0;
  padding: 8px 10px;
  line-height: 1.2;
  white-space: nowrap;
}

.subordinate-preview-item {
  margin-bottom: 8px;
  font-size: 14px;
  color: #374151;
}

.subordinate-preview-performance {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #e5e7eb;
}

.subordinate-preview-perf-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  color: #111827;
  font-size: 14px;
}

.subordinate-preview-loading {
  color: #6b7280;
  font-size: 13px;
}

.subordinate-preview-error {
  color: #ef4444;
  font-size: 13px;
}

.profile-coins-display {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  padding: 16px;
  border-radius: 12px;
}

.tiger-coin-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

.profile-coins-display span {
  font-size: 24px;
  font-weight: 700;
  color: #92400e;
}

.profile-coin-leaderboard {
  margin-top: 8px;
  overflow: hidden;
  border: 1px solid #f3d479;
  border-radius: 12px;
  background: #fffbeb;
}

.profile-coin-leaderboard-toggle {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: #78350f;
  cursor: pointer;
  text-align: left;
  transition: background-color 180ms ease-out;
}

.profile-coin-leaderboard-toggle:hover {
  background: #fef3c7;
}

.profile-coin-leaderboard-toggle:active {
  background: #fde9a9;
}

.profile-coin-leaderboard-toggle:focus-visible {
  outline: 3px solid rgba(194, 65, 12, 0.32);
  outline-offset: -3px;
}

.profile-coin-leaderboard-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 650;
}

.profile-coin-leaderboard-trophy,
.profile-coin-leaderboard-chevron {
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.profile-coin-leaderboard-trophy {
  width: 20px;
  height: 20px;
  color: #b45309;
}

.profile-coin-leaderboard-chevron {
  width: 20px;
  height: 20px;
  color: #92400e;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 200ms ease-out;
}

.profile-coin-leaderboard-toggle[aria-expanded="true"] .profile-coin-leaderboard-chevron {
  transform: rotate(180deg);
}

.profile-coin-leaderboard-badge {
  padding: 2px 7px;
  border-radius: 999px;
  background: #fde68a;
  color: #78350f;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.profile-coin-leaderboard-panel {
  padding: 0 12px 12px;
}

.profile-coin-leaderboard-panel[hidden] {
  display: none;
}

.profile-coin-leaderboard-list {
  padding-top: 8px;
  border-top: 1px solid #f3d479;
}

.profile-coin-leaderboard-row {
  min-height: 44px;
  display: grid;
  grid-template-columns: 28px 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 5px 6px;
  border-radius: 9px;
}

.profile-coin-leaderboard-row + .profile-coin-leaderboard-row {
  margin-top: 2px;
}

.profile-coin-leaderboard-row.is-me {
  background: #fef3c7;
  box-shadow: inset 3px 0 0 #d97706;
}

.profile-coin-rank {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f3f4f6;
  color: #4b5563;
  font-size: 12px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.profile-coin-rank.rank-1 {
  background: #facc15;
  color: #713f12;
}

.profile-coin-rank.rank-2 {
  background: #d1d5db;
  color: #374151;
}

.profile-coin-rank.rank-3 {
  background: #fdba74;
  color: #7c2d12;
}

.profile-coin-leaderboard-avatar {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(146, 64, 14, 0.16);
  border-radius: 50%;
  background: #fff7ed;
  color: #92400e;
  font-size: 13px;
  font-weight: 700;
}

.profile-coin-leaderboard-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.profile-coin-leaderboard-name {
  min-width: 0;
  overflow: hidden;
  color: #374151;
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-coin-leaderboard-me {
  margin-left: 5px;
  color: #9a3412;
  font-size: 11px;
  font-weight: 700;
}

.profile-coin-leaderboard-coins {
  color: #92400e;
  font-size: 13px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.profile-coin-leaderboard-state {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  color: #6b4f2b;
  font-size: 13px;
  text-align: center;
}

.profile-coin-leaderboard-retry {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #d97706;
  border-radius: 8px;
  background: #fff;
  color: #92400e;
  font-weight: 650;
  cursor: pointer;
}

.profile-coin-leaderboard-retry:focus-visible {
  outline: 3px solid rgba(194, 65, 12, 0.32);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .profile-coin-leaderboard-toggle,
  .profile-coin-leaderboard-chevron {
    transition: none;
  }
}

.profile-bio-text,
.profile-expertise-text {
  color: #4b5563;
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  padding: 12px;
  background: #f9fafb;
  border-radius: 8px;
  min-height: 40px;
}

.profile-inline-editor {
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 10px;
  font-size: 14px;
  line-height: 1.6;
  resize: vertical;
}

.profile-inline-actions {
  margin-top: 8px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.profile-avatar-upload-label {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 32px;
  height: 32px;
  background: #f97316;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transition: background .2s;
}
.profile-avatar-upload-label:hover { background: #ea580c; }

.profile-contact-section {
  margin-bottom: 20px;
}
.profile-contact-section h4 { margin: 0 0 10px; font-size: 15px; color: #374151; }
.profile-contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.profile-contact-form .form-group { margin-bottom: 0; }
.profile-contact-form label { font-size: 12px; color: #6b7280; margin-bottom: 2px; display: block; }
.profile-contact-form input {
  width: 100%;
  padding: 6px 8px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
}

/* 个人主页 · 深蓝科技视觉 */
.profile-panel-overlay {
  background:
    radial-gradient(circle at 50% 34%, rgba(30, 150, 196, 0.16), transparent 36%),
    rgba(1, 8, 18, 0.76);
  backdrop-filter: blur(8px) saturate(112%);
}

.profile-panel-content {
  isolation: isolate;
  color: #d8e9f4;
  border: 1px solid rgba(92, 201, 235, 0.38);
  background:
    radial-gradient(circle at 50% 10%, rgba(36, 153, 196, 0.14), transparent 30%),
    linear-gradient(160deg, rgba(8, 31, 50, 0.98), rgba(3, 15, 28, 0.98));
  box-shadow:
    0 30px 90px rgba(0, 5, 15, 0.66),
    0 0 0 1px rgba(13, 80, 111, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

.profile-panel-content::before {
  content: '';
  position: absolute;
  z-index: 3;
  top: 0;
  left: 34px;
  right: 34px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #55d8ff 28%, #f0c86a 50%, #55d8ff 72%, transparent);
  box-shadow: 0 0 16px rgba(85, 216, 255, 0.48);
  pointer-events: none;
}

.profile-panel-content::after {
  content: '';
  position: absolute;
  z-index: 0;
  inset: 0;
  opacity: 0.22;
  background-image:
    linear-gradient(rgba(79, 188, 224, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(79, 188, 224, 0.07) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, #000, transparent 68%);
  pointer-events: none;
}

.profile-panel-header,
.profile-panel-body {
  position: relative;
  z-index: 1;
}

.profile-panel-header {
  border-bottom-color: rgba(92, 201, 235, 0.18);
  background: linear-gradient(90deg, rgba(6, 28, 46, 0.95), rgba(8, 38, 59, 0.82));
}

.profile-panel-header h2 {
  color: #eef8ff;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-shadow: 0 0 18px rgba(70, 199, 239, 0.18);
}

.profile-panel-close,
.profile-panel-back {
  border: 1px solid rgba(110, 201, 230, 0.16);
  background: rgba(18, 52, 72, 0.56);
  color: #8fb3c8;
}

.profile-panel-close:hover,
.profile-panel-back:hover {
  border-color: rgba(95, 214, 248, 0.42);
  background: rgba(31, 91, 119, 0.52);
  color: #dff8ff;
}

.profile-panel-body {
  color: #d8e9f4;
  scrollbar-color: rgba(66, 173, 211, 0.65) rgba(4, 21, 35, 0.72);
}

.profile-panel-body::-webkit-scrollbar {
  width: 7px;
}

.profile-panel-body::-webkit-scrollbar-track {
  background: rgba(4, 21, 35, 0.72);
}

.profile-panel-body::-webkit-scrollbar-thumb {
  border: 1px solid rgba(6, 29, 45, 0.75);
  border-radius: 999px;
  background: linear-gradient(#4ec9ed, #257aa4);
}

.profile-avatar-section {
  position: relative;
  padding: 4px 0 2px;
}

.profile-avatar-section::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 50%;
  width: 180px;
  height: 116px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(55, 191, 233, 0.16), transparent 66%);
  pointer-events: none;
}

.profile-avatar-large {
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 10px 22px rgba(0, 7, 16, 0.55));
}

.profile-avatar-large img {
  border-color: #e8bb54;
  background: rgba(9, 38, 58, 0.84);
  box-shadow:
    0 0 0 4px rgba(70, 198, 237, 0.14),
    0 0 26px rgba(62, 190, 230, 0.18);
}

.profile-avatar-upload-label {
  border: 2px solid #09233a;
  background: linear-gradient(145deg, #31b9e5, #16759e);
  box-shadow: 0 7px 16px rgba(2, 10, 22, 0.48);
}

.profile-avatar-upload-label:hover {
  background: linear-gradient(145deg, #57d4f5, #1d8fba);
}

.profile-name-row h3,
.profile-avatar-section h3 {
  color: #f4f9fc;
  letter-spacing: 0.02em;
}

.profile-english-name-display {
  color: #8fb0c4;
}

.profile-level-badge {
  border: 1px solid rgba(246, 195, 83, 0.5);
  background: linear-gradient(135deg, rgba(226, 158, 42, 0.98), rgba(181, 111, 20, 0.98));
  box-shadow: 0 5px 14px rgba(191, 119, 20, 0.2);
}

.profile-position-badge {
  border: 1px solid rgba(83, 202, 238, 0.34);
  background: rgba(29, 106, 139, 0.3);
  color: #87e1fa;
}

.profile-basic-info {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(72, 184, 222, 0.28);
  background:
    linear-gradient(120deg, rgba(18, 58, 82, 0.8), rgba(7, 30, 48, 0.9)),
    radial-gradient(circle at 85% 0%, rgba(238, 191, 90, 0.12), transparent 34%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    0 12px 30px rgba(0, 8, 18, 0.22);
}

.profile-basic-info::after {
  content: '';
  position: absolute;
  top: -46px;
  right: -42px;
  width: 128px;
  height: 128px;
  border: 1px solid rgba(84, 205, 239, 0.12);
  border-radius: 50%;
  box-shadow: 0 0 0 18px rgba(84, 205, 239, 0.025), 0 0 0 36px rgba(84, 205, 239, 0.02);
  pointer-events: none;
}

.profile-info-row {
  position: relative;
  z-index: 1;
  gap: 10px;
  padding: 4px 0;
  color: #c6dce9;
}

.profile-info-row + .profile-info-row {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid rgba(116, 199, 224, 0.12);
}

.profile-info-row > span {
  min-width: 0;
  display: flex;
  flex: 1 1 0;
  align-items: center;
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(8, 29, 46, 0.42);
  white-space: nowrap;
}

.profile-info-row > span:last-child {
  justify-content: flex-end;
}

.profile-info-row i {
  width: 24px;
  height: 24px;
  display: inline-flex;
  flex: 0 0 24px;
  align-items: center;
  justify-content: center;
  margin-right: 7px;
  border: 1px solid rgba(82, 196, 231, 0.22);
  border-radius: 7px;
  background: rgba(30, 105, 137, 0.24);
  color: #69d5f4;
}

.profile-contact-section,
.profile-perf-section,
.profile-team-section,
.profile-subordinates-section,
.profile-coins-section,
.profile-bio-section,
.profile-expertise-section {
  padding: 16px;
  border: 1px solid rgba(80, 167, 201, 0.18);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(10, 35, 54, 0.72), rgba(5, 24, 39, 0.7));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.profile-section-header h4,
.profile-perf-header h4,
.profile-contact-section h4,
.profile-team-section h4,
.profile-subordinates-section h4,
.profile-coins-section h4,
.profile-bio-section h4,
.profile-expertise-section h4 {
  margin: 0;
  color: #e7f4fa;
  font-weight: 650;
}

.profile-section-header h4::before,
.profile-perf-header h4::before,
.profile-team-section > h4::before,
.profile-subordinates-section h4::before,
.profile-coins-section h4::before,
.profile-bio-section h4::before,
.profile-expertise-section h4::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 13px;
  margin-right: 8px;
  border-radius: 99px;
  background: linear-gradient(#61daf8, #2781aa);
  box-shadow: 0 0 8px rgba(78, 207, 243, 0.38);
  vertical-align: -1px;
}

.profile-info-item {
  border-bottom-color: rgba(101, 176, 204, 0.13);
}

.profile-info-label {
  color: #7899ae;
}

.profile-info-item span:last-child,
.profile-bio-text,
.profile-expertise-text {
  color: #d4e7f2;
}

.profile-bio-text,
.profile-expertise-text {
  border: 1px solid rgba(87, 179, 212, 0.14);
  background: rgba(4, 20, 34, 0.54);
}

.profile-stats-grid {
  margin-bottom: 0;
}

.profile-stat-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(81, 194, 231, 0.2);
  background:
    linear-gradient(150deg, rgba(20, 67, 91, 0.68), rgba(7, 29, 47, 0.76));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.profile-stat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 18%;
  right: 18%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(94, 218, 248, 0.68), transparent);
}

.profile-stat-label {
  color: #89a8bb;
}

.profile-stat-value {
  color: #f1f8fb;
  text-shadow: 0 0 16px rgba(77, 199, 233, 0.12);
}

.profile-stat-rank {
  color: #efc15c;
}

.profile-perf-header select,
.profile-contact-form input,
.profile-inline-editor {
  border-color: rgba(78, 178, 215, 0.28);
  background: rgba(3, 20, 34, 0.86);
  color: #dcecf4;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.22);
}

.profile-perf-header select:focus,
.profile-contact-form input:focus,
.profile-inline-editor:focus {
  border-color: rgba(83, 211, 246, 0.7);
  outline: none;
  box-shadow: 0 0 0 3px rgba(47, 169, 210, 0.14);
}

.profile-contact-form label {
  color: #88a6b9;
}

.profile-inline-edit-btn,
.profile-panel .btn-link {
  padding: 6px 10px;
  border: 1px solid rgba(75, 191, 230, 0.24);
  background: rgba(25, 94, 123, 0.24);
  color: #78dbf5;
}

.profile-inline-edit-btn:hover,
.profile-panel .btn-link:hover {
  border-color: rgba(83, 211, 246, 0.46);
  background: rgba(31, 116, 150, 0.34);
  color: #d8f7ff;
}

.profile-panel .subordinate-item:hover {
  background: rgba(31, 96, 124, 0.3);
}

.profile-panel .subordinate-name,
.profile-panel .subordinate-empty {
  color: #a9c2d1;
}

.profile-panel .profile-logout-section {
  border-top-color: rgba(92, 174, 204, 0.16);
}

@media (max-width: 560px) {
  .profile-panel-content {
    width: calc(100% - 20px);
    border-radius: 16px;
  }

  .profile-panel-header,
  .profile-panel-body {
    padding-left: 18px;
    padding-right: 18px;
  }

  .profile-info-row {
    flex-direction: column;
  }

  .profile-info-row > span,
  .profile-info-row > span:last-child {
    width: 100%;
    justify-content: flex-start;
  }
}

.profile-logout-section {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #e5e7eb;
  text-align: center;
}

.btn-logout {
  background: #ef4444;
  color: #fff;
  border: none;
  height: auto;
  padding: 12px 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s;
}

.btn-logout:hover {
  background: #dc2626;
}

/* === 欢迎视频样式 === */
.welcome-video-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 46%, rgba(239, 178, 58, 0.2), transparent 32%),
    linear-gradient(145deg, #02070c 0%, #061c2d 46%, #020609 100%);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.welcome-video {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  transition: none !important;
}

.welcome-energy-field {
  position: absolute;
  inset: -20%;
  z-index: -1;
  pointer-events: none;
  opacity: 0.72;
  background:
    repeating-radial-gradient(circle at 50% 50%, transparent 0 58px, rgba(105, 221, 255, 0.08) 59px 60px),
    conic-gradient(from 0deg at 50% 50%, transparent, rgba(236, 179, 62, 0.13), transparent 24%, rgba(93, 214, 255, 0.12), transparent 54%);
  animation: welcomeFieldSpin 14s linear infinite;
}

.welcome-monkey-stage {
  --target-x: calc(100vw - 54px);
  --target-y: calc(100vh - 54px);
  position: fixed;
  top: 50%;
  left: 50%;
  width: min(100vw, 56.28vh);
  height: min(100vh, 177.68vw);
  transform: translate(-50%, -50%);
  transform-origin: center;
  will-change: transform, top, left;
}

.welcome-monkey-image {
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  transform-origin: 50% 58%;
  filter: saturate(1.04) contrast(1.02) drop-shadow(0 22px 60px rgba(0, 0, 0, 0.42));
  animation: welcomeMonkeyAlive 2.4s cubic-bezier(.45, 0, .55, 1) infinite;
  will-change: transform, filter;
}

.welcome-monkey-stage::after {
  content: "";
  position: absolute;
  inset: -8% -18%;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255, 224, 139, 0.08) 45%, rgba(255, 244, 207, 0.42) 50%, rgba(255, 196, 66, 0.1) 55%, transparent 62%);
  mix-blend-mode: screen;
  transform: translateX(-82%);
  animation: welcomeGoldScan 2.6s ease-in-out infinite;
}

.welcome-energy-ring {
  position: absolute;
  z-index: 2;
  pointer-events: none;
  border: 1px solid rgba(255, 207, 91, 0.42);
  border-radius: 50%;
  box-shadow: 0 0 22px rgba(255, 183, 40, 0.18), inset 0 0 18px rgba(104, 220, 255, 0.1);
  mix-blend-mode: screen;
}

.welcome-energy-ring-one {
  width: 32%;
  aspect-ratio: 1;
  top: 7%;
  right: -13%;
  animation: welcomeRingPulse 2.8s ease-in-out infinite;
}

.welcome-energy-ring-two {
  width: 18%;
  aspect-ratio: 1;
  left: -8%;
  bottom: 13%;
  border-color: rgba(105, 221, 255, 0.42);
  animation: welcomeRingPulse 2.8s ease-in-out -1.4s infinite;
}

.welcome-spark {
  position: absolute;
  z-index: 3;
  width: 5px;
  height: 5px;
  pointer-events: none;
  border-radius: 50%;
  background: #ffe5a0;
  box-shadow: 0 0 5px #fff4cc, 0 0 16px #eaa82b;
  animation: welcomeSparkRise 2.6s ease-in infinite;
}

.welcome-spark-one { left: 12%; bottom: 12%; animation-delay: -0.2s; }
.welcome-spark-two { left: 82%; bottom: 20%; animation-delay: -1.5s; transform: scale(.72); }
.welcome-spark-three { left: 26%; bottom: 38%; animation-delay: -2.1s; transform: scale(.55); }
.welcome-spark-four { left: 70%; bottom: 46%; animation-delay: -0.9s; transform: scale(.8); }
.welcome-spark-five { left: 48%; bottom: 16%; animation-delay: -2.4s; transform: scale(.62); }

@keyframes welcomeMonkeyAlive {
  0%, 100% {
    transform: translate3d(0, 0, 0) scale(1);
    filter: saturate(1.04) contrast(1.02) drop-shadow(0 22px 60px rgba(0, 0, 0, 0.42));
  }
  48% {
    transform: translate3d(0, -7px, 0) scale(1.012);
    filter: saturate(1.1) contrast(1.025) brightness(1.035) drop-shadow(0 28px 66px rgba(231, 166, 38, 0.3));
  }
}

@keyframes welcomeGoldScan {
  0%, 14% { transform: translateX(-82%); opacity: 0; }
  35% { opacity: .95; }
  74%, 100% { transform: translateX(82%); opacity: 0; }
}

@keyframes welcomeFieldSpin {
  to { transform: rotate(360deg) scale(1.04); }
}

@keyframes welcomeRingPulse {
  0%, 100% { transform: scale(.86) rotate(0deg); opacity: .24; }
  50% { transform: scale(1.08) rotate(24deg); opacity: .78; }
}

@keyframes welcomeSparkRise {
  0% { translate: 0 20px; opacity: 0; }
  20% { opacity: .95; }
  72% { opacity: .65; }
  100% { translate: 10px -150px; opacity: 0; }
}

@keyframes videoShrinkMove {
  0% {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    border-radius: 0;
  }
  100% {
    top: var(--target-y, calc(100vh - 54px));
    left: var(--target-x, calc(100vw - 54px));
    transform: translate(-50%, -50%) scale(0.1);
    border-radius: 50%;
  }
}

.video-shrinking {
  animation: videoShrinkMove 0.8s ease-in-out forwards;
}

.video-shrinking .welcome-monkey-image,
.video-shrinking::after,
.video-shrinking .welcome-energy-ring,
.video-shrinking .welcome-spark {
  animation-play-state: paused;
}

/* === 响应式布局 === */
@media (max-width: 1200px) {
  .col-span-10-v2 { grid-column: span 12; }
  .col-span-2-v2 { grid-column: span 12; }
  .dashboard-grid-v2 { gap: 16px; }
  .home-side-stack-v2 { height: auto; }
  .home-side-stack-v2 .sticky-widget-v2 { min-height: 240px; }
}

@media (max-width: 768px) {
  .navbar-nav {
    display: none;
    position: absolute;
    top: 64px;
    left: 0;
    right: 0;
    background: #fff;
    flex-direction: column;
    padding: 16px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  }

  .navbar-nav.show {
    display: flex;
  }

  .mobile-menu-btn {
    display: flex;
  }

  .mobile-quote-bar {
    display: block;
  }

  .quote-bar {
    display: none;
  }

  .col-span-3-v2,
  .col-span-4-v2 { grid-column: span 12; }

  .tiger-chat-window {
    width: min(390px, calc(100vw - 20px));
    right: 0;
    bottom: 70px;
  }

  .welcome-text-v2 {
    font-size: 20px;
  }
}

.rank-highlight {
  background: linear-gradient(135deg, #ffd700 0%, #ff8c00 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

/* ==================== 业绩统计分析板块样式 ==================== */

/* 标签页切换按钮 */
.tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 24px;
  padding: 4px;
  background: #f1f5f9;
  border-radius: 12px;
  width: fit-content;
}

.tab-btn {
  padding: 10px 24px;
  border: none;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #64748b;
  transition: all 0.2s ease;
  height: auto;
}

.tab-btn:hover {
  color: #334155;
  background: #f3f4f6;
}

.tab-btn.active {
  background: #fff;
  color: #1e40af;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* 统计内容容器 */
.stats-content {
  display: none;
}

.stats-content.active {
  display: block;
  animation: statsSlideIn 0.3s ease;
}

@keyframes statsSlideIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 统计卡片基础样式 */
.stats-card,
.stats-card-wide,
.stats-card-medium {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.03);
  border: 1px solid #e2e8f0;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stats-card:hover,
.stats-card-wide:hover,
.stats-card-medium:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.stats-card h4,
.stats-card-wide h4,
.stats-card-medium h4 {
  margin: 0 0 20px 0;
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 8px;
}

.stats-card h4::before {
  content: '';
  width: 4px;
  height: 18px;
  background: linear-gradient(180deg, #3b82f6 0%, #1d4ed8 100%);
  border-radius: 2px;
}

.stats-card-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}

.stats-card-title-row h4 {
  margin-bottom: 0;
  min-width: 0;
}

.btn-client-payment-rank {
  flex: 0 0 auto;
  height: 30px;
  padding: 0 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 600;
  line-height: 28px;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.btn-client-payment-rank:hover {
  background: #dbeafe;
  border-color: #60a5fa;
}

.btn-client-payment-rank[aria-pressed="true"] {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

.btn-employee-name-manage {
  padding: 5px 10px;
  border: 1px solid #fdba74;
  border-radius: 7px;
  background: #fff7ed;
  color: #c2410c;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.btn-employee-name-manage:hover {
  background: #ffedd5;
  border-color: #fb923c;
}

.advisor-manage-cell {
  text-align: center;
  white-space: nowrap;
}

.btn-advisor-manage {
  padding: 5px 12px;
  border: 1px solid #93c5fd;
  border-radius: 7px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.btn-advisor-manage:hover {
  background: #dbeafe;
  border-color: #60a5fa;
}

.quarter-performance-modal-content {
  width: min(760px, calc(100vw - 32px));
  max-width: 760px;
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
}

.quarter-performance-modal-content .modal-header {
  padding: 20px 24px 16px;
  background: linear-gradient(135deg, #f8fbff 0%, #f4f2ff 100%);
}

.quarter-performance-modal-content .modal-header h3 {
  margin: 0;
  color: #172033;
  font-size: 20px;
}

.quarter-performance-subtitle {
  margin: 5px 0 0;
  color: #64748b;
  font-size: 12px;
}

.quarter-performance-modal-content .modal-body {
  overflow-y: auto;
  padding: 20px 24px 22px;
}

.quarter-performance-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 11px 13px;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: #eff6ff;
  color: #1e40af;
  font-size: 13px;
  line-height: 1.55;
}

.quarter-performance-notice-icon {
  display: inline-flex;
  flex: 0 0 20px;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #3b82f6;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.quarter-performance-summary-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.quarter-performance-summary-cards > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}

.quarter-performance-summary-cards span,
.quarter-performance-summary-cards strong {
  display: block;
}

.quarter-performance-summary-cards span {
  margin-bottom: 4px;
  color: #64748b;
  font-size: 12px;
}

.quarter-performance-summary-cards strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quarter-performance-section {
  margin-bottom: 14px;
  padding: 15px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
}

.quarter-performance-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.quarter-performance-section-heading strong {
  color: #0f172a;
  font-size: 14px;
}

.quarter-performance-section-heading span {
  color: #94a3b8;
  font-size: 12px;
}

.quarter-performance-months {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.quarter-performance-months label,
.quarter-performance-totals label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
}

.quarter-performance-months input,
.quarter-performance-totals input {
  width: 100%;
  height: 40px;
  box-sizing: border-box;
  padding: 0 11px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #0f172a;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.quarter-performance-months input:focus,
.quarter-performance-totals input:focus {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

.quarter-performance-totals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.quarter-performance-totals label {
  padding: 14px;
  border: 1px solid #dbe4f0;
  border-radius: 12px;
  background: #f8fafc;
}

.quarter-performance-totals input {
  font-size: 16px;
  font-weight: 700;
}

.quarter-performance-totals small {
  color: #94a3b8;
  font-size: 11px;
  font-weight: 400;
}

.quarter-performance-result {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #ddd6fe;
  border-radius: 10px;
  background: #f5f3ff;
  color: #5b21b6;
  font-size: 13px;
}

.quarter-performance-result strong {
  color: #4c1d95;
}

.quarter-performance-footer {
  padding: 14px 24px 18px;
  background: #fff;
}

@media (max-width: 700px) {
  .quarter-performance-summary-cards,
  .quarter-performance-months,
  .quarter-performance-totals {
    grid-template-columns: 1fr;
  }

  .quarter-performance-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}

.advisor-correction-modal-content {
  max-width: 820px;
  max-height: calc(100vh - 48px);
}

.advisor-correction-notice {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid #bfdbfe;
  border-radius: 9px;
  background: #eff6ff;
  color: #1e40af;
  font-size: 13px;
  line-height: 1.6;
}

.advisor-correction-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}

.advisor-correction-summary > div {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.advisor-correction-summary span,
.advisor-correction-summary strong {
  display: block;
}

.advisor-correction-summary span {
  margin-bottom: 4px;
  color: #64748b;
  font-size: 12px;
}

.advisor-correction-summary strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.advisor-correction-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 14px;
}

.advisor-correction-full-name-grid {
  grid-template-columns: minmax(0, 1fr);
}

.advisor-correction-full-name-grid input {
  font-size: 15px;
  font-weight: 600;
}

.advisor-correction-grid label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
}

.advisor-correction-grid input,
.advisor-correction-grid select {
  width: 100%;
  height: 38px;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #1e293b;
}

.advisor-correction-grid input:focus,
.advisor-correction-grid select:focus {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

.advisor-correction-performance-section {
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
}

.advisor-correction-section-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.advisor-correction-section-title strong {
  color: #0f172a;
  font-size: 14px;
}

.advisor-correction-section-title span {
  color: #64748b;
  font-size: 12px;
}

.advisor-correction-months {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.advisor-correction-months label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
}

.advisor-correction-months input {
  width: 100%;
  height: 36px;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  color: #1e293b;
}

.advisor-correction-months input:focus {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

.advisor-correction-preview {
  min-height: 82px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
  color: #475569;
  font-size: 13px;
  line-height: 1.7;
}

.advisor-correction-preview strong {
  color: #0f172a;
}

.advisor-correction-change-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 4px 0;
}

.advisor-correction-change-item {
  white-space: nowrap;
}

.employee-name-manage-modal-content {
  max-width: 1000px;
}

.employee-name-rename-notice {
  margin-bottom: 18px;
  padding: 12px 14px;
  border: 1px solid #bfdbfe;
  border-radius: 9px;
  background: #eff6ff;
  color: #1e40af;
  font-size: 13px;
  line-height: 1.6;
}

.employee-name-rename-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.employee-name-rename-summary > div {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.employee-name-rename-summary span,
.employee-name-rename-summary strong {
  display: block;
}

.employee-data-delete-scope {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid #fecaca;
  border-radius: 9px;
  background: #fff7f7;
}

.employee-data-delete-scope > div {
  min-width: 0;
}

.employee-data-delete-scope strong,
.employee-data-delete-scope span {
  display: block;
}

.employee-data-delete-scope strong {
  margin-bottom: 4px;
  color: #991b1b;
  font-size: 13px;
}

.employee-data-delete-scope span {
  color: #7f1d1d;
  font-size: 12px;
  line-height: 1.5;
}

.employee-data-delete-scope .btn-danger {
  flex: 0 0 auto;
  white-space: nowrap;
}

.employee-name-rename-summary span {
  margin-bottom: 4px;
  color: #64748b;
  font-size: 12px;
}

.employee-name-rename-summary strong {
  overflow: hidden;
  color: #0f172a;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.employee-name-rename-grid {
  margin-bottom: 12px;
}

.employee-name-rename-grid label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
}

.employee-name-rename-grid input {
  width: 100%;
  height: 38px;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #1e293b;
}

.employee-name-rename-grid input:focus {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

.employee-performance-record-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.employee-performance-record-summary > div {
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.employee-performance-record-summary span,
.employee-performance-record-summary strong {
  display: block;
}

.employee-performance-record-summary span {
  margin-bottom: 3px;
  color: #64748b;
  font-size: 12px;
}

.employee-performance-record-summary strong {
  color: #0f172a;
  font-size: 14px;
}

.employee-performance-record-list {
  min-height: 150px;
  color: #64748b;
  font-size: 13px;
}

.employee-performance-record-limit-hint {
  margin-top: 8px;
  color: #92400e;
  font-size: 12px;
}

.employee-performance-record-table-wrap {
  max-height: 390px;
  overflow: auto;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
}

.employee-performance-record-table {
  width: 100%;
  border-collapse: collapse;
  color: #334155;
  font-size: 12px;
}

.employee-performance-record-table th,
.employee-performance-record-table td {
  padding: 9px 10px;
  border-bottom: 1px solid #e2e8f0;
  text-align: right;
  white-space: nowrap;
}

.employee-performance-record-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8fafc;
  color: #475569;
  font-weight: 600;
}

.employee-performance-record-table th:nth-child(1),
.employee-performance-record-table th:nth-child(2),
.employee-performance-record-table th:nth-child(3),
.employee-performance-record-table td:nth-child(1),
.employee-performance-record-table td:nth-child(2),
.employee-performance-record-table td:nth-child(3) {
  text-align: left;
}

.employee-performance-record-table td:nth-child(2) strong,
.employee-performance-record-table td:nth-child(2) span {
  display: block;
}

.employee-performance-record-table td:nth-child(2) span {
  margin-top: 2px;
  color: #94a3b8;
}

.employee-payment-status {
  display: inline-block;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}

.employee-payment-status-paid {
  background: #dcfce7;
  color: #166534;
}

.employee-payment-status-partial {
  background: #fef3c7;
  color: #92400e;
}

.employee-payment-status-unpaid {
  background: #fee2e2;
  color: #991b1b;
}

.btn-employee-record-edit {
  padding: 5px 10px;
  border: 1px solid #93c5fd;
  border-radius: 6px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 600;
}

.btn-employee-record-edit:hover {
  background: #dbeafe;
  border-color: #60a5fa;
}

.employee-record-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.btn-employee-record-delete {
  padding: 5px 10px;
  border: 1px solid #fca5a5;
  border-radius: 6px;
  background: #fff1f2;
  color: #dc2626;
  font-size: 12px;
  font-weight: 600;
}

.btn-employee-record-delete:hover {
  border-color: #f87171;
  background: #fee2e2;
}

.btn-employee-record-delete:disabled {
  cursor: wait;
  opacity: 0.65;
}

@media (max-width: 640px) {
  .advisor-correction-summary,
  .advisor-correction-grid,
  .advisor-correction-months,
  .employee-name-rename-summary,
  .employee-performance-record-summary {
    grid-template-columns: 1fr;
  }

  .employee-data-delete-scope {
    align-items: stretch;
    flex-direction: column;
  }
}

/* 全宽卡片 */
.stats-card-wide {
  margin-bottom: 24px;
}

.stats-card-medium {
  display: flex;
  flex-direction: column;
}

.stats-card-medium .compact-table {
  flex: 1;
  max-height: none;
  min-height: 0;
  overflow-x: hidden;
}

/* 网格布局 */
.stats-grid-2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 24px;
}

.stats-grid-2col-equal {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 24px;
}

.stats-grid-3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 24px;
}

.stats-mixed-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 24px;
}

/* 响应式网格 */
@media (max-width: 1200px) {
  .stats-grid-3col {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 900px) {
  .stats-grid-2col,
  .stats-grid-2col-equal,
  .stats-grid-3col,
  .stats-mixed-layout {
    grid-template-columns: 1fr;
  }
}

/* KPI展示区 */
.kpi-showcase {
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e2e8f0;
}

.kpi-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-between;
}

.kpi-item {
  flex: 1 1 auto;
  min-width: 140px;
  max-width: none;
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  border: 1px solid #e2e8f0;
  transition: transform 0.2s ease;
}

.kpi-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 16px rgba(59, 130, 246, 0.12);
}

.kpi-label {
  font-size: 13px;
  color: #64748b;
  margin-bottom: 8px;
  font-weight: 500;
}

.kpi-value {
  font-size: 24px;
  font-weight: 700;
  color: #1e40af;
  line-height: 1.2;
}

/* KPI响应式调整 */
@media (max-width: 1200px) {
  .kpi-item {
    min-width: 120px;
    padding: 16px;
  }
  .kpi-value {
    font-size: 20px;
  }
}

@media (max-width: 768px) {
  .kpi-row {
    gap: 12px;
  }
  .kpi-item {
    min-width: 100px;
    padding: 12px;
  }
  .kpi-label {
    font-size: 12px;
  }
  .kpi-value {
    font-size: 18px;
  }
}

@media (max-width: 480px) {
  .kpi-row {
    gap: 8px;
    justify-content: center;
  }
  .kpi-item {
    min-width: 80px;
    flex: 1 1 45%;
    padding: 10px;
  }
  .kpi-label {
    font-size: 11px;
  }
  .kpi-value {
    font-size: 16px;
  }
}

/* 图表容器 */
.chart-container-small {
  height: 200px;
  position: relative;
  margin-bottom: 16px;
}

.chart-container-compact {
  height: 220px;
  position: relative;
}

.chart-container-medium {
  height: 280px;
  position: relative;
  margin-bottom: 16px;
}

.chart-half {
  flex: 1 1 45%;
  min-width: 250px;
  height: 320px;
  position: relative;
}

.table-half {
  flex: 1 1 45%;
  min-width: 200px;
  max-height: 320px;
  overflow-y: auto;
  overflow-x: hidden;
}

/* 水平布局：图表+表格 */
.horizontal-layout {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}

@media (max-width: 900px) {
  .horizontal-layout {
    flex-direction: column;
  }
  .chart-half,
  .table-half {
    width: 100%;
    min-width: unset;
  }
}

/* 排名列表样式 */
.rank-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rank-item {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  border-radius: 10px;
  margin-bottom: 8px;
  background: #f8fafc;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}

.rank-item:hover {
  background: #eff6ff;
  border-color: #bfdbfe;
  transform: translateX(4px);
}

.rank-item:last-child {
  margin-bottom: 0;
}

.rank-idx {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-weight: 700;
  font-size: 14px;
  margin-right: 14px;
  flex-shrink: 0;
}

/* 前三名特殊样式 */
.rank-item:nth-child(1) .rank-idx {
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(251, 191, 36, 0.4);
}

.rank-item:nth-child(2) .rank-idx {
  background: linear-gradient(135deg, #94a3b8 0%, #64748b 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(148, 163, 184, 0.4);
}

.rank-item:nth-child(3) .rank-idx {
  background: linear-gradient(135deg, #fb923c 0%, #ea580c 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(251, 146, 60, 0.4);
}

.rank-item:nth-child(n+4) .rank-idx {
  background: #e2e8f0;
  color: #64748b;
}

.rank-info {
  flex: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-width: 0;
}

.rank-name {
  font-weight: 500;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
}

.rank-amount {
  font-weight: 600;
  font-size: 14px;
  color: #059669;
  margin-right: 12px;
}

.rank-ratio {
  font-size: 13px;
  color: #64748b;
  background: #f1f5f9;
  padding: 4px 10px;
  border-radius: 20px;
}

/* 隐藏的更多排名 */
.hidden-ranks {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.hidden-ranks.show {
  max-height: 2000px;
}

.btn-show-more {
  width: 100%;
  padding: 12px;
  margin-top: 12px;
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  border-radius: 10px;
  cursor: pointer;
  font-size: 13px;
  color: #3b82f6;
  font-weight: 500;
  transition: all 0.2s ease;
  height: auto;
}

.btn-show-more:hover {
  background: #eff6ff;
  border-color: #3b82f6;
}

/* 紧凑表格容器 */
.compact-table {
  max-height: 300px;
  overflow-y: auto;
  overflow-x: hidden;
}

.mini-table-wrap {
  max-height: 260px;
  overflow-y: auto;
  overflow-x: hidden;
}

/* 业绩明细 / 季度完成 表格 */
.target-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.target-card-head h4 { margin: 0; }
.target-tools {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #475569;
}
.target-tools button {
  padding: 4px 10px;
  font-size: 13px;
}
.detail-table-wrap {
  max-height: 560px;
  overflow: auto;
  margin-top: 10px;
  border-radius: 10px;
}
.detail-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.detail-table-wrap th {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  padding: 10px 8px;
  font-weight: 600;
  color: #334155;
  border: 1px solid #e2e8f0;
  position: sticky;
  top: 0;
  z-index: 2;
  white-space: nowrap;
}
.detail-table-wrap td {
  padding: 8px;
  border: 1px solid #eef2f7;
  text-align: center;
  color: #1f2937;
}
.detail-table-wrap td.name-cell {
  text-align: left;
  white-space: nowrap;
}
.employment-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  margin-left: 10px;
  padding: 2px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  vertical-align: middle;
}
.employment-status-badge.is-active {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}
.employment-status-badge.is-departed {
  color: #b91c1c;
  background: #fef2f2;
  border-color: #fecaca;
}
.detail-table-wrap tr.employee-departed-row td:not(.total-merge) {
  color: #64748b;
  background: #fafafa;
}
.detail-table-wrap tr.employee-departed-row td.num-red { color: #b91c1c; }
.detail-table-wrap td.num-red { color: #dc2626; }
.detail-table-wrap td.target-cell {
  cursor: pointer;
  color: #2563eb;
}
.detail-table-wrap td.target-cell:hover { background: #eff6ff; }
.detail-table-wrap tr:hover td { background: #f8fafc; }
.detail-table-wrap td.total-merge {
  color: #dc2626;
  font-weight: 700;
  vertical-align: middle;
  background: #fff7f7;
}
.detail-table-wrap .target-edit-input {
  width: 78px;
  padding: 3px 4px;
  font-size: 13px;
  text-align: center;
}

/* 平台图表布局 */
.platform-charts {
  display: flex;
  gap: 24px;
}

.platform-item {
  flex: 1;
  text-align: center;
}

.platform-item canvas {
  height: 180px !important;
}

.platform-label {
  display: block;
  font-size: 13px;
  color: #64748b;
  margin-bottom: 8px;
  font-weight: 500;
}

.platform-tables {
  border-top: 1px solid #e2e8f0;
  padding-top: 16px;
}

/* 员工排行表格 */
#employee-ranking-table {
  border-radius: 12px;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

#employee-ranking-table table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
}

#employee-ranking-table th {
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  padding: 14px 12px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  border-bottom: 2px solid #e2e8f0;
  position: sticky;
  top: 0;
  z-index: 5;
}

#employee-ranking-table td {
  padding: 14px 12px;
  font-size: 14px;
  border-bottom: 1px solid #f1f5f9;
}

#employee-ranking-table tr:hover {
  background: #f8fafc;
}

#employee-ranking-table tr:nth-child(1) td:first-child,
#employee-ranking-table tr:nth-child(2) td:first-child,
#employee-ranking-table tr:nth-child(3) td:first-child {
  font-weight: 700;
}

#employee-ranking-table tr:nth-child(1) {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.1) 0%, transparent 50%);
}

#employee-ranking-table tr:nth-child(2) {
  background: linear-gradient(90deg, rgba(148, 163, 184, 0.1) 0%, transparent 50%);
}

#employee-ranking-table tr:nth-child(3) {
  background: linear-gradient(90deg, rgba(251, 146, 60, 0.1) 0%, transparent 50%);
}

/* 筛选器表单行 */
#perf-stats-section .form-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #f8fafc;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
}

#perf-stats-section .form-row label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #475569;
  font-weight: 500;
}

#perf-stats-section .form-row select {
  padding: 8px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  min-width: 140px;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

#perf-stats-section .form-row select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

#perf-stats-section .form-row button {
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  height: auto;
}

#perf-stats-section .form-row button:hover {
  transform: translateY(-1px);
}

/* 空状态消息 */
#perf-stats-section .empty-message {
  text-align: center;
  padding: 48px 24px;
  color: #94a3b8;
  font-size: 15px;
  background: #f8fafc;
  border-radius: 12px;
  border: 1px dashed #cbd5e1;
}

/* 统计面板标题 */
#perf-stats-section h3 {
  font-size: 22px;
  font-weight: 600;
  color: #1e293b;
  margin: 0 0 24px 0;
  padding-bottom: 16px;
  border-bottom: 1px solid #e2e8f0;
}

/* 业绩明细页面使用标准财务页样式，无需额外自定义样式 */

/* ==================== JD上传与AI分析样式 ==================== */
.jd-dropzone {
  border: 2px dashed #d1d5db;
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  background: #fafafa;
  margin-bottom: 12px;
}

.jd-dropzone:hover,
.jd-dropzone.dragover {
  border-color: #3b82f6;
  background: #eff6ff;
}

.jd-dropzone-content {
  color: #6b7280;
}

.jd-dropzone-content svg {
  margin-bottom: 8px;
  color: #9ca3af;
}

.jd-dropzone-content p {
  margin: 4px 0;
  font-size: 14px;
}

.jd-dropzone-content .hint {
  font-size: 12px;
  color: #9ca3af;
}

.ai-btns {
  display: flex;
  gap: 12px;
  align-items: center;
}

.btn-ai {
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  height: auto;
  border: none;
  background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
  color: #fff;
}

.btn-ai:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}

.btn-ai-secondary {
  background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
}

.btn-ai-secondary:hover {
  box-shadow: 0 4px 12px rgba(249, 115, 22, 0.3);
}

.ai-result-panel {
  margin-top: 16px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  max-height: 400px;
  overflow-y: auto;
}

.ai-result-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
  border-radius: 12px 12px 0 0;
  position: sticky;
  top: 0;
  z-index: 5;
}

.ai-result-header button {
  padding: 4px 12px;
  font-size: 12px;
  background: #e5e7eb;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  height: auto;
  color: #374151;
}

.ai-result-body {
  padding: 16px;
}

.ai-section {
  margin-bottom: 20px;
}

.ai-section:last-child {
  margin-bottom: 0;
}

.ai-section h4 {
  margin: 0 0 12px 0;
  font-size: 14px;
  font-weight: 600;
  color: #374151;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-section h4::before {
  content: '';
  width: 3px;
  height: 14px;
  background: #6366f1;
  border-radius: 2px;
}

.ai-section dl {
  margin: 0;
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 8px 12px;
  font-size: 13px;
}

.ai-section dt {
  color: #6b7280;
  font-weight: 500;
}

.ai-section dt.inferred {
  color: #f59e0b;
}

.ai-section dt.inferred::after {
  content: ' (推测)';
  font-size: 11px;
}

.ai-section dd {
  margin: 0;
  color: #374151;
}

.ai-section ul {
  margin: 0;
  padding-left: 20px;
  font-size: 13px;
  color: #374151;
}

.ai-section li {
  margin-bottom: 4px;
}

.ai-missing {
  padding: 12px 16px;
  background: #fef3c7;
  border-radius: 8px;
  font-size: 13px;
  color: #92400e;
  margin-bottom: 16px;
}

.ai-error {
  padding: 16px;
  background: #fee2e2;
  color: #991b1b;
  border-radius: 8px;
  font-size: 14px;
}

/* ==================== 订单卡片V2样式 ==================== */
.case-card-v2 {
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  border: 1px solid #e5e7eb;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform 0.2s, box-shadow 0.2s;
}

.case-card-v2:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.case-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.case-card-badges {
  display: flex;
  gap: 8px;
}

.case-type-badge {
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  color: #fff;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
}

.case-status-badge {
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 500;
}

.case-status-badge.published {
  background: #d1fae5;
  color: #059669;
}

.case-status-badge.draft {
  background: #fef3c7;
  color: #d97706;
}

.case-status-badge.paused {
  background: #fef3c7;
  color: #b45309;
}

.case-status-badge.offline {
  background: #e5e7eb;
  color: #475569;
}

.case-card-id {
  font-size: 12px;
  color: #9ca3af;
  font-weight: 500;
}

.case-card-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 12px;
  background: #f9fafb;
  border-radius: 10px;
}

.case-info-row {
  display: flex;
  gap: 8px;
  font-size: 13px;
}

.case-info-row .label {
  color: #6b7280;
}

.case-info-row .value {
  color: #1f2937;
  font-weight: 500;
}

.case-card-job {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 12px;
  background: #fafafa;
}

.job-preview,
.job-full {
  font-size: 13px;
  color: #374151;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}

.btn-expand-job {
  margin-top: 8px;
  padding: 4px 12px;
  font-size: 12px;
  background: #e5e7eb;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  color: #374151;
  height: auto;
}

.btn-expand-job:hover {
  background: #d1d5db;
}

.case-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid #f3f4f6;
}

.case-card-meta {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: #9ca3af;
}

.case-card-actions {
  display: flex;
  gap: 8px;
}

.case-card-actions button {
  padding: 6px 12px;
  font-size: 12px;
  border-radius: 6px;
  border: 1px solid #e5e7eb;
  background: #fff;
  cursor: pointer;
  height: auto;
  transition: all 0.2s;
}

.case-card-actions button:hover {
  background: #f3f4f6;
  border-color: #d1d5db;
}

.case-card-comments {
  border-top: 1px solid #e5e7eb;
  padding-top: 16px;
}

.comments-list {
  max-height: 200px;
  overflow-y: auto;
  margin-bottom: 12px;
}

.no-comments {
  color: #9ca3af;
  font-size: 13px;
  text-align: center;
  padding: 16px;
}

.comment-item {
  display: flex;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid #f3f4f6;
  font-size: 13px;
  flex-wrap: wrap;
}

.comment-author {
  color: #6366f1;
  font-weight: 600;
}

.comment-text {
  flex: 1;
  color: #374151;
}

.comment-time {
  color: #9ca3af;
  font-size: 11px;
}

.comment-input-row {
  display: flex;
  gap: 8px;
}

.comment-input-row input {
  flex: 1;
  padding: 8px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 13px;
}

.comment-input-row button {
  padding: 8px 16px;
  background: #6366f1;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  height: auto;
}

.comment-input-row button:hover {
  background: #4f46e5;
}

.case-card-v2.clickable {
  cursor: pointer;
}

.case-card-job-brief {
  padding: 10px 12px;
  background: #f9fafb;
  border-radius: 8px;
  font-size: 13px;
  color: #4b5563;
  line-height: 1.5;
}

.view-detail-hint {
  font-size: 12px;
  color: #6366f1;
  font-weight: 500;
}

.order-detail-view {
  animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.detail-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e7eb;
}

.btn-back {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 14px;
  color: #374151;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-back:hover {
  background: #e5e7eb;
}

.detail-actions {
  display: flex;
  gap: 8px;
}

.detail-actions .btn-edit,
.detail-actions .btn-delete {
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
}

.detail-actions .btn-edit {
  background: #eef2ff;
  border: 1px solid #6366f1;
  color: #6366f1;
}

.detail-actions .btn-edit:hover {
  background: #e0e7ff;
}

.detail-actions .btn-delete {
  background: #fef2f2;
  border: 1px solid #ef4444;
  color: #ef4444;
}

.detail-actions .btn-delete:hover {
  background: #fee2e2;
}

.detail-content {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 20px;
}

.detail-content-wrapper {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.detail-top-row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.detail-top-row > .detail-main-area {
  flex: 1 1 50%;
  min-width: 0;
  max-width: 50%;
  overflow: hidden;
}

.detail-top-row > .detail-sidebar {
  flex: 1 1 50%;
  min-width: 0;
  max-width: 50%;
}

@media (max-width: 1200px) {
  .detail-top-row {
    flex-direction: column;
  }
  .detail-top-row > .detail-main-area,
  .detail-top-row > .detail-sidebar {
    max-width: 100%;
    flex: 1 1 100%;
  }
  .detail-top-row > .detail-sidebar {
    order: -1;
  }
  .ai-analysis-section {
    position: static;
  }
}

.detail-collapse {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
  overflow: hidden;
}

.detail-collapse > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  color: #374151;
  list-style: none;
  user-select: none;
}

.detail-collapse > summary::-webkit-details-marker {
  display: none;
}

.detail-collapse-arrow {
  width: 9px;
  height: 9px;
  border-right: 2px solid #9ca3af;
  border-bottom: 2px solid #9ca3af;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}

.detail-collapse[open] .detail-collapse-arrow {
  transform: rotate(-135deg);
}

.detail-collapse-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 12px 12px;
}

@media (max-width: 1024px) {
  .detail-content {
    grid-template-columns: 1fr;
  }
}

.detail-main-area {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.detail-main {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.detail-section {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #f0f0f0;
}

.detail-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 10px;
}

.section-title svg {
  color: #6366f1;
}

.detail-info-grid-full {
  grid-template-columns: 1fr !important;
}

.detail-info-wide {
  grid-column: span 2;
}

.detail-info-wide .value {
  white-space: pre-wrap;
  line-height: 1.5;
}

.detail-card {
  background: #fff;
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
  border: 1px solid #e5e7eb;
}

.detail-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}

.detail-card-header .detail-id {
  flex-shrink: 0;
}

.detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  min-width: 0;
}

.detail-badges > span {
  flex: 0 0 auto;
  max-width: 100%;
}

.detail-id {
  font-size: 14px;
  color: #9ca3af;
  font-weight: 600;
}

.detail-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px 8px;
  padding: 8px;
  background: #f9fafb;
  border-radius: 8px;
  margin-bottom: 8px;
}

.detail-info-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.detail-info-item .label {
  font-size: 13px;
  color: #6b7280;
}

.detail-info-item .value {
  font-size: 15px;
  color: #1f2937;
  font-weight: 500;
}

.detail-job-section h4 {
  font-size: 13px;
  color: #374151;
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid #f3f4f6;
}

.detail-job-content {
  font-size: 14px;
  line-height: 1.5;
  color: #4b5563;
  white-space: pre-wrap;
  max-height: 280px;
  overflow-y: auto;
  padding: 8px;
  background: #fafafa;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
}

.detail-comments-section {
  background: #fff;
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.04);
  border: 1px solid #e5e7eb;
}

.detail-comments-section h4 {
  font-size: 13px;
  color: #374151;
  margin-bottom: 10px;
}

.detail-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.detail-miniapp-panel {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid #dbeafe;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 4px 20px rgba(37, 99, 235, 0.08);
}

.detail-miniapp-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.detail-miniapp-header h4 {
  margin: 0;
  font-size: 16px;
  color: #1d4ed8;
  font-weight: 600;
}

.detail-miniapp-flag {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  color: #92400e;
  background: #fef3c7;
}

.detail-miniapp-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.detail-miniapp-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: #2563eb;
}

.detail-miniapp-badge-muted {
  background: #e5e7eb;
  color: #475569;
}

.detail-miniapp-badge-success {
  background: #dcfce7;
  color: #166534;
}

.detail-miniapp-badge-warning {
  background: #fef3c7;
  color: #92400e;
}

.detail-miniapp-badge-danger {
  background: #fee2e2;
  color: #b91c1c;
}

.detail-miniapp-tip {
  font-size: 13px;
  color: #475569;
  line-height: 1.5;
  margin-bottom: 12px;
}

.detail-miniapp-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.detail-miniapp-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.detail-miniapp-item-wide {
  grid-column: 1 / -1;
}

.detail-miniapp-item .label {
  font-size: 12px;
  color: #64748b;
  font-weight: 600;
}

.detail-miniapp-item input,
.detail-miniapp-item select,
.detail-miniapp-item textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font-size: 13px;
  color: #0f172a;
  background: #fff;
}

.detail-miniapp-item textarea {
  resize: vertical;
  min-height: 96px;
  font-family: inherit;
}

.detail-miniapp-checkbox {
  padding: 10px 12px;
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 10px;
}

.detail-miniapp-checkbox label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #334155;
}

.detail-miniapp-actions,
.detail-miniapp-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.detail-miniapp-actions button,
.detail-miniapp-footer button {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #334155;
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.detail-miniapp-actions button:hover,
.detail-miniapp-footer button:hover {
  background: #f8fafc;
}

.detail-miniapp-actions .btn-detail-miniapp-primary,
.detail-miniapp-footer .btn-detail-miniapp-primary {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  border-color: #1d4ed8;
  color: #fff;
}

.detail-miniapp-msg {
  min-height: 20px;
  margin-top: 10px;
  font-size: 12px;
  color: #2563eb;
}

.detail-miniapp-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 6px;
  font-size: 12px;
  color: #64748b;
}

.detail-miniapp-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.detail-miniapp-stat {
  background: #fff;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  padding: 12px 8px;
  text-align: center;
}

.detail-miniapp-stat .value {
  display: block;
  font-size: 22px;
  font-weight: 700;
  color: #0f172a;
}

.detail-miniapp-stat .label {
  display: block;
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}

@media (max-width: 640px) {
  .detail-miniapp-grid {
    grid-template-columns: 1fr;
  }
  .detail-miniapp-stats {
    grid-template-columns: 1fr;
  }
}

.ai-analysis-section {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
  border: 1px solid #dfe5ef;
  position: sticky;
  top: 20px;
}

.ai-analysis-section h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  color: #312e81;
  margin: 0;
  font-weight: 700;
}

.ai-analysis-section h4::before {
  content: none;
}

.ai-analysis-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.ai-analysis-title-wrap {
  min-width: 0;
}

.ai-analysis-title-wrap p,
.ai-analysis-intro {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.5;
}

.ai-analysis-intro {
  margin-bottom: 12px;
}

.ai-analysis-mode {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.ai-btns {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.ai-btns button {
  flex: 1;
  min-height: 44px;
  padding: 10px 16px;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: box-shadow 0.2s ease, background 0.2s ease, opacity 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ai-btns button:hover {
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}

.ai-btns button:focus-visible,
.order-ai-error button:focus-visible,
.case-resume-status-control select:focus-visible {
  outline: 3px solid rgba(99, 102, 241, 0.22);
  outline-offset: 2px;
}

.ai-btns button:disabled {
  cursor: wait;
  opacity: 0.62;
  box-shadow: none;
}

.ai-hint {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  background: #fef3c7;
  border-radius: 8px;
  color: #92400e;
  font-size: 13px;
  margin-bottom: 12px;
}

.ai-hint svg {
  flex-shrink: 0;
}

.ai-result {
  font-size: 13px;
  line-height: 1.6;
}

.btn-ai {
  flex: 1;
  padding: 10px 16px;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-ai:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}

.btn-ai.btn-ai-secondary {
  background: #f3f4f6;
  color: #4b5563;
}

.btn-ai.btn-ai-secondary:hover {
  background: #e5e7eb;
  box-shadow: none;
  transform: none;
}

.ai-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px 12px;
  color: #6366f1;
  font-size: 14px;
}

.ai-loading .spinner {
  width: 20px;
  height: 20px;
  border: 2px solid #e5e7eb;
  border-top-color: #6366f1;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.ai-result {
  overflow-y: auto;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.order-ai-empty {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px;
  border: 1px dashed #c7d2fe;
  border-radius: 10px;
  background: #f8faff;
  color: #475569;
}

.order-ai-empty svg {
  flex: 0 0 auto;
  color: #6366f1;
}

.order-ai-empty p {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
}

.order-ai-summary-card {
  padding: 14px;
  border-radius: 10px;
  background: linear-gradient(135deg, #eef2ff 0%, #f8fafc 100%);
  border: 1px solid #c7d2fe;
}

.order-ai-eyebrow {
  display: block;
  margin-bottom: 6px;
  color: #4f46e5;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.order-ai-summary-card p {
  margin: 0;
  color: #1e293b;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.6;
}

.order-ai-summary-card time {
  display: block;
  margin-top: 8px;
  color: #64748b;
  font-size: 11px;
}

.order-ai-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.order-ai-metrics > div {
  min-width: 0;
  padding: 10px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
  text-align: center;
}

.order-ai-metrics strong,
.order-ai-metrics span {
  display: block;
}

.order-ai-metrics strong {
  color: #0f172a;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}

.order-ai-metrics span {
  margin-top: 2px;
  color: #64748b;
  font-size: 11px;
}

.order-ai-metrics .metric-won { border-color: #bbf7d0; background: #f0fdf4; }
.order-ai-metrics .metric-won strong { color: #15803d; }
.order-ai-metrics .metric-near { border-color: #ddd6fe; background: #f5f3ff; }
.order-ai-metrics .metric-near strong { color: #6d28d9; }
.order-ai-metrics .metric-eliminated { border-color: #fecdd3; background: #fff1f2; }
.order-ai-metrics .metric-eliminated strong { color: #be123c; }

.order-ai-block {
  padding-top: 14px;
  margin-top: 14px;
  border-top: 1px solid #e8edf4;
}

.order-ai-block-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 9px;
}

.order-ai-block-title h5 {
  margin: 0;
  color: #1e293b;
  font-size: 13px;
  font-weight: 750;
}

.order-ai-block-title span {
  color: #94a3b8;
  font-size: 11px;
}

.order-ai-status-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.order-ai-status-group {
  min-width: 0;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.order-ai-status-group.tone-won { border-top: 3px solid #22c55e; }
.order-ai-status-group.tone-near { border-top: 3px solid #8b5cf6; }
.order-ai-status-group.tone-eliminated { border-top: 3px solid #f43f5e; }

.order-ai-status-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #475569;
  font-size: 11px;
}

.order-ai-status-head strong {
  color: #0f172a;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.order-ai-name-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.order-ai-name-chip,
.order-ai-name-more {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 3px 6px;
  border-radius: 6px;
  background: #fff;
  color: #334155;
  font-size: 11px;
}

.order-ai-name-more,
.order-ai-none {
  color: #94a3b8;
  font-size: 11px;
}

.order-ai-candidate-list,
.order-ai-plan-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.order-ai-candidate-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, .72fr);
  gap: 10px;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
}

.order-ai-candidate-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.order-ai-candidate-title strong {
  color: #0f172a;
  font-size: 13px;
}

.order-ai-candidate-row p,
.order-ai-plan-row p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.5;
}

.order-ai-priority,
.order-ai-fit {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 750;
}

.order-ai-priority { background: #e2e8f0; color: #475569; }
.order-ai-priority.priority-p0 { background: #fee2e2; color: #b91c1c; }
.order-ai-priority.priority-p1 { background: #fef3c7; color: #92400e; }
.order-ai-priority.priority-p2 { background: #dbeafe; color: #1d4ed8; }
.order-ai-fit { background: #f1f5f9; color: #475569; font-weight: 600; }

.order-ai-next-action {
  padding: 8px;
  border-radius: 8px;
  background: #f8fafc;
  color: #334155;
  font-size: 11px;
  line-height: 1.5;
}

.order-ai-next-action span {
  display: block;
  margin-bottom: 3px;
  color: #6366f1;
  font-size: 10px;
  font-weight: 750;
}

.order-ai-plan-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: start;
  padding: 10px;
  border-radius: 9px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.order-ai-plan-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #4f46e5;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.order-ai-plan-row strong {
  color: #1e293b;
  font-size: 12px;
  line-height: 1.5;
}

.order-ai-alert {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #fed7aa;
  border-radius: 9px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 12px;
}

.order-ai-alert > strong {
  display: block;
  margin-bottom: 5px;
}

.order-ai-alert ul,
.order-ai-details ul {
  margin: 5px 0 0 17px;
  padding: 0;
}

.order-ai-alert li,
.order-ai-details li {
  margin-bottom: 3px;
  line-height: 1.5;
}

.order-ai-details {
  margin-top: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
}

.order-ai-details summary {
  padding: 10px 12px;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.order-ai-focus-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 0 12px 12px;
}

.order-ai-focus-grid > div,
.order-ai-details-body {
  min-width: 0;
  padding: 9px;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  font-size: 11px;
}

.order-ai-focus-grid strong {
  display: block;
  margin-bottom: 4px;
  color: #334155;
}

.order-ai-details-body {
  margin: 0 12px 12px;
}

.order-ai-inline-empty,
.order-ai-scope-note {
  margin: 0;
  padding: 10px;
  color: #94a3b8;
  font-size: 11px;
  text-align: center;
}

.order-ai-scope-note {
  padding-bottom: 0;
}

.order-ai-error {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.order-ai-error button {
  min-height: 36px;
  margin-top: 4px;
  padding: 7px 12px;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff;
  color: #b91c1c;
  cursor: pointer;
}

@media (max-width: 760px) {
  .order-ai-status-grid,
  .order-ai-focus-grid {
    grid-template-columns: 1fr;
  }
  .order-ai-candidate-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 460px) {
  .order-ai-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ai-section {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #f3f4f6;
}

.ai-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.ai-section h5 {
  font-size: 13px;
  color: #6366f1;
  margin-bottom: 10px;
  font-weight: 600;
}

.ai-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.ai-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  background: #f9fafb;
  border-radius: 6px;
}

.ai-item .label {
  font-size: 11px;
  color: #9ca3af;
}

.ai-item .value {
  font-size: 13px;
  color: #1f2937;
}

.ai-list {
  font-size: 13px;
  color: #4b5563;
  margin-top: 10px;
}

.ai-list strong {
  color: #374151;
}

.ai-list ul {
  margin: 6px 0 0 16px;
  padding: 0;
}

.ai-list li {
  margin-bottom: 4px;
  line-height: 1.5;
}

.ai-content {
  font-size: 13px;
  color: #4b5563;
  line-height: 1.6;
}

.ai-content p {
  margin-bottom: 6px;
}

.ai-tags {
  font-size: 13px;
  margin-top: 10px;
}

.ai-tags .tag {
  display: inline-block;
  padding: 3px 8px;
  background: #eef2ff;
  color: #6366f1;
  border-radius: 4px;
  font-size: 12px;
  margin: 2px 4px 2px 0;
}

.ai-warning {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 8px;
  padding: 12px;
}

.ai-warning h5 {
  color: #d97706;
}

.ai-warning ul {
  margin: 6px 0 0 16px;
  padding: 0;
  font-size: 13px;
  color: #92400e;
}

.ai-error {
  padding: 16px;
  background: #fef2f2;
  color: #dc2626;
  border-radius: 8px;
  font-size: 13px;
  text-align: center;
}

.ai-filled {
  color: #6366f1 !important;
  font-style: italic;
}

.ai-empty {
  padding: 24px;
  text-align: center;
  color: #9ca3af;
  font-size: 13px;
}

.order-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.order-card-new {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
  transition: all 0.2s ease;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.order-card-new:hover {
  border-color: #3b82f6;
  box-shadow: 0 6px 20px rgba(59,130,246,0.15);
  transform: translateY(-2px);
}
.order-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 14px 16px 10px;
  gap: 12px;
}
.order-company-name {
  font-size: 16px;
  font-weight: 700;
  color: #1e40af;
  flex-shrink: 0;
  max-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.order-positions-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  justify-content: flex-end;
  flex: 1;
  min-width: 0;
}
.order-position-item {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: linear-gradient(135deg, #dbeafe 0%, #e0e7ff 100%);
  color: #1e40af;
  font-size: 13px;
  font-weight: 600;
  border-radius: 4px;
  border: 1px solid #bfdbfe;
}
.order-position-more {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 12px;
  border-radius: 4px;
  cursor: pointer;
  border: 1px solid #e2e8f0;
}
.order-position-more:hover {
  background: #e2e8f0;
}
.order-info-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 6px 12px;
  padding: 10px 16px;
  background: #f8fafc;
  border-top: 1px solid #f1f5f9;
  border-bottom: 1px solid #f1f5f9;
}
@media (max-width: 1400px) {
  .order-info-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 900px) {
  .order-info-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.order-info-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
}
.order-info-item .label {
  color: #64748b;
  flex-shrink: 0;
}
.order-info-item .value {
  color: #1e293b;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.order-contacts-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  padding: 10px 16px;
  font-size: 13px;
}
.order-contact-item {
  display: flex;
  align-items: center;
  gap: 4px;
}
.order-contact-item .label {
  color: #94a3b8;
}
.order-contact-item .value {
  color: #334155;
  font-weight: 500;
}
.order-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: #f8fafc;
  border-top: 1px solid #f1f5f9;
  gap: 10px;
  flex-wrap: wrap;
}
.order-footer-left {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.order-tag-type {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: #fff;
  color: #1e40af;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid #3b82f6;
}
.order-tag-status {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
}
.order-tag-status.cooperated {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}
.order-tag-status.bd-ing {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fcd34d;
}
.order-tag-status.not-cooperated {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}
.order-tag-draft {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: #fef3c7;
  color: #92400e;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid #fcd34d;
}
.order-tag-published {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: #d1fae5;
  color: #065f46;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid #6ee7b7;
}

.order-tag-paused {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: #fef3c7;
  color: #92400e;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid #fcd34d;
}

.order-tag-offline {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: #e5e7eb;
  color: #475569;
  font-size: 12px;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid #cbd5e1;
}
.order-footer-right {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}
.order-footer-subject {
  font-size: 12px;
  color: #64748b;
}
.order-footer-subject .value {
  color: #334155;
  font-weight: 500;
}
.order-author-mini {
  display: flex;
  align-items: center;
  gap: 6px;
}
.order-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
}
.order-author-mini .name {
  font-size: 12px;
  color: #334155;
  font-weight: 500;
}
.order-author-mini .time {
  font-size: 11px;
  color: #94a3b8;
}
.order-view-btn {
  padding: 6px 16px;
  background: #3b82f6;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s;
}
.order-view-btn:hover {
  background: #2563eb;
}

.checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 8px 0;
}

.checkbox-group label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
}

.checkbox-group input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.section-divider {
  border-top: 1px solid #e5e7eb;
  padding-top: 12px;
  margin-top: 8px;
}

.section-subtitle {
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 4px;
}

.order-lead-note {
  font-size: 12px;
  color: #6b7280;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-lead-note-label {
  color: #9ca3af;
}

.case-status-badge.status-cooperated {
  background: #dcfce7;
  color: #166534;
}

.case-status-badge.status-bd-ing {
  background: #fef3c7;
  color: #92400e;
}

.order-tag-status.not-cooperated,
.case-status-badge.status-not-cooperated {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

.order-tag-draft {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 12px;
  font-weight: 500;
  border-radius: 3px;
  border: 1px solid #e2e8f0;
}

.order-tag-published {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: #dbeafe;
  color: #1e40af;
  font-size: 12px;
  font-weight: 500;
  border-radius: 3px;
  border: 1px solid #93c5fd;
}

.order-footer-subject {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #64748b;
}

.order-footer-subject-label {
  color: #94a3b8;
}

.order-footer-subject-value {
  color: #334155;
  font-weight: 500;
}

.order-view-btn {
  padding: 6px 14px;
  background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.order-view-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(59,130,246,0.35);
}

.order-update-time {
  font-size: 10px;
  color: #94a3b8;
  margin-left: auto;
  margin-right: 8px;
}

.case-industry-badge, .case-city-badge, .case-position-badge {
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
}

.case-industry-badge {
  background: #dbeafe;
  color: #1e40af;
}

.case-city-badge {
  background: #e0e7ff;
  color: #3730a3;
}

.case-position-badge {
  background: #dbeafe;
  color: #1e40af;
}

.case-status-badge.status-active {
  background: #dcfce7;
  color: #166534;
}

.case-status-badge.status-inactive {
  background: #fef3c7;
  color: #92400e;
}

/* ==================== 文档中心样式 ==================== */
.doc-layout {
  display: flex;
  gap: 24px;
  min-height: 600px;
}

.doc-sidebar {
  width: 220px;
  flex-shrink: 0;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  padding: 16px;
}

.doc-sidebar-header {
  font-weight: 600;
  color: #374151;
  font-size: 14px;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #f3f4f6;
}

.doc-category-tabs {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.doc-category-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  color: #6b7280;
  transition: all 0.15s;
}

.doc-category-tab:hover {
  background: #f3f4f6;
  color: #374151;
}

.doc-category-tab.active {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
  color: #ea580c;
  font-weight: 500;
}

.doc-category-tab svg {
  flex-shrink: 0;
}

.doc-admin-section {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #f3f4f6;
}

.doc-add-category {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.doc-add-category input {
  flex: 1;
  height: 32px;
  font-size: 13px;
}

.doc-add-category button {
  width: 32px;
  height: 32px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.doc-cat-manage-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 8px;
  border-radius: 6px;
  font-size: 13px;
}

.doc-cat-manage-item:hover {
  background: #f3f4f6;
}

.doc-cat-manage-item button {
  width: 20px;
  height: 20px;
  padding: 0;
  font-size: 14px;
  line-height: 1;
}

.doc-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.doc-upload-section {
  background: linear-gradient(135deg, #fefce8 0%, #fef9c3 100%);
  border: 1px dashed #facc15;
}

.doc-upload-section h3 {
  margin: 0 0 12px;
  font-size: 15px;
  color: #854d0e;
}

.doc-view-section {
  flex: 1;
}

.doc-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.doc-toolbar h3 {
  margin: 0;
  font-size: 16px;
  color: #1f2937;
}

.doc-toolbar-right {
  display: flex;
  gap: 12px;
}

.doc-toolbar-right input {
  width: 200px;
}

.doc-file-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.doc-file-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  transition: all 0.15s;
}

.doc-file-item:hover {
  border-color: #f97316;
  box-shadow: 0 2px 8px rgba(249,115,22,0.1);
}

.doc-file-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.doc-file-info {
  flex: 1;
  min-width: 0;
}

.doc-file-name {
  font-weight: 600;
  color: #1f2937;
  font-size: 14px;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.doc-file-meta {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: #9ca3af;
}

.doc-file-category {
  background: #f3f4f6;
  padding: 2px 8px;
  border-radius: 4px;
  color: #6b7280;
}

.doc-file-desc {
  margin-top: 6px;
  font-size: 13px;
  color: #6b7280;
}

.doc-file-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.btn-icon {
  width: 32px;
  height: 32px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
}

.btn-icon:hover {
  background: #f3f4f6;
  border-color: #d1d5db;
}

.btn-icon.btn-danger:hover {
  background: #fef2f2;
  border-color: #fecaca;
  color: #dc2626;
}

.btn-icon svg {
  stroke: #6b7280;
}

.btn-icon:hover svg {
  stroke: #374151;
}

.btn-icon.btn-danger:hover svg {
  stroke: #dc2626;
}

.doc-empty {
  text-align: center;
  padding: 60px 20px;
  color: #9ca3af;
}

.doc-preview-modal .modal-content {
  max-width: 90vw;
  width: 900px;
  max-height: 90vh;
}

.doc-preview-modal .modal-body {
  min-height: 400px;
  max-height: calc(90vh - 80px);
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.doc-preview-modal .modal-body img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
}

.doc-preview-modal .modal-body iframe {
  width: 100%;
  height: 80vh;
  border: none;
}

.doc-preview-loading,
.doc-preview-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 320px;
  color: #64748b;
  text-align: center;
}

.doc-preview-loading > span {
  width: 28px;
  height: 28px;
  border: 3px solid #dbeafe;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: plugin-download-spin .75s linear infinite;
}

.doc-preview-loading p,
.doc-preview-error p { margin: 0; }

.doc-preview-error > span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: #dc2626;
  font-size: 24px;
  font-weight: 700;
  background: #fef2f2;
  border-radius: 50%;
}

.doc-preview-error strong { color: #1f2937; font-size: 17px; }
.doc-preview-error button { margin-top: 8px; }

.doc-text-preview {
  align-self: stretch;
  width: 100%;
  min-height: 360px;
  margin: 0;
  padding: 20px;
  overflow: auto;
  color: #1f2937;
  font: 14px/1.75 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-align: left;
  white-space: pre-wrap;
  word-break: break-word;
  background: #f8fafc;
  border-radius: 10px;
  box-sizing: border-box;
}

.doc-html-preview {
  padding: 20px;
  background: #fff;
  width: 100%;
}

.doc-download-hint {
  text-align: center;
  padding: 40px;
  color: #6b7280;
}

.doc-download-hint p {
  margin: 16px 0;
}

.doc-download-hint button {
  margin-top: 12px;
}

.loading {
  text-align: center;
  padding: 40px;
  color: #9ca3af;
}

@media (max-width: 768px) {
  .doc-layout {
    flex-direction: column;
  }
  .doc-sidebar {
    width: 100%;
  }
  .doc-category-tabs {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
  }
  .doc-category-tab {
    padding: 8px 12px;
  }
  .doc-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .doc-toolbar-right {
    flex-direction: column;
  }
  .doc-toolbar-right input {
    width: 100%;
  }
  .doc-file-item {
    flex-wrap: wrap;
  }
  .doc-file-actions {
    width: 100%;
    justify-content: flex-end;
    margin-top: 8px;
  }
}


.att-list { display: flex; flex-direction: column; gap: 8px; }
.att-item { display: flex; align-items: center; gap: 12px; padding: 8px 12px; background: #f9fafb; border-radius: 6px; flex-wrap: wrap; }
.att-item .att-type-badge { flex: none; padding: 2px 8px; border-radius: 999px; background: #e0e7ff; color: #4338ca; font-size: 12px; font-weight: 600; }
.att-item.is-company-inherited { border-color: #bfdbfe; background: #f8fbff; }
.att-item .att-sync-note { flex: none; color: #64748b; font-size: 11px; }
.att-item.is-company-inherited .att-type-badge { background: #dbeafe; color: #1d4ed8; }
.att-item .att-name { flex: 1; font-size: 14px; color: #374151; word-break: break-all; }
.att-item .btn-link { font-size: 13px; color: #3b82f6; text-decoration: none; cursor: pointer; background: none; border: none; padding: 0; }
.att-item .btn-link:hover { text-decoration: none; background: #f3f4f6; }
.att-item .att-ai-result { width: 100%; margin-top: 8px; padding: 10px 12px; background: #f0fdf4; border-radius: 6px; font-size: 13px; color: #166534; line-height: 1.6; white-space: pre-wrap; }
.detail-attachments-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e5e7eb; }
.detail-attachments-section h4 { margin: 0 0 12px 0; font-size: 15px; color: #374151; }
.detail-resumes-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e5e7eb; }
.detail-resumes-section h4 { margin: 0 0 12px 0; font-size: 15px; color: #374151; }
.btn-upload-resume-mini { display: inline-flex; align-items: center; gap: 4px; padding: 4px 12px; font-size: 12px; background: #3b82f6; color: #fff; border: none; border-radius: 6px; cursor: pointer; margin-left: auto; }
.btn-upload-resume-mini:hover { background: #2563eb; }
.case-rec-ledger { margin-bottom: 12px; }
.case-rec-ledger-head { font-size: 13px; font-weight: 600; color: #374151; margin-bottom: 6px; }
.case-rec-ledger-scroll { max-height: 60vh; overflow-y: auto; border: 1px solid #e5e7eb; border-radius: 8px; }
.case-rec-ledger table { border-collapse: collapse; table-layout: fixed; width: 100%; font-size: 11px; }
.case-rec-ledger thead th { position: sticky; top: 0; background: #f8fafc; color: #374151; font-weight: 600; padding: 6px 6px; border-bottom: 1px solid #e5e7eb; text-align: left; z-index: 1; }
.case-rec-ledger tbody td { padding: 6px 6px; border-bottom: 1px solid #f3f4f6; color: #4b5563; white-space: normal; word-break: break-all; line-height: 1.5; vertical-align: top; }
.case-rec-ledger tbody tr:hover { background: #f9fafb; }
.case-rec-ledger .crl-name { font-weight: 600; color: #111827; }
.case-rec-ledger .crl-name-link { color: #2563eb; text-decoration: none; cursor: pointer; }
.case-rec-ledger .crl-name-link:hover { text-decoration: underline; }
.case-rec-ledger .crl-no-resume { display: block; margin-top: 2px; color: #9ca3af; font-size: 10px; font-weight: 400; }
.case-resumes-list { display: flex; flex-direction: column; gap: 8px; }
.case-resume-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: #f9fafb; border-radius: 8px; border: 1px solid #e5e7eb; border-left-width: 3px; }
.case-resume-item:hover { border-color: #3b82f6; background: #eff6ff; }
.case-resume-item.case-resume-status-won { border-left-color: #22c55e; }
.case-resume-item.case-resume-status-near_onboard { border-left-color: #8b5cf6; }
.case-resume-item.case-resume-status-eliminated { border-left-color: #f43f5e; }
.case-resume-item.case-resume-status-active { border-left-color: #3b82f6; }
.case-resume-avatar { width: 36px; height: 36px; border-radius: 50%; background: #dbeafe; color: #2563eb; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; flex-shrink: 0; }
.case-resume-info { flex: 1; min-width: 0; cursor: pointer; }
.case-resume-name-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.case-resume-name { font-size: 14px; font-weight: 600; color: #1f2937; }
.case-resume-meta { font-size: 12px; color: #6b7280; margin-top: 2px; }
.case-resume-status-badge { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 7px; border-radius: 999px; background: #dbeafe; color: #1d4ed8; font-size: 11px; font-weight: 700; }
.case-resume-status-badge.status-won { background: #dcfce7; color: #166534; }
.case-resume-status-badge.status-near_onboard { background: #ede9fe; color: #6d28d9; }
.case-resume-status-badge.status-eliminated { background: #ffe4e6; color: #be123c; }
.case-resume-status-note { margin-top: 5px; color: #475569; font-size: 12px; line-height: 1.45; }
.case-resume-status-control { display: flex; flex-direction: column; gap: 4px; flex: 0 0 116px; color: #64748b; font-size: 11px; }
.case-resume-status-control select { width: 100%; min-height: 36px; padding: 6px 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155; font-size: 12px; cursor: pointer; }
.case-resume-actions { display: flex; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.case-resume-actions .btn-link { min-height: 36px; padding: 6px 8px; border-radius: 7px; }
.case-resume-actions .btn-link:hover { background: #e2e8f0; }
.case-resume-actions .btn-link-danger { color: #dc2626; }
.upload-progress-bar { padding: 10px 14px; background: #eff6ff; border-radius: 8px; margin-bottom: 10px; font-size: 13px; color: #2563eb; }
.no-resumes { padding: 16px; text-align: center; color: #9ca3af; font-size: 13px; }

@media (max-width: 760px) {
  .case-resume-item { align-items: flex-start; flex-wrap: wrap; }
  .case-resume-info { flex: 1 1 calc(100% - 52px); }
  .case-resume-status-control { flex: 1 1 150px; margin-left: 48px; }
  .case-resume-actions { width: 100%; justify-content: flex-end; }
}

/* ==================== 新版订单发布弹窗样式 ==================== */
.order-modal-new {
  width: min(96vw, 1280px);
  max-width: 1280px;
  max-height: 92vh;
}
.order-modal-new .modal-header { padding: 20px 26px; }
.order-modal-new .modal-header h3 { font-size: 20px; }
.order-modal-new .close-modal { width: 36px; height: 36px; font-size: 20px; }
.order-modal-new .modal-body { padding: 18px 26px; }
.order-section { margin-bottom: 16px; }
.order-section .section-title { font-size: 13px; font-weight: 600; color: #6b7280; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.4px; }

.jd-dropzone-compact { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 8px 14px; border: 2px dashed #d1d5db; border-radius: 8px; cursor: pointer; background: #fafafa; transition: all 0.2s; margin-bottom: 8px; }
.jd-dropzone-compact:hover, .jd-dropzone-compact.dragover { border-color: #3b82f6; background: #eff6ff; }
.jd-dropzone-compact svg { width: 20px; height: 20px; color: #9ca3af; flex-shrink: 0; }
.jd-dropzone-compact span { font-size: 13px; color: #6b7280; }
.jd-dropzone-compact .hint { color: #9ca3af; font-size: 12px; margin-left: auto; }

.att-list-compact { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.att-list-compact .att-item { padding: 4px 10px; background: #e0e7ff; border-radius: 4px; font-size: 12px; color: #4338ca; }

.order-modal-new textarea { width: 100%; padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 13px; line-height: 1.5; resize: vertical; font-family: inherit; }
.order-modal-new textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.1); }
#modal-case-job { height: 72px; min-height: 72px; }

.modal-publish-mode { margin-bottom: 12px; padding: 10px; border: 1px solid #e5e7eb; border-radius: 9px; background: #f8fafc; }
.modal-publish-mode-label { font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 6px; }
.modal-publish-mode-switch { display: flex; gap: 10px; }
.modal-publish-mode-btn { flex: 1; height: 34px; border: 1px solid #cbd5e1; background: #fff; color: #475569; border-radius: 7px; font-size: 12px; font-weight: 600; }
.modal-publish-mode-btn.active { border-color: #2563eb; background: #2563eb; color: #fff; }
.modal-publish-mode-full-only { display: none; }

.modal-case-access { margin-bottom: 14px; padding: 12px; border: 1px solid #dbe4f0; border-radius: 10px; background: #f8fafc; }
.modal-case-access-label { margin-bottom: 10px; font-size: 13px; font-weight: 600; color: #334155; }
.modal-case-access-switch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.modal-case-access-btn { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-height: 54px; padding: 9px 12px; border: 1px solid #cbd5e1; border-radius: 7px; background: #fff; color: #475569; text-align: left; cursor: pointer; }
.modal-case-access-btn strong { font-size: 13px; color: inherit; }
.modal-case-access-btn span { font-size: 11px; color: #94a3b8; }
.modal-case-access-btn.active { border-color: #2563eb; background: #eff6ff; color: #1d4ed8; box-shadow: 0 0 0 1px rgba(37,99,235,.08); }
.modal-case-access-btn.active span { color: #3b82f6; }
.modal-case-team-note { margin-top: 10px; padding: 9px 10px; border-radius: 7px; background: #eef2ff; color: #475569; font-size: 11px; line-height: 1.5; }
.modal-case-team-note[hidden] { display: none; }
.modal-case-viewer-panel { margin-top: 10px; padding-top: 10px; border-top: 1px solid #e2e8f0; }
.modal-case-viewer-panel[hidden] { display: none; }
.modal-case-viewer-panel > input { width: 100%; height: 34px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 7px; font-size: 12px; background: #fff; }
.modal-case-viewer-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; max-height: 154px; margin-top: 8px; overflow-y: auto; }
.modal-case-viewer-item { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 7px 8px; border: 1px solid #e2e8f0; border-radius: 7px; background: #fff; cursor: pointer; }
.modal-case-viewer-item:has(input:checked) { border-color: #93c5fd; background: #eff6ff; }
.modal-case-viewer-item input { flex: 0 0 auto; }
.modal-case-viewer-text { display: flex; min-width: 0; flex-direction: column; }
.modal-case-viewer-text strong, .modal-case-viewer-text small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.modal-case-viewer-text strong { font-size: 12px; color: #334155; }
.modal-case-viewer-text small { font-size: 11px; color: #94a3b8; }
.modal-case-viewer-empty { grid-column: 1 / -1; padding: 16px; color: #94a3b8; font-size: 12px; text-align: center; }
.modal-case-viewer-summary { margin-top: 8px; color: #64748b; font-size: 11px; }

.ai-extract-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.btn-ai-extract { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 14px; background: linear-gradient(135deg, #10b981, #059669); color: #fff; border: none; border-radius: 6px; font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.2s; }
.btn-ai-extract:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(16,185,129,0.3); }
.btn-ai-extract svg { width: 14px; height: 14px; }
.btn-jump-miniapp { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; margin-left: auto; padding: 7px 14px; border: 1px solid #93b4f8; border-radius: 6px; background: #f8fbff; color: #2563eb; font-size: 12px; font-weight: 600; cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.btn-jump-miniapp:hover { border-color: #5f8ff2; background: #eef5ff; }
.extract-loading { font-size: 12px; color: #6b7280; }
.extract-msg { font-size: 12px; color: #10b981; }

.order-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.form-field { display: flex; flex-direction: column; gap: 4px; }
.form-field label { font-size: 12px; color: #6b7280; font-weight: 500; }
.form-field input, .form-field select, .form-field textarea { padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; background: #fff; }
.order-modal-new .form-field label { font-size: 12px; color: #6b7280; font-weight: 500; }
.order-modal-new .form-field input, .order-modal-new .form-field select, .order-modal-new .form-field textarea { min-height: 36px; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; background: #fff; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,0.1); }
.form-field textarea { resize: vertical; min-height: 60px; font-family: inherit; }
.form-field-wide { grid-column: span 2; }
.modal-company-picker { position: relative; z-index: 12; }
.modal-company-combobox { position: relative; }
.modal-company-combobox > input { width: 100%; }
.modal-company-suggestions { position: absolute; top: calc(100% + 5px); right: 0; left: 0; z-index: 45; max-height: 240px; padding: 5px; overflow-y: auto; border: 1px solid #d8e0ec; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16); }
.modal-company-suggestions[hidden] { display: none; }
.modal-company-suggestion { display: flex; width: 100%; min-height: 48px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; padding: 7px 10px; border: 0; border-radius: 6px; background: #fff; color: #334155; text-align: left; cursor: pointer; }
.modal-company-suggestion:hover, .modal-company-suggestion:focus-visible { outline: none; background: #eef5ff; }
.modal-company-suggestion strong { max-width: 100%; overflow: hidden; color: #1f2937; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.modal-company-suggestion span { color: #94a3b8; font-size: 11px; }
.modal-company-suggestion-empty { padding: 14px 10px; color: #94a3b8; font-size: 12px; text-align: center; }
.modal-company-prefill-hint { margin-top: 1px; color: #64748b; font-size: 11px; line-height: 1.4; }
.modal-company-prefill-hint.is-loading { color: #64748b; }
.modal-company-prefill-hint.is-success { color: #059669; }
.modal-company-prefill-hint.is-error { color: #dc2626; }
.modal-miniapp-copy { padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 8px; background: #f8fafc; }
.modal-miniapp-copy > summary { cursor: pointer; font-size: 13px; font-weight: 600; color: #374151; user-select: none; }
.modal-miniapp-copy[open] > summary { margin-bottom: 10px; }
.modal-miniapp-copy-fields { display: flex; flex-direction: column; gap: 10px; }
.form-field-checkbox { justify-content: flex-end; flex-direction: row; align-items: center; }
.form-field-checkbox label { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #374151; cursor: pointer; }

.order-modal-new .modal-footer { padding: 13px 24px; gap: 10px; justify-content: flex-end; }
.order-modal-new .modal-footer .message { margin-right: auto; font-size: 13px; color: #ef4444; }
.order-modal-new .btn-cancel { min-height: 38px; padding: 8px 17px; background: #f3f4f6; color: #374151; border: none; border-radius: 6px; font-size: 13px; cursor: pointer; }
.order-modal-new .btn-cancel:hover { background: #e5e7eb; }
.order-modal-new .btn-primary { min-height: 38px; padding: 8px 20px; background: linear-gradient(135deg, #3b82f6, #2563eb); color: #fff; border: none; border-radius: 6px; font-size: 13px; font-weight: 500; cursor: pointer; }
.order-modal-new .btn-primary:hover { box-shadow: 0 4px 12px rgba(59,130,246,0.3); }

@media (max-width: 600px) {
  .order-form-grid { grid-template-columns: 1fr; }
  .jd-dropzone-compact .hint { display: none; }
  .modal-publish-mode-switch { flex-direction: column; }
  .modal-case-access-switch, .modal-case-viewer-list { grid-template-columns: 1fr; }
}

.cases-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  background: #f9fafb;
  border-radius: 8px;
  margin-bottom: 12px;
}

.cases-filter select,
.cases-filter input {
  padding: 6px 10px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  font-size: 12px;
  background: #fff;
  min-width: 90px;
  height: 32px;
  box-sizing: border-box;
}

.cases-filter select:focus,
.cases-filter input:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59,130,246,0.1);
}

.cases-filter button {
  padding: 6px 12px;
  border: none;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.cases-filter #btn-cases-refresh {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  color: #fff;
}

.cases-filter #btn-cases-refresh:hover {
  box-shadow: 0 4px 12px rgba(59,130,246,0.3);
}

.cases-filter #btn-cases-reset {
  background: #f3f4f6;
  color: #374151;
}

.cases-filter #btn-cases-reset:hover {
  background: #e5e7eb;
}

@media (max-width: 768px) {
  .cases-filter {
    flex-direction: column;
    align-items: stretch;
  }
  .cases-filter select,
  .cases-filter input {
    width: 100%;
    min-width: unset;
  }
}

/* 共享订单：紧凑单行列表 */
.order-list-shell {
  --order-list-columns: 220px minmax(310px, 1.55fr) minmax(190px, 1fr) minmax(250px, 1.15fr) 130px 70px;
  overflow-x: auto;
  background: #fff;
  border: 1px solid #dfe7f1;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(15, 42, 80, 0.07);
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.order-list-heading,
.order-list-row {
  display: grid;
  grid-template-columns: var(--order-list-columns);
  align-items: center;
  gap: 14px;
  min-width: 1180px;
}

.order-list-heading {
  position: sticky;
  top: 0;
  z-index: 2;
  min-height: 42px;
  padding: 0 16px;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f7fc 100%);
  border-bottom: 1px solid #dfe7f1;
  color: #718096;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.order-list-shell .order-list {
  display: block;
}

.order-list-row {
  position: relative;
  min-height: 88px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid #edf1f6;
  box-sizing: border-box;
  cursor: pointer;
  transition: background 0.18s ease, box-shadow 0.18s ease;
}

.order-list-row:last-child {
  border-bottom: 0;
}

.order-list-row:nth-child(even) {
  background: #fcfdff;
}

.order-list-row::before {
  content: '';
  position: absolute;
  inset: 10px auto 10px 0;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: #2563eb;
  opacity: 0;
  transform: scaleY(0.6);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.order-list-row:hover,
.order-list-row:focus-visible {
  z-index: 1;
  outline: none;
  background: #f7faff;
  box-shadow: inset 0 0 0 1px #c7dafc, 0 5px 16px rgba(37, 99, 235, 0.08);
}

.order-list-row:hover::before,
.order-list-row:focus-visible::before {
  opacity: 1;
  transform: scaleY(1);
}

.order-list-primary,
.order-list-status,
.order-list-owner,
.order-owner-copy {
  min-width: 0;
}

.order-list-primary {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}

.order-list-shell .order-company-name {
  display: block;
  width: 100%;
  max-width: none;
  color: #12376d;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.order-list-shell .order-positions-wrap {
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
  justify-content: flex-start;
  overflow: hidden;
}

.order-list-shell .order-position-item,
.order-list-shell .order-position-more {
  min-width: 0;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 16px;
  white-space: nowrap;
}

.order-list-shell .order-position-item {
  max-width: 145px;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #1d4ed8;
  background: #eef5ff;
  border-color: #cfe0ff;
}

.order-list-shell .order-position-item.is-empty {
  color: #94a3b8;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.order-list-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
  min-width: 0;
}

.order-fact,
.order-list-contacts > div {
  display: flex;
  align-items: baseline;
  min-width: 0;
  gap: 6px;
}

.order-fact span,
.order-list-contacts span {
  flex: 0 0 auto;
  color: #94a3b8;
  font-size: 11px;
}

.order-fact strong,
.order-list-contacts strong {
  min-width: 0;
  overflow: hidden;
  color: #334155;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-list-contacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 12px;
  min-width: 0;
  padding-left: 14px;
  border-left: 1px solid #edf1f6;
}

.order-status-main,
.order-status-sub {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 5px;
}

.order-status-main {
  margin-bottom: 7px;
}

.order-status-sub {
  overflow: hidden;
}

.order-list-status .order-tag-type,
.order-list-status .order-tag-status,
.order-list-status .order-tag-draft,
.order-list-status .order-tag-published,
.order-list-status .order-tag-paused,
.order-list-status .order-tag-offline {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 10px;
  line-height: 17px;
  white-space: nowrap;
}

.order-list-owner {
  display: flex;
  align-items: center;
  gap: 9px;
}

.order-list-owner .order-avatar {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  background: linear-gradient(135deg, #174ea6 0%, #3b82f6 100%);
  box-shadow: 0 3px 8px rgba(37, 99, 235, 0.2);
}

.order-owner-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.order-owner-copy .name {
  overflow: hidden;
  color: #334155;
  font-size: 12px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-owner-copy .time {
  color: #94a3b8;
  font-size: 10px;
  white-space: nowrap;
}

.order-list-row .order-view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  gap: 2px;
  width: 66px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid #c9daf8;
  border-radius: 8px;
  background: #f5f9ff;
  box-shadow: none;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 600;
}

.order-list-row .order-view-btn:hover {
  border-color: #2563eb;
  background: #2563eb;
  box-shadow: 0 5px 12px rgba(37, 99, 235, 0.2);
  color: #fff;
  transform: translateY(-1px);
}

@media (max-width: 1280px) {
  .order-list-shell {
    --order-list-columns: 200px 310px 190px 250px 130px 70px;
  }
}

/* 共享订单：招聘项目表格视图 */
#channel-clients .client-company-header {
  align-items: flex-end;
}

.client-company-header > div {
  min-width: 0;
}

.client-company-header p {
  margin: 7px 0 0;
  color: #8b98aa;
  font-size: 13px;
}

#btn-client-companies-refresh {
  min-width: 72px;
  height: 34px;
  padding: 0 18px;
  border: 1px solid #d9e1ec;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 13px;
  cursor: pointer;
}

#btn-client-companies-refresh:hover:not(:disabled) {
  border-color: #8db5f5;
  background: #f2f7ff;
  color: #1d4ed8;
}

#btn-client-companies-refresh:disabled {
  cursor: wait;
  opacity: 0.65;
}

.client-company-body {
  padding: 0;
  overflow: hidden;
  border: 1px solid #dfe4eb;
  border-radius: 10px;
  background: #fff;
}

.client-company-summary {
  min-height: 42px;
  padding: 12px 18px;
  border-bottom: 1px solid #e4e8ee;
  color: #64748b;
  font-size: 13px;
}

.client-company-summary strong {
  color: #172033;
}

.client-company-table-wrap {
  min-height: 180px;
  overflow-x: auto;
}

.client-company-table-wrap.is-loading {
  opacity: 0.72;
}

.client-company-table {
  width: 100%;
  min-width: 1420px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #172033;
  font-size: 13px;
}

.client-company-table th,
.client-company-table td {
  height: 68px;
  padding: 12px 14px;
  border-bottom: 1px solid #e1e6ec;
  text-align: left;
  vertical-align: middle;
}

.client-company-table th {
  height: 56px;
  background: #f5f6f8;
  color: #263449;
  font-weight: 600;
  white-space: nowrap;
}

.client-company-col-name { width: 240px; }
.client-company-col-count { width: 92px; }
.client-company-col-money { width: 124px; }
.client-company-col-status { width: 104px; }
.client-company-col-type { width: 170px; }
.client-company-col-date { width: 116px; }

.client-company-table tbody tr:nth-child(even) {
  background: #fbfcfd;
}

.client-company-table tbody tr:hover {
  background: #f2f6ff;
}

.client-company-table tbody tr:last-child td {
  border-bottom: 0;
}

.client-company-table .is-number {
  text-align: center;
}

.client-company-table .is-money {
  text-align: right;
  white-space: nowrap;
}

.client-company-table .is-received {
  color: #059669;
  font-weight: 600;
}

.client-company-table .is-offer-performance {
  color: #1d4ed8;
  font-weight: 600;
}

.client-company-table .is-pending {
  color: #d97706;
  font-weight: 600;
}

.client-company-name {
  overflow: hidden;
  color: #0f3b72;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-type {
  display: inline-block;
  max-width: 100%;
  padding: 4px 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef5ff;
  color: #2563eb;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 10px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.client-company-status.is-cooperated {
  border-color: #bbf7d0;
  background: #ecfdf5;
  color: #047857;
}

.client-company-status.is-bd {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #2563eb;
}

.client-company-status.is-not-cooperated {
  border-color: #e2e8f0;
  background: #f8fafc;
  color: #64748b;
}

.client-company-status.is-unset {
  border-color: #fde68a;
  background: #fffbeb;
  color: #b45309;
}

.client-company-loading,
.client-company-empty {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: #94a3b8;
  font-size: 13px;
}

.client-company-empty.is-error {
  color: #dc2626;
}

.client-company-empty.is-permission {
  min-height: 240px;
  color: #64748b;
}

.client-company-permission-message {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 7px;
  text-align: center;
}

.client-company-permission-message strong {
  color: #475569;
  font-size: 14px;
}

.client-company-permission-message small {
  color: #94a3b8;
  font-size: 12px;
}

.client-company-permission-action {
  min-height: 34px;
  margin-top: 5px;
  padding: 0 15px;
  border: 1px solid #2563eb;
  border-radius: 7px;
  background: #2563eb;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-permission-action:hover {
  border-color: #1d4ed8;
  background: #1d4ed8;
}

.client-company-permission-icon {
  position: relative;
  width: 34px;
  height: 29px;
  margin-bottom: 3px;
  border: 2px solid #a8b7cb;
  border-radius: 7px;
  box-sizing: border-box;
}

.client-company-permission-icon::before {
  position: absolute;
  bottom: 22px;
  left: 7px;
  width: 16px;
  height: 13px;
  border: 2px solid #a8b7cb;
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
  box-sizing: border-box;
  content: '';
}

.client-company-permission-icon::after {
  position: absolute;
  top: 9px;
  left: 14px;
  width: 3px;
  height: 8px;
  border-radius: 2px;
  background: #a8b7cb;
  content: '';
}

.client-company-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-height: 48px;
  padding: 8px 16px;
  border-top: 1px solid #e4e8ee;
  color: #64748b;
  font-size: 12px;
}

.client-company-pagination:empty {
  display: none;
}

.client-company-pagination button {
  height: 30px;
  padding: 0 13px;
  border: 1px solid #d8dee7;
  border-radius: 7px;
  background: #fff;
  color: #334155;
  cursor: pointer;
}

.client-company-pagination button:hover:not(:disabled) {
  border-color: #8db5f5;
  color: #2563eb;
}

.client-company-pagination button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

/* 客户公司列表美化 v2 */
#channel-clients .client-company-header {
  align-items: flex-start;
  margin-bottom: 16px;
}

.client-company-body {
  padding: 0;
  border: 1px solid #e2e7ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(31, 47, 70, 0.04);
}

.client-company-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 50px;
  margin-bottom: 0;
  padding: 8px 16px;
  border-bottom: 1px solid #dfe5ec;
  box-sizing: border-box;
}

.client-company-toolbar-fields {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.client-company-toolbar select,
.client-company-toolbar input {
  height: 34px;
  border: 1px solid #d7dde7;
  border-radius: 8px;
  background: #fff;
  color: #263449;
  font-size: 13px;
  outline: none;
}

.client-company-toolbar select {
  min-width: 150px;
  padding: 0 34px 0 12px;
}

.client-company-toolbar input {
  width: 240px;
  padding: 0 12px;
}

.client-company-toolbar input::placeholder {
  color: #9ca8b8;
}

.client-company-toolbar select:focus,
.client-company-toolbar input:focus {
  border-color: #6d9df5;
  box-shadow: 0 0 0 3px rgba(72, 126, 240, 0.12);
}

.client-company-toolbar button {
  height: 32px;
  padding: 0 15px;
  border: 0;
  border-radius: 7px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.client-company-toolbar button:hover:not(:disabled) {
  box-shadow: 0 5px 12px rgba(63, 85, 210, 0.22);
  transform: translateY(-1px);
}

.client-company-toolbar button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.client-company-search-btn {
  background: #477ff0;
}

.client-company-refresh-btn {
  background: #6652e8;
}

.client-company-filter-control {
  position: relative;
}

.client-company-toolbar .client-company-filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #d5ddea;
  background: #fff;
  color: #53657d;
  box-shadow: none;
}

.client-company-toolbar .client-company-filter-btn svg {
  width: 15px;
  height: 15px;
  stroke-linecap: round;
}

.client-company-toolbar .client-company-filter-btn em {
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: #377cf2;
  color: #fff;
  font-size: 11px;
  font-style: normal;
  line-height: 18px;
  text-align: center;
}

.client-company-toolbar .client-company-filter-btn:hover:not(:disabled),
.client-company-toolbar .client-company-filter-btn.is-active {
  border-color: #7aa5f5;
  background: #f3f7ff;
  color: #2563eb;
  box-shadow: 0 5px 12px rgba(59, 130, 246, 0.14);
}

.client-company-filter-panel {
  position: absolute;
  z-index: 80;
  top: calc(100% + 9px);
  left: 0;
  width: 292px;
  padding: 16px;
  border: 1px solid #dfe6f0;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(28, 45, 74, 0.18);
}

.client-company-filter-panel[hidden] {
  display: none;
}

.client-company-filter-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 13px;
}

.client-company-filter-head strong {
  color: #24334b;
  font-size: 14px;
}

.client-company-filter-head small {
  color: #94a3b8;
  font-size: 11px;
}

.client-company-filter-panel > label {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.client-company-filter-panel > label > span {
  color: #64748b;
  font-size: 12px;
}

.client-company-toolbar .client-company-filter-panel select {
  width: 100%;
  min-width: 0;
}

.client-company-filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px solid #edf1f6;
}

.client-company-toolbar .client-company-filter-clear,
.client-company-toolbar .client-company-filter-apply {
  min-width: 74px;
}

.client-company-toolbar .client-company-filter-clear {
  border: 1px solid #d8e0eb;
  background: #fff;
  color: #64748b;
}

.client-company-toolbar .client-company-filter-apply {
  background: #3d7ff1;
  color: #fff;
}

.client-company-toolbar-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  min-height: 36px;
  padding-left: 18px;
  border-left: 1px solid #e5eaf1;
}

.client-company-toolbar .client-company-new-company-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 34px;
  padding: 0 15px;
  border: 1px solid #3979e8;
  border-radius: 8px;
  background: linear-gradient(135deg, #4f86f2 0%, #3477e8 100%);
  box-shadow: 0 3px 8px rgba(52, 119, 232, 0.2);
  color: #fff;
  white-space: nowrap;
}

.client-company-toolbar .client-company-new-company-btn svg {
  width: 15px;
  height: 15px;
  stroke-linecap: round;
}

.client-company-toolbar .client-company-new-company-btn:hover:not(:disabled) {
  border-color: #2f6fdc;
  background: linear-gradient(135deg, #467ded 0%, #286cdd 100%);
  box-shadow: 0 6px 14px rgba(52, 119, 232, 0.28);
}

.client-company-summary {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
  min-height: 0;
  padding: 0;
  border: 0;
  color: #64748b;
  line-height: 34px;
  white-space: nowrap;
}

.client-company-summary strong {
  color: #2563eb;
  font-size: 14px;
}

.client-company-table-wrap {
  border: 0;
  border-radius: 0;
}

.client-company-table th,
.client-company-table td {
  height: 40px;
  padding: 7px 12px;
  border: 0;
  border-bottom: 1px solid #e2e7ee;
  box-sizing: border-box;
  font-size: 12px;
  line-height: 20px;
}

.client-company-table th:not(:last-child),
.client-company-table td:not(:last-child) {
  border-right: 1px solid #e2e7ee;
}

.client-company-table th {
  height: 38px;
  background: #fff;
  color: #111827;
  font-size: 12px;
  font-weight: 500;
}

.client-company-table tbody tr:nth-child(even) {
  background: #fff;
}

.client-company-table tbody tr:hover {
  background: #f7faff;
}

.client-company-project-count {
  color: inherit;
  font-weight: inherit;
}

.client-company-pagination {
  justify-content: space-between;
  gap: 18px;
  min-height: 50px;
  padding: 12px 0 0;
  border-top: 0;
}

.client-company-page-size,
.client-company-page-controls,
.client-company-page-jump {
  display: flex;
  align-items: center;
}

.client-company-page-size {
  flex: 0 0 auto;
  gap: 7px;
  color: #334155;
}

.client-company-page-size select,
.client-company-page-jump input {
  height: 32px;
  border: 1px solid #d8dee7;
  border-radius: 6px;
  background: #fff;
  color: #334155;
  outline: none;
}

.client-company-page-size select {
  min-width: 58px;
  padding: 0 8px;
}

.client-company-page-controls {
  justify-content: flex-end;
  gap: 5px;
}

.client-company-pagination button {
  min-width: 34px;
  padding: 0 10px;
  border-radius: 5px;
}

.client-company-pagination button.is-current {
  border-color: #477ff0;
  background: #477ff0;
  color: #fff;
  font-weight: 600;
}

.client-company-pagination button.is-current:hover {
  color: #fff;
}

.client-company-page-ellipsis {
  padding: 0 4px;
  color: #94a3b8;
}

.client-company-page-jump {
  gap: 6px;
  margin-left: 8px;
  color: #334155;
}

.client-company-page-jump input {
  width: 44px;
  padding: 0 5px;
  text-align: center;
}

.client-company-page-size select:focus,
.client-company-page-jump input:focus {
  border-color: #6d9df5;
  box-shadow: 0 0 0 3px rgba(72, 126, 240, 0.1);
}

@media (max-width: 760px) {
  .client-company-body {
    padding: 0;
  }

  .client-company-toolbar {
    align-items: stretch;
    flex-direction: column;
    padding: 12px;
  }

  .client-company-toolbar-fields {
    align-items: stretch;
  }

  .client-company-toolbar select,
  .client-company-toolbar input {
    width: 100%;
  }

  .client-company-summary {
    text-align: right;
  }

  .client-company-toolbar-meta {
    justify-content: flex-end;
    padding-top: 10px;
    padding-left: 0;
    border-top: 1px solid #edf0f4;
    border-left: 0;
  }

  .client-company-pagination {
    align-items: flex-start;
    flex-direction: column;
  }

  .client-company-page-controls {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

.client-company-clickable-row {
  cursor: pointer;
  outline: none;
}

.client-company-clickable-row:focus-visible {
  background: #f0f5ff;
  box-shadow: inset 0 0 0 2px #6d9df5;
}

.client-company-name-link {
  display: inline-flex;
  align-items: center;
  color: #0f3b72;
  transition: color 0.15s ease;
}

.client-company-name-link::after {
  margin-left: 7px;
  color: #8fb1e7;
  content: '›';
  font-size: 18px;
  font-weight: 400;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.client-company-clickable-row:hover .client-company-name-link {
  color: #2563eb;
}

.client-company-clickable-row:hover .client-company-name-link::after {
  opacity: 1;
  transform: translateX(0);
}

/* 客户公司：使用与项目列表一致的紧凑横向表格 */
.client-company-table {
  min-width: 1260px;
}

.client-company-col-name { width: 250px; }
.client-company-col-count { width: 78px; }
.client-company-col-money { width: 112px; }
.client-company-col-status { width: 94px; }
.client-company-col-type { width: 150px; }
.client-company-col-date { width: 110px; }

.client-company-table tbody tr:last-child td {
  border-bottom: 0;
}

.client-company-name {
  color: #145ee8;
  font-weight: 400;
}

.client-company-name-link {
  max-width: 100%;
  overflow: hidden;
  color: #145ee8;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-name-link::after {
  display: none;
}

.client-company-table .is-money {
  color: #172033;
  font-weight: 400;
}

.client-company-status {
  min-height: 20px;
  padding: 1px 7px;
  font-size: 11px;
  font-weight: 500;
}

.client-company-type {
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #145ee8;
}

/* 客户公司列表：统一工具栏、数据区和分页区的视觉层级 */
#channel-clients .client-company-header {
  margin-bottom: 14px;
  padding: 0 2px;
}

.client-company-body {
  overflow: visible;
  border-color: #dbe3ee;
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(31, 48, 72, 0.07);
}

.client-company-toolbar {
  min-height: 62px;
  padding: 11px 16px;
  border-bottom-color: #e3e9f1;
  border-radius: 14px 14px 0 0;
  background: linear-gradient(180deg, #fff 0%, #fbfcff 100%);
}

.client-company-toolbar-fields {
  gap: 9px;
}

.client-company-toolbar select,
.client-company-toolbar input {
  height: 36px;
  border-color: #d5deea;
  border-radius: 9px;
  background-color: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.02);
  font-size: 14px;
}

.client-company-toolbar select {
  min-width: 160px;
  color: #334155;
  font-weight: 500;
}

.client-company-search-field {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.client-company-search-field svg {
  position: absolute;
  z-index: 1;
  left: 11px;
  width: 15px;
  height: 15px;
  color: #93a1b4;
  pointer-events: none;
}

.client-company-toolbar .client-company-search-field input {
  width: 260px;
  padding-right: 12px;
  padding-left: 34px;
}

.client-company-toolbar button {
  height: 36px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 600;
}

.client-company-toolbar .client-company-search-btn {
  min-width: 58px;
  background: linear-gradient(135deg, #4f86f2 0%, #3477e8 100%);
  box-shadow: 0 4px 10px rgba(52, 119, 232, 0.18);
}

.client-company-toolbar-meta {
  gap: 12px;
  padding-left: 16px;
  border-left-color: #e5eaf1;
}

.client-company-toolbar .client-company-new-company-btn {
  height: 36px;
  border-radius: 9px;
}

.client-company-summary {
  min-height: 28px;
  padding: 0 4px;
  color: #718096;
  font-size: 14px;
  line-height: 28px;
}

.client-company-summary strong {
  margin: 0 1px;
  color: #2563eb;
  font-size: 15px;
}

.client-company-table-wrap {
  overflow-x: auto;
  background: #fff;
}

.client-company-table {
  min-width: 1280px;
  color: #263244;
  font-size: 14px;
}

.client-company-col-name { width: 190px; }
.client-company-col-count { width: 78px; }
.client-company-col-money { width: 116px; }
.client-company-col-status { width: 100px; }
.client-company-col-type { width: 170px; }
.client-company-col-date { width: 112px; }

.client-company-table th,
.client-company-table td {
  height: 50px;
  padding: 9px 16px;
  border-bottom-color: #e8edf4;
  line-height: 22px;
}

.client-company-table th {
  height: 46px;
  padding-top: 10px;
  padding-bottom: 10px;
  border-top: 1px solid #edf1f6;
  background: #f6f8fb;
  color: #3f4d61;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .15px;
}

.client-company-table tbody tr:nth-child(even) {
  background: #fbfcfe;
}

.client-company-table tbody tr {
  transition: background-color .16s ease, box-shadow .16s ease;
}

.client-company-table tbody tr:hover {
  background: #f3f7fe;
  box-shadow: inset 3px 0 0 #4f86ed;
}

.client-company-table .is-number,
.client-company-table .is-money {
  color: #263244;
  font-size: 14px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.client-company-name-link {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  color: #195fc9;
  font-size: 14px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color .15s ease;
}

.client-company-clickable-row:hover .client-company-name-link {
  color: #0f55c4;
}

.client-company-table .is-offer-performance {
  color: #2563eb;
  font-weight: 600;
}

.client-company-table .is-pending {
  color: #c77808;
  font-weight: 600;
}

.client-company-table .is-received {
  color: #059669;
  font-weight: 600;
}

.client-company-status {
  min-height: 26px;
  padding: 2px 10px;
  border-radius: 13px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
}

.client-company-platforms {
  display: flex;
  min-width: 0;
  align-items: center;
}

.client-company-platforms > span {
  display: inline-flex;
  max-width: 100%;
  min-height: 26px;
  align-items: center;
  padding: 2px 9px;
  overflow: hidden;
  border: 1px solid #d9e6fb;
  border-radius: 5px;
  background: #f5f8ff;
  color: #2d67c7;
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-platforms > span.is-empty {
  border-color: transparent;
  background: transparent;
  color: #9aa6b7;
}

.client-company-signed-at {
  color: #68778c;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.client-company-pagination {
  min-height: 60px;
  padding: 12px 16px;
  border-top: 1px solid #e3e9f1;
  border-radius: 0 0 14px 14px;
  background: #fafbfd;
  box-sizing: border-box;
}

.client-company-page-size {
  color: #64748b;
  font-size: 13px;
}

.client-company-pagination button,
.client-company-page-size select,
.client-company-page-jump input {
  border-color: #d9e1eb;
  background: #fff;
  font-size: 13px;
}

.client-company-pagination button:hover:not(:disabled) {
  border-color: #8db5f5;
  background: #f2f7ff;
}

@media (max-width: 760px) {
  .client-company-toolbar .client-company-search-field,
  .client-company-toolbar .client-company-search-field input {
    width: 100%;
  }

  .client-company-toolbar-meta {
    padding-right: 2px;
    padding-bottom: 2px;
  }
}

.client-company-detail-view {
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(26, 43, 67, 0.055);
}

.client-company-detail-header {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 76px;
  padding: 13px 20px;
  border-bottom: 1px solid #e4e9f0;
  background: linear-gradient(90deg, #fff 0%, #fbfdff 100%);
  box-sizing: border-box;
}

.client-company-back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #d8e2ef;
  border-radius: 9px;
  background: #fff;
  color: #3977df;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
}

.client-company-back-btn:hover {
  border-color: #9ebcf0;
  background: #f0f6ff;
}

.client-company-detail-heading {
  min-width: 0;
}

.client-company-detail-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.client-company-title-icon {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  color: #3579e8;
}

.client-company-title-icon::before {
  display: none;
}

.client-company-title-icon::after {
  display: none;
}

.client-company-overview-icon {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  color: #3579e8;
}

.client-company-detail-title-row h2 {
  margin: 0;
  color: #13233a;
  font-size: 21px;
  line-height: 1.3;
}

.client-company-detail-heading > p {
  margin: 5px 0 0;
  color: #7c8da5;
  font-size: 12px;
}

.client-company-detail-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.client-company-status-control {
  position: relative;
}

.client-company-status-control[hidden],
.client-company-status-menu[hidden] {
  display: none;
}

.client-company-status-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #d6e1ef;
  border-radius: 8px;
  background: #fff;
  color: #52647d;
  font-size: 13px;
  cursor: pointer;
}

.client-company-status-btn strong {
  color: #2563eb;
  font-weight: 600;
}

.client-company-status-btn svg {
  width: 14px;
  height: 14px;
  color: #8a9ab0;
  transition: transform 0.18s ease;
}

.client-company-status-btn[aria-expanded='true'] {
  border-color: #93b7ef;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.client-company-status-btn[aria-expanded='true'] svg {
  transform: rotate(180deg);
}

.client-company-status-btn:disabled {
  cursor: wait;
  opacity: 0.65;
}

.client-company-status-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3b82f6;
  box-shadow: 0 0 0 3px #dbeafe;
}

.client-company-status-btn[data-status='已合作'] .client-company-status-dot {
  background: #10b981;
  box-shadow: 0 0 0 3px #d1fae5;
}

.client-company-status-btn[data-status='未合作'] .client-company-status-dot {
  background: #94a3b8;
  box-shadow: 0 0 0 3px #e2e8f0;
}

.client-company-status-btn[data-status='未设置'] .client-company-status-dot {
  background: #f59e0b;
  box-shadow: 0 0 0 3px #fef3c7;
}

.client-company-status-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 10px);
  right: 0;
  width: 310px;
  max-width: calc(100vw - 32px);
  padding: 8px;
  border: 1px solid #d7e1ed;
  border-radius: 13px;
  background: #fff;
  box-sizing: border-box;
  box-shadow: 0 18px 48px rgba(31, 48, 72, 0.18), 0 2px 8px rgba(31, 48, 72, 0.06);
}

.client-company-status-menu::before {
  position: absolute;
  top: -6px;
  right: 28px;
  width: 10px;
  height: 10px;
  border-top: 1px solid #d7e1ed;
  border-left: 1px solid #d7e1ed;
  background: #fff;
  content: '';
  transform: rotate(45deg);
}

.client-company-status-menu-head {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 6px 10px 10px;
  border-bottom: 1px solid #edf1f6;
}

.client-company-status-menu-head > div {
  display: grid;
  gap: 3px;
}

.client-company-status-menu-head strong {
  color: #1c2c43;
  font-size: 13px;
  font-weight: 700;
}

.client-company-status-menu-head small {
  color: #91a0b4;
  font-size: 11px;
}

.client-company-status-menu > button {
  display: grid;
  width: 100%;
  min-height: 62px;
  grid-template-columns: 28px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 11px;
  margin-top: 5px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: #24344b;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}

.client-company-status-menu > button:hover,
.client-company-status-menu > button:focus {
  outline: 0;
  border-color: #d9e5f5;
  background: #f7faff;
}

.client-company-status-menu > button:hover {
  transform: translateX(1px);
}

.client-company-status-menu > button.is-current {
  border-color: #b9d2f8;
  background: #f1f6ff;
}

.client-company-status-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: #eaf2ff;
}

.client-company-status-marker i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3b82f6;
  box-shadow: 0 0 0 3px #d5e6ff;
}

.client-company-status-menu > button[data-status='已合作'] .client-company-status-marker {
  background: #e9fbf3;
}

.client-company-status-menu > button[data-status='已合作'] .client-company-status-marker i {
  background: #10b981;
  box-shadow: 0 0 0 3px #ccefe0;
}

.client-company-status-menu > button[data-status='未合作'] .client-company-status-marker {
  background: #f1f4f8;
}

.client-company-status-menu > button[data-status='未合作'] .client-company-status-marker i {
  background: #94a3b8;
  box-shadow: 0 0 0 3px #dfe5ec;
}

.client-company-status-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.client-company-status-copy strong {
  color: #23344c;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}

.client-company-status-copy small {
  overflow: hidden;
  color: #8a9ab0;
  font-size: 11px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-status-check {
  width: 17px;
  height: 17px;
  color: #3478e5;
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 0.16s ease, transform 0.16s ease;
}

.client-company-status-menu > button.is-current .client-company-status-check {
  opacity: 1;
  transform: scale(1);
}

.client-company-import-btn,
.client-company-export-btn,
.client-company-edit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 15px;
  border: 1px solid #bdd2f5;
  border-radius: 8px;
  background: #f7faff;
  color: #2563eb;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-import-btn,
.client-company-export-btn {
  border-color: #a9c6ef;
  background: #fff;
}

.client-company-delete-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff;
  color: #dc2626;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-delete-btn[hidden] {
  display: none;
}

.client-company-delete-btn svg {
  width: 15px;
  height: 15px;
}

.client-company-delete-btn:hover {
  border-color: #fca5a5;
  background: #fff1f2;
}

.client-company-import-btn[hidden],
.client-company-export-btn[hidden],
.client-company-edit-btn[hidden] {
  display: none;
}

.client-company-import-btn svg,
.client-company-export-btn svg,
.client-company-edit-btn svg {
  width: 15px;
  height: 15px;
}

.client-company-import-btn:hover,
.client-company-export-btn:hover,
.client-company-edit-btn:hover {
  border-color: #8fb2ef;
  background: #edf4ff;
}

.client-company-import-btn:disabled,
.client-company-export-btn:disabled {
  cursor: wait;
  opacity: 0.65;
}

.client-company-detail-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.client-company-detail-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #edf4ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 600;
}

.client-company-detail-badges span.is-contract {
  background: #ecfdf5;
  color: #059669;
}

.client-company-detail-badges span.is-empty {
  min-width: auto;
  padding: 0 2px;
  border-color: transparent;
  background: transparent;
  color: #94a3b8;
}

.client-company-edit-modal {
  position: fixed;
  inset: 0;
  z-index: 1250;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.48);
}

.client-company-edit-panel {
  display: flex;
  width: min(94vw, 980px);
  max-height: 90vh;
  flex-direction: column;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28);
}

.client-company-create-modal .client-company-edit-panel {
  width: min(96vw, 1180px);
}

.client-company-project-import-modal .client-company-edit-panel {
  width: min(94vw, 760px);
}

.client-company-project-import-body {
  padding-top: 16px;
}

.client-company-project-import-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 16px;
  border: 1px solid #dbe7f8;
  border-radius: 10px;
  background: #f7faff;
}

.client-company-project-import-guide > div {
  display: flex;
  align-items: center;
  gap: 11px;
}

.client-company-project-import-guide strong {
  color: #24344b;
  font-size: 13px;
}

.client-company-project-import-guide p {
  margin: 4px 0 0;
  color: #73839a;
  font-size: 12px;
  line-height: 1.5;
}

.client-company-project-import-guide button {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid #a9c6ef;
  border-radius: 7px;
  background: #fff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-project-import-guide button:hover {
  background: #edf4ff;
}

.client-company-project-import-guide button:disabled {
  cursor: wait;
  opacity: .65;
}

.client-company-project-import-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border-radius: 50%;
  background: #eaf3ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 700;
}

.client-company-project-import-body h4 {
  display: flex;
  align-items: center;
  gap: 8px;
}

.client-company-project-import-dropzone {
  display: flex;
  min-height: 118px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  padding: 18px;
  border: 1.5px dashed #9fbee9;
  border-radius: 10px;
  background: #fbfdff;
  color: #61738c;
  text-align: center;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}

.client-company-project-import-dropzone:hover,
.client-company-project-import-dropzone.is-dragging,
.client-company-project-import-dropzone.has-file {
  border-color: #4b85e9;
  background: #f2f7ff;
}

.client-company-project-import-dropzone svg {
  width: 27px;
  height: 27px;
  color: #397cf0;
}

.client-company-project-import-dropzone strong {
  color: #334155;
  font-size: 13px;
}

.client-company-project-import-dropzone span {
  color: #8a99ad;
  font-size: 12px;
}

.client-company-project-import-dropzone span.has-file {
  color: #2563eb;
  font-weight: 600;
}

.client-company-project-import-access {
  margin: 0;
}

.client-company-project-import-permission-note {
  margin: 8px 2px 0;
  color: #73839a;
  font-size: 11px;
}

.client-company-create-source-text {
  width: 100%;
  min-height: 76px;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #d5dde8;
  border-radius: 8px;
  background: #fff;
  color: #25344a;
  font: inherit;
  font-size: 13px;
  line-height: 1.55;
  resize: vertical;
  box-sizing: border-box;
}

.client-company-create-source-text:focus {
  outline: none;
  border-color: #78a4ef;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.client-company-create-source .ai-extract-row {
  margin-top: 10px;
}

.client-company-create-settings .modal-publish-mode,
.client-company-create-settings .modal-case-access {
  margin-top: 10px;
}

.client-company-edit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 22px;
  border-bottom: 1px solid #e5eaf1;
}

.client-company-edit-header h3 {
  margin: 0;
  color: #172033;
  font-size: 19px;
}

.client-company-edit-header p {
  margin: 5px 0 0;
  color: #7b8a9f;
  font-size: 12px;
}

.client-company-edit-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #94a3b8;
  font-size: 22px;
  cursor: pointer;
}

.client-company-edit-close:hover {
  background: #f1f5f9;
  color: #475569;
}

.client-company-edit-body {
  padding: 18px 22px 22px;
  overflow-y: auto;
}

.client-company-edit-notice {
  margin-bottom: 16px;
  padding: 10px 12px;
  border: 1px solid #dbe7f8;
  border-radius: 8px;
  background: #f5f9ff;
  color: #52647d;
  font-size: 12px;
  line-height: 1.6;
}

.client-company-edit-notice strong {
  color: #2563eb;
}

.client-company-edit-body section + section {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid #edf0f4;
}

.client-company-edit-body h4 {
  margin: 0 0 12px;
  color: #334155;
  font-size: 14px;
}

.client-company-edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}

.client-company-edit-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}

.client-company-edit-field.is-wide {
  grid-column: 1 / -1;
}

.client-company-edit-field > span {
  color: #64748b;
  font-size: 12px;
  font-weight: 500;
}

.client-company-edit-field > span em {
  margin-left: 3px;
  color: #ef4444;
  font-style: normal;
}

.client-company-edit-field input,
.client-company-edit-field select,
.client-company-edit-field textarea {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #d5dde8;
  border-radius: 7px;
  background: #fff;
  color: #25344a;
  font: inherit;
  font-size: 13px;
  box-sizing: border-box;
}

.client-company-edit-field textarea {
  min-height: 74px;
  line-height: 1.55;
  resize: vertical;
}

.client-company-edit-field input:focus,
.client-company-edit-field select:focus,
.client-company-edit-field textarea:focus {
  outline: none;
  border-color: #78a4ef;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.client-company-edit-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 22px;
  border-top: 1px solid #e5eaf1;
  background: #fff;
}

.client-company-edit-message {
  margin-right: auto;
  color: #dc2626;
  font-size: 12px;
}

.client-company-edit-cancel,
.client-company-edit-save {
  min-height: 36px;
  padding: 0 17px;
  border-radius: 7px;
  font-size: 13px;
  cursor: pointer;
}

.client-company-edit-cancel {
  border: 0;
  background: #f1f5f9;
  color: #475569;
}

.client-company-edit-save {
  border: 1px solid #2563eb;
  background: #2563eb;
  color: #fff;
  font-weight: 600;
}

.client-company-edit-save:hover {
  border-color: #1d4ed8;
  background: #1d4ed8;
}

.client-company-edit-save:disabled {
  cursor: wait;
  opacity: 0.65;
}

.client-company-delete-modal {
  position: fixed;
  inset: 0;
  z-index: 1280;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(3px);
}

.client-company-delete-panel {
  display: flex;
  width: min(94vw, 680px);
  max-height: min(88vh, 760px);
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34);
}

.client-company-delete-header {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 13px;
  padding: 20px 22px 17px;
  border-bottom: 1px solid #fee2e2;
  background: linear-gradient(135deg, #fff 0%, #fff7f7 100%);
}

.client-company-delete-icon {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid #fecaca;
  border-radius: 13px;
  background: #fff1f2;
  color: #dc2626;
  box-shadow: 0 7px 18px rgba(220, 38, 38, 0.09);
}

.client-company-delete-icon svg {
  width: 22px;
  height: 22px;
}

.client-company-delete-header h3 {
  margin: 0;
  color: #301c22;
  font-size: 19px;
  line-height: 1.3;
}

.client-company-delete-header p {
  margin: 5px 0 0;
  color: #8b6670;
  font-size: 12px;
}

.client-company-delete-close {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #a48a91;
  font-size: 23px;
  cursor: pointer;
}

.client-company-delete-close:hover {
  background: #feecee;
  color: #dc2626;
}

.client-company-delete-body {
  min-height: 250px;
  padding: 18px 22px 20px;
  overflow-y: auto;
  background: #fff;
}

.client-company-delete-loading,
.client-company-delete-error {
  display: flex;
  min-height: 220px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #7b8798;
  text-align: center;
}

.client-company-delete-loading span {
  width: 28px;
  height: 28px;
  border: 3px solid #fee2e2;
  border-top-color: #ef4444;
  border-radius: 50%;
  animation: client-company-delete-spin .8s linear infinite;
}

.client-company-delete-loading p,
.client-company-delete-error p {
  margin: 11px 0 0;
  font-size: 12px;
}

@keyframes client-company-delete-spin {
  to { transform: rotate(360deg); }
}

.client-company-delete-error strong {
  color: #991b1b;
  font-size: 14px;
}

.client-company-delete-error button {
  min-height: 34px;
  margin-top: 14px;
  padding: 0 14px;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff;
  color: #dc2626;
  cursor: pointer;
}

.client-company-delete-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 16px;
  border: 1px solid #e8edf3;
  border-radius: 12px;
  background: #f8fafc;
}

.client-company-delete-summary > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.client-company-delete-summary > div:first-child span {
  color: #8290a2;
  font-size: 11px;
}

.client-company-delete-summary > div:first-child strong {
  overflow: hidden;
  color: #172033;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-delete-counts {
  display: flex;
  flex: 0 0 auto;
  gap: 7px;
}

.client-company-delete-counts > span {
  padding: 5px 9px;
  border: 1px solid #dce4ee;
  border-radius: 999px;
  background: #fff;
  color: #66758a;
  font-size: 11px;
  white-space: nowrap;
}

.client-company-delete-counts strong {
  color: #dc2626;
  font-size: 12px;
}

.client-company-delete-warning {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  margin-top: 13px;
  padding: 11px 13px;
  border: 1px solid #fed7aa;
  border-radius: 10px;
  background: #fffaf0;
  color: #9a5b13;
}

.client-company-delete-warning svg {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  color: #f59e0b;
}

.client-company-delete-warning p {
  margin: 0;
  font-size: 12px;
  line-height: 1.65;
}

.client-company-delete-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 18px 2px 9px;
}

.client-company-delete-list-head strong {
  color: #334155;
  font-size: 13px;
}

.client-company-delete-list-head span {
  color: #94a3b8;
  font-size: 11px;
}

.client-company-delete-projects {
  max-height: 245px;
  overflow-y: auto;
  border: 1px solid #e4e9f0;
  border-radius: 11px;
  background: #fff;
}

.client-company-delete-project {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 9px 12px;
  border-bottom: 1px solid #edf0f4;
}

.client-company-delete-project:last-child {
  border-bottom: 0;
}

.client-company-delete-project-index {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 8px;
  background: #fff1f2;
  color: #dc2626;
  font-size: 11px;
  font-weight: 700;
}

.client-company-delete-project > div {
  min-width: 0;
}

.client-company-delete-project strong {
  display: block;
  overflow: hidden;
  color: #29384d;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-delete-project small {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 5px;
  color: #8a98aa;
  font-size: 10px;
}

.client-company-delete-project small span + span::before {
  margin: 0 7px;
  color: #cbd5e1;
  content: '·';
}

.client-company-delete-empty {
  display: grid;
  min-height: 74px;
  place-items: center;
  border: 1px dashed #d7dfe9;
  border-radius: 10px;
  background: #fafbfc;
  color: #8492a6;
  font-size: 12px;
}

.client-company-delete-ack {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px 12px;
  border-radius: 9px;
  background: #fff7f7;
  color: #77545c;
  font-size: 12px;
  line-height: 1.5;
  cursor: pointer;
}

.client-company-delete-ack input {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  margin: 1px 0 0;
  accent-color: #dc2626;
}

.client-company-delete-footer {
  display: grid;
  gap: 10px;
  padding: 11px 22px 14px;
  border-top: 1px solid #e8ecf1;
  background: #fbfcfd;
}

.client-company-delete-footer-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.client-company-delete-message {
  margin-right: auto;
  color: #dc2626;
  font-size: 11px;
}

.client-company-delete-cancel,
.client-company-delete-confirm {
  min-height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-delete-cancel {
  border: 1px solid #d8e0ea;
  background: #fff;
  color: #526175;
}

.client-company-delete-confirm {
  min-width: 128px;
  border: 1px solid #dc2626;
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  box-shadow: 0 5px 13px rgba(220, 38, 38, 0.2);
  color: #fff;
}

.client-company-delete-confirm:hover:not(:disabled) {
  border-color: #b91c1c;
  background: #c81e1e;
}

.client-company-delete-cancel:disabled,
.client-company-delete-confirm:disabled {
  cursor: not-allowed;
  opacity: .52;
  box-shadow: none;
}

.client-company-delete-toast {
  position: fixed;
  z-index: 1400;
  right: 24px;
  bottom: 24px;
  padding: 12px 17px;
  border: 1px solid #bbf7d0;
  border-radius: 10px;
  background: #f0fdf4;
  box-shadow: 0 13px 34px rgba(15, 23, 42, .16);
  color: #15803d;
  font-size: 13px;
  font-weight: 600;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .2s ease, transform .2s ease;
}

.client-company-delete-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.client-company-detail-tabs {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 20px;
  border-bottom: 1px solid #e4e9f0;
  background: #f8fafc;
}

.client-company-detail-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 112px;
  height: 36px;
  margin-right: 7px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-detail-tab:hover {
  color: #2563eb;
  background: #f0f6ff;
}

.client-company-detail-tab.is-active {
  border-color: #d9e7ff;
  background: #eaf3ff;
  box-shadow: inset 0 -2px 0 #4d8cf7;
  color: #2563eb;
}

.client-company-tab-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  color: currentColor;
}

.client-company-tab-icon.is-detail::before {
  position: absolute;
  inset: 1px;
  border: 1.5px solid currentColor;
  border-radius: 3px;
  box-sizing: border-box;
  content: '';
}

.client-company-tab-icon.is-detail::after {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 6px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  box-shadow: 0 4px 0 currentColor;
  content: '';
}

.client-company-tab-icon.is-project::before {
  position: absolute;
  top: 3px;
  left: 5px;
  width: 9px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  box-shadow: 0 4px 0 currentColor, 0 8px 0 currentColor;
  content: '';
}

.client-company-tab-icon.is-project::after {
  position: absolute;
  top: 3px;
  left: 1px;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 4px 0 currentColor, 0 8px 0 currentColor;
  content: '';
}

.client-company-tab-icon.is-attachment::before {
  position: absolute;
  top: 1px;
  left: 4px;
  width: 7px;
  height: 12px;
  border: 1.6px solid currentColor;
  border-left: 0;
  border-radius: 0 7px 7px 0;
  box-sizing: border-box;
  content: '';
  transform: rotate(38deg);
}

.client-company-tab-icon.is-attachment::after {
  position: absolute;
  top: 4px;
  left: 5px;
  width: 4px;
  height: 7px;
  border: 1.5px solid currentColor;
  border-left: 0;
  border-radius: 0 5px 5px 0;
  box-sizing: border-box;
  content: '';
  transform: rotate(38deg);
}

.client-company-detail-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 19px;
  height: 19px;
  padding: 0 6px;
  border-radius: 999px;
  background: #dceaff;
  color: #2563eb;
  font-size: 10px;
  font-weight: 700;
}

.client-company-detail-content {
  min-height: 340px;
  padding: 0 20px 22px;
}

.client-company-detail-loading,
.client-company-detail-error {
  display: grid;
  min-height: 360px;
  place-items: center;
  color: #8b98aa;
  font-size: 13px;
}

.client-company-detail-error {
  color: #dc2626;
}

.client-company-detail-unavailable {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 36px 24px;
  color: #173052;
  text-align: center;
}

.client-company-detail-unavailable-icon {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff7ed;
  color: #ea580c;
  font-size: 22px;
  font-weight: 800;
}

.client-company-detail-unavailable strong {
  font-size: 16px;
}

.client-company-detail-unavailable p {
  max-width: 640px;
  margin: 0 0 4px;
  color: #64748b;
  font-size: 13px;
  line-height: 1.7;
}

.client-company-detail-data-note {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 2px 0 14px;
  padding: 11px 13px;
  border: 1px solid #cfe0ff;
  border-radius: 8px;
  background: #f4f8ff;
  color: #526987;
  font-size: 12px;
  line-height: 1.6;
}

.client-company-detail-data-note > span {
  display: inline-flex;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #3478ed;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}

.client-company-detail-data-note p {
  margin: 0;
}

.client-company-detail-card {
  color: #173052;
}

.client-company-detail-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 0 12px;
}

.client-company-detail-section-head h3,
.client-company-detail-section h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: #173052;
  font-size: 15px;
  font-weight: 700;
}

.client-company-detail-section-head h3::before,
.client-company-detail-section h3::before {
  display: none;
  width: 0;
  height: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  content: '';
}

.client-company-section-icon {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: #edf5ff;
  color: #3478ed;
  box-sizing: border-box;
}

.client-company-section-icon.is-overview::before {
  position: absolute;
  top: 4px;
  left: 6px;
  width: 10px;
  height: 14px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  box-sizing: border-box;
  content: '';
}

.client-company-section-icon.is-overview::after {
  position: absolute;
  top: 7px;
  left: 9px;
  width: 2px;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
  box-shadow: 4px 0 0 currentColor, 0 4px 0 currentColor, 4px 4px 0 currentColor, 2px 8px 0 currentColor;
  content: '';
}

.client-company-section-icon.is-intro::before {
  position: absolute;
  top: 4px;
  left: 6px;
  width: 10px;
  height: 14px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  box-sizing: border-box;
  content: '';
}

.client-company-section-icon.is-intro::after {
  position: absolute;
  top: 8px;
  left: 9px;
  width: 5px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  box-shadow: 0 3px 0 currentColor, 0 6px 0 currentColor;
  content: '';
}

.client-company-section-icon.is-profile::before {
  position: absolute;
  bottom: 5px;
  left: 5px;
  width: 3px;
  height: 5px;
  border-radius: 1px 1px 0 0;
  background: currentColor;
  box-shadow: 5px -4px 0 currentColor, 10px -8px 0 currentColor;
  content: '';
}

.client-company-section-icon.is-profile::after {
  position: absolute;
  right: 4px;
  bottom: 4px;
  left: 4px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  content: '';
}

.client-company-section-icon.is-business::before {
  position: absolute;
  top: 7px;
  left: 4px;
  width: 14px;
  height: 10px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  box-sizing: border-box;
  content: '';
}

.client-company-section-icon.is-business::after {
  position: absolute;
  top: 4px;
  left: 8px;
  width: 6px;
  height: 5px;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  border-radius: 2px 2px 0 0;
  box-sizing: border-box;
  content: '';
}

.client-company-detail-section-head p {
  margin: 4px 0 0 29px;
  color: #8a99ac;
  font-size: 12px;
}

.client-company-detail-metrics {
  display: flex;
  align-items: center;
  gap: 0;
  overflow: hidden;
  border: 1px solid #e3eaf3;
  border-radius: 10px;
  background: #f8fbff;
}

.client-company-detail-metrics > div {
  min-width: 68px;
  padding: 8px 14px;
  border-left: 1px solid #e1e7ef;
  text-align: center;
}

.client-company-detail-metrics > div:first-child {
  border-left: 0;
}

.client-company-detail-metrics strong,
.client-company-detail-metrics span {
  display: block;
}

.client-company-detail-metrics strong {
  color: #2563eb;
  font-size: 17px;
}

.client-company-detail-metrics span {
  margin-top: 3px;
  color: #8190a5;
  font-size: 10px;
}

.client-company-key-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #dfe7f1;
  border-radius: 10px;
  background: #f7faff;
}

.client-company-key-facts .client-company-detail-item {
  padding: 11px 14px;
  border-right: 1px solid #e1e7ef;
  border-bottom: 0;
}

.client-company-key-facts .client-company-detail-item:last-child {
  border-right: 0;
}

.client-company-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 30px;
}

.client-company-basic-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 10px;
}

.client-company-basic-grid .client-company-detail-item {
  min-height: 63px;
  padding: 10px 12px;
  border: 1px solid #e6ebf2;
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
}

.client-company-detail-item {
  min-width: 0;
  padding: 14px 0 12px;
  border-bottom: 1px dashed #dce4ed;
}

.client-company-detail-item.is-wide {
  grid-column: 1 / -1;
}

.client-company-detail-item.is-empty {
  background: #fbfcfe;
}

.client-company-detail-item > span,
.client-company-detail-item > strong {
  display: block;
}

.client-company-detail-item > span {
  margin-bottom: 6px;
  color: #8291a5;
  font-size: 11px;
}

.client-company-detail-item > strong {
  overflow-wrap: anywhere;
  color: #132b4c;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.65;
}

.client-company-detail-empty-value,
.client-company-detail-placeholder {
  color: #a2adbb;
  font-weight: 400;
}

.client-company-detail-section {
  margin-top: 16px;
}

.client-company-intro-content {
  min-height: 58px;
  margin-top: 10px;
  padding: 13px 15px;
  border: 1px solid #e4e9f0;
  border-radius: 10px;
  background: #fbfcfe;
  color: #254264;
  font-size: 13px;
  line-height: 1.85;
}

.client-company-intro-section {
  padding: 15px 16px;
  border: 1px solid #e4eaf2;
  border-radius: 10px;
  background: #fff;
}

.client-company-profile-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.client-company-profile-sections > .client-company-detail-section {
  min-width: 0;
  margin-top: 0;
  padding: 15px 16px 8px;
  border: 1px solid #e4eaf2;
  border-radius: 10px;
  background: #fff;
}

.client-company-profile-sections .client-company-detail-grid {
  column-gap: 18px;
}

.client-company-profile-sections .client-company-detail-item {
  padding: 10px 0 9px;
}

/* 客户公司详情视觉层级 v3 */
.client-company-detail-content {
  padding: 14px 16px 18px;
  background: #f5f8fc;
}

.client-company-overview-banner {
  padding: 14px 16px;
  border: 1px solid #dbe8fa;
  border-radius: 12px;
  background: linear-gradient(112deg, #edf5ff 0%, #f8fbff 38%, #fff 72%);
  box-shadow: 0 4px 14px rgba(38, 91, 165, 0.06);
}

.client-company-overview-banner h3 {
  font-size: 16px;
}

.client-company-overview-banner .client-company-detail-metrics {
  border-color: #d9e6f8;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 3px 10px rgba(55, 105, 178, 0.05);
}

.client-company-core-card {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #e1e8f1;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(34, 52, 78, 0.045);
}

.client-company-card-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 22px;
}

.client-company-card-heading h3 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: #173052;
  font-size: 14px;
}

.client-company-card-heading > span {
  color: #8a99ac;
  font-size: 11px;
}

.client-company-core-card .client-company-key-facts {
  gap: 8px;
  margin-top: 11px;
  overflow: visible;
  border: 0;
  background: transparent;
}

.client-company-core-card .client-company-key-facts .client-company-detail-item,
.client-company-core-card .client-company-key-facts .client-company-detail-item:last-child {
  min-height: 59px;
  padding: 10px 12px;
  border: 1px solid #e1e9f4;
  border-radius: 8px;
  background: #f6f9fe;
  box-sizing: border-box;
}

.client-company-core-card .client-company-basic-grid {
  gap: 8px;
  margin-top: 8px;
}

.client-company-core-card .client-company-basic-grid .client-company-detail-item {
  min-height: 57px;
  padding: 9px 11px;
  border-color: #e9edf3;
  background: #fbfcfe;
}

.client-company-core-card .client-company-detail-item > span {
  margin-bottom: 4px;
}

.client-company-core-card .client-company-detail-item > strong {
  line-height: 1.5;
}

.client-company-intro-section,
.client-company-profile-sections > .client-company-detail-section {
  border-color: #e1e8f1;
  box-shadow: 0 4px 14px rgba(34, 52, 78, 0.045);
}

.client-company-intro-section {
  margin-top: 12px;
}

.client-company-intro-content {
  min-height: 52px;
  padding: 12px 14px;
  border: 0;
  border-left: 3px solid #6d9df5;
  border-radius: 5px 8px 8px 5px;
  background: #f7faff;
  line-height: 1.75;
}

.client-company-profile-sections {
  gap: 10px;
  margin-top: 10px;
}

.client-company-profile-sections > .client-company-detail-section {
  padding: 14px 15px 7px;
}

.client-company-profile-sections .client-company-detail-item {
  border-bottom: 1px solid #edf1f6;
}

.client-company-detail-item.is-empty > strong {
  color: #b0bac7;
}

.client-company-projects-panel {
  min-height: 410px;
  padding: 18px 20px 22px;
}

.client-company-attachments-panel {
  min-height: 410px;
  padding: 18px 20px 22px;
  background: #f8fafc;
}

.client-company-attachments-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}

.client-company-attachments-toolbar h3 {
  margin: 0;
  color: #173052;
  font-size: 15px;
}

.client-company-attachments-toolbar p {
  margin: 4px 0 0;
  color: #8492a6;
  font-size: 12px;
}

.client-company-attachment-upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex: 0 0 auto;
  height: 34px;
  padding: 0 15px;
  border: 1px solid #397cf0;
  border-radius: 8px;
  background: #477ff0;
  box-shadow: 0 4px 10px rgba(71, 127, 240, 0.18);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-attachment-upload-btn:hover {
  background: #2563eb;
}

.client-company-attachment-upload-btn:disabled {
  cursor: wait;
  opacity: 0.65;
}

.client-company-attachment-upload-status {
  min-height: 20px;
  color: #64748b;
  font-size: 12px;
}

.client-company-attachment-upload-status.is-success { color: #15803d; }
.client-company-attachment-upload-status.is-error { color: #dc2626; }

.client-company-attachments-list {
  display: grid;
  gap: 9px;
}

.client-company-attachment-item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 68px;
  padding: 10px 14px;
  border: 1px solid #e1e7ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(34, 52, 78, 0.04);
}

.client-company-attachment-file-icon {
  display: grid;
  width: 40px;
  height: 44px;
  place-items: center;
  border: 1px solid #cfe0fb;
  border-radius: 8px;
  background: #edf5ff;
  color: #3478ed;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.client-company-attachment-file-icon.is-pdf { border-color: #fecaca; background: #fff1f2; color: #dc2626; }
.client-company-attachment-file-icon.is-ppt,
.client-company-attachment-file-icon.is-pptx { border-color: #fed7aa; background: #fff7ed; color: #c2410c; }
.client-company-attachment-file-icon.is-xls,
.client-company-attachment-file-icon.is-xlsx { border-color: #bbf7d0; background: #f0fdf4; color: #15803d; }

.client-company-attachment-copy {
  min-width: 0;
}

.client-company-attachment-copy strong,
.client-company-attachment-copy span {
  display: block;
}

.client-company-attachment-copy strong {
  overflow: hidden;
  color: #183153;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-attachment-copy span {
  margin-top: 6px;
  color: #8a98aa;
  font-size: 11px;
}

.client-company-attachment-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.client-company-attachment-actions .is-danger { color: #dc2626; }

.client-company-attachments-empty {
  display: grid;
  min-height: 260px;
  place-items: center;
  align-content: center;
  border: 1px dashed #cfdae8;
  border-radius: 12px;
  background: #fff;
  color: #789;
  text-align: center;
}

.client-company-attachments-empty-icon {
  position: relative;
  width: 38px;
  height: 44px;
  margin-bottom: 12px;
  border: 2px solid #9cbcf0;
  border-radius: 7px;
  background: #edf5ff;
}

.client-company-attachments-empty-icon::after {
  position: absolute;
  top: 12px;
  right: 8px;
  left: 8px;
  height: 2px;
  border-radius: 2px;
  background: #79a2e8;
  box-shadow: 0 7px 0 #79a2e8, 0 14px 0 #79a2e8;
  content: '';
}

.client-company-attachments-empty strong {
  color: #40536d;
  font-size: 14px;
}

.client-company-attachments-empty p {
  max-width: 440px;
  margin: 7px 16px 0;
  color: #8b98aa;
  font-size: 12px;
  line-height: 1.7;
}

.client-company-projects-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  color: #66768c;
  font-size: 12px;
}

.client-company-projects-toolbar > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.client-company-projects-toolbar strong {
  color: #173052;
  font-size: 14px;
}

.client-company-projects-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  white-space: nowrap;
}

.client-company-projects-action-buttons {
  display: flex;
  align-items: center;
  gap: 8px;
}

.client-company-projects-actions .client-company-import-btn,
.client-company-projects-actions .client-company-export-btn {
  height: 32px;
  min-height: 32px;
  padding: 0 13px;
  border-radius: 7px;
  font-size: 12px;
}

.client-company-projects-actions strong {
  color: #2563eb;
}

.client-company-create-project-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 32px;
  padding: 0 14px;
  border: 1px solid #397cf0;
  border-radius: 7px;
  background: #477ff0;
  box-shadow: 0 4px 10px rgba(71, 127, 240, 0.18);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.client-company-create-project-btn:hover {
  border-color: #2563eb;
  background: #2563eb;
  box-shadow: 0 6px 14px rgba(37, 99, 235, 0.24);
}

.client-company-projects-list {
  position: relative;
}

.client-company-projects-loading,
.client-company-projects-empty,
.client-company-projects-error {
  display: grid;
  min-height: 260px;
  place-items: center;
  border: 1px solid #e3e7ed;
  border-radius: 10px;
  background: #fbfcfe;
  color: #8b98aa;
  font-size: 13px;
}

.client-company-projects-error {
  color: #dc2626;
}

.client-company-project-list-shell {
  overflow-x: auto;
  border: 1px solid #e3e7ed;
  border-radius: 10px 10px 0 0;
  background: #fff;
  box-shadow: 0 7px 22px rgba(34, 52, 78, 0.05);
}

.client-company-project-list-heading,
.client-company-project-list-row {
  display: grid;
  grid-template-columns: 64px minmax(180px, 1.25fr) minmax(210px, 1.45fr) 92px 125px repeat(5, 54px) 105px 78px 48px 52px;
  align-items: center;
  min-width: 1285px;
  padding: 0 8px;
  box-sizing: border-box;
}

.client-company-project-list-heading {
  min-height: 38px;
  border-bottom: 1px solid #dfe3ea;
  background: #f8f9fb;
  color: #111827;
  font-size: 12px;
  font-weight: 600;
}

.client-company-project-list-heading > span {
  min-width: 0;
  padding: 0 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-company-project-list-heading > span.is-number {
  text-align: center;
}

.client-company-project-list-row {
  min-height: 44px;
  border-bottom: 1px solid #e7eaf0;
  background: #fff;
  color: #172033;
  font-size: 12px;
  transition: background 0.12s ease, box-shadow 0.12s ease;
}

.client-company-project-list-row:last-child {
  border-bottom: 0;
}

.client-company-project-list-row:hover {
  z-index: 1;
  background: #edf6ff;
  box-shadow: inset 0 0 0 1px #b7d4ff;
}

.client-company-project-list-row.priority-cyan {
  background: #e8fbfd;
}

.client-company-project-list-row.priority-pink {
  background: #fff0f6;
}

.client-company-project-list-row .order-table-status,
.client-company-project-list-row .order-level-cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

.client-company-project-list-row .order-menu-btn {
  cursor: pointer;
}

.client-company-projects-list > .orders-pagination {
  border-radius: 0 0 10px 10px;
}

@media (max-width: 1100px) {
  .client-company-basic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .client-company-profile-sections {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .client-company-detail-header,
  .client-company-detail-section-head {
    align-items: flex-start;
  }

  .client-company-detail-header {
    flex-wrap: wrap;
  }

  .client-company-detail-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .client-company-edit-modal {
    padding: 8px;
  }

  .client-company-delete-modal {
    padding: 8px;
  }

  .client-company-delete-panel {
    width: 100%;
    max-height: 94vh;
  }

  .client-company-delete-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .client-company-delete-footer-actions {
    flex-wrap: wrap;
  }

  .client-company-delete-message {
    width: 100%;
  }

  .client-company-edit-panel {
    width: 100%;
    max-height: 94vh;
  }

  .client-company-edit-grid {
    grid-template-columns: 1fr;
  }

  .client-company-edit-field.is-wide {
    grid-column: auto;
  }

  .client-company-detail-section-head {
    flex-direction: column;
  }

  .client-company-detail-metrics {
    width: 100%;
  }

  .client-company-detail-metrics > div {
    flex: 1;
    min-width: 0;
    padding: 0 8px;
  }

  .client-company-key-facts,
  .client-company-basic-grid,
  .client-company-detail-grid {
    grid-template-columns: 1fr;
  }

  .client-company-detail-content {
    padding-right: 12px;
    padding-left: 12px;
  }

  .client-company-overview-banner {
    padding: 13px;
  }

  .client-company-core-card {
    padding: 12px;
  }

  .client-company-card-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .client-company-basic-grid {
    gap: 7px;
  }

  .client-company-key-facts .client-company-detail-item {
    border-right: 0;
    border-bottom: 1px solid #e1e7ef;
  }

  .client-company-key-facts .client-company-detail-item:last-child {
    border-bottom: 0;
  }

  .client-company-detail-tabs {
    overflow-x: auto;
    padding: 0 12px;
  }

  .client-company-projects-panel {
    padding: 14px 12px 18px;
  }

  .client-company-attachments-panel {
    padding: 14px 12px 18px;
  }

  .client-company-attachments-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .client-company-attachment-item {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .client-company-attachment-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  .client-company-projects-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .client-company-projects-toolbar > div:first-child {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .client-company-projects-actions {
    width: 100%;
    justify-content: space-between;
  }
}

#channel-orders .panel-header {
  align-items: baseline;
  gap: 14px;
}

.order-page-subtitle {
  color: #8b98aa;
  font-size: 12px;
  font-weight: 400;
}

#channel-orders .panel-body {
  padding-top: 4px;
}

#channel-orders .cases-filter {
  display: block;
  margin: 0 0 16px;
  padding: 14px 18px 12px;
  border: 1px solid #edf0f5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(34, 52, 78, 0.07);
}

.order-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(190px, 1fr));
  gap: 9px 26px;
}

.order-filter-field {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  color: #172033;
  font-size: 12px;
}

.order-filter-field > span {
  padding-right: 10px;
  text-align: right;
  white-space: nowrap;
}

#channel-orders .cases-filter .order-filter-field input,
#channel-orders .cases-filter .order-filter-field select {
  width: 100%;
  min-width: 0;
  height: 30px;
  padding: 4px 10px;
  border: 1px solid #dfe3ea;
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03), 0 2px 8px rgba(15, 23, 42, 0.04);
  color: #27364b;
  font-size: 12px;
}

#channel-orders .cases-filter .order-filter-field input::placeholder {
  color: #b4bdca;
}

#channel-orders .cases-filter .order-filter-field input:focus,
#channel-orders .cases-filter .order-filter-field select:focus {
  border-color: #4d8cf7;
  box-shadow: 0 0 0 2px rgba(77, 140, 247, 0.13);
}

.order-filter-advanced {
  display: none;
}

.cases-filter.show-advanced .order-filter-advanced {
  display: grid;
}

.order-filter-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding-left: 72px;
}

#channel-orders .cases-filter .order-filter-actions button {
  min-width: 56px;
  height: 29px;
  padding: 0 13px;
  border: 1px solid #dfe3ea;
  border-radius: 8px;
  background: #fff;
  color: #27364b;
  font-size: 12px;
  font-weight: 500;
}

#channel-orders .cases-filter .order-filter-actions #btn-cases-refresh {
  border-color: #4d8cf7;
  background: #4d8cf7;
  color: #fff;
}

#channel-orders .cases-filter .order-filter-actions #btn-cases-refresh:hover {
  background: #377cf0;
  box-shadow: 0 4px 12px rgba(77, 140, 247, 0.25);
}

#channel-orders .cases-filter .order-filter-actions #btn-cases-refresh.is-loading,
#channel-orders .cases-filter .order-filter-actions #btn-cases-refresh:disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-color: #75a5f8;
  background: #75a5f8;
  box-shadow: none;
  cursor: wait;
  opacity: 1;
}

.order-search-spinner {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  box-sizing: border-box;
  animation: order-search-spin 0.7s linear infinite;
}

@keyframes order-search-spin {
  to { transform: rotate(360deg); }
}

#channel-orders .cases-filter .order-filter-actions .order-filter-link {
  border-color: transparent;
  background: transparent;
  color: #377cf0;
}

.order-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 0 10px;
  border: 1px solid #e3e7ed;
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: #fff;
}

.order-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 5px;
}

.order-toolbar-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}

.order-toolbar-btn {
  height: 26px;
  padding: 0 13px;
  border: 1px solid #d8dde5;
  border-radius: 999px;
  background: #fff;
  color: #27364b;
  font-size: 12px;
  cursor: pointer;
}

.order-toolbar-btn:hover,
.order-toolbar-btn.is-active {
  border-color: #9ebefa;
  background: #eef5ff;
  color: #2563eb;
}

.order-toolbar-btn.is-primary {
  border-color: #cbd5e1;
  color: #172033;
  font-weight: 600;
}

.order-toolbar-btn.is-muted {
  background: #f3f4f6;
  color: #64748b;
}

.order-quick-filter {
  position: relative;
}

.order-quick-filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.order-quick-filter-arrow {
  color: #94a3b8;
  font-size: 9px;
  transition: transform 0.15s ease;
}

.order-quick-filter-trigger[aria-expanded="true"] .order-quick-filter-arrow {
  transform: rotate(180deg);
}

.order-quick-filter-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 30;
  width: 208px;
  padding: 5px 0;
  overflow: hidden;
  border: 1px solid #dfe3ea;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.18);
}

.order-sort-menu {
  width: 184px;
}

.order-quick-filter-menu.order-sort-menu button {
  padding-left: 38px;
  padding-right: 12px;
}

.order-sort-menu button::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 14px;
  width: 14px;
  height: 14px;
  border: 1px solid #c7d0dc;
  border-radius: 3px;
  background: #fff;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 12px;
  text-align: center;
  transform: translateY(-50%);
  box-sizing: border-box;
}

.order-sort-menu button.is-selected::before {
  content: '✓';
  border-color: #377cf0;
  background: #377cf0;
}

.order-quick-filter-menu.order-sort-menu button.is-selected::after {
  content: none;
}

.order-quick-filter-menu button {
  position: relative;
  display: block;
  width: 100%;
  min-height: 32px;
  padding: 7px 28px 7px 16px;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #27364b;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}

.order-quick-filter-menu button:hover,
.order-quick-filter-menu button:focus-visible {
  outline: none;
  background: #f1f5f9;
  color: #2563eb;
}

.order-quick-filter-menu button.is-selected::after {
  content: '✓';
  position: absolute;
  top: 50%;
  right: 12px;
  color: #2563eb;
  font-weight: 700;
  transform: translateY(-50%);
}

.order-quick-filter-separator {
  height: 1px;
  margin: 5px 0;
  background: #edf0f4;
}

.order-filter-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.order-empty-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.order-empty-action {
  min-height: 30px;
  padding: 0 14px;
  border: 1px solid #bfd3f8;
  border-radius: 999px;
  background: #fff;
  color: #2563eb;
  font-size: 12px;
  cursor: pointer;
}

.order-empty-action:hover,
.order-empty-action:focus-visible {
  border-color: #7ca5f2;
  background: #eef5ff;
  outline: none;
}

.order-list-summary {
  color: #39475a;
  font-size: 12px;
}

.order-list-summary strong {
  color: #172033;
  font-weight: 700;
}

#orders-cases-list {
  position: relative;
  min-height: 76px;
}

#orders-cases-list.is-loading {
  cursor: wait;
}

#orders-cases-list.is-loading::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 8;
  border-radius: 0 0 12px 12px;
  background: rgba(248, 250, 252, 0.7);
  backdrop-filter: blur(1px);
}

#orders-cases-list.is-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 9;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  border: 3px solid #d8e6fb;
  border-top-color: #4d8cf7;
  border-radius: 50%;
  box-sizing: border-box;
  animation: order-search-spin 0.7s linear infinite;
}

#channel-orders .order-list-shell {
  --order-list-columns: 28px 62px minmax(180px, 1.3fr) minmax(210px, 1.5fr) 92px 125px repeat(5, 54px) 105px 78px 48px 52px;
  border-color: #e3e7ed;
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(34, 52, 78, 0.06);
}

.orders-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 7px 10px;
  border: 1px solid #e3e7ed;
  border-top: 0;
  border-radius: 0 0 12px 12px;
  background: #fff;
  box-sizing: border-box;
  color: #27364b;
  font-size: 12px;
}

.orders-page-size,
.orders-page-jump,
.orders-page-controls {
  display: flex;
  align-items: center;
}

.orders-page-size {
  gap: 5px;
}

.orders-page-size select,
.orders-page-jump input {
  height: 30px;
  border: 1px solid #d8dde5;
  border-radius: 5px;
  background: #fff;
  color: #27364b;
  font-size: 12px;
}

.orders-page-size select {
  min-width: 54px;
  padding: 0 7px;
}

.orders-page-controls {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 3px;
}

.orders-page-nav,
.orders-page-button {
  min-width: 30px;
  height: 30px;
  padding: 0 9px;
  border: 1px solid #d8dde5;
  border-radius: 4px;
  background: #fff;
  color: #27364b;
  font-size: 12px;
  cursor: pointer;
}

.orders-page-nav:hover:not(:disabled),
.orders-page-button:hover,
.orders-page-button.is-current {
  border-color: #4d8cf7;
  background: #4d8cf7;
  color: #fff;
}

.orders-page-nav:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}

.orders-page-ellipsis {
  min-width: 24px;
  text-align: center;
}

.orders-page-jump {
  gap: 5px;
  margin-left: 5px;
}

.orders-page-jump input {
  width: 42px;
  padding: 0 5px;
  text-align: center;
}

#channel-orders .order-list-heading,
#channel-orders .order-list-row {
  grid-template-columns: var(--order-list-columns);
  gap: 0;
  min-width: 1320px;
  padding: 0 8px;
}

#channel-orders .order-list-heading {
  min-height: 35px;
  border-top: 1px solid #e3e7ed;
  border-bottom-color: #dfe3ea;
  background: #f8f9fb;
  color: #111827;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
}

#channel-orders .order-list-heading > span {
  min-width: 0;
  padding: 0 8px;
  text-align: left;
  white-space: nowrap;
}

#channel-orders .order-list-heading .is-number {
  text-align: center;
}

#channel-orders .order-list-row {
  min-height: 40px;
  border-bottom-color: #e7eaf0;
  background: #fff;
  color: #172033;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.12s ease, box-shadow 0.12s ease;
}

#channel-orders .order-list-row:nth-child(even) {
  background: #fff;
}

#channel-orders .order-list-row::before {
  display: none;
}

#channel-orders .order-list-row:hover,
#channel-orders .order-list-row:focus-visible {
  z-index: 1;
  background: #edf6ff;
  box-shadow: inset 0 0 0 1px #b7d4ff;
}

.order-check-cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

.order-check-cell input {
  width: 13px;
  height: 13px;
  margin: 0;
  accent-color: #4d8cf7;
}

.order-row-signals {
  display: flex;
  gap: 7px;
  padding: 0 5px;
  color: #1f2937;
  font-size: 11px;
  white-space: nowrap;
}

.order-row-signals span {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.order-project-cell,
.order-company-cell,
.order-city-cell,
.order-consultant-cell,
.order-updated-cell,
.order-table-status,
.order-level-cell {
  min-width: 0;
  padding: 0 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-project-cell {
  display: flex;
  align-items: center;
  color: #3478f6;
  font-weight: 500;
}

.order-project-cell sup {
  margin-left: 3px;
  color: #ef4444;
  font-size: 9px;
}

.order-project-name,
.order-company-cell,
.order-list-link {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-company-cell {
  color: #3478f6;
}

.order-company-cell .order-list-link {
  display: block;
  width: 100%;
}

.order-list-link {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.order-list-link:hover,
.order-list-link:focus-visible {
  background: transparent;
  box-shadow: none;
  color: #1d4ed8;
  text-decoration: underline;
  transform: none;
}

.order-list-link:focus-visible {
  outline: 2px solid #bfdbfe;
  outline-offset: 2px;
  border-radius: 2px;
}

.order-pipeline-count {
  padding: 0 4px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.order-updated-cell {
  color: #334155;
}

.order-progress-badge,
.order-level-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 19px;
  padding: 0 7px;
  border-radius: 999px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  box-sizing: border-box;
}

.order-progress-badge {
  background: #eabf00;
}

.order-progress-badge.not-cooperated {
  background: #94a3b8;
}

.order-progress-badge.cooperated {
  background: #16a34a;
}

.order-level-badge {
  min-width: 24px;
  padding: 0 6px;
}

.order-level-badge.high {
  background: #ef5b71;
}

.order-level-badge.medium {
  background: #eabf00;
}

.order-level-badge.low {
  background: #94a3b8;
}

.order-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  justify-self: center;
  width: 23px;
  height: 23px;
  padding: 0;
  border: 1px solid #d6dce5;
  border-radius: 3px;
  background: #fff;
  color: #344256;
  font-size: 16px;
  line-height: 1;
}

.order-menu-btn:hover {
  border-color: #4d8cf7;
  color: #2563eb;
}

/* 订单状态与级别快捷调整弹窗 */
.order-status-modal {
  position: fixed;
  inset: 0;
  z-index: 2400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.48);
  backdrop-filter: blur(5px);
  animation: order-status-modal-fade 0.16s ease-out;
}

.order-status-modal-panel {
  width: min(620px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28), 0 3px 12px rgba(15, 23, 42, 0.08);
  animation: order-status-modal-rise 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.order-status-permission-panel {
  position: relative;
  width: min(440px, 100%);
  padding: 30px 28px 25px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 30px 85px rgba(15, 23, 42, 0.3), 0 3px 12px rgba(15, 23, 42, 0.08);
  text-align: center;
  animation: order-status-modal-rise 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.order-status-permission-panel::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 128px;
  background: radial-gradient(circle at 50% 0%, rgba(77, 140, 247, 0.19), transparent 67%), linear-gradient(180deg, #f4f8ff, #fff);
  pointer-events: none;
}

.order-permission-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
}

.order-permission-visual {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  margin-bottom: 13px;
}

.order-permission-lock {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border: 7px solid #e8f1ff;
  border-radius: 20px;
  background: linear-gradient(145deg, #4d8cf7, #2563eb);
  box-shadow: 0 12px 25px rgba(37, 99, 235, 0.25);
  color: #fff;
  transform: rotate(-3deg);
}

.order-permission-lock svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: rotate(3deg);
}

.order-permission-badge {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  height: 23px;
  padding: 0 10px;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.order-status-permission-panel h3 {
  position: relative;
  z-index: 1;
  margin: 11px 0 6px;
  color: #172033;
  font-size: 19px;
  line-height: 1.4;
}

.order-permission-copy {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #718096;
  font-size: 12px;
  line-height: 1.65;
}

.order-permission-project {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  margin-top: 20px;
  padding: 14px 15px;
  border: 1px solid #e3ebf7;
  border-radius: 12px;
  background: #f8fbff;
  text-align: left;
}

.order-permission-project > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.order-permission-project span {
  color: #94a3b8;
  font-size: 10px;
}

.order-permission-project strong,
.order-permission-project small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-permission-project strong {
  color: #26364d;
  font-size: 12px;
}

.order-permission-project small {
  color: #8491a5;
  font-size: 10px;
}

.order-permission-owner {
  min-width: 104px;
  padding-left: 14px;
  border-left: 1px solid #dbe7f5;
}

.order-permission-tip {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 12px 2px 20px;
  color: #8a97a9;
  font-size: 10px;
  text-align: left;
}

.order-permission-tip svg {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  fill: none;
  stroke: #7aa2e8;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.order-permission-confirm {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 39px;
  border: 1px solid #3478f6;
  border-radius: 9px;
  background: linear-gradient(135deg, #4d8cf7, #2563eb);
  box-shadow: 0 7px 16px rgba(37, 99, 235, 0.21);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.order-permission-confirm:hover,
.order-permission-confirm:focus-visible {
  background: linear-gradient(135deg, #3f7ff0, #1d4ed8);
  box-shadow: 0 8px 19px rgba(37, 99, 235, 0.27);
  outline: none;
}

.order-status-modal-header {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 20px 22px 16px;
  background: linear-gradient(135deg, #f5f9ff 0%, #fff 68%);
}

.order-status-modal-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(145deg, #2563eb, #4d8cf7);
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.25);
  color: #fff;
}

.order-status-modal-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.order-status-modal-heading {
  min-width: 0;
}

.order-status-modal-heading h3 {
  margin: 0;
  color: #172033;
  font-size: 18px;
  line-height: 1.35;
}

.order-status-modal-heading p {
  margin: 3px 0 0;
  color: #8491a5;
  font-size: 12px;
}

.order-status-modal-close {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-left: auto;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
}

.order-status-modal-close:hover {
  background: #eef2f7;
  color: #334155;
}

.order-status-modal-project {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 3px 10px;
  margin: 0 22px;
  padding: 13px 15px;
  border: 1px solid #e3ebf7;
  border-radius: 11px;
  background: #f8fbff;
}

.order-status-modal-project-label {
  grid-row: 1 / 3;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  padding-right: 11px;
  border-right: 1px solid #dbe7f5;
  color: #64748b;
  font-size: 11px;
  white-space: nowrap;
}

.order-status-modal-project strong,
.order-status-modal-project > span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.order-status-modal-project strong {
  color: #1e3a5f;
  font-size: 13px;
}

.order-status-modal-project > span:last-child {
  color: #8491a5;
  font-size: 11px;
}

.order-status-modal-body {
  display: grid;
  gap: 20px;
  padding: 21px 22px 23px;
}

.order-status-modal-section-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.order-status-modal-section-title span {
  color: #1e293b;
  font-size: 13px;
  font-weight: 700;
}

.order-status-modal-section-title small {
  color: #94a3b8;
  font-size: 11px;
}

.order-status-modal-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.order-status-choice,
.order-level-choice {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  min-height: 66px;
  padding: 12px 31px 12px 12px;
  border: 1px solid #e1e7ef;
  border-radius: 11px;
  background: #fff;
  color: #334155;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.order-status-choice:hover:not(:disabled),
.order-level-choice:hover:not(:disabled) {
  border-color: #a9c4f8;
  box-shadow: 0 7px 18px rgba(37, 99, 235, 0.09);
  transform: translateY(-1px);
}

.order-status-choice:disabled,
.order-level-choice:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}

.order-status-choice > span:nth-child(2),
.order-level-choice > span:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.order-status-choice strong,
.order-level-choice strong {
  color: #27364b;
  font-size: 12px;
  line-height: 1.2;
}

.order-status-choice small,
.order-level-choice small {
  overflow: hidden;
  color: #8a97a9;
  font-size: 10px;
  line-height: 1.35;
}

.order-status-choice-dot {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #94a3b8;
  box-shadow: 0 0 0 4px #f1f5f9;
}

.order-status-choice.tone-blue .order-status-choice-dot {
  background: #3b82f6;
  box-shadow: 0 0 0 4px #dbeafe;
}

.order-status-choice.tone-green .order-status-choice-dot {
  background: #16a34a;
  box-shadow: 0 0 0 4px #dcfce7;
}

.order-level-choice-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
}

.order-level-choice.tone-high .order-level-choice-badge {
  background: #fff1f2;
  color: #e11d48;
}

.order-level-choice.tone-medium .order-level-choice-badge {
  background: #fef9c3;
  color: #a16207;
}

.order-level-choice.tone-low .order-level-choice-badge {
  background: #f1f5f9;
  color: #64748b;
}

.order-status-choice.is-selected,
.order-level-choice.is-selected {
  border-color: #4d8cf7;
  background: #f4f8ff;
  box-shadow: 0 0 0 2px rgba(77, 140, 247, 0.12);
}

.order-status-choice-check {
  position: absolute;
  top: 9px;
  right: 9px;
  width: 15px;
  height: 15px;
  padding: 2px;
  border-radius: 50%;
  background: #4d8cf7;
  fill: none;
  stroke: #fff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.is-selected > .order-status-choice-check {
  opacity: 1;
  transform: scale(1);
}

.order-status-modal-footer {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 14px 22px;
  border-top: 1px solid #edf0f5;
  background: #fafbfc;
}

.order-status-modal-message {
  margin-right: auto;
  color: #8491a5;
  font-size: 11px;
}

.order-status-modal-cancel,
.order-status-modal-save {
  height: 34px;
  padding: 0 16px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.order-status-modal-cancel {
  border: 1px solid #d8dee8;
  background: #fff;
  color: #475569;
}

.order-status-modal-save {
  border: 1px solid #3478f6;
  background: linear-gradient(135deg, #4d8cf7, #2563eb);
  box-shadow: 0 5px 13px rgba(37, 99, 235, 0.2);
  color: #fff;
}

.order-status-modal-save:disabled {
  box-shadow: none;
  cursor: wait;
  opacity: 0.66;
}

@keyframes order-status-modal-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes order-status-modal-rise {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 1100px) {
  .order-filter-grid {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }
}

@media (max-width: 700px) {
  .order-status-modal {
    align-items: flex-end;
    padding: 12px;
  }

  .order-status-modal-panel {
    max-height: calc(100vh - 24px);
    border-radius: 16px;
  }

  .order-status-modal-options {
    grid-template-columns: 1fr;
  }

  .order-status-modal-footer {
    flex-wrap: wrap;
  }

  .order-status-modal-message {
    flex: 1 0 100%;
  }

  #channel-orders .panel-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  #channel-orders .cases-filter {
    padding: 12px;
  }

  .order-filter-grid {
    grid-template-columns: 1fr;
  }

  .order-filter-field {
    grid-template-columns: 66px minmax(0, 1fr);
  }

  .order-filter-actions {
    padding-left: 66px;
  }

  .order-list-toolbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
  }

  .order-toolbar-actions {
    flex-wrap: wrap;
  }

  .order-toolbar-meta {
    align-self: stretch;
    justify-content: flex-end;
  }

  .orders-pagination {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .orders-page-controls {
    justify-content: flex-start;
  }
}

/* 订单详情：项目全景工作台 */
.detail-top-row > .detail-main-area {
  flex: 1 1 68%;
  max-width: 68%;
}

.detail-top-row > .detail-sidebar {
  flex: 1 1 32%;
  max-width: 32%;
}

.project-hub-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 16px;
  background: #f6f8fb;
  border-color: #dfe7f1;
  box-shadow: 0 10px 32px rgba(15, 42, 80, 0.07);
}

.project-hub-card > .detail-card-header,
.project-hub-card > .project-detail-hero,
.project-hub-card > .project-people-section,
.project-hub-card > .project-attachments-section {
  grid-column: 1 / -1;
}

.project-hub-card > .detail-card-header {
  order: -2;
  margin: 0;
  padding: 0 2px;
}

.project-detail-hero {
  order: -1;
  display: grid;
  grid-template-columns: minmax(240px, 1.5fr) minmax(250px, 1fr);
  gap: 16px 24px;
  padding: 22px 24px;
  overflow: hidden;
  position: relative;
  border: 1px solid #c9ddff;
  border-radius: 16px;
  background:
    radial-gradient(circle at 92% 10%, rgba(96, 165, 250, 0.2), transparent 30%),
    linear-gradient(135deg, #eff6ff 0%, #f8fbff 48%, #eef2ff 100%);
}

.project-detail-hero::after {
  content: '';
  position: absolute;
  width: 170px;
  height: 170px;
  right: -70px;
  bottom: -105px;
  border: 24px solid rgba(37, 99, 235, 0.05);
  border-radius: 50%;
  pointer-events: none;
}

.project-detail-title-wrap {
  min-width: 0;
}

.project-detail-eyebrow {
  display: inline-flex;
  align-items: center;
  margin-bottom: 7px;
  color: #2563eb;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.project-detail-title-wrap h3 {
  margin: 0;
  overflow: hidden;
  color: #12376d;
  font-size: clamp(20px, 1.6vw, 28px);
  font-weight: 750;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-detail-title-wrap p {
  margin: 8px 0 0;
  overflow: hidden;
  color: #58708f;
  font-size: 13px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-detail-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-self: center;
  gap: 8px;
}

.project-detail-kpi {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 66px;
  padding: 8px;
  border: 1px solid rgba(147, 197, 253, 0.7);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  box-sizing: border-box;
}

.project-detail-kpi strong {
  color: #1d4ed8;
  font-size: 22px;
  line-height: 1.1;
}

.project-detail-kpi.success strong {
  color: #059669;
}

.project-detail-kpi span {
  margin-top: 5px;
  color: #64748b;
  font-size: 10px;
  white-space: nowrap;
}

.project-quick-facts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(191, 219, 254, 0.85);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
}

.project-quick-facts > div {
  min-width: 0;
  padding: 11px 14px;
  border-right: 1px solid #dbeafe;
}

.project-quick-facts > div:last-child {
  border-right: 0;
}

.project-quick-facts span,
.project-quick-facts strong {
  display: block;
}

.project-quick-facts span {
  margin-bottom: 4px;
  color: #7c8da6;
  font-size: 10px;
}

.project-quick-facts strong {
  overflow: hidden;
  color: #27415f;
  font-size: 13px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-hub-card > .detail-section,
.project-hub-card > .detail-resumes-section,
.project-hub-card > .detail-attachments-section {
  min-width: 0;
  margin: 0;
  padding: 16px;
  border: 1px solid #e2e8f0;
  border-radius: 13px;
  background: #fff;
  box-sizing: border-box;
}

.project-hub-card .section-title {
  margin: 0 0 12px;
  color: #27415f;
  font-size: 14px;
}

.project-hub-card .section-title svg {
  color: #2563eb;
}

.project-intro-section,
.project-job-section {
  order: 1;
}

.project-overview-section,
.project-bd-section {
  order: 2;
}

.project-people-section {
  order: 3;
  overflow: visible;
  padding: 0 !important;
  border-color: #dbe3ec !important;
  border-radius: 12px !important;
  background: #fff !important;
}

.project-company-section,
.project-business-section {
  order: 4;
}

.project-attachments-section {
  order: 5;
}

.project-hub-card .detail-info-grid {
  gap: 8px 10px;
  margin: 0;
  padding: 0;
  background: transparent;
}

.project-hub-card .detail-info-item {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #edf1f6;
  border-radius: 9px;
  background: #f8fafc;
}

.project-hub-card .detail-info-item .label {
  color: #8291a7;
  font-size: 10px;
}

.project-hub-card .detail-info-item .value {
  overflow: hidden;
  color: #334155;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-hub-card .detail-info-wide .value {
  white-space: pre-wrap;
}

.project-intro-section .detail-job-content,
.project-job-section .detail-job-content {
  min-height: 138px;
  max-height: 250px;
  padding: 12px 14px;
  background: #f8fafc;
  border-color: #e5ebf3;
  color: #475569;
  line-height: 1.7;
}

.project-section-heading {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 7px 10px;
  border-bottom: 1px solid #e6ebf1;
  box-sizing: border-box;
}

.project-section-heading .section-title {
  margin: 0;
  color: #0f172a;
  font-size: 12px;
  font-weight: 600;
}

.project-people-section .project-section-heading .section-title {
  transform: translateY(7px);
}

.project-section-heading p {
  display: none;
}

.project-section-heading .btn-upload-resume-mini {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid #cbd7e6;
  border-radius: 7px;
  background: #fff;
  color: #0f172a;
  font-size: 11px;
  font-weight: 600;
}

.project-section-heading .btn-upload-resume-mini:hover {
  border-color: #8eb0e7;
  background: #f6f9ff;
  color: #2563eb;
}

.project-people-section .case-resumes-list {
  display: block;
}

.case-candidate-table-shell {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.case-candidate-table-scroll {
  width: 100%;
  overflow-x: auto;
}

.case-candidate-table {
  width: 100%;
  min-width: 1180px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #1e293b;
  font-size: 11.5px;
}

.case-candidate-table th {
  height: 35px;
  padding: 0 10px;
  border: 0 !important;
  border-bottom: 1px solid #dfe5ec !important;
  background: #f7f9fc;
  color: #0f172a;
  font-weight: 600;
  text-align: left;
  white-space: nowrap;
}

.case-candidate-table th:nth-child(1) { width: 8%; }
.case-candidate-table th:nth-child(2) { width: 14%; }
.case-candidate-table th:nth-child(3) { width: 13%; }
.case-candidate-table th:nth-child(4) { width: 6%; }
.case-candidate-table th:nth-child(5) { width: 7%; }
.case-candidate-table th:nth-child(6) { width: 9%; }
.case-candidate-table th:nth-child(7) { width: 5%; }
.case-candidate-table th:nth-child(8) { width: 12%; }
.case-candidate-table th:nth-child(9) { width: 10%; }
.case-candidate-table th:nth-child(10) { width: 8%; }
.case-candidate-table th:nth-child(11) { width: 5%; }

.case-candidate-table td {
  height: 40px;
  padding: 5px 10px;
  border: 0 !important;
  border-bottom: 1px solid #e8edf3 !important;
  vertical-align: middle;
  box-sizing: border-box;
}

.case-candidate-table tbody tr:last-child td {
  border-bottom: 0;
}

.case-candidate-table tbody tr {
  background: #fff;
  transition: background-color 0.16s ease;
}

.case-candidate-table tbody tr:hover {
  background: #f7faff;
}

.case-candidate-table tbody tr[class*="case-resume-status-"] td:first-child {
  box-shadow: none;
}

.case-candidate-name-link {
  max-width: 100%;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: transparent;
  color: #2563eb;
  font: inherit;
  font-weight: 500;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}

.case-candidate-name-link:hover,
.case-candidate-phone-link:hover {
  color: #2563eb;
}

.case-candidate-ellipsis,
.case-candidate-note {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-candidate-note {
  color: #64748b;
}

.case-candidate-time {
  color: #475569;
  white-space: nowrap;
}

.case-candidate-status-select {
  position: relative;
  display: inline-flex;
  width: auto;
  min-width: 82px;
  height: 24px;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  padding: 0 24px 0 9px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background-color: #eff6ff;
  color: #1d4ed8;
  font-family: inherit;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
}

.case-candidate-status-select:disabled {
  cursor: wait;
  opacity: 0.62;
}

.case-candidate-status-arrow {
  position: absolute;
  top: 50%;
  right: 8px;
  display: inline-flex;
  width: 10px;
  height: 10px;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: currentColor;
  font-family: Arial, sans-serif;
  font-size: 12px;
  line-height: 10px;
  text-align: center;
  transform: translateY(-50%);
  pointer-events: none;
}

.case-candidate-status-select.stage-recommended,
.case-candidate-status-select.stage-screening {
  border-color: #fde68a;
  background-color: #fef9c3;
  color: #a16207;
}

.case-candidate-status-select.stage-joined_project,
.case-candidate-status-select.stage-applied {
  border-color: #bfdbfe;
  background-color: #eff6ff;
  color: #1d4ed8;
}

.case-candidate-status-select.stage-interview,
.case-candidate-status-select.stage-first_interview,
.case-candidate-status-select.stage-second_interview {
  border-color: #c4b5fd;
  background-color: #f5f3ff;
  color: #6d28d9;
}

.case-candidate-status-select.stage-offer,
.case-candidate-status-select.stage-pending_onboard {
  border-color: #fed7aa;
  background-color: #fff7ed;
  color: #c2410c;
}

.case-candidate-status-select.stage-eliminated {
  border-color: #e2e8f0;
  background-color: #f1f5f9;
  color: #64748b;
}

.case-candidate-status-select.status-won {
  border-color: #bbf7d0;
  background-color: #f0fdf4;
  color: #15803d;
}

.case-candidate-status-select.status-won.stage-pending_payment {
  border-color: #fcd34d;
  background-color: #fffbeb;
  color: #b45309;
}

.case-candidate-status-select.status-near_onboard {
  border-color: #ddd6fe;
  background-color: #f5f3ff;
  color: #6d28d9;
}

.case-candidate-status-select.status-eliminated {
  border-color: #fecdd3;
  background-color: #fff1f2;
  color: #be123c;
}

.case-candidate-status-select:focus-visible {
  outline: 2px solid rgba(37, 99, 235, 0.22);
  outline-offset: 1px;
}

.case-candidate-status-menu,
.case-candidate-status-submenu {
  position: fixed;
  z-index: 100120;
  display: flex;
  width: 118px;
  flex-direction: column;
  gap: 1px;
  padding: 4px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
  box-sizing: border-box;
}

.case-candidate-status-menu-item {
  display: flex;
  width: 100%;
  min-height: 28px;
  align-items: center;
  justify-content: flex-start;
  padding: 5px 9px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #1d4ed8;
  font-family: inherit;
  font-size: 11px;
  line-height: 1.35;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  box-sizing: border-box;
}

.case-candidate-status-menu-item:hover,
.case-candidate-status-menu-item:focus-visible,
.case-candidate-status-menu-item.is-current,
.case-candidate-status-cascade.is-current > .case-candidate-status-menu-item {
  outline: none;
  background: #2563eb;
  color: #fff;
}

.case-candidate-status-menu-item.is-danger {
  color: #dc2626;
}

.case-candidate-status-select.stage-recommendation_pending {
  border-color: #fbbf24;
  background-color: #fffbeb;
  color: #b45309;
}

.case-candidate-status-select.stage-recommendation_rejected {
  border-color: #fecaca;
  background-color: #fef2f2;
  color: #b91c1c;
}

.case-candidate-status-menu-item:disabled,
.case-candidate-status-menu-item:disabled:hover,
.case-candidate-status-menu-item:disabled:focus-visible {
  outline: none;
  background: transparent;
  color: #94a3b8;
  cursor: not-allowed;
  opacity: 0.72;
}

.case-candidate-status-menu-item.is-danger:hover,
.case-candidate-status-menu-item.is-danger:focus-visible {
  outline: none;
  background: #dc2626;
  color: #fff;
}

.case-candidate-status-cascade {
  position: relative;
}

.case-candidate-status-payment-parent {
  justify-content: space-between;
}

.case-candidate-status-submenu {
  position: absolute;
  top: -4px;
  left: 100%;
  z-index: 1;
  display: none;
  width: 112px;
}

.case-candidate-status-menu.opens-left .case-candidate-status-submenu {
  right: 100%;
  left: auto;
}

.case-candidate-status-cascade:hover .case-candidate-status-submenu,
.case-candidate-status-cascade:focus-within .case-candidate-status-submenu,
.case-candidate-status-cascade.is-open .case-candidate-status-submenu {
  display: flex;
}

.case-candidate-status-stack {
  display: inline-flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 4px;
}

.case-candidate-interview-at {
  padding-left: 3px;
  color: #7c3aed;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

.case-candidate-offer-meta {
  display: grid;
  max-width: 190px;
  gap: 2px;
  padding: 3px 6px;
  border-left: 2px solid #f59e0b;
  border-radius: 0 5px 5px 0;
  background: #fffbeb;
  color: #92400e;
  font-size: 9px;
  font-weight: 650;
  line-height: 1.35;
}

.case-candidate-offer-meta span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-candidate-onboard-dates {
  display: grid;
  gap: 2px;
  padding-left: 3px;
  color: #047857;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.35;
  white-space: nowrap;
}

.case-candidate-pending-payment-amount {
  padding-left: 3px;
  color: #b45309;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.case-candidate-pending-payment-amount.is-negative {
  color: #dc2626;
}

.case-candidate-paid-amount {
  padding-left: 3px;
  color: #047857;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.case-candidate-interview-panel {
  width: min(600px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 40px));
  border: 1px solid rgba(196, 181, 253, 0.7);
  border-radius: 20px;
  box-shadow: 0 30px 90px rgba(30, 41, 59, 0.3), 0 8px 28px rgba(79, 70, 229, 0.14);
  animation: case-candidate-interview-enter 0.22s ease-out;
}

.case-candidate-interview-modal {
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(4px);
}

@keyframes case-candidate-interview-enter {
  from { opacity: 0; transform: translateY(12px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.case-candidate-interview-header {
  align-items: flex-start;
  padding: 23px 25px 21px;
  border-bottom-color: #e9e7ff;
  background: linear-gradient(135deg, #f7f7ff 0%, #f5f3ff 52%, #eef6ff 100%);
}

.case-candidate-interview-title-wrap {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
}

.case-candidate-interview-icon {
  display: inline-flex;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(145deg, #4f46e5, #7c3aed);
  color: #fff;
  box-shadow: 0 9px 20px rgba(79, 70, 229, 0.25);
}

.case-candidate-interview-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.case-candidate-interview-eyebrow {
  margin-bottom: 3px;
  color: #6366f1;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.case-candidate-interview-header h3 {
  color: #1e1b4b;
  font-size: 21px;
  letter-spacing: -0.02em;
}

.case-candidate-interview-header p {
  margin-top: 6px;
  color: #667085;
  font-size: 12px;
}

.case-candidate-interview-header .client-company-edit-close {
  margin-top: -3px;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: rgba(255, 255, 255, 0.72);
}

.case-candidate-interview-form {
  display: grid;
  gap: 15px;
  padding: 20px 25px 23px;
  overflow-y: auto;
}

.case-candidate-interview-stage-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border: 1px solid #e6e8f0;
  border-radius: 10px;
  background: #fafbff;
  color: #64748b;
  font-size: 12px;
}

.case-candidate-interview-stage-row strong {
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  padding: 0 11px;
  border-radius: 999px;
  background: #ede9fe;
  color: #6d28d9;
  font-size: 12px;
}

.case-candidate-interview-time-field > span,
.case-candidate-interview-note-field > span {
  color: #344054;
  font-size: 12px;
  font-weight: 650;
}

.case-candidate-interview-note-field > span i {
  margin-left: 5px;
  color: #98a2b3;
  font-size: 10px;
  font-style: normal;
  font-weight: 500;
}

.case-candidate-interview-time-input {
  display: flex;
  min-height: 48px;
  align-items: center;
  gap: 10px;
  padding: 0 13px;
  border: 1px solid #cfd6e4;
  border-radius: 11px;
  background: #fff;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.case-candidate-interview-time-input:focus-within {
  border-color: #8b5cf6;
  box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.11);
}

.case-candidate-interview-time-input svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: none;
  stroke: #7c3aed;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.client-company-edit-field .case-candidate-interview-time-input input {
  min-height: 46px;
  padding: 7px 0;
  border: 0;
  box-shadow: none;
  color: #1f2937;
  font-size: 14px;
  font-weight: 600;
}

.client-company-edit-field .case-candidate-interview-time-input input:focus {
  border: 0;
  box-shadow: none;
}

.case-candidate-interview-time-field > small {
  color: #98a2b3;
  font-size: 10px;
}

.case-candidate-interview-note-field textarea {
  min-height: 86px;
  border-radius: 11px;
  background: #fbfcfe;
}

.case-candidate-interview-reminder-note {
  display: block;
  padding: 14px;
  border: 1px solid #d9d6fe;
  border-radius: 13px;
  background: linear-gradient(135deg, #f7f5ff, #f3f7ff);
  color: #475467;
  font-size: 12px;
  line-height: 1.55;
}

.case-candidate-interview-reminder-note strong {
  color: #42358f;
}

.case-candidate-interview-reminder-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.case-candidate-interview-reminder-head > div {
  display: grid;
  gap: 1px;
}

.case-candidate-interview-reminder-head small {
  color: #7c8495;
  font-size: 10px;
}

.case-candidate-interview-bell {
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #ede9fe;
  color: #6d28d9;
}

.case-candidate-interview-bell svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.case-candidate-interview-targets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 12px;
}

.case-candidate-interview-targets > span {
  display: grid;
  gap: 2px;
  padding: 9px 11px;
  border: 1px solid rgba(196, 181, 253, 0.58);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.75);
}

.case-candidate-interview-targets b {
  color: #4c1d95;
  font-size: 11px;
}

.case-candidate-interview-targets small {
  color: #7c8495;
  font-size: 9px;
}

.case-candidate-interview-timeline {
  display: grid;
  gap: 5px;
  margin-top: 11px;
  padding-top: 10px;
  border-top: 1px dashed #d8d4f4;
  color: #667085;
  font-size: 10px;
}

.case-candidate-interview-timeline span {
  display: flex;
  align-items: center;
  gap: 7px;
}

.case-candidate-interview-timeline i {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 999px;
  background: #8b5cf6;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.11);
}

.case-candidate-interview-footer {
  padding: 14px 25px;
  background: #fbfcff;
}

.case-candidate-interview-footer > span {
  margin-right: auto;
  color: #98a2b3;
  font-size: 10px;
}

.case-candidate-interview-footer .client-company-edit-cancel,
.case-candidate-interview-footer .client-company-edit-save {
  min-height: 39px;
  border-radius: 9px;
}

.case-candidate-interview-footer .client-company-edit-save {
  padding: 0 20px;
  border-color: #6d28d9;
  background: linear-gradient(135deg, #4f46e5, #7c3aed);
  box-shadow: 0 8px 18px rgba(109, 40, 217, 0.2);
}

.case-candidate-recommendation-modal {
  padding: 18px;
  background: rgba(15, 23, 42, 0.56);
  backdrop-filter: blur(5px);
}

.case-candidate-recommendation-panel {
  width: min(560px, calc(100vw - 36px));
  max-height: min(720px, calc(100vh - 36px));
  overflow: hidden;
  border: 1px solid rgba(147, 197, 253, 0.72);
  border-radius: 21px;
  box-shadow: 0 32px 90px rgba(15, 23, 42, 0.3), 0 12px 34px rgba(37, 99, 235, 0.16);
  animation: case-candidate-interview-enter 0.22s ease-out;
}

.case-candidate-recommendation-header {
  align-items: flex-start;
  padding: 24px 26px 22px;
  border-bottom-color: #dbeafe;
  background:
    radial-gradient(circle at 88% 14%, rgba(125, 211, 252, 0.24), transparent 30%),
    linear-gradient(135deg, #eff6ff 0%, #f5faff 50%, #ecfeff 100%);
}

.case-candidate-recommendation-title-wrap {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 14px;
}

.case-candidate-recommendation-icon {
  display: inline-flex;
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  background: linear-gradient(145deg, #2563eb, #0891b2);
  color: #fff;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.25);
}

.case-candidate-recommendation-icon svg,
.case-candidate-recommendation-summary-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.case-candidate-recommendation-eyebrow {
  margin-bottom: 3px;
  color: #0284c7;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.13em;
}

.case-candidate-recommendation-header h3 {
  color: #0f2f58;
  font-size: 21px;
  letter-spacing: -0.02em;
}

.case-candidate-recommendation-header p {
  margin-top: 6px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.55;
}

.case-candidate-recommendation-header .client-company-edit-close {
  margin-top: -3px;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: rgba(255, 255, 255, 0.78);
}

.case-candidate-recommendation-form {
  display: grid;
  gap: 16px;
  padding: 21px 26px 24px;
  overflow-y: auto;
  background: #fff;
}

.case-candidate-recommendation-stage-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border: 1px solid #dbeafe;
  border-radius: 11px;
  background: #f8fbff;
  color: #64748b;
  font-size: 12px;
}

.case-candidate-recommendation-stage-row strong {
  display: inline-flex;
  min-height: 27px;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 12px;
}

.case-candidate-recommendation-stage-row strong i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.case-candidate-recommendation-note-field > span {
  color: #344054;
  font-size: 12px;
  font-weight: 650;
}

.case-candidate-recommendation-note-field > span i {
  margin-left: 5px;
  color: #98a2b3;
  font-size: 10px;
  font-style: normal;
  font-weight: 500;
}

.case-candidate-recommendation-note-field textarea {
  min-height: 108px;
  resize: vertical;
  border-color: #cbd5e1;
  border-radius: 12px;
  background: #fbfdff;
  line-height: 1.65;
}

.case-candidate-recommendation-note-field textarea:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.11);
}

.case-candidate-recommendation-quick-fill {
  display: grid;
  gap: 9px;
  margin-top: -3px;
}

.case-candidate-recommendation-quick-fill > span {
  color: #64748b;
  font-size: 10px;
  font-weight: 650;
}

.case-candidate-recommendation-quick-fill > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.case-candidate-recommendation-quick-fill button {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #f8fbff;
  color: #3b6ba5;
  font-size: 11px;
  cursor: pointer;
  transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.case-candidate-recommendation-quick-fill button:hover {
  transform: translateY(-1px);
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}

.case-candidate-recommendation-quick-fill button.is-selected {
  border-color: #60a5fa;
  background: #dbeafe;
  color: #1d4ed8;
  font-weight: 650;
}

.case-candidate-recommendation-summary {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 13px 14px;
  border: 1px solid #bae6fd;
  border-radius: 13px;
  background: linear-gradient(135deg, #f0f9ff, #ecfeff);
}

.case-candidate-recommendation-summary-icon {
  display: inline-flex;
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #dbeafe;
  color: #2563eb;
}

.case-candidate-recommendation-summary-icon svg {
  width: 17px;
  height: 17px;
}

.case-candidate-recommendation-summary > div {
  display: grid;
  gap: 3px;
}

.case-candidate-recommendation-summary strong {
  color: #164e63;
  font-size: 11px;
}

.case-candidate-recommendation-summary div span {
  color: #64748b;
  font-size: 10px;
  line-height: 1.55;
}

.case-candidate-recommendation-footer {
  padding: 14px 26px;
  border-top-color: #e2e8f0;
  background: #fbfdff;
}

.case-candidate-recommendation-footer > span {
  margin-right: auto;
  color: #94a3b8;
  font-size: 10px;
}

.case-candidate-recommendation-footer .client-company-edit-cancel,
.case-candidate-recommendation-footer .client-company-edit-save {
  min-height: 40px;
  border-radius: 10px;
}

.case-candidate-recommendation-footer .client-company-edit-save {
  padding: 0 21px;
  border-color: #2563eb;
  background: linear-gradient(135deg, #2563eb, #0891b2);
  box-shadow: 0 9px 20px rgba(37, 99, 235, 0.22);
}

.case-candidate-onboard-panel {
  border-color: rgba(110, 231, 183, 0.75);
}

.case-candidate-onboard-header {
  border-bottom-color: #d1fae5;
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 52%, #eff6ff 100%);
}

.case-candidate-onboard-icon {
  background: linear-gradient(145deg, #059669, #10b981);
  box-shadow: 0 9px 20px rgba(5, 150, 105, 0.24);
}

.case-candidate-onboard-header .case-candidate-interview-eyebrow { color: #059669; }
.case-candidate-onboard-header h3 { color: #064e3b; }

.case-candidate-onboard-stage-row strong {
  color: #047857;
  background: #d1fae5;
}

.case-candidate-onboard-date-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.case-candidate-onboard-date-input:focus-within {
  border-color: #10b981;
  box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.11);
}

.case-candidate-onboard-date-input svg { stroke: #059669; }

.case-candidate-onboard-note {
  display: grid;
  gap: 3px;
  border-color: #a7f3d0;
  background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
  color: #55736a;
}

.case-candidate-onboard-note strong { color: #047857; }

.case-candidate-onboard-panel .case-candidate-interview-footer .client-company-edit-save {
  border-color: #059669;
  background: linear-gradient(135deg, #059669, #10b981);
  box-shadow: 0 8px 18px rgba(5, 150, 105, 0.2);
}

.case-candidate-offer-modal {
  padding: 18px;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(5px);
}

.case-candidate-offer-panel {
  width: min(660px, calc(100vw - 36px));
  max-height: min(850px, calc(100vh - 36px));
  overflow: hidden;
  border-color: rgba(251, 191, 36, 0.68);
  box-shadow: 0 34px 96px rgba(15, 23, 42, 0.32), 0 12px 34px rgba(217, 119, 6, 0.16);
}

.case-candidate-offer-header {
  border-bottom-color: #fde68a;
  background:
    radial-gradient(circle at 88% 8%, rgba(196, 181, 253, 0.32), transparent 31%),
    linear-gradient(135deg, #fff7ed 0%, #fffbeb 48%, #f5f3ff 100%);
}

.case-candidate-offer-icon {
  background: linear-gradient(145deg, #f59e0b, #7c3aed);
  box-shadow: 0 10px 22px rgba(180, 83, 9, 0.24);
}

.case-candidate-offer-header .case-candidate-interview-eyebrow { color: #b45309; }
.case-candidate-offer-header h3 { color: #422006; }
.case-candidate-offer-header p { color: #74675c; }

.case-candidate-offer-cancel-modal {
  z-index: 100210;
  padding: 18px;
  background: rgba(15, 23, 42, 0.62);
  backdrop-filter: blur(5px);
}

.case-candidate-offer-cancel-panel {
  width: min(520px, calc(100vw - 36px));
  overflow: hidden;
  border-color: rgba(252, 165, 165, 0.92);
  box-shadow: 0 32px 90px rgba(15, 23, 42, 0.34), 0 12px 34px rgba(220, 38, 38, 0.14);
}

.case-candidate-offer-cancel-header {
  border-bottom-color: #fecaca;
  background:
    radial-gradient(circle at 88% 10%, rgba(254, 202, 202, 0.5), transparent 34%),
    linear-gradient(135deg, #fff7f7 0%, #fff 58%, #fff1f2 100%);
}

.case-candidate-offer-cancel-icon {
  background: linear-gradient(145deg, #f97316, #dc2626);
  box-shadow: 0 10px 22px rgba(220, 38, 38, 0.22);
}

.case-candidate-offer-cancel-header .case-candidate-interview-eyebrow { color: #dc2626; }
.case-candidate-offer-cancel-header h3 { color: #7f1d1d; }
.case-candidate-offer-cancel-header p { color: #7c5a5a; }

.case-candidate-offer-cancel-form {
  display: grid;
  gap: 16px;
  padding: 21px 25px 24px;
  background: #fff;
}

.case-candidate-offer-cancel-summary {
  display: grid;
  gap: 9px;
}

.case-candidate-offer-cancel-summary > strong {
  color: #1f2937;
  font-size: 16px;
  line-height: 1.45;
}

.case-candidate-offer-cancel-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.case-candidate-offer-cancel-meta span {
  padding: 5px 9px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 11px;
}

.case-candidate-offer-cancel-impact {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 14px;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fff7f7;
}

.case-candidate-offer-cancel-impact-icon {
  display: inline-flex;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fee2e2;
  color: #dc2626;
  font-size: 13px;
  font-weight: 800;
}

.case-candidate-offer-cancel-impact strong {
  color: #991b1b;
  font-size: 12px;
}

.case-candidate-offer-cancel-impact ul {
  display: grid;
  gap: 5px;
  margin: 8px 0 0;
  padding-left: 17px;
  color: #7f1d1d;
  font-size: 11px;
  line-height: 1.5;
}

.case-candidate-offer-cancel-reason > span {
  color: #344054;
  font-size: 12px;
  font-weight: 650;
}

.case-candidate-offer-cancel-reason > span i {
  margin-left: 5px;
  color: #98a2b3;
  font-size: 10px;
  font-style: normal;
  font-weight: 500;
}

.case-candidate-offer-cancel-reason textarea {
  min-height: 82px;
  border-radius: 11px;
  background: #fbfcfe;
  resize: vertical;
}

.case-candidate-offer-cancel-footer {
  border-top-color: #fee2e2;
  background: #fffafa;
}

.case-candidate-offer-cancel-confirm {
  min-height: 38px;
  padding: 0 17px;
  border: 1px solid #dc2626;
  border-radius: 8px;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(220, 38, 38, 0.2);
  cursor: pointer;
}

.case-candidate-offer-cancel-confirm:hover {
  background: linear-gradient(135deg, #dc2626, #b91c1c);
}

.case-candidate-offer-cancel-confirm:focus-visible {
  outline: 3px solid rgba(239, 68, 68, 0.2);
  outline-offset: 2px;
}

.case-candidate-offer-form {
  gap: 16px;
  background: #fff;
}

.case-candidate-offer-stage-row {
  border-color: #fde7b0;
  background: linear-gradient(90deg, #fffbeb, #faf8ff);
}

.case-candidate-offer-stage-row strong {
  gap: 7px;
  color: #92400e;
  background: #fef3c7;
}

.case-candidate-offer-stage-row strong i {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.14);
}

.case-candidate-offer-main-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.case-candidate-offer-field > span {
  color: #344054;
  font-size: 12px;
  font-weight: 650;
}

.case-candidate-offer-input-wrap {
  display: flex;
  min-height: 48px;
  align-items: center;
  overflow: hidden;
  border: 1px solid #d5dbe6;
  border-radius: 11px;
  background: #fff;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.case-candidate-offer-input-wrap:focus-within,
.case-candidate-offer-date-input:focus-within {
  border-color: #f59e0b;
  box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.12);
}

.case-candidate-offer-input-wrap > span {
  padding-left: 14px;
  color: #b45309;
  font-size: 17px;
  font-weight: 750;
}

.client-company-edit-field .case-candidate-offer-input-wrap input {
  min-height: 46px;
  border: 0;
  box-shadow: none;
  color: #1f2937;
  font-size: 14px;
  font-weight: 650;
}

.client-company-edit-field .case-candidate-offer-input-wrap input:focus {
  border: 0;
  box-shadow: none;
}

.case-candidate-offer-date-input svg { stroke: #d97706; }

.case-candidate-offer-allocation {
  padding: 15px;
  border: 1px solid #e8e1f4;
  border-radius: 14px;
  background: linear-gradient(145deg, #fffdf8, #faf8ff);
}

.case-candidate-offer-allocation-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.case-candidate-offer-allocation-head > div {
  display: grid;
  gap: 3px;
}

.case-candidate-offer-allocation-head strong {
  color: #344054;
  font-size: 12px;
}

.case-candidate-offer-allocation-head small {
  color: #98a2b3;
  font-size: 10px;
}

.case-candidate-offer-total {
  min-width: 84px;
  padding: 6px 9px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  text-align: center;
  font-size: 10px;
}

.case-candidate-offer-total b { color: #475569; font-size: 11px; }
.case-candidate-offer-total.is-valid { border-color: #a7f3d0; background: #ecfdf5; color: #047857; }
.case-candidate-offer-total.is-valid b { color: #047857; }
.case-candidate-offer-total.is-invalid { border-color: #fecaca; background: #fef2f2; color: #b91c1c; }
.case-candidate-offer-total.is-invalid b { color: #b91c1c; }

.case-candidate-offer-allocation-columns,
.case-candidate-offer-allocation-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px 34px;
  gap: 9px;
  align-items: center;
}

.case-candidate-offer-allocation-columns {
  padding: 0 4px 6px;
  color: #98a2b3;
  font-size: 9px;
}

.case-candidate-offer-allocation-rows {
  display: grid;
  gap: 8px;
}

.case-candidate-offer-person-picker,
.case-candidate-offer-allocation-row > label {
  min-height: 40px;
  border: 1px solid #d9dee8;
  border-radius: 9px;
  background: #fff;
}

.case-candidate-offer-person-picker {
  position: relative;
  min-width: 0;
}

.case-candidate-offer-allocation-row:focus-within {
  position: relative;
  z-index: 4;
}

.case-candidate-offer-allocation-row.is-person-picker-open {
  padding-bottom: var(--offer-person-options-space, 226px);
  align-items: start;
}

.case-candidate-offer-person-picker > input {
  width: 100%;
  min-height: 38px;
  padding: 0 11px;
  border: 0;
  border-radius: inherit;
  outline: 0;
  background: transparent;
  color: #334155;
  font-size: 12px;
}

.case-candidate-offer-person-picker > input::-webkit-search-cancel-button { display: none; }

.case-candidate-offer-allocation-row > label {
  display: flex;
  align-items: center;
  overflow: hidden;
}

.case-candidate-offer-allocation-row > label input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 0 4px 0 10px;
  border: 0;
  outline: 0;
  color: #334155;
  font-size: 12px;
}

.case-candidate-offer-allocation-row > label span {
  padding-right: 10px;
  color: #7c3aed;
  font-size: 11px;
  font-weight: 700;
}

.case-candidate-offer-person-picker:focus-within,
.case-candidate-offer-allocation-row > label:focus-within {
  border-color: #a78bfa;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
}

.case-candidate-offer-person-options {
  position: absolute;
  z-index: 30;
  top: calc(100% + 5px);
  right: -1px;
  left: -1px;
  max-height: 220px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #ddd6fe;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(51, 35, 91, 0.18);
}

.case-candidate-offer-person-options[hidden] { display: none; }

.case-candidate-offer-person-option {
  display: grid;
  width: 100%;
  gap: 2px;
  padding: 8px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #334155;
  text-align: left;
  cursor: pointer;
}

.case-candidate-offer-person-option:hover,
.case-candidate-offer-person-option.is-active {
  background: #f5f3ff;
  color: #5b21b6;
}

.case-candidate-offer-person-option strong {
  overflow: hidden;
  font-size: 12px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-candidate-offer-person-option small {
  overflow: hidden;
  color: #8b95a7;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-candidate-offer-person-empty {
  padding: 12px 8px;
  color: #98a2b3;
  text-align: center;
  font-size: 10px;
}

.case-candidate-offer-remove-person {
  width: 32px;
  height: 32px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
  color: #94a3b8;
  font-size: 18px;
  cursor: pointer;
}

.case-candidate-offer-remove-person:hover:not(:disabled) {
  border-color: #fecaca;
  background: #fef2f2;
  color: #dc2626;
}

.case-candidate-offer-remove-person:disabled { opacity: 0.4; cursor: not-allowed; }

.case-candidate-offer-add-person {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 5px;
  margin-top: 9px;
  padding: 0 11px;
  border: 1px dashed #c4b5fd;
  border-radius: 9px;
  background: #faf8ff;
  color: #6d28d9;
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
}

.case-candidate-offer-add-person:hover { border-color: #8b5cf6; background: #f5f3ff; }

.case-candidate-offer-error {
  min-height: 0;
  margin-top: 7px;
  color: #dc2626;
  font-size: 10px;
  font-weight: 600;
}

.case-candidate-offer-error:empty { display: none; }

.case-candidate-offer-tip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 13px;
  border: 1px solid #fde68a;
  border-radius: 12px;
  background: linear-gradient(135deg, #fffbeb, #faf5ff);
}

.case-candidate-offer-tip > span {
  display: inline-flex;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #fef3c7;
  color: #b45309;
  font-weight: 800;
}

.case-candidate-offer-tip > div { display: grid; gap: 2px; }
.case-candidate-offer-tip strong { color: #78350f; font-size: 11px; }
.case-candidate-offer-tip small { color: #7c6f65; font-size: 10px; line-height: 1.5; }

.case-candidate-offer-footer-leading {
  display: flex;
  align-items: center;
  margin-right: auto;
}

.case-candidate-offer-footer-leading > span {
  color: #98a2b3;
  font-size: 10px;
}

.case-candidate-offer-cancel-action {
  min-height: 36px;
  padding: 0 15px;
  border: 1px solid #ef4444;
  border-radius: 8px;
  background: #fff;
  color: #dc2626;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.case-candidate-offer-cancel-action:hover {
  background: #fef2f2;
  border-color: #dc2626;
}

.case-candidate-offer-cancel-action:focus-visible {
  outline: 3px solid rgba(239, 68, 68, 0.18);
  outline-offset: 2px;
}

.case-candidate-offer-footer .client-company-edit-save {
  border-color: #d97706;
  background: linear-gradient(135deg, #f59e0b, #7c3aed);
  box-shadow: 0 9px 20px rgba(180, 83, 9, 0.2);
}

@media (max-width: 620px) {
  .case-candidate-interview-modal { padding: 12px; }
  .case-candidate-interview-header,
  .case-candidate-interview-form,
  .case-candidate-interview-footer { padding-right: 16px; padding-left: 16px; }
  .case-candidate-interview-targets { grid-template-columns: 1fr; }
  .case-candidate-onboard-date-grid { grid-template-columns: 1fr; }
  .case-candidate-offer-modal { padding: 10px; }
  .case-candidate-offer-header,
  .case-candidate-offer-form,
  .case-candidate-offer-footer { padding-right: 16px; padding-left: 16px; }
  .case-candidate-offer-main-grid { grid-template-columns: 1fr; }
  .case-candidate-offer-cancel-modal { padding: 10px; }
  .case-candidate-offer-cancel-header,
  .case-candidate-offer-cancel-form,
  .case-candidate-offer-cancel-footer { padding-right: 16px; padding-left: 16px; }
  .case-candidate-offer-allocation-columns,
  .case-candidate-offer-allocation-row { grid-template-columns: minmax(0, 1fr) 90px 32px; }
  .case-candidate-offer-footer-leading > span { display: none; }
  .case-candidate-interview-footer > span { display: none; }
  .case-candidate-recommendation-modal { padding: 10px; }
  .case-candidate-recommendation-header,
  .case-candidate-recommendation-form,
  .case-candidate-recommendation-footer { padding-right: 16px; padding-left: 16px; }
  .case-candidate-recommendation-footer > span { display: none; }
}

.case-candidate-payment-input-wrap {
  display: flex;
  align-items: center;
  min-height: 38px;
  border: 1px solid #d5dde8;
  border-radius: 7px;
  background: #fff;
  overflow: hidden;
}

.case-candidate-payment-amount-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.case-candidate-payment-pending-wrap {
  background: #f8fafc;
}

.client-company-edit-field .case-candidate-payment-pending-wrap input[readonly] {
  color: #b45309;
  background: #f8fafc;
  font-weight: 700;
  cursor: default;
}

.case-candidate-payment-error {
  min-height: 18px;
  margin: -2px 0 0;
  color: #dc2626;
  font-size: 12px;
}

.case-candidate-payment-input-wrap:focus-within {
  border-color: #78a4ef;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.case-candidate-payment-input-wrap > span {
  padding-left: 12px;
  color: #b45309;
  font-size: 14px;
  font-weight: 700;
}

.client-company-edit-field .case-candidate-payment-input-wrap input {
  min-height: 36px;
  border: 0;
  box-shadow: none;
}

.client-company-edit-field .case-candidate-payment-input-wrap input:focus {
  border: 0;
  box-shadow: none;
}

.case-candidate-payment-note {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.case-candidate-paid-panel { border-color: rgba(110, 231, 183, 0.75); }

.case-candidate-paid-header {
  border-bottom-color: #d1fae5;
  background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
}

.case-candidate-paid-header h3 { color: #064e3b; }
.case-candidate-paid-header p { color: #5f746d; }

.case-candidate-paid-input-wrap:focus-within {
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.12);
}

.case-candidate-paid-input-wrap > span { color: #047857; }

.case-candidate-paid-note {
  display: grid;
  gap: 3px;
  border-color: #a7f3d0;
  background: #ecfdf5;
  color: #55736a;
}

.case-candidate-paid-note strong { color: #047857; }

.case-candidate-paid-panel .client-company-edit-save {
  border-color: #059669;
  background: linear-gradient(135deg, #059669, #10b981);
}

@media (max-width: 640px) {
  .case-candidate-payment-amount-grid {
    grid-template-columns: 1fr;
  }
}

.case-candidate-reminder-toast {
  position: fixed;
  z-index: 100200;
  right: 24px;
  top: 86px;
  max-width: min(520px, calc(100vw - 32px));
  padding: 12px 16px;
  border: 1px solid #c4b5fd;
  border-radius: 11px;
  background: #f5f3ff;
  color: #5b21b6;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  box-shadow: 0 12px 30px rgba(76, 29, 149, 0.16);
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.case-candidate-reminder-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.case-candidate-phone-link {
  min-height: auto;
  padding: 2px 0;
  border-radius: 0;
  font-size: 12px;
}

.case-candidate-phone-link:hover {
  background: transparent;
}

.case-candidate-more {
  width: 24px;
  flex: 0 0 24px;
  display: inline-flex;
  height: 24px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: #fff;
  color: #475569;
  cursor: pointer;
}

.case-candidate-more:hover,
.case-candidate-more:focus-visible {
  border-color: #93b4e9;
  background: #f5f8ff;
  color: #2563eb;
}

.case-candidate-more svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.case-candidate-more-menu {
  position: fixed;
  z-index: 10050;
  display: grid;
  min-width: 112px;
  padding: 4px;
  border: 1px solid #dbe3ec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
}

.case-candidate-more-menu button {
  min-height: 30px;
  padding: 0 9px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #334155;
  font-size: 11px;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
}

.case-candidate-more-menu button:hover {
  background: #f1f5f9;
}

.case-candidate-more-menu button.danger {
  color: #dc2626;
}

.case-candidate-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 44px;
  padding: 7px 10px;
  border-top: 0;
  background: #fff;
  color: #475569;
  font-size: 11px;
  box-sizing: border-box;
}

.case-candidate-result-count span {
  color: #475569;
}

.case-candidate-result-count,
.case-candidate-result-count label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.case-candidate-result-count {
  gap: 12px;
}

.case-candidate-page-size {
  width: 58px;
  height: 28px;
  padding: 0 24px 0 9px;
  border: 1px solid #d8e0ea;
  border-radius: 5px;
  background-color: #fff;
  color: #334155;
  font-size: 11px;
  cursor: pointer;
}

.case-candidate-page-size:focus-visible {
  border-color: #3b82f6;
  outline: 2px solid rgba(59, 130, 246, 0.16);
}

.case-candidate-loading {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7b8aa0;
  font-size: 12px;
}

.case-candidate-pagination {
  display: flex;
  align-items: center;
}

.case-candidate-page-btn {
  min-width: 30px;
  height: 28px;
  margin-left: -1px;
  padding: 0 9px;
  border: 1px solid #d8e0ea;
  background: #fff;
  color: #334155;
  font-size: 11px;
  cursor: pointer;
}

.case-candidate-page-btn:first-child {
  margin-left: 0;
  border-radius: 5px 0 0 5px;
}

.case-candidate-page-btn:last-child {
  border-radius: 0 5px 5px 0;
}

.case-candidate-page-btn:hover:not(:disabled),
.case-candidate-page-btn.active {
  position: relative;
  z-index: 1;
  border-color: #3b82f6;
  background: #3b82f6;
  color: #fff;
}

.case-candidate-page-btn:disabled {
  color: #b7c0cc;
  cursor: not-allowed;
}

.case-candidate-page-gap {
  display: inline-flex;
  width: 30px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-top: 1px solid #d8e0ea;
  border-bottom: 1px solid #d8e0ea;
  background: #fff;
  color: #94a3b8;
}

.project-people-section .case-resume-item {
  padding: 11px 13px;
  border-color: #e4eaf2;
  border-radius: 10px;
  background: #fff;
}

.project-people-section .case-resume-item:hover {
  border-color: #93b7f4;
  background: #f7faff;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.07);
}

.project-people-section .no-resumes {
  padding: 34px 16px;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  color: #8391a5;
  text-align: center;
}

.project-attachments-section {
  background: #fbfcfe !important;
}

@media (max-width: 1200px) {
  .case-candidate-table-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .case-candidate-pagination {
    max-width: 100%;
    overflow-x: auto;
  }

  .detail-top-row > .detail-main-area,
  .detail-top-row > .detail-sidebar {
    max-width: 100%;
    flex: 1 1 100%;
  }

  .detail-top-row > .detail-sidebar {
    order: initial;
  }
}

@media (max-width: 820px) {
  .project-hub-card {
    grid-template-columns: 1fr;
    padding: 10px;
  }

  .project-hub-card > .detail-section,
  .project-hub-card > .detail-resumes-section,
  .project-hub-card > .detail-attachments-section {
    grid-column: 1;
  }

  .project-detail-hero {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .project-detail-kpis {
    width: 100%;
  }

  .project-quick-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .project-quick-facts > div:nth-child(2) {
    border-right: 0;
  }

  .project-quick-facts > div:nth-child(-n+2) {
    border-bottom: 1px solid #dbeafe;
  }
}

@media (max-width: 560px) {
  .project-section-heading {
    flex-direction: column;
  }

  .project-section-heading .btn-upload-resume-mini {
    width: 100%;
    justify-content: center;
  }
}

/* 共享订单详情：参考 CRM 的顶部摘要 + 内容页签布局 */
.order-detail-view {
  padding: 0 0 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.order-detail-view [hidden] { display: none !important; }

.order-detail-overview {
  position: relative;
  overflow: hidden;
  padding: 12px 16px;
  border: 1px solid #e1e6ed;
  border-radius: 11px 11px 0 0;
  background: #fff;
  box-shadow: none;
}

.order-detail-overview::after {
  display: none;
}

.order-detail-view .detail-header {
  position: relative;
  z-index: 1;
  align-items: center;
  gap: 24px;
  margin: 0;
  padding: 0;
  border-bottom: 0;
}

.detail-heading-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.detail-back-link {
  flex: 0 0 auto;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-top: 0;
  padding: 0;
  border-color: #d3e0ef;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.9);
  color: #3b6ea8;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.06);
}

.detail-back-link:hover {
  border-color: #b8c5d6;
  background: #f8fafc;
  color: #2563eb;
}

.detail-heading-copy { min-width: 0; }

.detail-heading-title-row {
  display: flex;
  align-items: baseline;
  gap: 9px;
  min-width: 0;
}

.detail-heading-title-row h3 {
  margin: 0;
  overflow: hidden;
  color: #172b4d;
  font-size: clamp(18px, 1.35vw, 22px);
  font-weight: 700;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.detail-heading-title-row .detail-id {
  color: #94a3b8;
  font-size: 12px;
  font-weight: 500;
}

.detail-heading-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 3px;
}

.detail-heading-meta > p {
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.5;
}

.detail-heading-copy .detail-badges { gap: 5px; }

.detail-heading-copy .detail-badges > span {
  min-height: 21px;
  box-sizing: border-box;
}

.order-detail-view .detail-actions {
  flex: 0 0 auto;
  gap: 8px;
  padding-top: 0;
}

.order-detail-view .detail-actions .btn-edit,
.order-detail-view .detail-actions .btn-delete {
  min-width: 62px;
  height: 30px;
  padding: 0 15px;
  border-radius: 8px;
  font-weight: 600;
}

.order-detail-view .detail-actions .btn-edit {
  border-color: #cbd5e1;
  background: #fff;
  color: #334155;
  box-shadow: none;
}

.order-detail-view .detail-actions .btn-edit:hover {
  border-color: #2563eb;
  background: #eff6ff;
  color: #1d4ed8;
}

.order-detail-view .detail-actions .btn-delete {
  border-color: #f0b6b6;
  background: rgba(255, 255, 255, 0.88);
}

.project-summary-strip {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 360px);
  gap: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.project-summary-strip .project-quick-facts {
  grid-column: auto;
  gap: 8px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.project-summary-strip .project-quick-facts > div {
  padding: 9px 11px;
  border: 1px solid rgba(214, 225, 238, 0.88);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.82);
}

.project-summary-strip .project-quick-facts span {
  margin-bottom: 3px;
  color: #8491a4;
  font-size: 12px;
}

.project-summary-strip .project-quick-facts strong {
  color: #2f3e53;
  font-size: 15px;
}

.project-summary-strip .project-detail-kpis {
  align-self: stretch;
  gap: 7px;
}

.project-summary-strip .project-detail-kpi {
  min-height: 52px;
  padding: 6px 8px;
  border-color: rgba(201, 217, 236, 0.88);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 3px 10px rgba(31, 65, 114, 0.04);
}

.project-summary-strip .project-detail-kpi strong { font-size: 18px; }

.project-summary-strip .project-detail-kpi span {
  margin-top: 3px;
  font-size: 10px;
}

.order-detail-tabs {
  display: block;
  margin-top: -1px;
  padding: 6px 22px;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid #e0e7ef;
  border-radius: 0;
  background: linear-gradient(180deg, #fbfdff 0%, #f6f9fd 100%);
  box-shadow: none;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.order-detail-tabs::-webkit-scrollbar { display: none; }

.order-detail-tabs-track {
  display: grid;
  grid-template-columns: repeat(5, 126px) minmax(40px, 1fr) 220px;
  gap: 4px;
  width: 100%;
  min-width: 880px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-sizing: border-box;
}

.order-detail-group-entry {
  grid-column: 7;
  justify-self: end;
  display: flex;
  align-items: center;
  width: 220px;
  height: 36px;
  border: 1px solid #cfe2f3;
  border-radius: 9px;
  background: linear-gradient(135deg, #f7fbff 0%, #eef7ff 100%);
  overflow: hidden;
  box-shadow: 0 2px 7px rgba(18, 128, 214, 0.06);
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.order-detail-group-entry:hover,
.order-detail-group-entry.is-configured {
  border-color: #9ccbf0;
  background: linear-gradient(135deg, #f2f9ff 0%, #e5f3ff 100%);
}

.order-detail-group-entry.is-configured:hover {
  box-shadow: 0 3px 10px rgba(18, 128, 214, 0.14);
}

.order-detail-group-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
  height: 100%;
  padding: 0 8px;
  border: 0;
  background: transparent;
  color: #23638f;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}

.order-detail-group-action .order-detail-tab-icon {
  width: 18px;
  height: 18px;
  color: #1296db;
  stroke-width: 1.9;
}

.order-detail-group-entry.is-configured .order-detail-group-action {
  color: #0c6fa9;
}

.order-detail-group-entry.has-group-link .order-detail-group-action {
  background: rgba(255, 255, 255, 0.34);
  color: #0875b5;
  font-size: 13px;
  font-weight: 700;
}

.order-detail-group-entry.has-group-link .order-detail-group-action:hover {
  background: rgba(255, 255, 255, 0.82);
}

.order-detail-group-status {
  padding: 2px 5px;
  border-radius: 999px;
  border: 1px solid #d8e8df;
  background: rgba(255, 255, 255, 0.82);
  color: #718096;
  font-size: 9px;
  font-weight: 650;
}

.order-detail-group-entry.is-configured .order-detail-group-status {
  border-color: #b8dcf5;
  background: #dff1ff;
  color: #0c6fa9;
}

.order-detail-group-edit {
  width: 64px;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 0;
  border-left: 1px solid #d5e7f4;
  background: transparent;
  color: #8492a6;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.order-detail-group-edit:hover {
  background: rgba(255, 255, 255, 0.92);
  color: #0c6fa9;
}

.order-detail-group-edit svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.order-dingtalk-group-modal-content {
  width: min(520px, calc(100vw - 32px));
  max-width: 520px;
}

.order-dingtalk-group-modal-content .modal-header > div p {
  margin: 4px 0 0;
  color: #7b8798;
  font-size: 12px;
}

.order-dingtalk-group-hint {
  display: flex;
  gap: 8px;
  flex-direction: column;
  margin-bottom: 16px;
  padding: 13px 14px;
  border: 1px solid #d6e9f8;
  border-radius: 9px;
  background: #f3f9ff;
}

.order-dingtalk-group-hint strong { color: #0c6fa9; }
.order-dingtalk-group-hint span { color: #64748b; font-size: 12px; line-height: 1.55; }
.order-dingtalk-group-modal-content .form-group input { width: 100%; }
.order-dingtalk-group-footer-spacer { flex: 1; }
.form-label-optional { color: #94a3b8; font-size: 12px; font-weight: 400; }

.order-dingtalk-group-view-content { max-width: 460px; }
.order-dingtalk-group-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border: 1px solid #d6e9f8;
  border-radius: 12px;
  background: linear-gradient(135deg, #f7fbff 0%, #edf7ff 100%);
}
.order-dingtalk-group-logo {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: 14px;
  background: linear-gradient(145deg, #2bb3f3, #1280d6);
  box-shadow: 0 6px 14px rgba(18, 128, 214, 0.2);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.5px;
}
.order-dingtalk-group-card-copy { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.order-dingtalk-group-card-copy span { color: #7b8798; font-size: 12px; }
.order-dingtalk-group-card-copy strong { color: #172033; font-size: 17px; word-break: break-all; }
.order-dingtalk-group-view-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.order-dingtalk-group-view-tip { margin-top: 12px; color: #7b8798; font-size: 12px; line-height: 1.6; }

.order-dingtalk-qr-upload {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 16px;
  border: 1.5px dashed #a9cfe9;
  border-radius: 12px;
  background: linear-gradient(145deg, #fbfdff 0%, #f1f8fe 100%);
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.order-dingtalk-qr-upload:hover {
  border-color: #1689d4;
  background: #f4faff;
  box-shadow: 0 5px 16px rgba(18, 128, 214, 0.1);
}
.order-dingtalk-qr-upload img {
  display: block;
  width: 190px;
  height: 190px;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
}
.order-dingtalk-qr-upload img[hidden],
.order-dingtalk-qr-empty[hidden],
.order-dingtalk-qr-viewer img[hidden],
.order-dingtalk-group-view-actions [hidden] { display: none !important; }
.order-dingtalk-qr-empty {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 7px;
  color: #0c6fa9;
  text-align: center;
}
.order-dingtalk-qr-empty::before {
  content: '+';
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 2px;
  border-radius: 50%;
  background: #dff1ff;
  color: #1280d6;
  font-size: 27px;
  font-weight: 300;
}
.order-dingtalk-qr-empty strong { font-size: 14px; }
.order-dingtalk-qr-empty small { color: #8a97a8; font-size: 12px; font-weight: 400; }

.order-dingtalk-qr-viewer {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 286px;
  padding: 14px;
  border: 1px solid #d6e9f8;
  border-radius: 14px;
  background: linear-gradient(145deg, #f8fcff 0%, #edf7ff 100%);
}
.order-dingtalk-qr-viewer img {
  width: 250px;
  height: 250px;
  object-fit: contain;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 6px 22px rgba(19, 75, 112, 0.12);
  cursor: zoom-in;
}
.order-dingtalk-qr-view-loading { color: #7b8798; font-size: 13px; }
.order-dingtalk-qr-zoom-button {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(18, 128, 214, 0.24);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 4px 12px rgba(19, 75, 112, 0.13);
  color: #0c6fa9;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  backdrop-filter: blur(6px);
}
.order-dingtalk-qr-zoom-button:hover {
  border-color: #1689d4;
  background: #fff;
  color: #0872b6;
  transform: translateY(-1px);
}
.order-dingtalk-qr-zoom-button svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.order-dingtalk-qr-zoom-button[hidden] { display: none !important; }

.order-dingtalk-qr-zoom {
  position: fixed;
  inset: 0;
  z-index: 20050;
  display: grid;
  place-items: center;
  padding: 30px;
  background: rgba(9, 18, 31, 0.86);
  backdrop-filter: blur(4px);
}
.order-dingtalk-qr-zoom-stage {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
}
.order-dingtalk-qr-zoom-stage img {
  display: block;
  max-width: min(92vw, 1100px);
  max-height: 88vh;
  object-fit: contain;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
}
.order-dingtalk-qr-zoom-close {
  position: fixed;
  top: 22px;
  right: 24px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  cursor: pointer;
}
.order-dingtalk-qr-zoom-close:hover { background: rgba(255, 255, 255, 0.24); }
.order-dingtalk-qr-zoom-close svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}
.order-dingtalk-group-view-actions a.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.order-detail-tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  height: 36px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #64748b;
  font-size: 15px;
  font-weight: 550;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.order-detail-tab-icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.order-detail-tab:hover {
  border-color: #dde6f1;
  background: rgba(255, 255, 255, 0.76);
  color: #334155;
}

.order-detail-tab.active,
.order-detail-tab[aria-selected="true"] {
  border-color: transparent;
  background: rgba(219, 234, 254, 0.56);
  color: #1d4ed8;
  font-weight: 650;
  box-shadow: inset 0 -2px 0 #60a5fa;
}

.order-detail-tab:active { transform: translateY(1px); }

.order-detail-tab:focus-visible {
  outline: 2px solid rgba(37, 99, 235, 0.35);
  outline-offset: 1px;
}

.order-detail-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  margin-left: -1px;
  padding: 0 4px;
  border-radius: 9px;
  background: #e8edf4;
  color: #64748b;
  font-size: 10px;
  font-weight: 650;
  line-height: 1;
  box-sizing: border-box;
}

.order-detail-tab.active .order-detail-tab-count {
  background: #dbeafe;
  color: #1d4ed8;
}

.order-detail-view .detail-content-wrapper {
  gap: 0;
  margin-top: -1px;
  padding: 14px;
  border: 1px solid #e0e7ef;
  border-top: 0;
  border-radius: 0 0 11px 11px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.045);
}

.order-detail-view .detail-top-row { width: 100%; }

.order-detail-view .detail-top-row > .detail-main-area,
.order-detail-view .detail-top-row > .detail-sidebar {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
}

.order-detail-view .project-hub-card {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.order-detail-view .project-hub-card > .detail-section,
.order-detail-view .project-hub-card > .detail-resumes-section,
.order-detail-view .project-hub-card > .detail-attachments-section {
  padding: 17px 18px;
  border-color: #e1e7ee;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.025);
}

.order-detail-view .project-hub-card .section-title {
  margin-bottom: 6px;
  padding-bottom: 11px;
  border-bottom: 1px solid #edf1f5;
  font-size: 16px;
}

.order-detail-view .project-hub-card .detail-info-grid {
  gap: 0 18px;
}

.order-detail-view .project-hub-card .detail-info-item {
  min-height: 48px;
  justify-content: center;
  padding: 7px 0;
  border: 0;
  border-bottom: 1px dashed #e5eaf0;
  border-radius: 0;
  background: transparent;
}

.order-detail-view .project-hub-card .detail-info-item .label {
  color: #8a98aa;
  font-size: 12px;
}

.order-detail-view .project-hub-card .detail-info-item .value {
  overflow: visible;
  color: #24364d;
  font-size: 15px;
  line-height: 1.55;
  text-overflow: clip;
  white-space: normal;
  word-break: break-word;
}

.project-overview-progress {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 10px 0 8px;
  padding: 9px 10px;
  border: 1px solid #e1eaf5;
  border-radius: 9px;
  background: #f7faff;
}

.project-overview-progress-label {
  flex: 0 0 auto;
  color: #64748b;
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
}

.project-overview-progress .project-detail-kpis {
  flex: 1 1 auto;
  max-width: 560px;
  gap: 6px;
}

.project-overview-progress .project-detail-kpi {
  min-height: 38px;
  padding: 4px 8px;
  border-color: #d8e4f2;
  border-radius: 7px;
  background: #fff;
}

.project-overview-progress .project-detail-kpi strong {
  font-size: 18px;
}

.project-overview-progress .project-detail-kpi span {
  margin-top: 2px;
  font-size: 11px;
}

.project-overview-key-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 8px 0 5px;
}

.project-overview-key-facts > div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #e3eaf3;
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
}

.project-overview-key-facts span,
.project-overview-key-facts strong {
  display: block;
}

.project-overview-key-facts span {
  margin-bottom: 4px;
  color: #8795a8;
  font-size: 12px;
}

.project-overview-key-facts strong {
  display: -webkit-box;
  min-height: 30px;
  overflow: hidden;
  color: #24364d;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.project-overview-meta-grid {
  margin-top: 4px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.order-detail-view .project-intro-section .detail-job-content,
.order-detail-view .project-job-section .detail-job-content {
  min-height: 112px;
  padding: 8px 0 0;
  border: 0;
  background: transparent;
}

.order-detail-view .project-overview-section {
  grid-column: 1 / -1;
  grid-row: 1;
  order: 1;
}

.order-detail-view .project-intro-section {
  grid-column: 1 / span 6;
  grid-row: 2;
  order: 2;
}

.order-detail-view .project-job-section {
  grid-column: 7 / -1;
  grid-row: 2;
  order: 2;
}

.order-detail-view .project-company-section {
  grid-column: 1 / span 6;
  grid-row: 3;
  order: 3;
}

.order-detail-view .project-business-section {
  grid-column: 7 / -1;
  grid-row: 3;
  order: 3;
}

.order-detail-view .project-bd-section {
  grid-column: 1 / -1;
  grid-row: 4;
  order: 4;
}

.order-detail-view .project-bd-section .detail-info-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.order-detail-view .project-bd-section .detail-info-wide {
  grid-column: 1 / -1;
}

.order-detail-view .project-business-section .detail-info-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.order-detail-view .project-business-section .detail-info-wide {
  grid-column: 1 / -1;
}

.order-detail-view .project-job-section .detail-job-content,
.order-detail-view .project-intro-section .detail-job-content {
  min-height: 180px;
  max-height: 320px;
}

/* 项目概况：用单一信息面板替代多层卡片，突出阅读顺序。 */
.order-detail-view .project-hub-card {
  gap: 0 28px;
  padding: 0 8px 4px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.order-detail-view .project-hub-card > .detail-section {
  padding: 18px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.order-detail-view .project-hub-card .section-title {
  margin: 0 0 13px;
  padding: 0;
  border: 0;
  color: #213550;
  font-size: 16px;
  font-weight: 700;
}

.order-detail-view .project-hub-card .section-title svg {
  width: 15px;
  height: 15px;
}

.project-overview-heading {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 24px;
  margin-bottom: 12px;
  padding: 1px 0 5px;
  border-bottom: 0;
}

.order-detail-view .project-overview-heading .section-title {
  margin: 0;
  color: #172b4d;
  font-size: 16px;
  font-weight: 700;
  gap: 7px;
  white-space: nowrap;
}

.order-detail-view .project-overview-heading .section-title svg {
  width: 15px;
  height: 15px;
  color: #1677ff;
  stroke-width: 2;
}

.project-overview-progress {
  gap: 7px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.project-overview-progress-label {
  color: #94a3b8;
  font-size: 12px;
  font-weight: 500;
}

.project-overview-progress .project-detail-kpis {
  display: flex;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  gap: 0;
}

.project-overview-progress .project-detail-kpi {
  min-width: 58px;
  min-height: 30px;
  padding: 0 11px;
  border: 0;
  border-left: 1px solid #e5eaf0;
  border-radius: 0;
  background: transparent;
}

.project-overview-progress .project-detail-kpi strong {
  font-size: 18px;
  line-height: 1;
}

.project-overview-progress .project-detail-kpi span {
  margin-top: 3px;
  color: #8a98aa;
  font-size: 11px;
}

.project-overview-key-facts {
  gap: 0;
  margin: 0 0 7px;
  overflow: hidden;
  border: 1px solid #e7ecf2;
  border-radius: 9px;
  background: #f8fafc;
}

.project-overview-key-facts > div {
  min-height: 50px;
  padding: 9px 13px;
  border: 0;
  border-left: 1px solid #e7ecf2;
  border-radius: 0;
  background: transparent;
}

.project-overview-key-facts > div:first-child {
  border-left: 0;
}

.project-overview-key-facts span {
  margin-bottom: 3px;
  color: #8a98aa;
  font-size: 12px;
}

.project-overview-key-facts strong {
  min-height: 0;
  color: #263a54;
  font-size: 14px;
  line-height: 1.55;
}

.order-detail-view .project-overview-meta-grid {
  gap: 0 22px;
  margin-top: 0 !important;
}

.order-detail-view .project-overview-meta-grid .detail-info-item {
  min-height: 38px;
  padding: 5px 0;
}

.order-detail-view .project-overview-meta-grid .detail-info-item .label {
  margin-bottom: 2px;
}

.order-detail-view .project-overview-meta-grid .detail-info-item:last-child {
  grid-column: auto;
}

.case-candidate-recommendation-confirmation-meta {
  max-width: 190px;
  color: #b45309;
  font-size: 10px;
  line-height: 1.35;
  white-space: normal;
}

.case-candidate-recommendation-confirmation-meta.is-rejected {
  color: #b91c1c;
}

.case-candidate-recommendation-review-actions {
  display: flex;
  gap: 5px;
}

.case-candidate-recommendation-review-actions button {
  min-height: 24px;
  padding: 3px 7px;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: #fff;
  font-size: 10px;
  cursor: pointer;
}

.case-candidate-recommendation-review-actions .is-confirm {
  border-color: #86efac;
  color: #15803d;
}

.case-candidate-recommendation-review-actions .is-reject {
  border-color: #fecaca;
  color: #dc2626;
}

.order-detail-view .project-overview-section,
.order-detail-view .project-job-section,
.order-detail-view .project-intro-section,
.order-detail-view .project-business-section,
.order-detail-view .project-company-section {
  border-bottom: 1px solid #edf1f5;
}

.order-detail-view .project-hub-card > .project-overview-section {
  padding-top: 8px;
}

.order-detail-view .project-job-section,
.order-detail-view .project-business-section {
  padding-left: 28px;
  border-left: 1px solid #edf1f5;
}

.order-detail-view .project-job-section .detail-job-content,
.order-detail-view .project-intro-section .detail-job-content {
  min-height: 260px;
  max-height: 460px;
  padding: 4px 14px 4px 1px;
  color: #24364d;
  font-family: "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.86;
  letter-spacing: 0.008em;
  white-space: normal;
  word-break: break-word;
  text-rendering: optimizeLegibility;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.order-detail-view .detail-job-content p {
  margin: 0 0 17px;
  color: inherit;
  font: inherit;
  line-height: inherit;
}

.order-detail-view .detail-job-content p:last-child {
  margin-bottom: 0;
}

.order-detail-text-heading {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 22px;
  margin: 0 0 8px;
  padding: 0 0 0 13px;
  border: 0;
  background: transparent;
  color: #24364d;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: .01em;
}

.order-detail-text-heading::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 3px;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(180deg, #3b82f6, #60a5fa);
  content: "";
  transform: translateY(-50%);
}

.order-detail-text-list-item {
  display: grid;
  grid-template-columns: 23px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  margin: 0 0 13px;
  color: #24364d;
  line-height: 1.82;
}

.order-detail-text-list-item:last-child {
  margin-bottom: 0;
}

.order-detail-text-marker {
  min-width: 23px;
  padding-top: 1px;
  color: #1677ff;
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.95;
  text-align: right;
}

.order-detail-text-copy,
.order-detail-text-paragraph {
  color: #24364d;
}

.order-detail-text-lead {
  margin-right: 5px;
  color: #172b4d;
  font-weight: 650;
}

.project-intro-section .order-detail-text-section {
  padding: 0 4px 16px;
}

.project-intro-section .order-detail-text-section + .order-detail-text-section {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #edf2f7;
}

.project-intro-section .order-detail-text-section:last-child {
  padding-bottom: 2px;
}

.project-intro-section .order-detail-text-section .order-detail-text-heading,
.project-intro-section .order-detail-text-section .order-detail-text-paragraph,
.project-intro-section .order-detail-text-section .order-detail-text-list-item {
  margin-left: 0;
  margin-right: 0;
}

.project-intro-section .order-detail-text-section .order-detail-text-paragraph,
.project-intro-section .order-detail-text-section .order-detail-text-list-item {
  padding-left: 13px;
}

.project-intro-section .order-detail-text-section .order-detail-text-paragraph {
  margin-bottom: 0;
  color: #344860;
  line-height: 1.82;
}

.project-intro-section .order-detail-text-section .order-detail-text-paragraph + .order-detail-text-paragraph {
  margin-top: 8px;
}

.project-intro-section .order-detail-text-paragraph::before {
  content: none;
}

.project-intro-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 13px;
}

.order-detail-view .project-intro-heading .section-title,
.order-detail-view .project-job-section > .section-title {
  min-height: 28px;
  line-height: 1.4;
}

.order-detail-view .project-intro-heading .section-title {
  margin: 0;
}

.order-detail-view .project-job-section > .section-title {
  margin: 0 0 13px;
}

.project-client-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.project-client-actions button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid #cfe0f6;
  border-radius: 6px;
  background: #f7fbff;
  color: #2563eb;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.project-client-actions button:hover {
  border-color: #93b9ee;
  background: #edf6ff;
  color: #1d4ed8;
}

.project-client-actions button:disabled {
  cursor: wait;
  opacity: .72;
  transform: none;
}

.project-client-actions button.is-loading svg {
  display: none;
}

.project-client-actions button.is-loading::before {
  width: 12px;
  height: 12px;
  border: 2px solid #bfdbfe;
  border-top-color: #2563eb;
  border-radius: 50%;
  box-sizing: border-box;
  content: '';
  animation: project-client-download-spin .7s linear infinite;
}

.project-client-actions button:focus-visible {
  outline: 2px solid rgba(37, 99, 235, .3);
  outline-offset: 2px;
}

.project-client-actions svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@keyframes project-client-download-spin {
  to { transform: rotate(360deg); }
}

.project-client-download-notice {
  position: fixed;
  z-index: 100300;
  top: 82px;
  right: 24px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 11px;
  width: min(390px, calc(100vw - 32px));
  padding: 14px 13px;
  border: 1px solid #dbe7f6;
  border-left: 4px solid #3b82f6;
  border-radius: 12px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 18px 45px rgba(23, 48, 82, .2);
  color: #173052;
  opacity: 0;
  transform: translateY(-10px) scale(.98);
  transition: opacity .2s ease, transform .2s ease;
}

.project-client-download-notice.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.project-client-download-notice.is-success { border-left-color: #10b981; }
.project-client-download-notice.is-warning { border-left-color: #f59e0b; }
.project-client-download-notice.is-error { border-left-color: #ef4444; }

.project-client-download-notice-icon {
  display: inline-flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 18px;
  font-weight: 800;
}

.project-client-download-notice.is-success .project-client-download-notice-icon {
  background: #ecfdf5;
  color: #059669;
}

.project-client-download-notice.is-warning .project-client-download-notice-icon {
  background: #fffbeb;
  color: #d97706;
}

.project-client-download-notice.is-error .project-client-download-notice-icon {
  background: #fef2f2;
  color: #dc2626;
}

.project-client-download-notice-copy {
  min-width: 0;
}

.project-client-download-notice-copy strong {
  display: block;
  margin-bottom: 3px;
  font-size: 13px;
  font-weight: 700;
}

.project-client-download-notice-copy p {
  margin: 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.55;
}

.project-client-download-notice > button {
  display: inline-flex;
  width: 24px;
  height: 24px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #94a3b8;
  font-size: 18px;
  cursor: pointer;
}

.project-client-download-notice > button:hover {
  background: #f1f5f9;
  color: #475569;
}

.order-detail-view .project-business-section .detail-info-grid,
.order-detail-view .project-company-section .detail-info-grid,
.order-detail-view .project-bd-section .detail-info-grid {
  gap: 0 22px;
}

.order-detail-view .project-business-section .detail-info-item,
.order-detail-view .project-company-section .detail-info-item,
.order-detail-view .project-bd-section .detail-info-item {
  min-height: 43px;
  padding: 6px 0;
}

.order-detail-view .project-bd-section {
  margin-top: 0;
  padding: 18px 0 6px !important;
  overflow: hidden;
  border: 0 !important;
  border-top: 1px solid #edf1f5 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.order-detail-view .project-bd-section .section-title {
  margin-bottom: 13px;
  color: #213550;
  font-size: 16px;
}

.order-detail-view .project-bd-section .section-title svg {
  width: 15px;
  height: 15px;
  color: #1677ff;
}

.order-detail-view .project-bd-section .detail-info-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 8px;
}

.order-detail-view .project-bd-section .detail-info-item {
  min-height: 50px;
  justify-content: flex-start;
  padding: 8px 11px;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  background: #fbfcfd;
  box-shadow: none;
}

.order-detail-view .project-bd-section .detail-info-item .label {
  margin-bottom: 5px;
  color: #8290a5;
  font-size: 12px;
}

.order-detail-view .project-bd-section .detail-info-item .value {
  color: #223b5d;
  font-size: 14px;
  font-weight: 650;
}

.order-detail-view .project-bd-section .project-primary-role-item {
  min-height: 74px;
  padding: 11px 13px;
  border-color: #dfe7f2;
  background: #f8fbff;
}

.order-detail-view .project-bd-section .project-primary-role-item .label {
  color: #60738d;
  font-size: 13px;
  font-weight: 650;
}

.order-detail-view .project-bd-section .project-primary-role-item .value {
  font-size: 15px;
}

.order-detail-view .project-bd-section .project-collaborators-item {
  border-color: #e3e7ed;
  background: #f8fafc;
}

.project-collaborators-item .label {
  display: flex;
  align-items: center;
  gap: 7px;
}

.project-collaborators-item .label small {
  color: #8ca0bb;
  font-size: 11px;
  font-weight: 500;
}

.project-collaborator-count {
  display: inline-flex;
  min-width: 32px;
  height: 18px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: 999px;
  background: #e9edf2;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
}

.project-collaborator-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.project-collaborator-chip {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 3px 9px;
  border: 1px solid #dce2e9;
  border-radius: 999px;
  background: #fff;
  color: #3f4f63;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  box-shadow: none;
}

.project-collaborator-empty {
  color: #91a0b4;
  font-size: 13px;
  font-weight: 500;
}

.order-detail-view .project-bd-section .project-lead-note-item {
  min-height: 54px;
}

.project-section-empty {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px dashed #dbe3ed;
  border-radius: 8px;
  background: #fafbfd;
  color: #94a3b8;
  font-size: 13px;
}

.project-section-empty[hidden],
.order-detail-view .detail-info-grid[hidden] {
  display: none !important;
}

.order-detail-view .project-people-section,
.order-detail-view .project-attachments-section {
  grid-column: 1 / -1;
  order: 1;
  min-height: 280px;
}

.order-detail-view .detail-comments-section {
  min-height: 280px;
  padding: 18px;
  border-color: #e1e7ee;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.025);
}

.order-detail-view .detail-sidebar {
  display: grid;
  grid-template-columns: minmax(320px, 0.8fr) minmax(0, 1.2fr);
  gap: 14px;
}

.order-detail-view .ai-analysis-section,
.order-detail-view #detail-project-report-section {
  position: static;
  min-width: 0;
  min-height: 300px;
  margin: 0;
  padding: 18px;
  border: 1px solid #e1e7ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.025);
  box-sizing: border-box;
}

.order-detail-view .order-resume-match-section {
  grid-column: 1 / -1;
  order: -1;
  min-width: 0;
  padding: 18px;
  border: 1px solid #dfe7f2;
  border-radius: 11px;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.025);
  box-sizing: border-box;
}

.order-resume-match-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.order-resume-match-header h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #172554;
  font-size: 15px;
}

.order-resume-match-header h4 svg { color: #2563eb; }

.order-resume-match-header p {
  margin: 5px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.55;
}

.order-resume-match-badge {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 11px;
  font-weight: 700;
}

.order-resume-match-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.order-resume-match-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid #d8e1ee;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.order-resume-match-actions button:hover {
  border-color: #93c5fd;
  background: #f8fbff;
  color: #1d4ed8;
}

.order-resume-match-actions button.is-primary {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.order-resume-match-dropzone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 94px;
  padding: 16px;
  border: 1px dashed #b9c9dd;
  border-radius: 10px;
  background: #f8fafc;
  color: #64748b;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
  box-sizing: border-box;
}

.order-resume-match-dropzone:hover,
.order-resume-match-dropzone:focus-visible,
.order-resume-match-dropzone.is-dragging {
  border-color: #60a5fa;
  background: #eff6ff;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .10);
  outline: none;
}

.order-resume-match-dropzone.has-selection {
  min-height: 68px;
  background: #fbfdff;
}

.order-resume-match-dropzone svg { flex: 0 0 auto; color: #3b82f6; }
.order-resume-match-dropzone strong,
.order-resume-match-dropzone span { display: block; }
.order-resume-match-dropzone strong { color: #334155; font-size: 13px; }
.order-resume-match-dropzone span { margin-top: 3px; color: #94a3b8; font-size: 11px; }

.order-resume-match-selected {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 10px 11px;
  border: 1px solid #bfdbfe;
  border-radius: 9px;
  background: #eff6ff;
}

.order-resume-match-selected[hidden] { display: none; }

.order-resume-match-selected-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #fff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 800;
  box-shadow: inset 0 0 0 1px #dbeafe;
}

.order-resume-match-selected strong,
.order-resume-match-selected span { display: block; }
.order-resume-match-selected strong { color: #1e3a8a; font-size: 12px; }
.order-resume-match-selected div > span { margin-top: 2px; color: #64748b; font-size: 11px; }
.order-resume-match-selected button {
  width: 26px;
  height: 26px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #64748b;
  font-size: 18px;
  cursor: pointer;
}
.order-resume-match-selected button:hover { background: #dbeafe; color: #1d4ed8; }

.order-resume-match-message {
  min-height: 18px;
  margin: 8px 0 6px;
  color: #64748b;
  font-size: 11px;
}
.order-resume-match-message.tone-success { color: #15803d; }
.order-resume-match-message.tone-error { color: #dc2626; }

.order-resume-match-run {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  min-height: 40px;
  border: 0;
  border-radius: 9px;
  background: linear-gradient(135deg, #2563eb, #4f46e5);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 5px 14px rgba(37, 99, 235, .16);
}
.order-resume-match-run:hover:not(:disabled) { box-shadow: 0 7px 18px rgba(37, 99, 235, .23); }
.order-resume-match-run:disabled { background: #dbe3ee; color: #94a3b8; cursor: not-allowed; box-shadow: none; }

.order-resume-match-loading {
  margin-top: 12px;
  padding: 13px 15px 12px;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: linear-gradient(135deg, #f8fbff 0%, #f5f3ff 100%);
  box-shadow: 0 5px 16px rgba(37, 99, 235, .07);
}
.order-resume-match-loading[hidden] { display: none; }

.order-resume-match-loading-head,
.order-resume-match-loading-head > span,
.order-resume-match-loading-meta {
  display: flex;
  align-items: center;
}

.order-resume-match-loading-head {
  justify-content: space-between;
  gap: 12px;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
}

.order-resume-match-loading-head > span { gap: 7px; }
.order-resume-match-loading-head svg {
  color: #4f46e5;
  animation: orderResumeMatchPulse 1.35s ease-in-out infinite;
}
.order-resume-match-loading-head strong {
  color: #4f46e5;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.order-resume-match-progress-track {
  position: relative;
  height: 8px;
  margin-top: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5eaf3;
}

.order-resume-match-progress-track > span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb 0%, #6366f1 52%, #8b5cf6 100%);
  box-shadow: 0 0 12px rgba(79, 70, 229, .28);
  transition: width .55s cubic-bezier(.22, .61, .36, 1), background .25s ease;
}

.order-resume-match-progress-track > span::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 25%, rgba(255,255,255,.55) 48%, transparent 72%);
  transform: translateX(-100%);
  animation: orderResumeMatchShine 1.2s linear infinite;
}

.order-resume-match-loading-meta {
  justify-content: space-between;
  gap: 14px;
  margin-top: 8px;
  color: #64748b;
  font-size: 10px;
}

.order-resume-match-loading-meta > span:first-child {
  color: #4f46e5;
  font-weight: 600;
}

.order-resume-match-loading.is-complete {
  border-color: #bbf7d0;
  background: #f0fdf4;
}
.order-resume-match-loading.is-complete .order-resume-match-loading-head strong,
.order-resume-match-loading.is-complete .order-resume-match-loading-meta > span:first-child,
.order-resume-match-loading.is-complete .order-resume-match-loading-head svg { color: #15803d; }
.order-resume-match-loading.is-complete .order-resume-match-progress-track > span { background: #22c55e; }

.order-resume-match-loading.is-error {
  border-color: #fecaca;
  background: #fff7f7;
}
.order-resume-match-loading.is-error .order-resume-match-loading-head strong,
.order-resume-match-loading.is-error .order-resume-match-loading-meta > span:first-child,
.order-resume-match-loading.is-error .order-resume-match-loading-head svg { color: #dc2626; }
.order-resume-match-loading.is-error .order-resume-match-progress-track > span { background: #ef4444; }

@keyframes orderResumeMatchPulse {
  0%, 100% { opacity: .55; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1.08); }
}

@keyframes orderResumeMatchShine {
  to { transform: translateX(100%); }
}

.order-resume-match-result { margin-top: 14px; }

.order-resume-match-summary {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding: 15px;
  border: 1px solid #dbeafe;
  border-radius: 11px;
  background: linear-gradient(135deg, #eff6ff, #f8fafc 65%);
}

.order-resume-match-score {
  display: grid;
  place-items: center;
  width: 94px;
  height: 94px;
  border-radius: 50%;
  background: conic-gradient(#2563eb calc(var(--match-score) * 1%), #dbeafe 0);
  position: relative;
}
.order-resume-match-score::after {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background: #fff;
}
.order-resume-match-score.tone-high { background: conic-gradient(#16a34a calc(var(--match-score) * 1%), #dcfce7 0); }
.order-resume-match-score.tone-low { background: conic-gradient(#ea580c calc(var(--match-score) * 1%), #ffedd5 0); }
.order-resume-match-score > span { position: relative; z-index: 1; text-align: center; }
.order-resume-match-score strong { display: block; color: #0f172a; font-size: 27px; line-height: 1; }
.order-resume-match-score small { display: block; margin-top: 4px; color: #64748b; font-size: 10px; }
.order-resume-match-result-label {
  display: inline-flex;
  padding: 3px 8px;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 800;
}
.order-resume-match-summary h5 { margin: 7px 0 4px; color: #172554; font-size: 15px; }
.order-resume-match-summary p { margin: 0; color: #475569; font-size: 12px; line-height: 1.65; }

.order-resume-match-report-section {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e7edf5;
}

.order-resume-match-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.order-resume-match-section-title h5 {
  margin: 0;
  color: #1e293b;
  font-size: 13px;
  font-weight: 800;
}

.order-resume-match-section-title span {
  color: #94a3b8;
  font-size: 10px;
}

.order-resume-match-profile > h6 {
  margin: 0 0 10px;
  color: #172554;
  font-size: 14px;
  line-height: 1.55;
}

.order-resume-match-profile-facts {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
}

.order-resume-match-profile-facts > div {
  min-width: 0;
  padding: 9px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.order-resume-match-profile-facts span,
.order-resume-match-profile-facts strong { display: block; }
.order-resume-match-profile-facts span { color: #94a3b8; font-size: 9px; }
.order-resume-match-profile-facts strong { margin-top: 3px; color: #334155; font-size: 11px; line-height: 1.4; }

.order-resume-match-career-summary {
  margin: 10px 0 0;
  padding: 10px 12px;
  border-left: 3px solid #60a5fa;
  border-radius: 0 8px 8px 0;
  background: #f8fbff;
  color: #475569;
  font-size: 11px;
  line-height: 1.7;
}

.order-resume-match-skill-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.order-resume-match-skill-chips span {
  padding: 4px 8px;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 650;
}

.order-resume-match-career-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.order-resume-match-career-list article {
  display: grid;
  grid-template-columns: 13px minmax(0, 1fr);
  gap: 10px;
  position: relative;
  padding-bottom: 12px;
}

.order-resume-match-career-list article:last-child { padding-bottom: 0; }
.order-resume-match-career-list article > span {
  width: 9px;
  height: 9px;
  margin-top: 5px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #3b82f6;
  box-shadow: 0 0 0 1px #93c5fd;
  position: relative;
  z-index: 1;
}
.order-resume-match-career-list article:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 14px;
  bottom: 0;
  width: 1px;
  background: #dbeafe;
}
.order-resume-match-career-list header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.order-resume-match-career-list header strong { color: #1e293b; font-size: 11px; }
.order-resume-match-career-list header em { color: #94a3b8; font-size: 10px; font-style: normal; white-space: nowrap; }
.order-resume-match-career-list h6 { margin: 2px 0 0; color: #475569; font-size: 11px; }
.order-resume-match-career-list p { margin: 4px 0 0; color: #64748b; font-size: 10px; line-height: 1.55; }

.order-resume-match-requirements {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}

.order-resume-match-requirement-group {
  min-width: 0;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.order-resume-match-requirement-group h5 {
  margin: 0 0 8px;
  color: #334155;
  font-size: 11px;
}

.order-resume-match-requirement-group article {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 7px;
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px solid #e8edf4;
}
.order-resume-match-requirement-group article:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.order-resume-match-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 5px;
  background: #dcfce7;
  color: #15803d;
  font-size: 10px;
  font-weight: 900;
}
.order-resume-match-requirement-group article.tone-partial .order-resume-match-check { background: #fef3c7; color: #b45309; }
.order-resume-match-requirement-group article.tone-miss .order-resume-match-check { background: #fee2e2; color: #b91c1c; }
.order-resume-match-requirement-group article strong,
.order-resume-match-requirement-group article em,
.order-resume-match-requirement-group article p,
.order-resume-match-requirement-group article small { display: block; }
.order-resume-match-requirement-group article strong { color: #1e293b; font-size: 10px; line-height: 1.45; }
.order-resume-match-requirement-group article em { margin-top: 2px; color: #15803d; font-size: 9px; font-style: normal; font-weight: 750; }
.order-resume-match-requirement-group article.tone-partial em { color: #b45309; }
.order-resume-match-requirement-group article.tone-miss em { color: #b91c1c; }
.order-resume-match-requirement-group article p { margin: 3px 0 0; color: #64748b; font-size: 9px; line-height: 1.5; }
.order-resume-match-requirement-group article small { margin-top: 3px; color: #c2410c; font-size: 9px; line-height: 1.45; }

.order-resume-match-dimensions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}
.order-resume-match-dimensions > div {
  min-width: 0;
  padding: 9px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
}
.order-resume-match-dimensions span { color: #64748b; font-size: 10px; font-weight: 750; }
.order-resume-match-dimensions p { margin: 4px 0 0; color: #334155; font-size: 11px; line-height: 1.45; }

.order-resume-match-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.order-resume-match-columns section {
  padding: 12px;
  border: 1px solid #bbf7d0;
  border-radius: 9px;
  background: #f0fdf4;
}
.order-resume-match-columns section.is-gap { border-color: #fed7aa; background: #fff7ed; }
.order-resume-match-columns h5 { margin: 0 0 8px; color: #166534; font-size: 12px; }
.order-resume-match-columns .is-gap h5 { color: #9a3412; }
.order-resume-match-columns ul { margin: 0; padding: 0; list-style: none; }
.order-resume-match-columns li { margin-top: 7px; padding-top: 7px; border-top: 1px solid rgba(22, 101, 52, .12); }
.order-resume-match-columns li:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.order-resume-match-columns li strong,
.order-resume-match-columns li span,
.order-resume-match-columns li em,
.order-resume-match-columns li small { display: block; }
.order-resume-match-columns li strong { color: #1e293b; font-size: 11px; }
.order-resume-match-columns li span { margin-top: 2px; color: #64748b; font-size: 10px; line-height: 1.5; }
.order-resume-match-columns li small { margin-top: 3px; color: #64748b; font-size: 9px; line-height: 1.45; }
.order-resume-match-columns li em { margin-top: 3px; color: #c2410c; font-size: 10px; font-style: normal; }
.order-resume-match-columns li.is-empty { color: #94a3b8; font-size: 11px; }

.order-resume-match-scorecard-wrap {
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
}

.order-resume-match-scorecard {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
  background: #fff;
  font-size: 10px;
}

.order-resume-match-scorecard th,
.order-resume-match-scorecard td {
  padding: 9px 10px;
  border-right: 1px solid #e8edf4;
  border-bottom: 1px solid #e8edf4;
  color: #475569;
  text-align: left;
  line-height: 1.5;
  vertical-align: top;
}
.order-resume-match-scorecard th:last-child,
.order-resume-match-scorecard td:last-child { border-right: 0; }
.order-resume-match-scorecard thead th { background: #f1f5f9; color: #334155; font-weight: 800; }
.order-resume-match-scorecard th:nth-child(2),
.order-resume-match-scorecard th:nth-child(3),
.order-resume-match-scorecard td:nth-child(2),
.order-resume-match-scorecard td:nth-child(3) { width: 58px; text-align: center; }
.order-resume-match-scorecard td strong { color: #1d4ed8; font-size: 12px; }
.order-resume-match-scorecard tfoot td { border-bottom: 0; background: #eff6ff; color: #1e3a8a; font-weight: 750; }

.order-resume-match-question-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: match-question;
}
.order-resume-match-question-list li {
  counter-increment: match-question;
  position: relative;
  padding: 10px 10px 10px 38px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}
.order-resume-match-question-list li::before {
  content: counter(match-question);
  position: absolute;
  left: 10px;
  top: 10px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 800;
}
.order-resume-match-question-list strong { color: #1e293b; font-size: 10px; line-height: 1.5; }
.order-resume-match-question-list p { margin: 4px 0 0; color: #64748b; font-size: 9px; line-height: 1.45; }
.order-resume-match-question-list span { display: block; margin-top: 4px; color: #b45309; font-size: 9px; }

.order-resume-match-advice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}
.order-resume-match-advice > p { grid-column: 1 / -1; margin: 0; }
.order-resume-match-advice strong { display: block; margin-bottom: 4px; color: #334155; font-size: 11px; }
.order-resume-match-advice p,
.order-resume-match-advice li { color: #64748b; font-size: 11px; line-height: 1.55; }

.order-resume-match-error {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 11px 12px;
  border: 1px solid #fecaca;
  border-radius: 9px;
  background: #fff1f2;
  color: #b91c1c;
  font-size: 12px;
}

.order-resume-talent-picker {
  position: fixed;
  inset: 0;
  z-index: 10080;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 23, 42, .42);
  backdrop-filter: blur(2px);
}
.order-resume-talent-dialog {
  width: min(680px, 96vw);
  max-height: min(760px, 88vh);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .24);
}
.order-resume-talent-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #e2e8f0;
}
.order-resume-talent-header h3 { margin: 0; color: #172554; font-size: 17px; }
.order-resume-talent-header p { margin: 5px 0 0; color: #64748b; font-size: 11px; }
.order-resume-talent-header > button {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 8px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 20px;
  cursor: pointer;
}
.order-resume-talent-search { display: flex; gap: 8px; padding: 12px 20px; background: #f8fafc; }
.order-resume-talent-search input {
  flex: 1;
  min-width: 0;
  height: 36px;
  padding: 0 11px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  outline: 0;
}
.order-resume-talent-search input:focus { border-color: #60a5fa; box-shadow: 0 0 0 3px rgba(59, 130, 246, .1); }
.order-resume-talent-search button,
.order-resume-talent-footer button {
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 12px;
  cursor: pointer;
}
.order-resume-talent-footer button:disabled { opacity: .45; cursor: not-allowed; }
.order-resume-talent-list {
  flex: 1 1 auto;
  min-height: 300px;
  max-height: min(440px, calc(88vh - 205px));
  overflow-y: auto;
  padding: 7px 12px;
  scrollbar-gutter: stable;
}
.order-resume-talent-row {
  width: 100%;
  height: auto !important;
  min-height: 68px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 9px 10px;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  border-radius: 0;
  background: #fff;
  text-align: left;
  line-height: normal;
  white-space: normal;
  overflow: visible;
  cursor: pointer;
  box-sizing: border-box;
}
.order-resume-talent-row:hover { border-radius: 9px; background: #f8fbff; }
.order-resume-talent-avatar {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #e0e7ff;
  color: #4338ca;
  font-size: 14px;
  font-weight: 800;
}
.order-resume-talent-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 3px;
  overflow: hidden;
}
.order-resume-talent-row strong,
.order-resume-talent-row em,
.order-resume-talent-row small { display: block; }
.order-resume-talent-row strong,
.order-resume-talent-row em,
.order-resume-talent-row small {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.order-resume-talent-row strong { color: #1e293b; font-size: 13px; line-height: 18px; }
.order-resume-talent-row em { color: #475569; font-size: 11px; font-style: normal; line-height: 16px; }
.order-resume-talent-row small { color: #94a3b8; font-size: 10px; line-height: 14px; }
.order-resume-talent-row b {
  align-self: center;
  padding: 4px 6px;
  color: #2563eb;
  font-size: 11px;
  line-height: 16px;
  white-space: nowrap;
}
.order-resume-talent-empty { display: grid; place-items: center; min-height: 250px; color: #94a3b8; font-size: 12px; }
.order-resume-talent-empty.is-error { color: #dc2626; }
.order-resume-talent-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 20px;
  border-top: 1px solid #e2e8f0;
  color: #64748b;
  font-size: 11px;
}
.order-resume-talent-footer > div { display: flex; align-items: center; gap: 8px; }

@media (max-width: 760px) {
  .order-resume-match-profile-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .order-resume-match-requirements,
  .order-resume-match-question-list { grid-template-columns: 1fr; }
  .order-resume-match-dimensions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .order-resume-match-columns,
  .order-resume-match-advice { grid-template-columns: 1fr; }
  .order-resume-match-advice > p { grid-column: 1; }
  .order-resume-match-summary { grid-template-columns: 86px minmax(0, 1fr); gap: 12px; }
  .order-resume-match-score { width: 78px; height: 78px; }
  .order-resume-talent-picker { padding: 10px; }
}

.order-detail-view #detail-project-report-section .detail-job-content { max-height: 520px; }

.order-detail-view .detail-collapse {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.order-detail-view .detail-collapse > summary { display: none; }

.order-detail-view .detail-collapse-body {
  gap: 14px;
  padding: 0;
}

.order-detail-view .detail-miniapp-panel,
.order-detail-view #miniapp-dashboard-panel {
  border-radius: 11px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.035);
}

@media (max-width: 980px) {
  .project-summary-strip { grid-template-columns: 1fr; }
  .order-detail-view .detail-sidebar { grid-template-columns: 1fr; }

  .order-detail-view .project-hub-card {
    grid-template-columns: 1fr;
  }

  .order-detail-view .project-hub-card > .detail-section,
  .order-detail-view .project-hub-card > .detail-resumes-section,
  .order-detail-view .project-hub-card > .detail-attachments-section {
    grid-column: 1;
    grid-row: auto;
  }

  .order-detail-view .project-overview-section { order: 1; }
  .order-detail-view .project-intro-section { order: 2; }
  .order-detail-view .project-job-section { order: 3; }
  .order-detail-view .project-company-section { order: 4; }
  .order-detail-view .project-business-section { order: 5; }
  .order-detail-view .project-bd-section { order: 6; }

  .project-overview-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .order-detail-view .project-bd-section .detail-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .order-detail-view .project-job-section,
  .order-detail-view .project-business-section {
    padding-left: 0;
    border-left: 0;
  }
}

@media (max-width: 720px) {
  .order-detail-view { padding: 0 0 20px; }

  .order-detail-overview { padding: 11px 12px; }

  .order-detail-view .detail-header {
    flex-direction: column;
    gap: 12px;
  }

  .order-detail-view .detail-actions {
    align-self: flex-end;
  }

  .project-summary-strip .project-quick-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .order-detail-tabs { padding: 6px 10px; }

  .order-detail-tabs-track {
    grid-template-columns: repeat(5, 116px) 220px;
    min-width: 820px;
  }

  .order-detail-group-entry { grid-column: 6; }

  .order-detail-tab { padding: 0 10px; }

  .order-detail-view .project-hub-card { grid-template-columns: 1fr; }

  .order-detail-view .project-bd-section {
    padding: 15px !important;
  }

  .order-detail-view .project-bd-section .detail-info-grid {
    grid-template-columns: 1fr;
  }

  .order-detail-view .detail-content-wrapper { padding: 10px; }

  .project-overview-key-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .project-overview-progress {
    align-items: stretch;
    flex-direction: column;
  }

  .project-overview-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .project-overview-heading .project-overview-progress {
    width: 100%;
    align-items: center;
    flex-direction: row;
  }

  .project-overview-heading .project-detail-kpis {
    flex: 1 1 auto;
    justify-content: flex-end;
  }

  .project-intro-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .project-client-actions {
    justify-content: flex-start;
  }
}

/* ========== 行业调研模块 ========== */
.btn-secondary {
  background: linear-gradient(135deg, #6366f1, #4f46e5);
  color: #fff;
  border: none;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
}
.btn-secondary:hover {
  box-shadow: 0 4px 12px rgba(99,102,241,0.3);
  transform: translateY(-1px);
}

.industry-research-view,
.industry-detail-view {
  animation: fadeIn 0.3s ease;
}

.research-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e7eb;
}
.research-header h3 {
  margin: 0;
  font-size: 20px;
  color: #1f2937;
}

.industry-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

.industry-card {
  background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 24px;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}
.industry-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #6366f1, #8b5cf6);
  opacity: 0;
  transition: opacity 0.3s;
}
.industry-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.1);
  border-color: #6366f1;
}
.industry-card:hover::before {
  opacity: 1;
}

.industry-card-icon {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  font-size: 28px;
}

.industry-card-title {
  font-size: 18px;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 8px;
}

.industry-card-desc {
  font-size: 14px;
  color: #6b7280;
  line-height: 1.5;
}

.industry-detail-content {
  background: #fff;
  border-radius: 16px;
  padding: 32px;
  border: 1px solid #e5e7eb;
}

.industry-section {
  margin-bottom: 32px;
}
.industry-section:last-child {
  margin-bottom: 0;
}

.industry-section-title {
  font-size: 18px;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid #6366f1;
  display: inline-block;
}

.industry-section-content {
  font-size: 15px;
  color: #374151;
  line-height: 1.8;
}

.industry-section-content ul {
  margin: 12px 0;
  padding-left: 20px;
}
.industry-section-content li {
  margin-bottom: 8px;
}

.industry-trends {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.trend-item {
  background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
  border-radius: 12px;
  padding: 16px;
  border-left: 4px solid #3b82f6;
}
.trend-item-title {
  font-weight: 600;
  color: #1e40af;
  margin-bottom: 8px;
}
.trend-item-desc {
  font-size: 13px;
  color: #3b82f6;
}

/* ===== 汽车公司地图样式 ===== */
.car-map-wrapper {
  background: linear-gradient(135deg, #0f0f23 0%, #1a1a3e 50%, #0d0d1a 100%);
  border-radius: 20px;
  padding: 32px;
  min-height: 700px;
  position: relative;
  overflow: hidden;
}
.car-map-wrapper::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 80%, rgba(16, 185, 129, 0.1) 0%, transparent 50%);
  pointer-events: none;
}
.car-map-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  margin-bottom: 24px;
  position: relative;
  z-index: 10;
}
.car-map-title {
  font-size: 26px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  text-shadow: 0 0 20px rgba(99, 102, 241, 0.5);
  letter-spacing: 2px;
}
.car-map-legend {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255,255,255,0.8);
}
.legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
.car-map-filters {
  display: flex;
  gap: 8px;
  margin-left: auto;
}
.filter-btn {
  padding: 8px 16px;
  height: auto;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.7);
  border-radius: 20px;
  font-size: 13px;
  transition: all 0.3s;
}
.filter-btn:hover {
  background: rgba(255,255,255,0.15);
  color: #fff;
}
.filter-btn.active {
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 15px rgba(99, 102, 241, 0.4);
}
.car-map-container {
  position: relative;
  width: 100%;
}
.china-map-svg {
  width: 100%;
  height: auto;
  display: block;
}
.province-path {
  fill: rgba(99, 102, 241, 0.1);
  stroke: rgba(99, 102, 241, 0.3);
  stroke-width: 1;
  transition: all 0.3s;
}
.province-path:hover {
  fill: rgba(99, 102, 241, 0.25);
  stroke: rgba(99, 102, 241, 0.6);
}
.city-marker {
  cursor: pointer;
  transition: transform 0.3s;
}
.city-marker:hover {
  transform: scale(1.15);
}
.marker-pulse {
  opacity: 0.4;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.5); opacity: 0.1; }
}
.marker-core {
  stroke: rgba(255,255,255,0.3);
  stroke-width: 2;
  transition: all 0.3s;
}
.city-marker:hover .marker-core {
  stroke: rgba(255,255,255,0.8);
  stroke-width: 3;
}
.marker-label {
  font-size: 11px;
  fill: rgba(255,255,255,0.7);
  text-anchor: middle;
  font-weight: 500;
  pointer-events: none;
}
.marker-count {
  font-size: 11px;
  fill: #fff;
  text-anchor: middle;
  font-weight: 700;
  pointer-events: none;
}
.car-tooltip {
  position: absolute;
  background: rgba(15, 15, 35, 0.95);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(99, 102, 241, 0.4);
  border-radius: 16px;
  padding: 16px;
  min-width: 220px;
  max-width: 320px;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(-100%);
  transition: all 0.3s;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5), 0 0 30px rgba(99, 102, 241, 0.2);
  pointer-events: none;
}
.car-tooltip.visible {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(-110%);
  pointer-events: auto;
}
.tooltip-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tooltip-city {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}
.tooltip-count {
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  background: rgba(99, 102, 241, 0.3);
  padding: 4px 10px;
  border-radius: 12px;
}
.tooltip-companies {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tooltip-company {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  background: rgba(255,255,255,0.05);
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s;
}
.tooltip-company:hover {
  background: rgba(99, 102, 241, 0.2);
}
.company-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.company-name {
  flex: 1;
  font-size: 13px;
  color: #fff;
  font-weight: 500;
}
.company-cap {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
}
.car-map-stats {
  display: flex;
  justify-content: center;
  gap: 48px;
  margin-top: 32px;
  position: relative;
  z-index: 10;
}
.stat-item {
  text-align: center;
}
.stat-num {
  display: block;
  font-size: 32px;
  font-weight: 700;
  color: #00d4ff;
  text-shadow: 0 0 20px rgba(0, 212, 255, 0.5);
}
.stat-label {
  font-size: 13px;
  color: rgba(255,255,255,0.6);
  margin-top: 4px;
}
.car-detail-modal {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s;
}
.car-detail-modal.visible {
  opacity: 1;
}
.car-detail-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(5px);
}
.car-detail-content {
  position: relative;
  background: linear-gradient(135deg, #1a1a3e 0%, #0f0f23 100%);
  border: 1px solid rgba(99, 102, 241, 0.3);
  border-radius: 24px;
  width: 90%;
  max-width: 800px;
  max-height: 85vh;
  overflow: hidden;
  box-shadow: 0 25px 80px rgba(0,0,0,0.5), 0 0 40px rgba(99, 102, 241, 0.2);
}
.car-detail-content.single-company {
  max-width: 600px;
}
.car-detail-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px 28px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  background: rgba(99, 102, 241, 0.1);
}
.car-detail-header h3 {
  margin: 0;
  font-size: 22px;
  color: #fff;
  font-weight: 700;
}
.car-detail-close {
  margin-left: auto;
  width: 36px;
  height: 36px;
  padding: 0;
  background: rgba(255,255,255,0.1);
  border: none;
  border-radius: 50%;
  color: rgba(255,255,255,0.6);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s;
}
.car-detail-close:hover {
  background: rgba(239, 68, 68, 0.3);
  color: #fff;
}
.car-detail-body {
  padding: 24px 28px;
  max-height: calc(85vh - 100px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.company-card {
  background: rgba(255,255,255,0.03);
  border-radius: 16px;
  padding: 20px;
  transition: background 0.2s;
}
.company-card:hover {
  background: rgba(255,255,255,0.06);
}
.company-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.company-card-name {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
}
.company-card-type {
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 12px;
  color: #fff;
  font-weight: 600;
}
.company-card-stats {
  display: flex;
  gap: 24px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.company-card-stats .stat {
  text-align: center;
}
.company-card-stats .val {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: #00d4ff;
}
.company-card-stats .lbl {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
}
.company-card-info p {
  margin: 0 0 10px;
  font-size: 14px;
  color: rgba(255,255,255,0.8);
  line-height: 1.6;
}
.company-card-info strong {
  color: rgba(255,255,255,0.5);
  font-weight: 500;
}
.company-card-info .overview {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.6);
  font-size: 13px;
  font-style: italic;
}
@media (max-width: 768px) {
  .car-map-wrapper { padding: 20px; }
  .car-map-header { flex-direction: column; align-items: flex-start; }
  .car-map-filters { margin-left: 0; width: 100%; overflow-x: auto; }
  .car-map-stats { gap: 24px; flex-wrap: wrap; }
  .stat-num { font-size: 24px; }
  .car-detail-content { width: 95%; border-radius: 16px; }
  .company-card-stats { flex-wrap: wrap; gap: 16px; }
}

.car-map-container {
  background: linear-gradient(135deg, #0a0f1e 0%, #1a1f3c 50%, #0d1321 100%);
  border-radius: 16px;
  padding: 24px;
  position: relative;
  overflow: hidden;
}
.car-map-container::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(59,130,246,0.08) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 80%, rgba(139,92,246,0.08) 0%, transparent 50%);
  pointer-events: none;
}
.car-map-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}
.car-map-header h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 0 20px rgba(59,130,246,0.5);
}
.map-legend {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  background: rgba(255,255,255,0.05);
  cursor: pointer;
  transition: all 0.3s;
  font-size: 13px;
  color: rgba(255,255,255,0.7);
}
.legend-item:hover, .legend-item.active {
  background: rgba(255,255,255,0.12);
  color: #fff;
}
.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.car-map-wrapper {
  position: relative;
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  aspect-ratio: 680/560;
}
.china-map-svg {
  width: 100%;
  height: 100%;
}
.china-map-svg .provinces path {
  transition: all 0.3s;
  cursor: pointer;
}
.china-map-svg .provinces path:hover {
  fill: rgba(59,130,246,0.3);
  stroke: #60a5fa;
  stroke-width: 1;
}
.map-markers-layer {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.map-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--marker-color);
  box-shadow: 0 0 12px var(--marker-glow), 0 0 24px var(--marker-glow);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
  animation: markerPulse 2s ease-in-out infinite;
  z-index: 10;
}
@keyframes markerPulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  50% { transform: translate(-50%, -50%) scale(1.15); opacity: 0.85; }
}
.marker-count {
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
.city-label {
  position: absolute;
  transform: translateX(-50%);
  font-size: 11px;
  color: rgba(255,255,255,0.6);
  white-space: nowrap;
  pointer-events: none;
  text-shadow: 0 1px 3px rgba(0,0,0,0.8);
}
.map-tooltip {
  display: none;
  position: absolute;
  z-index: 100;
  width: 320px;
  max-height: 400px;
  overflow-y: auto;
  background: rgba(15,20,35,0.95);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(59,130,246,0.3);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.05);
  padding: 0;
}
.tooltip-header {
  padding: 12px 16px;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  background: rgba(59,130,246,0.1);
}
.tooltip-count {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  margin-left: 8px;
  font-weight: 400;
}
.tooltip-companies {
  padding: 8px;
}
.tooltip-company {
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s;
}
.tooltip-company:hover {
  background: rgba(59,130,246,0.15);
}
.company-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.company-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.company-name {
  flex: 1;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
}
.company-cap {
  font-size: 13px;
  color: #ffd700;
  font-weight: 600;
}
.company-info {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  padding-left: 16px;
}
.map-stats {
  display: flex;
  justify-content: center;
  gap: 48px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.1);
  position: relative;
  z-index: 2;
}
.map-stats .stat-item {
  text-align: center;
}
.map-stats .stat-num {
  display: block;
  font-size: 28px;
  font-weight: 700;
  color: #00d4ff;
  text-shadow: 0 0 20px rgba(0,212,255,0.5);
}
.map-stats .stat-label {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
}
.company-detail-modal {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}
.company-detail-modal .modal-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(4px);
}
.company-detail-modal .modal-content {
  position: relative;
  width: 90%;
  max-width: 600px;
  max-height: 85vh;
  overflow-y: auto;
  background: linear-gradient(135deg, #1a1f3c 0%, #0d1321 100%);
  border: 1px solid rgba(59,130,246,0.3);
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.company-detail-modal .modal-close {
  position: absolute;
  top: 16px; right: 16px;
  width: 32px; height: 32px;
  border: none;
  background: rgba(255,255,255,0.1);
  color: #fff;
  font-size: 20px;
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.2s;
}
.company-detail-modal .modal-close:hover {
  background: rgba(255,255,255,0.2);
}
.company-detail-modal .modal-header {
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.company-detail-modal .modal-header h2 {
  margin: 0;
  font-size: 24px;
  color: #fff;
}
.type-badge {
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
}
.company-detail-modal .modal-body {
  padding: 0 24px 24px;
}
.info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.info-item {
  background: rgba(255,255,255,0.05);
  padding: 12px 16px;
  border-radius: 10px;
}
.info-label {
  display: block;
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  margin-bottom: 4px;
}
.info-value {
  font-size: 15px;
  color: #fff;
  font-weight: 500;
}
.info-value.highlight {
  color: #ffd700;
  font-size: 18px;
  font-weight: 700;
}
.info-section {
  margin-bottom: 20px;
}
.info-section h4 {
  margin: 0 0 10px;
  font-size: 15px;
  color: #60a5fa;
}
.info-section p {
  margin: 0;
  font-size: 14px;
  color: rgba(255,255,255,0.8);
  line-height: 1.7;
}
.company-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}
.company-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}
.company-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 100%;
  background: var(--card-accent);
}
.company-card:hover {
  background: rgba(255,255,255,0.06);
  border-color: var(--card-accent);
  transform: translateY(-2px);
}
.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.card-rank {
  font-size: 12px;
  color: rgba(255,255,255,0.4);
  font-weight: 600;
}
.card-type {
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 10px;
  color: #fff;
  font-weight: 600;
}
.card-name {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
}
.card-stats {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  margin-bottom: 6px;
}
.card-city {
  font-size: 12px;
  color: rgba(255,255,255,0.4);
}
.btn-show-all {
  background: linear-gradient(135deg, #3b82f6, #8b5cf6);
  border: none;
  padding: 10px 24px;
  border-radius: 20px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}
.btn-show-all:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 20px rgba(59,130,246,0.4);
}

/* ========== 汽车公司地图样式 ========== */
#car-map-container {
  width: 100%;
  min-height: 700px;
}

.car-map-wrapper {
  background: linear-gradient(135deg, #0a1628 0%, #1a0a2e 50%, #0f172a 100%);
  border-radius: 20px;
  padding: 30px;
  position: relative;
  overflow: hidden;
}

.car-map-wrapper::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background:
    radial-gradient(ellipse at 20% 20%, rgba(59,130,246,0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 80%, rgba(168,85,247,0.08) 0%, transparent 50%);
  pointer-events: none;
}

.map-header {
  text-align: center;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}

.map-header h3 {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 700;
  background: linear-gradient(135deg, #60a5fa 0%, #a78bfa 50%, #f472b6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 2px;
}

.map-header p {
  margin: 0;
  color: rgba(255,255,255,0.5);
  font-size: 14px;
}

.map-stats {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}

.map-stats .stat-item {
  text-align: center;
  padding: 16px 24px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  backdrop-filter: blur(10px);
}

.map-stats .stat-value {
  font-size: 28px;
  font-weight: 700;
  color: #00d4ff;
  text-shadow: 0 0 20px rgba(0,212,255,0.5);
}

.map-stats .stat-label {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.map-area {
  position: relative;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  aspect-ratio: 4/3;
}

.china-map-svg {
  width: 100%;
  height: 100%;
}

.china-map-svg .provinces path {
  transition: all 0.3s ease;
  cursor: pointer;
}

.china-map-svg .provinces path:hover {
  fill: #1e3a5f;
  stroke: #60a5fa;
  stroke-width: 1;
  filter: drop-shadow(0 0 10px rgba(59,130,246,0.5));
}

.map-markers {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
}

.map-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: all;
  cursor: pointer;
  z-index: 10;
}

.marker-pulse {
  position: absolute;
  width: calc(var(--marker-size) * 2.5);
  height: calc(var(--marker-size) * 2.5);
  border-radius: 50%;
  background: var(--marker-color);
  opacity: 0.2;
  transform: translate(-50%, -50%) translate(calc(var(--marker-size) / 2), calc(var(--marker-size) / 2));
  animation: pulse 2s ease-out infinite;
}

@keyframes pulse {
  0% { transform: translate(-50%, -50%) translate(calc(var(--marker-size) / 2), calc(var(--marker-size) / 2)) scale(0.5); opacity: 0.4; }
  100% { transform: translate(-50%, -50%) translate(calc(var(--marker-size) / 2), calc(var(--marker-size) / 2)) scale(1.5); opacity: 0; }
}

.marker-dot {
  width: var(--marker-size);
  height: var(--marker-size);
  border-radius: 50%;
  background: var(--marker-color);
  border: 2px solid rgba(255,255,255,0.8);
  box-shadow: 0 0 15px var(--marker-color), 0 0 30px var(--marker-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: #000;
  transition: all 0.3s ease;
}

.map-marker:hover .marker-dot {
  transform: scale(1.3);
  box-shadow: 0 0 25px var(--marker-color), 0 0 50px var(--marker-color);
}

.marker-label {
  position: absolute;
  top: calc(var(--marker-size) + 4px);
  left: 50%;
  transform: translateX(-50%);
  font-size: 11px;
  color: rgba(255,255,255,0.7);
  white-space: nowrap;
  text-shadow: 0 1px 3px rgba(0,0,0,0.8);
  pointer-events: none;
}

.map-legend {
  position: absolute;
  bottom: 30px;
  left: 30px;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 16px;
  z-index: 20;
}

.legend-title {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  margin: 4px -10px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s;
}

.legend-item:hover,
.legend-item.active {
  background: rgba(255,255,255,0.1);
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  box-shadow: 0 0 8px currentColor;
}

.legend-text {
  font-size: 13px;
  color: rgba(255,255,255,0.8);
}

/* 城市悬浮提示框 */
.city-tooltip {
  position: absolute;
  display: none;
  width: 320px;
  max-height: 400px;
  overflow-y: auto;
  background: rgba(15,23,42,0.95);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(59,130,246,0.3);
  border-radius: 16px;
  padding: 0;
  z-index: 100;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

.tooltip-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  background: linear-gradient(135deg, rgba(59,130,246,0.1), rgba(168,85,247,0.1));
}

.tooltip-city {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
}

.tooltip-count {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.1);
  padding: 4px 10px;
  border-radius: 10px;
}

.tooltip-companies {
  padding: 12px;
}

.tooltip-company {
  padding: 12px;
  border-radius: 12px;
  margin-bottom: 8px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.05);
  cursor: pointer;
  transition: all 0.2s;
}

.tooltip-company:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(59,130,246,0.3);
  transform: translateX(4px);
}

.tooltip-company:last-child {
  margin-bottom: 0;
}

.tooltip-company .company-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.company-type-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.tooltip-company .company-name {
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  flex: 1;
}

.company-type-tag {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 8px;
  background: rgba(255,255,255,0.1);
}

.tooltip-company .company-metrics {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  margin-bottom: 4px;
}

.tooltip-company .company-tech {
  font-size: 11px;
  color: rgba(255,255,255,0.4);
  line-height: 1.4;
}

/* 公司详情弹窗 */
.company-detail-modal {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.company-detail-modal.show {
  opacity: 1;
  visibility: visible;
}

.company-detail-modal .modal-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(5px);
}

.company-detail-content {
  position: relative;
  width: 90%;
  max-width: 600px;
  max-height: 85vh;
  overflow-y: auto;
  background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
  border: 1px solid rgba(59,130,246,0.3);
  border-radius: 24px;
  transform: scale(0.9) translateY(20px);
  transition: transform 0.3s ease;
}

.company-detail-modal.show .company-detail-content {
  transform: scale(1) translateY(0);
}

.detail-header {
  padding: 24px;
  border-bottom: 2px solid;
  border-image: linear-gradient(90deg, var(--border-color, #3b82f6), transparent) 1;
}

.detail-title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.detail-title h2 {
  margin: 0;
  font-size: 26px;
  font-weight: 700;
  color: #fff;
}

.detail-type {
  padding: 4px 14px;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 600;
  color: #000;
}

.detail-subtitle {
  margin-top: 8px;
  font-size: 14px;
  color: rgba(255,255,255,0.5);
}

.detail-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  padding: 20px 24px;
  background: rgba(0,0,0,0.2);
}

.metric-card {
  text-align: center;
  padding: 16px;
  background: rgba(255,255,255,0.03);
  border-radius: 12px;
}

.metric-value {
  font-size: 20px;
  font-weight: 700;
  color: #00d4ff;
  margin-bottom: 4px;
}

.metric-label {
  font-size: 11px;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.detail-section {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

.detail-section:last-child {
  border-bottom: none;
}

.detail-section h4 {
  margin: 0 0 12px;
  font-size: 14px;
  color: #60a5fa;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tag-list .tag {
  padding: 6px 14px;
  background: rgba(59,130,246,0.15);
  border: 1px solid rgba(59,130,246,0.3);
  border-radius: 20px;
  font-size: 13px;
  color: #60a5fa;
}

.recruitment-tags .tag {
  background: rgba(16,185,129,0.15);
  border-color: rgba(16,185,129,0.3);
  color: #10b981;
}

.tech-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tech-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: rgba(255,255,255,0.8);
}

.tech-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.globalization-text {
  margin: 0;
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  line-height: 1.6;
}

/* 响应式 */
@media (max-width: 768px) {
  .car-map-wrapper {
    padding: 20px;
  }

  .map-stats {
    flex-wrap: wrap;
    gap: 12px;
  }

  .map-stats .stat-item {
    flex: 1;
    min-width: 100px;
    padding: 12px;
  }

  .map-stats .stat-value {
    font-size: 20px;
  }

  .map-legend {
    position: relative;
    bottom: auto;
    left: auto;
    width: 100%;
    margin-top: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
  }

  .legend-title {
    width: 100%;
    text-align: center;
  }

  .city-tooltip {
    width: 280px;
  }

  .detail-metrics {
    grid-template-columns: 1fr;
  }
}

/* ===== 汽车公司地图样式 ===== */
/* 让父容器 industry-detail-content 在汽车地图场景下使用深色背景 */
.industry-detail-content:has(.car-map-container) {
  background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%);
  border: 1px solid rgba(99, 102, 241, 0.3);
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.car-map-container {
  background: transparent;
  border-radius: 0;
  padding: 32px;
  margin: 0;
  min-height: auto;
  max-width: 100%;
  width: 100%;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}

.car-map-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
    radial-gradient(ellipse 60% 40% at 80% 100%, rgba(16, 185, 129, 0.1) 0%, transparent 50%);
  pointer-events: none;
}

.car-map-header {
  text-align: center;
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}

.car-map-header h3 {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 8px;
  background: linear-gradient(90deg, #00d4ff, #a855f7, #10b981);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.car-map-subtitle {
  color: rgba(255,255,255,0.6);
  font-size: 14px;
  margin: 0 0 20px;
}

.car-map-filters {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.filter-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.7);
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 6px;
}

.filter-btn:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
  color: #fff;
}

.filter-btn.active {
  background: rgba(99, 102, 241, 0.3);
  border-color: #6366f1;
  color: #fff;
}

.filter-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.car-map-wrapper {
  position: relative;
  background: rgba(0,0,0,0.2);
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 8px;
  overflow: visible;
  min-height: 500px;
  height: 580px;
}

.car-map-svg-container {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.china-map-svg {
  width: 100%;
  height: auto;
}

.china-map-svg .province {
  transition: all 0.3s;
}

.china-map-svg .province:hover {
  fill: #2d3a5a;
  stroke: #6366f1;
  stroke-width: 2;
}

.marker-group {
  cursor: pointer;
  transition: transform 0.2s;
}

.marker-group:hover {
  transform: scale(1.3);
}

.marker-group.hidden {
  opacity: 0;
  pointer-events: none;
}

.marker-dot {
  transition: all 0.3s;
}

.city-label {
  fill: rgba(255,255,255,0.5);
  font-size: 10px;
  pointer-events: none;
}

.car-company-tooltip {
  position: absolute;
  background: rgba(15, 23, 42, 0.95);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 0;
  min-width: 260px;
  z-index: 100;
  box-shadow: 0 20px 40px rgba(0,0,0,0.4);
  animation: tooltipFadeIn 0.2s ease;
}

@keyframes tooltipFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.tooltip-header {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tooltip-name {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
}

.tooltip-type {
  font-size: 12px;
  font-weight: 500;
}

.tooltip-body {
  padding: 12px 16px;
}

.tooltip-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

.tooltip-row:last-child {
  border-bottom: none;
}

.tooltip-label {
  color: rgba(255,255,255,0.5);
  font-size: 12px;
}

.tooltip-value {
  color: #fff;
  font-size: 12px;
  text-align: right;
  max-width: 160px;
}

.tooltip-footer {
  padding: 8px 16px;
  background: rgba(99, 102, 241, 0.2);
  color: #a5b4fc;
  font-size: 11px;
  text-align: center;
  border-radius: 0 0 12px 12px;
}

.car-map-stats {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}

.car-map-stats .stat-item {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 16px 24px;
  text-align: center;
  min-width: 120px;
}

.car-map-stats .stat-num {
  display: block;
  font-size: 28px;
  font-weight: 700;
  color: #00d4ff;
  margin-bottom: 4px;
}

.car-map-stats .stat-label {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
}

.car-company-list {
  background: rgba(0,0,0,0.2);
  border-radius: 16px;
  padding: 20px;
}

.company-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.company-list-header h4 {
  margin: 0;
  color: #fff;
  font-size: 16px;
}

.company-count {
  color: rgba(255,255,255,0.5);
  font-size: 13px;
}

.company-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

.city-group {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 12px;
}

.city-group-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.city-name {
  color: #a5b4fc;
  font-weight: 600;
  font-size: 14px;
}

.city-count {
  color: rgba(255,255,255,0.4);
  font-size: 12px;
}

.city-companies {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.company-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: 6px 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.company-chip:hover {
  background: rgba(255,255,255,0.1);
  transform: translateY(-2px);
}

.chip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

.chip-name {
  color: #fff;
  font-size: 12px;
}

.chip-cap {
  color: rgba(255,255,255,0.4);
  font-size: 11px;
}

/* 公司详情弹窗 */
.car-detail-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s;
}

.car-detail-modal.show {
  opacity: 1;
}

.car-detail-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(4px);
}

.car-detail-content {
  position: relative;
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  width: 90%;
  max-width: 600px;
  max-height: 80vh;
  overflow-y: auto;
  transform: translateY(20px);
  transition: transform 0.3s;
}

.car-detail-modal.show .car-detail-content {
  transform: translateY(0);
}

.car-detail-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(255,255,255,0.1);
  border: none;
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.2s;
}

.car-detail-close:hover {
  background: rgba(255,255,255,0.2);
}

.car-detail-header {
  padding: 24px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  gap: 12px;
}

.car-detail-header h2 {
  margin: 0;
  color: #fff;
  font-size: 24px;
}

.detail-type-badge {
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  color: #fff;
}

.car-detail-body {
  padding: 24px;
}

.detail-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.detail-stat {
  background: rgba(255,255,255,0.05);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
}

.detail-stat-value {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #00d4ff;
  margin-bottom: 4px;
}

.detail-stat-label {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
}

.detail-section {
  margin-bottom: 20px;
}

.detail-section h4 {
  color: #a5b4fc;
  font-size: 14px;
  margin: 0 0 8px;
  font-weight: 600;
}

.detail-section p {
  color: rgba(255,255,255,0.8);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.filter-btn .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.car-map-markers {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}

.car-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  background: var(--marker-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 0 0 20px var(--marker-glow);
  transition: transform 0.2s, box-shadow 0.2s;
  z-index: 10;
}

.car-marker:hover {
  transform: translate(-50%, -50%) scale(1.3);
  box-shadow: 0 0 30px var(--marker-glow);
  z-index: 20;
}

.marker-count {
  color: #000;
  font-size: 11px;
  font-weight: 700;
}

.marker-pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--marker-color);
  opacity: 0.4;
  animation: markerPulse 2s ease-out infinite;
}

@keyframes markerPulse {
  0% { transform: scale(1); opacity: 0.4; }
  100% { transform: scale(2.5); opacity: 0; }
}

.car-map-markers .city-label {
  position: absolute;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.6);
  font-size: 10px;
  white-space: nowrap;
  pointer-events: none;
}

.car-map-tooltip {
  position: absolute;
  display: none;
  background: rgba(15, 23, 42, 0.98);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 12px;
  padding: 12px 16px;
  min-width: 200px;
  max-width: 280px;
  z-index: 9999;
  box-shadow: 0 20px 40px rgba(0,0,0,0.6);
  pointer-events: none;
  transform: translateY(-5px);
  transition: opacity 0.15s, visibility 0.15s;
}

.car-map-tooltip .tooltip-header {
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  padding: 0 0 8px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.tooltip-companies {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tooltip-company {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tooltip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.car-map-tooltip .tooltip-name {
  color: #fff;
  font-size: 12px;
  flex: 1;
}

.tooltip-cap {
  color: rgba(255,255,255,0.5);
  font-size: 11px;
}

.car-map-legend {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,0.7);
  font-size: 12px;
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.car-map-stats .stat-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 16px 24px;
  text-align: center;
  min-width: 120px;
}

.car-map-stats .stat-value {
  font-size: 28px;
  font-weight: 700;
  color: #00d4ff;
  margin-bottom: 4px;
}

.car-map-stats .stat-label {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
}

.car-list-section {
  background: rgba(0,0,0,0.2);
  border-radius: 16px;
  padding: 20px;
  margin-top: 24px;
  margin-left: 0;
  margin-right: 0;
  width: calc(100% + 0px);
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.car-list-section h4 {
  color: #fff;
  font-size: 16px;
  margin: 0 0 16px;
}

.car-list-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
}

.car-list-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.car-list-item:hover {
  background: rgba(255,255,255,0.08);
  border-color: var(--item-color);
  transform: translateY(-2px);
}

.car-list-rank {
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.7);
  font-size: 12px;
  font-weight: 600;
}

.car-list-info {
  flex: 1;
}

.car-list-name {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 2px;
}

.car-list-meta {
  color: rgba(255,255,255,0.5);
  font-size: 12px;
}

.car-list-type {
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  color: #000;
  font-weight: 500;
}

.china-outline {
  fill: rgba(30, 41, 59, 0.8);
  stroke: rgba(99, 102, 241, 0.3);
  stroke-width: 2;
}

.province-border {
  fill: rgba(30, 41, 59, 0.5);
  stroke: rgba(99, 102, 241, 0.2);
  stroke-width: 1;
}

.car-detail-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: modalFadeIn 0.3s ease;
}

@keyframes modalFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.car-detail-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(4px);
}

.car-detail-content {
  position: relative;
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  width: 90%;
  max-width: 500px;
  max-height: 80vh;
  overflow-y: auto;
  animation: modalSlideIn 0.3s ease;
}

.city-companies-content {
  max-width: 400px;
}

@keyframes modalSlideIn {
  from { transform: translateY(30px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.car-detail-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(255,255,255,0.1);
  border: none;
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.2s;
  z-index: 10;
}

.car-detail-close:hover {
  background: rgba(255,255,255,0.2);
}

.car-detail-header {
  padding: 24px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(90deg, var(--header-color, #6366f1) 0%, transparent 100%);
  background-size: 200% 100%;
  background-position: 0% 0%;
}

.car-detail-rank {
  width: 40px;
  height: 40px;
  background: rgba(0,0,0,0.3);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.car-detail-header h3 {
  flex: 1;
  margin: 0;
  color: #fff;
  font-size: 20px;
}

.car-detail-type {
  padding: 4px 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 20px;
  font-size: 12px;
  color: #fff;
}

.car-detail-body {
  padding: 20px 24px;
}

.detail-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

.detail-row:last-child {
  border-bottom: none;
}

.detail-row .label {
  color: rgba(255,255,255,0.5);
  font-size: 13px;
  flex-shrink: 0;
}

.detail-row .value {
  color: #fff;
  font-size: 13px;
  text-align: right;
  max-width: 280px;
  line-height: 1.5;
}

.city-companies-list {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.city-company-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.city-company-item:hover {
  background: rgba(255,255,255,0.08);
  transform: translateX(4px);
}

.city-company-rank {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
  font-size: 11px;
  font-weight: 700;
}

.city-company-info {
  flex: 1;
}

.city-company-name {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 2px;
}

.city-company-meta {
  color: rgba(255,255,255,0.5);
  font-size: 11px;
}

/* ========== 汽车公司地图 - 全宽地图 + 侧边抽屉布局 ========== */

/* 主区域布局 - 地图全宽 */
.car-map-main-area {
  display: block;
  position: relative;
  margin: 24px 0;
  padding: 0;
}

.car-map-left {
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* 隐藏旧的右侧容器 */
.car-map-right {
  display: none;
}

/* ===== 侧边抽屉样式 ===== */
.car-drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(2px);
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.car-drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}

.car-drawer {
  position: fixed;
  top: 0;
  right: 0;
  width: 420px;
  max-width: 90vw;
  height: 100vh;
  background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%);
  border-left: 1px solid rgba(99, 102, 241, 0.3);
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.5);
  z-index: 9999;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  overflow-x: hidden;
}

.car-drawer.open {
  transform: translateX(0);
}

.car-drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(99, 102, 241, 0.2);
  background: rgba(15, 23, 42, 0.8);
  position: sticky;
  top: 0;
  z-index: 10;
}

.car-drawer-title {
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  margin: 0;
}

.car-drawer-close {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.car-drawer-close:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.4);
  color: #f87171;
}

.car-drawer-close svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.car-drawer-body {
  padding: 24px;
}

/* 详情面板样式（用于抽屉内） */
.car-detail-panel {
  background: transparent;
  border: none;
  border-radius: 0;
  min-height: auto;
  max-height: none;
  overflow-y: visible;
  position: relative;
}

.panel-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 280px;
  color: rgba(148, 163, 184, 0.6);
  text-align: center;
  padding: 24px;
}

.panel-placeholder svg {
  opacity: 0.4;
  margin-bottom: 16px;
}

.panel-placeholder p {
  font-size: 14px;
  line-height: 1.6;
}

/* 城市详情面板 */
.city-detail-content {
  padding: 20px;
}

.city-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(99, 102, 241, 0.2);
  margin-bottom: 16px;
}

.city-detail-header h4 {
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  margin: 0;
}

.city-company-count {
  background: rgba(99, 102, 241, 0.2);
  color: #a5b4fc;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
}

.city-companies-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.city-company-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(99, 102, 241, 0.15);
  border-radius: 10px;
  padding: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.city-company-card:hover {
  background: rgba(99, 102, 241, 0.15);
  border-color: rgba(99, 102, 241, 0.4);
  transform: translateX(4px);
}

.company-card-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.company-card-rank {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  font-size: 11px;
  font-weight: 700;
}

.company-card-name {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
}

.company-card-meta {
  color: rgba(255,255,255,0.5);
  font-size: 11px;
  margin-top: 2px;
}

.company-card-stats {
  text-align: right;
}

.mini-stat-value {
  color: #10b981;
  font-size: 16px;
  font-weight: 600;
}

.mini-stat-label {
  color: rgba(255,255,255,0.4);
  font-size: 10px;
  display: block;
}

/* 公司详情面板 */
.company-detail-content {
  animation: slideIn 0.3s ease-out;
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.company-detail-header {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(139, 92, 246, 0.15) 100%);
  padding: 16px 20px;
  border-bottom: 1px solid rgba(99, 102, 241, 0.2);
}

.company-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.company-rank-badge {
  background: var(--header-color, #6366f1);
  color: #0f172a;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
}

.back-to-city-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,0.1);
  border: none;
  color: rgba(255,255,255,0.7);
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.back-to-city-btn:hover {
  background: rgba(255,255,255,0.2);
  color: #fff;
}

.company-detail-header .company-name {
  color: #fff;
  font-size: 22px;
  font-weight: 600;
  margin: 0 0 8px 0;
}

.company-type-badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  color: #0f172a;
}

.company-detail-body {
  padding: 16px 20px;
}

.detail-section {
  margin-bottom: 14px;
}

.detail-section h5 {
  color: #a5b4fc;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 10px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(99, 102, 241, 0.15);
}

.key-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.metric-card {
  background: rgba(99, 102, 241, 0.1);
  border-radius: 10px;
  padding: 10px 8px;
  text-align: center;
}

.metric-value {
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 4px;
}

.metric-label {
  color: rgba(255,255,255,0.5);
  font-size: 10px;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.detail-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.detail-item .detail-label {
  color: rgba(255,255,255,0.5);
  font-size: 11px;
}

.detail-item .detail-value {
  color: #fff;
  font-size: 13px;
  font-weight: 500;
}

.detail-text-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 8px;
}

.detail-text-item .detail-label {
  color: rgba(255,255,255,0.5);
  font-size: 11px;
}

.detail-text-item .detail-value {
  color: #e2e8f0;
  font-size: 13px;
  line-height: 1.5;
}

.recruit-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.recruit-tag {
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 11px;
}

.news-section .news-content {
  display: flex;
  gap: 8px;
  background: rgba(251, 191, 36, 0.1);
  border: 1px solid rgba(251, 191, 36, 0.2);
  border-radius: 8px;
  padding: 10px;
  color: #fbbf24;
  font-size: 12px;
  line-height: 1.4;
}

.news-section svg {
  flex-shrink: 0;
  opacity: 0.7;
}

/* 选中状态样式 */
.car-marker.selected {
  transform: scale(1.3);
  z-index: 100;
  box-shadow: 0 0 20px var(--marker-glow), 0 0 40px var(--marker-glow);
}

.city-label.selected {
  color: #fff;
  font-weight: 600;
  text-shadow: 0 0 10px rgba(99, 102, 241, 0.8);
}

.car-list-item.selected {
  background: rgba(99, 102, 241, 0.2);
  border-color: var(--item-color);
  transform: translateX(4px);
}

/* 公司列表头部 */
.car-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.car-list-header h4 {
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  margin: 0;
}

.car-list-count {
  background: rgba(99, 102, 241, 0.2);
  color: #a5b4fc;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
}

/* 地图SVG样式优化 */
.china-map-svg .china-outline {
  fill: none;
  stroke: url(#borderGrad);
  stroke-width: 2;
  filter: drop-shadow(0 0 20px rgba(99, 102, 241, 0.4));
}

.china-map-svg .province {
  fill: rgba(30, 41, 59, 0.85);
  stroke: rgba(99, 102, 241, 0.35);
  stroke-width: 0.8;
  transition: all 0.3s ease;
  filter: drop-shadow(0 0 8px rgba(99, 102, 241, 0.15));
}

.china-map-svg .province:hover {
  fill: rgba(59, 130, 246, 0.25);
  stroke: rgba(99, 102, 241, 0.6);
  stroke-width: 1.2;
  filter: drop-shadow(0 0 12px rgba(99, 102, 241, 0.4));
}

.china-map-svg .south-sea rect {
  fill: rgba(15, 23, 42, 0.5);
}

.china-map-svg .south-sea text {
  font-family: inherit;
}

/* ===== 类型统计图表样式（抽屉初始状态） ===== */
.type-summary-container {
  padding: 0;
}

.type-summary-header {
  text-align: center;
  margin-bottom: 24px;
}

.type-summary-header h4 {
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px;
}

.type-summary-header p {
  color: rgba(255,255,255,0.5);
  font-size: 13px;
  margin: 0;
}

.type-chart-wrapper {
  background: rgba(0,0,0,0.2);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  min-height: 200px;
}

.type-chart-wrapper canvas {
  max-height: 200px;
}

.type-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.type-stat-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  transition: all 0.2s;
}

.type-stat-card:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(99, 102, 241, 0.3);
  transform: translateY(-2px);
}

.type-stat-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
  margin-bottom: 8px;
}

.type-stat-label {
  display: block;
  color: rgba(255,255,255,0.6);
  font-size: 12px;
  margin-bottom: 6px;
}

.type-stat-value {
  display: block;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
}

.type-stat-sub {
  display: block;
  color: rgba(255,255,255,0.4);
  font-size: 11px;
  margin-top: 4px;
}

.type-breakdown-section {
  margin-top: 20px;
}

.type-breakdown-section h5 {
  color: rgba(255,255,255,0.7);
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 12px;
}

.type-breakdown-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.type-breakdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,255,255,0.03);
  border-radius: 8px;
  padding: 10px 12px;
}

.type-breakdown-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.type-breakdown-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.type-breakdown-name {
  color: #fff;
  font-size: 13px;
}

.type-breakdown-bar {
  flex: 1;
  height: 6px;
  background: rgba(255,255,255,0.1);
  border-radius: 3px;
  margin: 0 12px;
  overflow: hidden;
}

.type-breakdown-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.5s ease;
}

.type-breakdown-value {
  color: rgba(255,255,255,0.7);
  font-size: 12px;
  min-width: 50px;
  text-align: right;
}

/* 打开抽屉按钮 */
.open-drawer-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(99, 102, 241, 0.2);
  border: 1px solid rgba(99, 102, 241, 0.4);
  color: #a5b4fc;
  padding: 10px 16px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 10;
}

.open-drawer-btn:hover {
  background: rgba(99, 102, 241, 0.35);
  border-color: #6366f1;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3);
}

.open-drawer-btn svg {
  width: 16px;
  height: 16px;
}

/* 响应式适配 - 新版 */
@media (max-width: 1200px) {
  .car-drawer {
    width: 380px;
  }

  .car-map-wrapper {
    height: 450px;
    min-height: 400px;
  }
}

@media (max-width: 768px) {
  .car-drawer {
    width: 100%;
    max-width: 100vw;
  }

  .car-map-wrapper {
    height: 350px;
    min-height: 300px;
  }
}

@media (max-width: 768px) {
  .car-map-container {
    padding: 20px;
  }

  .car-map-header h3 {
    font-size: 22px;
  }

  .car-map-filters {
    gap: 8px;
    flex-wrap: wrap;
  }

  .filter-btn {
    padding: 6px 12px;
    font-size: 12px;
  }

  .car-map-stats {
    gap: 12px;
    flex-wrap: wrap;
  }

  .car-map-stats .stat-card {
    padding: 12px 16px;
    min-width: 80px;
  }

  .car-map-stats .stat-value {
    font-size: 20px;
  }

  .car-list-grid {
    grid-template-columns: 1fr;
  }

  .key-metrics {
    grid-template-columns: repeat(3, 1fr);
  }

  .detail-grid {
    grid-template-columns: 1fr;
  }

  .company-detail-header .company-name {
    font-size: 18px;
  }
}

/* ========== 互联网行业地图样式 ========== */
.map-subtitle {
  color: rgba(255,255,255,0.6);
  font-size: 14px;
  margin-top: 8px;
}

.internet-trends-section {
  background: rgba(0,0,0,0.2);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 24px;
}

.internet-trends-section h4 {
  color: #fff;
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 20px;
}

.trends-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.trend-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 20px;
  transition: all 0.2s;
}

.trend-card:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(99, 102, 241, 0.5);
  transform: translateY(-2px);
}

.trend-icon {
  font-size: 32px;
  margin-bottom: 12px;
}

.trend-title {
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 8px;
}

.trend-desc {
  color: rgba(255,255,255,0.6);
  font-size: 13px;
  line-height: 1.5;
}

@media (max-width: 1200px) {
  .trends-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .trends-grid {
    grid-template-columns: 1fr;
  }

  .internet-trends-section {
    padding: 16px;
  }
}

/* ==================== 简历库样式 ==================== */

.resume-upload-section {
  margin-bottom: 24px;
}

.resume-dropzone {
  border: 2px dashed #d1d5db;
  border-radius: 12px;
  padding: 40px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}

.resume-dropzone:hover {
  border-color: #3b82f6;
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
}

.resume-dropzone.drag-over {
  border-color: #3b82f6;
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  transform: scale(1.01);
}

.resume-dropzone svg {
  color: #9ca3af;
  margin-bottom: 12px;
}

.resume-dropzone p {
  margin: 8px 0;
  color: #6b7280;
}

.resume-dropzone .dropzone-hint {
  font-size: 13px;
  color: #9ca3af;
}

.resume-upload-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}

.resume-tab {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  border-radius: 8px 8px 0 0;
  cursor: pointer;
  font-size: 14px;
  color: #6b7280;
  transition: all 0.2s ease;
}

.resume-tab:hover {
  background: #f3f4f6;
  color: #374151;
}

.resume-tab.active {
  background: #fff;
  border-color: #3b82f6;
  border-bottom-color: #fff;
  color: #3b82f6;
  font-weight: 500;
}

.resume-tab svg {
  flex-shrink: 0;
}

.resume-tab-content {
  border: 1px solid #e5e7eb;
  border-radius: 0 12px 12px 12px;
  background: #fff;
  margin-top: -1px;
}

.resume-tab-pane {
  display: none;
  padding: 20px;
}

.resume-tab-pane.active {
  display: block;
}

.resume-paste-area {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.resume-paste-area textarea {
  width: 100%;
  min-height: 180px;
  padding: 16px;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.6;
  resize: vertical;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.resume-paste-area textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.resume-paste-area textarea::placeholder {
  color: #9ca3af;
}

.btn-submit-paste {
  align-self: flex-end;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 500;
}

.upload-progress {
  margin-top: 16px;
  padding: 12px;
  background: #f1f5f9;
  border-radius: 8px;
}

.progress-bar {
  height: 6px;
  background: #e5e7eb;
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 8px;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6, #8b5cf6);
  width: 0%;
  transition: width 0.3s ease;
  animation: progress-pulse 1.5s ease-in-out infinite;
}

@keyframes progress-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.progress-text {
  font-size: 13px;
  color: #6b7280;
}

.resume-list-section h3 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.count-badge {
  background: #3b82f6;
  color: #fff;
  font-size: 12px;
  padding: 2px 10px;
  border-radius: 12px;
  font-weight: 500;
}

.resume-toolbar {
  margin-bottom: 20px;
}

.resume-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.resume-filters input[type="text"] {
  min-width: 200px;
  flex: 1;
  max-width: 300px;
}

.resume-filters select {
  min-width: 140px;
}

.resume-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
  margin-bottom: 20px;
}

.resume-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 20px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}

.resume-card:hover {
  border-color: #3b82f6;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
  transform: translateY(-2px);
}

.resume-card-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}

.resume-card-avatar {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.resume-card-avatar svg {
  color: #3b82f6;
}

.resume-card-info {
  flex: 1;
  min-width: 0;
}

.resume-card-name {
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
  margin: 0 0 4px 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.resume-card-position {
  font-size: 13px;
  color: #6b7280;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.resume-card-body {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  font-size: 13px;
  color: #6b7280;
}

.resume-card-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.resume-card-item svg {
  width: 14px;
  height: 14px;
  color: #9ca3af;
  flex-shrink: 0;
}

.resume-card-item span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.resume-card-footer {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #f3f4f6;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.resume-card-team {
  background: #f3f4f6;
  color: #4b5563;
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 6px;
}

.resume-card-date {
  font-size: 12px;
  color: #9ca3af;
}

.resume-card-actions {
  position: absolute;
  top: 12px;
  right: 12px;
  display: none;
  gap: 6px;
}

.resume-card:hover .resume-card-actions {
  display: flex;
}

.resume-card-actions button {
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f4f6;
  border: none;
  color: #6b7280;
  cursor: pointer;
}

.resume-card-actions button:hover {
  background: #e5e7eb;
  color: #374151;
}

.resume-card-actions button.btn-danger:hover {
  background: #fee2e2;
  color: #dc2626;
}

.empty-state {
  text-align: center;
  padding: 60px 20px;
  color: #9ca3af;
}

.empty-state svg {
  margin-bottom: 16px;
  opacity: 0.5;
}

.empty-state p {
  margin: 8px 0;
}

.empty-state .hint {
  font-size: 13px;
}

.resume-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
}

.resume-pagination button {
  padding: 8px 16px;
}

.resume-pagination button:disabled {
  background: #e5e7eb;
  border-color: #e5e7eb;
  color: #9ca3af;
  cursor: not-allowed;
}

/* 简历弹窗样式 */
.resume-modal-content {
  max-width: 650px;
}

.resume-detail-content {
  max-width: 980px;
  width: min(980px, calc(100vw - 40px));
  max-height: min(88vh, 860px);
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
  overflow: hidden;
  transition: width 0.2s ease, max-width 0.2s ease, max-height 0.2s ease, border-radius 0.2s ease;
}

/* 桌面端采用右侧详情抽屉；透明区域不拦截左侧人才列表的点击和滚动。 */
@media (min-width: 1025px) {
  #resume-detail-modal:not(.is-preview-expanded) {
    top: 64px;
    height: calc(100vh - 64px);
    height: calc(100dvh - 64px);
    align-items: stretch;
    justify-content: flex-end;
    padding: 0;
    background: transparent;
    pointer-events: none;
    overflow: hidden;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-content {
    /* Keep enough room for both the profile card and the fixed-width activity rail.
       The previous 820px floor left the profile card with roughly 300px of usable
       content at narrow desktop widths, which made its fields collapse vertically. */
    width: clamp(920px, 66vw, 1280px);
    max-width: none;
    height: 100%;
    max-height: none;
    border-width: 0 0 0 1px;
    border-radius: 16px 0 0 16px;
    box-shadow: -18px 0 48px rgba(15, 23, 42, 0.2);
    pointer-events: auto;
    transform: translateX(100%);
    transition: transform 0.22s ease, width 0.2s ease, border-radius 0.2s ease;
  }

  #resume-detail-modal.is-drawer-open:not(.is-preview-expanded) .resume-detail-content {
    transform: translateX(0);
  }

  body.resume-detail-drawer-open #channel-talent {
    min-height: calc(100vh - 112px);
  }

  #resume-table-body .resume-table-row.is-detail-selected {
    background: #eaf2ff;
    box-shadow: inset 3px 0 0 #3b82f6;
  }
}

.resume-detail-content > .modal-header {
  min-height: 64px;
  box-sizing: border-box;
  padding: 0 24px;
  border-bottom-color: #edf1f6;
  background: rgba(255, 255, 255, 0.96);
}

.resume-detail-content > .modal-header h3 {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.resume-ai-batch-progress {
  flex: 1 1 420px;
  min-width: 220px;
  max-width: 470px;
  margin: 0 clamp(18px, 4vw, 58px);
}

.resume-ai-batch-progress[hidden] { display: none; }

.resume-ai-batch-progress-copy {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  margin-bottom: 6px;
  color: #52647a;
  font-size: 11px;
  line-height: 1.2;
}

.resume-ai-batch-progress-copy > span:nth-child(2) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-ai-batch-progress-icon {
  display: inline-grid;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 7px;
  background: linear-gradient(135deg, #4f8df7, #7357ee);
  box-shadow: 0 4px 10px rgba(79, 70, 229, .18);
  color: #fff;
  font-size: 9px;
  font-weight: 750;
}

.resume-ai-batch-progress-value,
.resume-ai-batch-progress-copy strong {
  flex: 0 0 auto;
  margin-left: auto;
  color: #356ee6;
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.resume-ai-batch-progress-track {
  height: 7px;
  overflow: hidden;
  border: 1px solid #e0e8f5;
  border-radius: 999px;
  background: #eef3f9;
  box-shadow: inset 0 1px 2px rgba(30, 64, 175, .05);
}

.resume-ai-batch-progress-track > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4285f4 0%, #6264e7 55%, #8b5cf6 100%);
  box-shadow: 0 0 10px rgba(99, 102, 241, .28);
  position: relative;
  overflow: hidden;
  transition: width .18s linear;
}

.resume-ai-batch-progress-track > span::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 15%, rgba(255, 255, 255, .48) 50%, transparent 85%);
  transform: translateX(-100%);
  animation: resume-ai-progress-shimmer 1.35s linear infinite;
  content: '';
}

@keyframes resume-ai-progress-shimmer {
  to { transform: translateX(100%); }
}

.resume-ai-batch-progress.is-complete .resume-ai-batch-progress-icon,
.resume-ai-batch-progress.is-complete .resume-ai-batch-progress-track > span { background: linear-gradient(90deg, #16a085, #21b88a); }
.resume-ai-batch-progress.is-complete .resume-ai-batch-progress-copy strong { color: #07875f; }
.resume-ai-batch-progress.is-warning .resume-ai-batch-progress-icon,
.resume-ai-batch-progress.is-warning .resume-ai-batch-progress-track > span { background: linear-gradient(90deg, #f59e0b, #fb923c); }
.resume-ai-batch-progress.is-warning .resume-ai-batch-progress-copy strong { color: #c26a08; }

@media (max-width: 768px) {
  .resume-detail-content > .modal-header { position: relative; min-height: 76px; padding-bottom: 12px; }
  .resume-ai-batch-progress { position: absolute; right: 16px; bottom: 5px; left: 16px; max-width: none; min-width: 0; margin: 0; }
  .resume-ai-batch-progress-copy { margin-bottom: 3px; }
  .resume-ai-batch-progress-icon { width: 18px; height: 18px; border-radius: 6px; font-size: 8px; }
  .resume-ai-batch-progress-track { height: 5px; }
}

.resume-modal-header-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.resume-header-expand-button svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

.resume-header-expand-button:hover {
  color: #2563eb;
  background: #eff6ff;
}

.resume-detail-content .modal-body {
  max-height: none;
  padding: 20px 24px 24px;
  overflow-y: auto;
  background: #f7f9fc;
  scrollbar-gutter: stable;
}

#resume-detail-modal.is-preview-expanded {
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  align-items: stretch;
  justify-content: flex-start;
  padding: 0;
  background: #eef1f5;
  pointer-events: auto;
  overflow: hidden;
}

#resume-detail-modal.is-preview-expanded .resume-detail-content {
  width: 100vw;
  max-width: none;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}

#resume-detail-modal.is-preview-expanded .modal-header {
  display: flex;
  min-height: 58px;
  padding: 0 22px;
  border-bottom: 1px solid #e8edf3;
  background: rgba(255, 255, 255, 0.96);
}

#resume-detail-modal.is-preview-expanded .resume-detail-content .modal-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  height: calc(100vh - 58px);
  height: calc(100dvh - 58px);
  min-height: 0;
  max-height: none;
  overflow: hidden;
  padding: 0;
  background: #fff;
}

#resume-detail-modal.is-preview-expanded .resume-detail-content .modal-body > .resume-detail-rail {
  display: block !important;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border-left: 1px solid #e8edf3;
  background: #fbfcfe;
  scrollbar-gutter: stable;
}

#resume-detail-modal.is-preview-expanded .resume-detail-content .modal-body > .resume-detail-main {
  display: flex !important;
  width: 100%;
  height: 100%;
  min-height: 0;
  box-sizing: border-box;
  padding: 22px 32px 48px;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  background: #f8fafc;
  scrollbar-gutter: stable;
}

#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-detail-header { order: 1; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-info-layout { order: 2; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-expanded-career { order: 3; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-raw-text-section { order: 4; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .ai-formatted-section { order: 5; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-report-section { order: 6; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-ai-analysis-section { order: 7; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-translate-section { order: 8; }
#resume-detail-modal.is-preview-expanded .resume-detail-main > * { flex-shrink: 0; }

#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-raw-text-section {
  display: block !important;
  width: 100%;
  max-width: 980px;
  margin: 18px auto 0;
  padding: 0;
  overflow: visible;
}

#resume-detail-modal.is-preview-expanded .raw-text-header {
  position: static;
  width: 100%;
  min-height: 46px;
  margin: 0;
  box-sizing: border-box;
  padding: 0 4px 12px;
  align-items: center;
  justify-content: space-between;
}

#resume-detail-modal.is-preview-expanded .btn-preview-expand {
  background: rgba(255, 255, 255, 0.92);
  border-color: #d6dce5;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(6px);
}

#resume-detail-modal.is-preview-expanded .raw-text-content {
  width: 100%;
  box-sizing: border-box;
  min-height: 260px;
  max-height: none;
  margin: 0;
  padding: 32px 40px 44px;
  border: 1px solid #dfe6ef;
  border-radius: 14px;
  background: #fff;
  color: #2f4056;
  font-size: 14px;
  line-height: 1.78;
  letter-spacing: 0.01em;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.055);
  overflow-x: hidden;
  overflow-y: visible;
}

.resume-expanded-career,
.resume-raw-title-expanded {
  display: none;
}

#resume-detail-modal.is-preview-expanded .resume-detail-header {
  min-height: 136px;
  margin-bottom: 16px;
  border-color: #e1e8f1;
  border-radius: 12px;
  background: linear-gradient(120deg, #ffffff 0%, #fbfdff 72%, #eef6ff 100%);
  box-shadow: 0 3px 14px rgba(15, 23, 42, 0.035);
}

#resume-detail-modal.is-preview-expanded .resume-avatar {
  width: 68px;
  height: 68px;
  border-radius: 50%;
}

#resume-detail-modal.is-preview-expanded .resume-info-layout {
  margin-bottom: 16px;
  border-color: #e1e8f1;
  box-shadow: 0 3px 14px rgba(15, 23, 42, 0.035);
}

#resume-detail-modal.is-preview-expanded .resume-expanded-career {
  display: block;
  margin-bottom: 18px;
  padding: 16px 18px 18px;
  border: 1px solid #e1e8f1;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 14px rgba(15, 23, 42, 0.035);
}

/* 全屏预览只保留完整简历正文，隐藏上方人才概况区。 */
#resume-detail-modal.is-preview-expanded .resume-detail-header,
#resume-detail-modal.is-preview-expanded .resume-info-layout,
#resume-detail-modal.is-preview-expanded .resume-expanded-career {
  display: none !important;
}

#resume-detail-modal.is-preview-expanded .resume-detail-main > .resume-raw-text-section {
  margin-top: 0;
}

#resume-detail-modal.is-preview-expanded .resume-raw-line {
  margin-bottom: 7px;
}

#resume-detail-modal.is-preview-expanded .resume-raw-section-title {
  margin-top: 26px;
  margin-bottom: 13px;
  padding-bottom: 9px;
  border-bottom-color: #e8edf3;
}

.resume-expanded-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}

.resume-expanded-section-title > span {
  width: 3px;
  height: 16px;
  border-radius: 999px;
  background: #2583f8;
}

.resume-expanded-section-title h5 {
  margin: 0;
  color: #1f2937;
  font-size: 14px;
  font-weight: 750;
}

.resume-expanded-career-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid #e5edf7;
  border-radius: 10px;
  background: #f7fbff;
}

.resume-expanded-career-grid > div {
  min-width: 0;
  padding: 13px 16px;
  border-right: 1px solid #e5edf7;
}

.resume-expanded-career-grid > div:last-child { border-right: 0; }
.resume-expanded-career-grid small { display: block; margin-bottom: 6px; color: #8a99ad; font-size: 11px; }
.resume-expanded-career-grid strong { display: block; overflow: hidden; color: #334155; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }

#resume-detail-modal.is-preview-expanded .resume-raw-title-default { display: none; }
#resume-detail-modal.is-preview-expanded .resume-raw-title-expanded { display: inline; }

#resume-detail-modal.is-preview-expanded .resume-raw-text-section h5 {
  position: relative;
  padding-left: 12px;
  color: #1f2937;
  font-size: 14px;
  font-weight: 750;
}

#resume-detail-modal.is-preview-expanded .resume-raw-text-section h5::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 3px;
  height: 16px;
  border-radius: 999px;
  background: #2583f8;
  transform: translateY(-50%);
}

.raw-text-content.is-structured { white-space: normal; }
.resume-raw-line { margin: 0 0 5px; color: #4b5b70; white-space: pre-wrap; word-break: break-word; }
.resume-raw-line.is-bullet { position: relative; padding-left: 4px; }
.resume-raw-line.is-timeline { color: #334155; }
.resume-raw-spacer { height: 11px; }
.resume-raw-section-title {
  position: relative;
  margin: 22px 0 11px;
  padding: 0 0 8px 12px;
  border-bottom: 1px solid #edf1f6;
  color: #1f2937;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.4;
}
.resume-raw-section-title:first-child { margin-top: 0; }
.resume-raw-section-title::before { content: ""; position: absolute; top: 2px; left: 0; width: 3px; height: 15px; border-radius: 999px; background: #60a5fa; }
.resume-raw-empty { margin: 0; padding: 28px 0; color: #94a3b8; text-align: center; }

#resume-detail-modal.is-preview-expanded .resume-detail-footer {
  display: none;
}

@media (max-width: 768px) {
  #resume-detail-modal.is-preview-expanded .resume-detail-content .modal-body {
    display: block;
    height: calc(100dvh - 54px);
    padding: 0;
    overflow-y: auto;
  }

  #resume-detail-modal.is-preview-expanded .modal-header {
    min-height: 54px;
    padding: 0 12px;
  }

  #resume-detail-modal.is-preview-expanded .resume-detail-content .modal-body > .resume-detail-main {
    height: auto;
    padding: 14px 12px 28px;
    overflow: visible;
  }

  #resume-detail-modal.is-preview-expanded .resume-detail-content .modal-body > .resume-detail-rail {
    overflow: visible;
    border-top: 1px solid #e8edf3;
    border-left: 0;
  }

  #resume-detail-modal.is-preview-expanded .raw-text-content {
    padding: 18px 16px 24px;
    font-size: 14px;
    line-height: 1.55;
  }

  #resume-detail-modal.is-preview-expanded .resume-expanded-career-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #resume-detail-modal.is-preview-expanded .resume-expanded-career-grid > div:nth-child(2) { border-right: 0; }
  #resume-detail-modal.is-preview-expanded .resume-expanded-career-grid > div:nth-child(-n + 2) { border-bottom: 1px solid #e5edf7; }
}

.resume-detail-footer {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 8px;
  padding: 12px 16px;
  background: #fff;
  box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.035);
}

.resume-detail-footer button {
  margin: 0;
  min-width: 0;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 9px;
  font-size: 12.5px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.resume-detail-footer .btn-primary {
  border: 1px solid #3b82f6;
  background: #3b82f6;
  color: #fff;
}

.resume-detail-footer .btn-primary:hover {
  border-color: #2563eb;
  background: #2563eb;
}

.resume-detail-footer .btn-warning {
  border: 1px solid #fed7aa;
  background: #fff7ed;
  color: #c2410c;
}

.resume-detail-footer .btn-warning:hover {
  border-color: #fdba74;
  background: #ffedd5;
}

.resume-detail-footer .btn-info {
  border: 1px solid #bae6fd;
  background: #f0f9ff;
  color: #0369a1;
}

.resume-detail-footer .btn-info:hover {
  border-color: #7dd3fc;
  background: #e0f2fe;
}

.resume-detail-footer .btn-translate,
.resume-detail-footer .btn-ai {
  border: 1px solid #ddd6fe;
  background: #f5f3ff;
  color: #6d28d9;
}

.resume-detail-footer .btn-translate:hover,
.resume-detail-footer .btn-ai:hover {
  border-color: #c4b5fd;
  background: #ede9fe;
  box-shadow: none;
  transform: none;
}

.resume-detail-footer .btn-ai-analysis {
  border: 1px solid #a5f3fc;
  background: #ecfeff;
  color: #0e7490;
}

.resume-detail-footer .btn-ai-analysis:hover {
  border-color: #67e8f9;
  background: #cffafe;
  box-shadow: none;
  transform: none;
}

.resume-detail-footer .btn-success {
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #15803d;
}

.resume-detail-footer .btn-danger {
  border: 1px solid #fecaca;
  background: #fff;
  color: #dc2626;
}

.resume-detail-footer .btn-danger:hover {
  border-color: #fca5a5;
  background: #fef2f2;
}

.resume-detail-footer button:not([class]) {
  border: 1px solid #dbe2ea;
  background: #f8fafc;
  color: #475569;
}

.resume-detail-footer button:not([class]):hover {
  border-color: #cbd5e1;
  background: #f1f5f9;
}

.btn-warning {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: white;
  border: none;
}

.btn-warning:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
}

.btn-info {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
  color: white;
  border: none;
}

.btn-info:hover {
  background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%);
}

.btn-translate {
  background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
  color: white;
  border: none;
}

.btn-translate:hover {
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
}

.convert-mode-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.btn-mode-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  background: white;
  cursor: pointer;
  transition: all 0.2s;
  width: 100%;
  height: auto;
}

.btn-mode-option:hover {
  border-color: #3b82f6;
  background: #f0f9ff;
}

.btn-mode-option svg {
  color: #3b82f6;
}

.btn-mode-option .mode-title {
  font-weight: 600;
  font-size: 15px;
  color: #1f2937;
}

.btn-mode-option .mode-desc {
  font-size: 13px;
  color: #6b7280;
}

.resume-translate-section {
  margin-top: 20px;
  padding: 16px;
  background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
  border-radius: 12px;
  border: 1px solid #e9d5ff;
}

.resume-translate-section .translate-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.resume-translate-section h5 {
  margin: 0;
  color: #7c3aed;
  font-size: 15px;
}

.translated-text-content {
  white-space: pre-wrap;
  font-size: 14px;
  line-height: 1.7;
  color: #374151;
  max-height: 300px;
  overflow-y: auto;
  background: white;
  padding: 16px;
  border-radius: 8px;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.spin {
  animation: spin 1s linear infinite;
}

.manual-resume-modal-content {
  width: min(720px, calc(100vw - 32px));
  max-width: 720px;
  max-height: min(88vh, 820px);
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .2);
}

.manual-resume-modal-content > .modal-header {
  align-items: flex-start;
  padding: 20px 24px 16px;
  background: linear-gradient(135deg, #fff 0%, #f7faff 100%);
}

.manual-resume-modal-content > .modal-header h3 { margin: 0; color: #172033; font-size: 19px; }
.manual-resume-modal-content > .modal-header p { margin: 5px 0 0; color: #8592a6; font-size: 12px; }
.manual-resume-modal-content form { display: flex; min-height: 0; flex-direction: column; }
.manual-resume-modal-content .modal-body { padding: 18px 24px 22px; overflow-y: auto; }

.manual-resume-ai-dropzone {
  position: relative;
  display: flex;
  min-height: 72px;
  box-sizing: border-box;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin-bottom: 12px;
  overflow: hidden;
  border: 1.5px dashed #9dbbf2;
  border-radius: 10px;
  background: linear-gradient(135deg, #f8fbff 0%, #f5f2ff 100%);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.manual-resume-ai-dropzone:hover,
.manual-resume-ai-dropzone:focus-visible,
.manual-resume-ai-dropzone.is-dragover {
  border-color: #4f7ff1;
  background: linear-gradient(135deg, #eef5ff 0%, #f0edff 100%);
  box-shadow: 0 0 0 3px rgba(79, 127, 241, .1);
  outline: none;
}

.manual-resume-ai-dropzone.is-dragover { transform: translateY(-1px); }
.manual-resume-ai-dropzone.is-loading { cursor: wait; }
.manual-resume-ai-dropzone.is-success { border-color: #56c79b; background: #f1fbf7; }
.manual-resume-ai-dropzone.is-error { border-color: #f29b9b; background: #fff7f7; }

.manual-resume-ai-icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 10px;
  background: #e5edff;
  color: #3f70e8;
}

.manual-resume-ai-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.manual-resume-ai-copy { min-width: 0; flex: 1 1 auto; }
.manual-resume-ai-copy strong { display: block; color: #233b64; font-size: 13px; line-height: 1.5; }
.manual-resume-ai-copy small { display: block; margin-top: 2px; color: #7c8ca5; font-size: 11px; line-height: 1.45; }

.manual-resume-ai-status {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eaf1ff;
  color: #4873ce;
  font-size: 11px;
  white-space: nowrap;
}

.manual-resume-ai-dropzone.is-loading .manual-resume-ai-status { background: #eee9ff; color: #7357dc; }
.manual-resume-ai-dropzone.is-success .manual-resume-ai-status { background: #dcf7ec; color: #13835d; }
.manual-resume-ai-dropzone.is-error .manual-resume-ai-status { background: #fee8e8; color: #c53d3d; }

.manual-resume-ai-progress {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  overflow: hidden;
  background: transparent;
}

.manual-resume-ai-progress i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #4d86f7, #7b5df2); }
.manual-resume-ai-dropzone.is-loading .manual-resume-ai-progress i { width: 42%; animation: manual-resume-ai-progress 1.15s ease-in-out infinite; }

@keyframes manual-resume-ai-progress {
  from { transform: translateX(-110%); }
  to { transform: translateX(260%); }
}

.manual-resume-hint {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #d9e8fb;
  border-radius: 9px;
  margin-bottom: 16px;
  background: #f7faff;
}

.manual-resume-hint > span {
  display: grid;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  place-items: center;
  border-radius: 50%;
  background: #e4efff;
  color: #3374ca;
  font-family: Georgia, serif;
  font-size: 13px;
  font-weight: 700;
}

.manual-resume-hint p { margin: 0; }
.manual-resume-hint strong { display: block; color: #36516f; font-size: 12px; }
.manual-resume-hint small { display: block; margin-top: 2px; color: #8090a6; font-size: 11px; }
.manual-resume-form-grid { gap: 14px 16px; }
.manual-resume-form-grid .form-group label em { color: #ef4444; font-style: normal; }
.manual-resume-form-grid textarea { width: 100%; box-sizing: border-box; }
.manual-resume-form-grid input.is-invalid,
.manual-resume-form-grid select.is-invalid,
.manual-resume-form-grid textarea.is-invalid {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, .1);
}
.manual-resume-remark-field { grid-column: 1 / -1; }
.manual-resume-remark-field textarea { min-height: 76px; resize: vertical; }

.manual-resume-message {
  min-height: 18px;
  margin: 0;
  flex: 1 1 auto;
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
}

.manual-resume-message.is-error { color: #dc2626; }
.manual-resume-message.is-success { color: #059669; }

.manual-resume-modal-content .modal-footer {
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.resume-full-editor-content > .modal-footer {
  align-items: center;
  gap: 10px;
}

.resume-full-editor-save-message {
  min-width: 0;
  flex: 1 1 auto;
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
}

.resume-full-editor-save-message.is-saving { color: #52657f; }
.resume-full-editor-save-message.is-success { color: #059669; }
.resume-full-editor-save-message.is-error { color: #dc2626; }

.manual-resume-footer-actions {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
}

.manual-resume-duplicate-modal {
  z-index: 1120;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, .56);
  backdrop-filter: blur(4px);
}

.manual-resume-duplicate-card {
  position: relative;
  width: min(468px, calc(100vw - 32px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, .3);
  animation: manualDuplicateEnter .22s ease-out both;
}

@keyframes manualDuplicateEnter {
  from { opacity: 0; transform: translateY(12px) scale(.975); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.manual-resume-duplicate-close {
  position: absolute;
  z-index: 1;
  top: 16px;
  right: 16px;
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 9px;
  color: #94a3b8;
  background: rgba(255, 255, 255, .72);
  cursor: pointer;
}

.manual-resume-duplicate-close:hover { color: #475569; background: #fff; }
.manual-resume-duplicate-close svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }

.manual-resume-duplicate-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 24px 56px 18px 24px;
  background: linear-gradient(135deg, #fff7ed 0%, #fff 72%);
}

.manual-resume-duplicate-icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 15px;
  color: #ea580c;
  background: linear-gradient(145deg, #ffedd5, #fff7ed);
  box-shadow: inset 0 0 0 1px rgba(251, 146, 60, .2);
}

.manual-resume-duplicate-icon svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.manual-resume-duplicate-kicker { display: block; margin-bottom: 3px; color: #f97316; font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.manual-resume-duplicate-hero h3 { margin: 0; color: #172033; font-size: 20px; line-height: 1.3; }
.manual-resume-duplicate-body { padding: 0 24px 22px; }
.manual-resume-duplicate-body > p { margin: 0 0 16px; color: #64748b; font-size: 13px; line-height: 1.7; }

.manual-resume-duplicate-summary {
  overflow: hidden;
  border: 1px solid #e8edf5;
  border-radius: 14px;
  background: #f8fafc;
}

.manual-resume-duplicate-person { display: flex; align-items: center; gap: 11px; padding: 14px; }
.manual-resume-duplicate-avatar { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; border-radius: 11px; color: #c2410c; background: #ffedd5; font-size: 13px; font-weight: 700; }
.manual-resume-duplicate-person > div { min-width: 0; flex: 1 1 auto; }
.manual-resume-duplicate-person strong, .manual-resume-duplicate-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manual-resume-duplicate-person strong { color: #1e293b; font-size: 14px; }
.manual-resume-duplicate-person small { margin-top: 3px; color: #7c8a9f; font-size: 12px; }
.manual-resume-duplicate-tag { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; color: #c2410c; background: #fff7ed; font-size: 11px; font-weight: 600; }
.manual-resume-duplicate-record { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-top: 1px solid #e8edf5; color: #8491a5; font-size: 12px; }
.manual-resume-duplicate-record strong { color: #475569; font-size: 12px; }

.manual-resume-duplicate-tip {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #9a5a11;
  background: #fffbeb;
  font-size: 12px;
  line-height: 1.5;
}

.manual-resume-duplicate-tip svg { width: 16px; flex: 0 0 auto; margin-top: 1px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.manual-resume-duplicate-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px 20px; border-top: 1px solid #eef2f7; background: #fbfcfe; }
.manual-resume-duplicate-actions button { min-width: 104px; height: 38px; padding: 0 18px; border-radius: 10px; font-size: 13px; font-weight: 600; cursor: pointer; }
.manual-resume-duplicate-back { border: 1px solid #dbe3ee; color: #475569; background: #fff; }
.manual-resume-duplicate-back:hover { border-color: #b9c5d6; background: #f8fafc; }
.manual-resume-duplicate-submit { border: 1px solid #f97316; color: #fff; background: linear-gradient(135deg, #fb923c, #f97316); box-shadow: 0 7px 18px rgba(249, 115, 22, .22); }
.manual-resume-duplicate-submit:hover { transform: translateY(-1px); box-shadow: 0 9px 22px rgba(249, 115, 22, .28); }
.manual-resume-duplicate-actions button:focus-visible, .manual-resume-duplicate-close:focus-visible { outline: 3px solid rgba(59, 130, 246, .2); outline-offset: 2px; }

@media (max-width: 680px) {
  .manual-resume-ai-dropzone { align-items: flex-start; }
  .manual-resume-ai-status { display: none; }
  .manual-resume-form-grid { grid-template-columns: 1fr; }
  .manual-resume-remark-field { grid-column: auto; }
  .talent-manual-entry-button span { display: none; }
  .talent-manual-entry-button { width: 32px; padding: 0; }
  .manual-resume-duplicate-modal { padding: 12px; }
  .manual-resume-duplicate-actions { padding-inline: 18px; }
  .manual-resume-duplicate-actions button { flex: 1 1 0; min-width: 0; }
}

.resume-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.resume-form-grid .form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.resume-form-grid .form-group label {
  font-size: 13px;
  color: #6b7280;
  font-weight: 500;
}

.resume-form-grid .form-group input,
.resume-form-grid .form-group select {
  width: 100%;
}

.resume-number-field,
.inline-number-field {
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: stretch;
}

.resume-number-field input,
.inline-number-field .inline-edit-input {
  min-width: 0;
  flex: 1 1 auto;
  border-radius: 8px 0 0 8px;
}

.resume-number-field > span,
.inline-number-unit {
  display: inline-flex;
  min-width: 42px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border: 1px solid #d1d5db;
  border-left: 0;
  border-radius: 0 8px 8px 0;
  background: #f8fafc;
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
}

.inline-number-field { max-width: 180px; }
.inline-number-field .inline-edit-input { height: 30px; }
.inline-number-unit { min-width: 34px; font-size: 12px; }

.resume-detail-header {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 96px;
  box-sizing: border-box;
  padding: 18px 20px;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  margin-bottom: 16px;
  background: linear-gradient(110deg, #ffffff 0%, #f8fbff 60%, #eff6ff 100%);
  z-index: 8;
  overflow: visible;
}

.resume-detail-header::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 190px;
  height: 100%;
  border: 0;
  border-radius: 0 14px 14px 0;
  background: radial-gradient(circle at 112% -18%, transparent 0 58px, rgba(59, 130, 246, 0.055) 59px 88px, transparent 89px);
  pointer-events: none;
}

.resume-avatar {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  background: linear-gradient(145deg, #dbeafe 0%, #eaf3ff 100%);
  border: 1px solid #bfdbfe;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(59, 130, 246, 0.12);
}

.resume-avatar svg {
  color: #3b82f6;
  width: 38px;
  height: 38px;
}

.resume-header-info {
  position: relative;
  z-index: 1;
  min-width: 0;
  flex: 1 1 auto;
}

.resume-header-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  min-width: 0;
}

.resume-header-title-row h4 {
  flex: 0 0 auto;
  min-width: max-content;
  margin-bottom: 0;
  white-space: nowrap;
}

.resume-header-title-row .resume-contact-icon { flex: 0 0 28px; }

.resume-detail-status-control {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  margin-left: 0;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.resume-detail-status-control:hover {
  border-color: transparent;
  background: transparent;
}

.resume-detail-status-control:focus-within {
  border-color: transparent;
  box-shadow: none;
}

.resume-detail-status-control label {
  display: inline-flex;
  align-items: center;
  gap: 0;
  color: #64748b;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

.resume-detail-status-control label::before {
  content: none;
}

.resume-detail-status-control label::after {
  content: "·";
  width: auto;
  height: auto;
  margin-left: 6px;
  color: #cbd5e1;
  background: transparent;
}

.resume-detail-status-control select {
  width: auto;
  min-width: 78px;
  min-height: 28px;
  padding: 3px 24px 3px 8px;
  border: 1px solid transparent;
  border-radius: 7px;
  background-color: rgba(239, 246, 255, 0.62);
  color: #2563eb;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.resume-detail-status-control select:hover {
  border-color: #dbeafe;
  background-color: #eff6ff;
  color: #1d4ed8;
}

.resume-detail-status-control select:focus-visible {
  outline: 2px solid rgba(59, 130, 246, 0.18);
  outline-offset: 1px;
}

.resume-detail-status-control select:disabled {
  cursor: not-allowed;
  opacity: 0.66;
}

.resume-detail-profile-actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 0 0 138px;
  flex-direction: column;
  gap: 7px;
}

.resume-detail-favorite-button {
  width: 100%;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid rgba(96, 165, 250, 0.5);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(239, 246, 255, 0.98) 58%, rgba(238, 242, 255, 0.98) 100%);
  color: #2563eb;
  font-size: 12.5px;
  font-weight: 650;
  letter-spacing: 0.01em;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 4px 12px rgba(37, 99, 235, 0.08);
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.resume-detail-favorite-button svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-detail-favorite-button svg {
  transition: fill 0.18s ease, stroke 0.18s ease, filter 0.18s ease, transform 0.18s ease;
}

.resume-detail-favorite-button:hover:not(:disabled) {
  border-color: #60a5fa;
  background: linear-gradient(135deg, #f8fbff 0%, #eaf3ff 58%, #eef2ff 100%);
  color: #1d4ed8;
  box-shadow: inset 0 1px 0 #fff, 0 7px 16px rgba(37, 99, 235, 0.13);
  transform: translateY(-1px);
}

.resume-detail-favorite-button:hover:not(:disabled) svg {
  transform: scale(1.08);
}

.resume-detail-favorite-button.is-active {
  border-color: #93c5fd;
  background: linear-gradient(135deg, #eff6ff 0%, #eef2ff 62%, #f5f3ff 100%);
  color: #4f46e5;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 5px 14px rgba(79, 70, 229, 0.12);
}

.resume-detail-favorite-button.is-active svg {
  fill: #fbbf24;
  stroke: #d97706;
  filter: drop-shadow(0 1px 2px rgba(217, 119, 6, 0.18));
}

.resume-detail-favorite-button:focus-visible {
  outline: 2px solid rgba(59, 130, 246, 0.28);
  outline-offset: 2px;
}

.resume-detail-favorite-button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.resume-detail-status-save {
  position: absolute;
  top: calc(100% + 3px);
  right: 8px;
  min-height: 0;
  color: #059669;
  font-size: 11px;
  text-align: right;
}

.resume-detail-status-save.is-error {
  color: #dc2626;
}

.resume-detail-kicker {
  display: block;
  margin-bottom: 3px;
  color: #3b82f6;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.resume-header-info h4 {
  margin: 0 0 5px;
  color: #172033;
  font-size: 21px;
  font-weight: 750;
  line-height: 1.25;
}

.resume-header-info p {
  margin: 0;
  max-width: 720px;
  color: #64748b;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.resume-info-layout {
  display: block;
  margin-bottom: 16px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.035);
}

.resume-info-layout.is-city-editing { overflow: visible; position: relative; z-index: 8; }

.resume-info-section {
  min-width: 0;
  padding: 14px 16px 16px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.resume-info-tab-list {
  display: flex;
  align-items: stretch;
  gap: 4px;
  padding: 6px 8px 0;
  border-bottom: 1px solid #edf1f5;
  background: linear-gradient(180deg, #fbfcfe, #f8fafc);
}

.resume-info-tab {
  position: relative;
  display: inline-flex;
  min-width: 132px;
  min-height: 44px;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  padding: 9px 14px 10px;
  border: 0;
  border-radius: 9px 9px 0 0;
  background: transparent;
  color: #667085;
  cursor: pointer;
  transition: color 0.16s ease, background 0.16s ease;
}

.resume-info-tab span { font-size: 13px; font-weight: 700; }
.resume-info-tab small { color: #a0a8b5; font-size: 10.5px; font-weight: 500; }
.resume-info-tab:hover { color: #2563eb; background: #f1f6ff; }

.resume-info-tab.is-active {
  background: #fff;
  color: #1d4ed8;
}

.resume-info-tab.is-active::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: -1px;
  left: 14px;
  height: 2px;
  border-radius: 999px 999px 0 0;
  background: #3b82f6;
}

.resume-info-tab.is-active small { color: #7c9bc9; }
.resume-info-tab:focus-visible { outline: 2px solid rgba(59, 130, 246, 0.28); outline-offset: -2px; }
.resume-info-tab-panel[hidden] { display: none; }
.resume-info-tab-panel.is-active { animation: resume-info-tab-in 0.16s ease-out; }

@keyframes resume-info-tab-in {
  from { opacity: 0; transform: translateY(2px); }
  to { opacity: 1; transform: translateY(0); }
}

.resume-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-height: 36px;
  margin-bottom: 10px;
}

.resume-section-heading h5 {
  margin: 0 0 2px;
  color: #1e293b;
  font-size: 13px;
  font-weight: 700;
}

.resume-section-heading p {
  margin: 0;
  color: #94a3b8;
  font-size: 11.5px;
}

.resume-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  margin: 0;
  overflow: hidden;
  border: 1px solid #edf1f5;
  border-radius: 10px;
  background: #edf1f5;
}

.resume-basic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resume-source-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.resume-ai-autofill-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
  padding: 9px 10px 9px 12px;
  border: 1px solid #e2eaf5;
  border-radius: 10px;
  background: linear-gradient(90deg, #f7fbff 0%, #fbfaff 100%);
}

.resume-ai-autofill-copy {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
}

.resume-ai-autofill-copy > span:last-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1px;
}

.resume-ai-autofill-copy strong {
  color: #334155;
  font-size: 12px;
  font-weight: 600;
}

.resume-ai-autofill-copy small {
  overflow: hidden;
  color: #8492a6;
  font-size: 10.5px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-ai-autofill-copy small.is-success { color: #13856c; }
.resume-ai-autofill-copy small.is-error { color: #dc5a5a; }
.resume-ai-autofill-copy small.is-loading { color: #5a67d8; }

.resume-ai-autofill-icon {
  display: grid;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  place-items: center;
  border-radius: 8px;
  background: linear-gradient(135deg, #e7f2ff, #f0ebff);
  color: #5865d8;
}

.resume-ai-autofill-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.resume-ai-autofill-button {
  display: inline-flex;
  height: 30px;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  padding: 0 11px;
  border: 1px solid #cbdcf8;
  border-radius: 8px;
  background: #fff;
  color: #3268b7;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.resume-ai-autofill-button:hover:not(:disabled) {
  border-color: #9fc0f2;
  background: #f5f9ff;
  box-shadow: 0 3px 9px rgba(59, 100, 160, .09);
}

.resume-ai-autofill-button:disabled { cursor: wait; opacity: .72; }

.resume-ai-autofill-button svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.resume-ai-autofill-button.is-loading svg { animation: spin 1s linear infinite; }

.resume-detail-grid .detail-item {
  min-width: 0;
  min-height: 54px;
  box-sizing: border-box;
  padding: 9px 12px;
  border: 0;
  border-radius: 0;
  background: #fff;
  font-size: 13px;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.resume-detail-grid .detail-item .label {
  display: block;
  margin: 0 0 4px;
  color: #94a3b8;
  font-size: 11.5px;
  line-height: 1.2;
}

.resume-detail-grid .detail-item > span:last-child {
  display: block;
  min-width: 0;
  color: #334155;
  font-weight: 500;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.resume-detail-grid .detail-item:has(.editable):hover {
  background: #f7fbff;
  box-shadow: inset 0 0 0 1px #bfdbfe;
}

.resume-detail-grid .detail-item:has(.editable) {
  position: relative;
  cursor: text;
}

.resume-detail-grid .editable {
  cursor: text;
}

.resume-basic-grid .editable.is-empty {
  color: #9aa7b6;
  font-weight: 400;
}

.resume-detail-grid .editable.inline-edit-save-error::after {
  display: block;
  margin-top: 3px;
  color: #dc2626;
  content: attr(data-edit-message);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.25;
}

.resume-detail-grid.resume-basic-grid {
  gap: 8px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.resume-basic-grid .detail-item {
  min-height: 60px;
  padding: 10px 12px;
  border: 1px solid #e7edf4;
  border-radius: 9px;
  background: #f8fafc;
}

.resume-basic-grid .detail-item.is-ai-filled {
  border-color: #a9e1d4;
  background: #f2fbf8;
  animation: resume-ai-field-filled .55s ease both;
}

.resume-basic-grid .detail-item.is-ai-filled .label::after {
  display: inline-flex;
  height: 16px;
  align-items: center;
  margin-left: 6px;
  padding: 0 5px;
  border-radius: 999px;
  background: #ddf6ef;
  color: #12816a;
  content: 'AI填写';
  font-size: 9px;
  font-weight: 600;
  line-height: 16px;
  vertical-align: 1px;
}

@keyframes resume-ai-field-filled {
  from { opacity: .55; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

.resume-basic-grid .detail-item:has(.editable):hover {
  border-color: #c9ddf3;
  background: #fff;
  box-shadow: 0 3px 10px rgba(51, 92, 133, 0.07);
}

.resume-basic-grid .detail-item:has(input, select) {
  border-color: #93c5fd;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.09);
}

.resume-basic-grid .editable .inline-edit-input,
.resume-basic-grid .editable .inline-edit-select,
.resume-basic-grid .inline-number-field {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.resume-city-combobox {
  position: relative;
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
}

.resume-basic-grid .editable .resume-city-combobox-input {
  height: 30px;
  padding-right: 32px;
  border-radius: 7px;
}

.resume-city-combobox-toggle {
  position: absolute;
  top: 1px;
  right: 1px;
  display: inline-grid;
  width: 29px;
  height: 28px;
  padding: 0;
  place-items: center;
  border: 0;
  border-left: 1px solid #dbe6f3;
  border-radius: 0 6px 6px 0;
  background: #f8fbff;
  color: #6c7f95;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.resume-city-combobox-toggle:hover { background: #eef6ff; color: #2563eb; }
.resume-city-combobox.is-saving { opacity: .68; }
.resume-city-combobox.is-saving .resume-city-combobox-toggle { cursor: wait; }

.resume-city-combobox-options {
  position: absolute;
  z-index: 80;
  top: calc(100% + 7px);
  right: 0;
  left: 0;
  display: grid;
  max-height: 220px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #d9e5f2;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(34, 62, 92, .16), 0 3px 8px rgba(34, 62, 92, .08);
  scrollbar-width: thin;
}

.resume-city-combobox-options[hidden] { display: none; }

.resume-city-combobox-option {
  width: 100%;
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #334155;
  font-size: 12px;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}

.resume-city-combobox-option:hover,
.resume-city-combobox-option.is-active {
  background: #edf6ff;
  color: #176fd1;
}

.resume-city-combobox-empty {
  padding: 10px 9px;
  color: #8b98a9;
  font-size: 11px;
  line-height: 1.5;
}

#detail-team {
  color: #2563eb;
  font-weight: 650;
}

.resume-attachment-section {
  padding-top: 12px;
}

.resume-attachment-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.resume-attachment-toolbar h5 {
  margin: 0 0 3px;
  color: #1e293b;
  font-size: 13px;
}

.resume-attachment-toolbar p {
  margin: 0;
  color: #94a3b8;
  font-size: 11.5px;
}

.resume-attachment-upload-controls {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-end;
  gap: 8px;
}

.resume-attachment-category-label {
  display: grid;
  gap: 3px;
  color: #94a3b8;
  font-size: 10.5px;
}

.resume-attachment-category-label select {
  min-width: 116px;
  height: 34px;
  box-sizing: border-box;
  padding: 0 28px 0 10px;
  border: 1px solid #dbe3ee;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 12px;
}

.resume-attachment-upload-button,
.resume-attachment-download-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}

.resume-attachment-upload-button {
  min-height: 34px;
  padding: 0 12px;
}

.resume-attachment-upload-button:hover,
.resume-attachment-download-button:hover {
  border-color: #93c5fd;
  background: #dbeafe;
}

.resume-attachment-upload-button:disabled,
.resume-attachment-download-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.resume-attachment-upload-status {
  min-height: 18px;
  color: #64748b;
  font-size: 11.5px;
}

.resume-attachment-upload-status.is-loading { color: #2563eb; }
.resume-attachment-upload-status.is-success { color: #059669; }
.resume-attachment-upload-status.is-error,
.resume-attachment-empty.is-error { color: #dc2626; }

.resume-attachment-list {
  display: grid;
  gap: 7px;
  max-height: 232px;
  overflow-y: auto;
}

.resume-attachment-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #edf1f5;
  border-radius: 9px;
  background: #fbfdff;
}

.resume-attachment-file-icon {
  display: flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #eaf2ff;
  color: #2563eb;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.resume-attachment-file-info { min-width: 0; }

.resume-attachment-file-name {
  overflow: hidden;
  color: #334155;
  font-size: 12.5px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-attachment-file-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 10px;
  margin-top: 4px;
  color: #94a3b8;
  font-size: 10.5px;
}

.resume-attachment-type,
.resume-attachment-primary {
  padding: 2px 6px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #2563eb;
  font-weight: 650;
}

.resume-attachment-type.is-recommendation_report {
  background: #f3e8ff;
  color: #7e22ce;
}

.resume-attachment-type.is-other {
  background: #f1f5f9;
  color: #64748b;
}

.resume-attachment-primary {
  background: #ecfdf5;
  color: #047857;
}

.resume-attachment-download-button {
  min-height: 32px;
  padding: 0 10px;
}

.resume-attachment-download-button svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-attachment-empty {
  padding: 24px 12px;
  border: 1px dashed #dbe3ee;
  border-radius: 9px;
  color: #94a3b8;
  font-size: 12px;
  text-align: center;
}

.resume-raw-text-section h5 {
  margin: 0 0 12px 0;
  color: #374151;
  font-size: 14px;
}

#resume-detail-modal:not(.is-preview-expanded) .resume-raw-text-section {
  margin-top: 16px;
}

#resume-detail-modal:not(.is-preview-expanded) .raw-text-header {
  min-height: 48px;
  box-sizing: border-box;
  margin: 0;
  padding: 8px 0 8px 16px;
  align-items: center;
}

#resume-detail-modal:not(.is-preview-expanded) .raw-text-header h5,
#resume-detail-modal:not(.is-preview-expanded) .raw-text-actions {
  margin-top: 0;
  margin-bottom: 0;
  align-self: center;
}

#resume-detail-modal:not(.is-preview-expanded) .raw-text-content {
  height: clamp(400px, 48vh, 520px);
  max-height: none;
  box-sizing: border-box;
}

.raw-text-content {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 16px;
  max-height: 300px;
  overflow-y: auto;
  font-size: 14px;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
  color: #4b5563;
}

@media (max-width: 768px) {
  .resume-grid {
    grid-template-columns: 1fr;
  }

  .resume-filters {
    flex-direction: column;
    align-items: stretch;
  }

  .resume-filters input[type="text"],
  .resume-filters select {
    max-width: none;
    width: 100%;
  }

  .resume-form-grid,
  .resume-detail-grid {
    grid-template-columns: 1fr;
  }

  .resume-detail-content {
    width: calc(100vw - 16px);
    max-height: 92vh;
    border-radius: 14px;
  }

  .resume-detail-content .modal-body {
    padding: 14px;
  }

  .resume-detail-header {
    min-height: 88px;
    padding: 14px;
    flex-wrap: wrap;
  }

  .resume-detail-status-control {
    flex: 0 1 auto;
    margin-left: 0;
  }

  .resume-header-title-row {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px 14px;
  }

  .resume-detail-profile-actions {
    flex: 1 1 calc(50% - 8px);
    margin-left: 76px;
    flex-direction: row;
  }

  .resume-info-layout {
    grid-template-columns: 1fr;
  }

  .resume-info-section {
    padding: 14px;
  }

  .client-company-project-import-guide {
    align-items: stretch;
    flex-direction: column;
  }

  .resume-info-tab {
    min-width: 0;
    flex: 1 1 0;
    padding-right: 8px;
    padding-left: 8px;
  }

  .resume-info-tab small { display: none; }

  .resume-attachment-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .resume-attachment-upload-controls {
    align-items: flex-end;
  }

  .resume-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .resume-detail-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .resume-card-body {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .resume-detail-grid {
    grid-template-columns: 1fr;
  }

  .resume-attachment-upload-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .resume-attachment-category-label select,
  .resume-attachment-upload-button {
    width: 100%;
  }

  .resume-attachment-item {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .resume-attachment-file-icon {
    width: 34px;
    height: 34px;
  }

  .resume-attachment-download-button {
    grid-column: 1 / -1;
  }

}

.template-section {
  margin-bottom: 24px;
}

.template-section h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  margin-bottom: 16px;
}

.template-toolbar {
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
}

.template-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.template-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 14px;
}

.template-item .template-name {
  color: #374151;
  font-weight: 500;
}

.template-item .template-date {
  color: #9ca3af;
  font-size: 12px;
}

.template-item .template-delete {
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
  border: none;
  color: #9ca3af;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.template-item .template-delete:hover {
  background: #fee2e2;
  color: #dc2626;
}

.empty-hint {
  color: #9ca3af;
  font-size: 14px;
  padding: 20px;
  text-align: center;
}

.resume-report-section {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e5e7eb;
}

.resume-report-section h5 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  margin-bottom: 12px;
  color: #374151;
}

.report-badge {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 500;
}

.report-badge-none {
  background: #f3f4f6;
  color: #6b7280;
}

.report-badge-ready {
  background: #dcfce7;
  color: #16a34a;
}

.report-content {
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 16px;
  max-height: 300px;
  overflow-y: auto;
  white-space: pre-wrap;
  font-size: 13px;
  line-height: 1.6;
  color: #374151;
}

.report-template-picker {
  display: grid;
  gap: 10px;
}

.report-template-picker select {
  width: 100%;
}

.report-template-dropzone {
  min-height: 82px;
  border: 1.5px dashed #c7d2fe;
  border-radius: 10px;
  background: #f8faff;
  color: #4f46e5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 18px;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.report-template-dropzone span {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.report-template-dropzone strong {
  color: #3730a3;
  font-size: 14px;
}

.report-template-dropzone small {
  color: #64748b;
  font-size: 12px;
}

.report-template-dropzone:hover,
.report-template-dropzone:focus-visible,
.report-template-dropzone.is-dragover {
  border-color: #6366f1;
  background: #eef2ff;
  box-shadow: 0 0 0 4px rgba(99, 102, 241, .12);
  outline: none;
}

.report-template-dropzone.is-dragover {
  transform: translateY(-1px);
}

.report-template-dropzone.is-uploading {
  opacity: .65;
  pointer-events: none;
}

.btn-ai {
  background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%);
  color: #fff;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.btn-ai:hover {
  background: linear-gradient(135deg, #7c3aed 0%, #4f46e5 100%);
}

.btn-ai:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.btn-success {
  background: #16a34a;
  color: #fff;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.btn-success:hover {
  background: #15803d;
}

.resume-card-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 1;
}

.resume-card-report-badge {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  background: #dcfce7;
  color: #16a34a;
  font-weight: 500;
}

.resume-card-jobmatch-badge {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  background: #dbeafe;
  color: #2563eb;
  font-weight: 500;
  cursor: help;
}

/* ==================== AI智能分析相关样式 ==================== */

/* AI分析按钮 */
.btn-ai-analysis {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
  color: #fff;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s;
}

.btn-ai-analysis:hover {
  background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(6, 182, 212, 0.3);
}

/* AI排版按钮 */
.btn-sm.btn-ai-format {
  padding: 4px 10px;
  font-size: 12px;
  background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%);
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
}

.btn-sm.btn-ai-format:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
}

.btn-sm.btn-ai-format:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.btn-sm.btn-outline {
  padding: 4px 10px;
  font-size: 12px;
  background: transparent;
  color: #6b7280;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  cursor: pointer;
}

.btn-sm.btn-outline:hover {
  background: #f3f4f6;
}

/* AI排版结果区域 */
.ai-formatted-section {
  margin-bottom: 20px;
  border: 1px solid #c7d2fe;
  border-radius: 12px;
  background: linear-gradient(135deg, #eef2ff 0%, #faf5ff 100%);
  overflow: hidden;
}

.ai-formatted-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: linear-gradient(135deg, #e0e7ff 0%, #ede9fe 100%);
  border-bottom: 1px solid #c7d2fe;
}

.ai-formatted-header h5 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #4338ca;
  display: flex;
  align-items: center;
  gap: 6px;
}

.ai-badge {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%);
  color: #fff;
  font-weight: 600;
}

.ai-formatted-content {
  padding: 16px;
}

.ai-extracted-info {
  margin-bottom: 16px;
}

.extracted-info-title,
.formatted-resume-title {
  font-size: 13px;
  font-weight: 600;
  color: #4b5563;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px dashed #d1d5db;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.formatted-resume-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
  white-space: nowrap;
}

.extracted-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.extracted-item {
  font-size: 13px;
  padding: 6px 10px;
  background: #fff;
  border-radius: 6px;
  border: 1px solid #e5e7eb;
}

.extracted-item .label {
  color: #6b7280;
}

.extracted-item .value {
  color: #1f2937;
  font-weight: 500;
}

.formatted-text-content {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 16px;
  max-height: 300px;
  overflow-y: auto;
  white-space: pre-wrap;
  font-size: 13px;
  line-height: 1.6;
  color: #374151;
}

.raw-text-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.raw-text-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-sm.btn-preview-expand {
  display: inline-flex;
  height: 28px;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
}

.btn-sm.btn-preview-expand:hover {
  border-color: #94a3b8;
  background: #f8fafc;
  color: #1e293b;
}

.btn-sm.btn-preview-expand svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.raw-text-header h5 {
  margin: 0;
}

/* AI分析配置弹窗 */
.ai-analysis-modal-content {
  max-width: 600px;
}

.analysis-mode-tabs {
  display: flex;
  gap: 0;
  margin-bottom: 20px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  overflow: hidden;
}

.mode-tab {
  flex: 1;
  padding: 10px 20px;
  background: #f9fafb;
  border: none;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #6b7280;
  transition: all 0.2s;
}

.mode-tab:first-child {
  border-right: 1px solid #d1d5db;
}

.mode-tab.active {
  background: #4f46e5;
  color: #fff;
}

.mode-tab:hover:not(.active) {
  background: #f3f4f6;
}

.mode-hint {
  font-size: 13px;
  color: #6b7280;
  margin-bottom: 12px;
}

.analysis-types-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.analysis-type-card {
  display: block;
  cursor: pointer;
}

.analysis-type-card input {
  display: none;
}

.analysis-type-card .card-content {
  padding: 16px;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  transition: all 0.2s;
  text-align: center;
}

.analysis-type-card input:checked + .card-content {
  border-color: #4f46e5;
  background: #eef2ff;
}

.analysis-type-card:hover .card-content {
  border-color: #a5b4fc;
}

.analysis-type-card .card-icon {
  font-size: 28px;
  margin-bottom: 8px;
}

.analysis-type-card .card-title {
  font-size: 14px;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 4px;
}

.analysis-type-card .card-desc {
  font-size: 12px;
  color: #6b7280;
}

/* 岗位匹配选项 */
.job-match-options {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f9fafb;
}

.job-source-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.source-tab {
  flex: 1;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  color: #4b5563;
  transition: all 0.2s;
}

.source-tab.active {
  background: #4f46e5;
  border-color: #4f46e5;
  color: #fff;
}

.source-tab:hover:not(.active) {
  background: #f3f4f6;
}

.job-source-content {
  margin-top: 12px;
}

.order-search-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  max-height: 200px;
  overflow-y: auto;
  z-index: 100;
  display: none;
}

.job-source-content .form-group {
  position: relative;
}

.order-result-item {
  padding: 10px 12px;
  cursor: pointer;
  border-bottom: 1px solid #f3f4f6;
}

.order-result-item:hover {
  background: #f9fafb;
}

.order-result-item:last-child {
  border-bottom: none;
}

.order-result-title {
  font-size: 13px;
  font-weight: 500;
  color: #1f2937;
}

.order-result-info {
  font-size: 12px;
  color: #6b7280;
  margin-top: 2px;
}

.order-result-empty {
  padding: 16px;
  text-align: center;
  color: #9ca3af;
  font-size: 13px;
}

.selected-order-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: #eef2ff;
  border: 1px solid #c7d2fe;
  border-radius: 8px;
  position: relative;
}

.order-card-title {
  font-size: 13px;
  font-weight: 500;
  color: #1f2937;
}

.order-card-info {
  font-size: 12px;
  color: #6b7280;
}

.btn-remove-order {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background: #dc2626;
  color: #fff;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.btn-remove-order:hover {
  background: #b91c1c;
}

.btn-remove-order .icon-x {
  width: 12px;
  height: 12px;
  stroke-width: 2.8;
}

.history-link {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
}

.btn-link {
  background: none;
  border: none;
  color: #4f46e5;
  cursor: pointer;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
}

.btn-link:hover {
  text-decoration: none;
  background: #f3f4f6;
}

/* AI分析结果弹窗 */
.ai-analysis-result-content {
  max-width: 800px;
  max-height: 90vh;
}

.analysis-result-container {
  max-height: 60vh;
  overflow-y: auto;
}

.analysis-section {
  margin-bottom: 20px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
}

.analysis-section h4 {
  margin: 0;
  padding: 14px 16px;
  background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
  font-size: 15px;
  font-weight: 600;
  color: #1f2937;
  border-bottom: 1px solid #e5e7eb;
  display: flex;
  align-items: center;
  gap: 8px;
}

.section-icon {
  font-size: 18px;
}

.analysis-content {
  padding: 16px;
}

.analysis-section.error {
  border-color: #fecaca;
  background: #fef2f2;
}

.analysis-section .error-msg {
  color: #dc2626;
  font-size: 13px;
}

/* 评分显示 */
.score-display {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 24px;
  border-radius: 12px;
  background: #f3f4f6;
  margin-bottom: 16px;
}

.score-display.large {
  padding: 20px 32px;
}

.score-display .score-value {
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
}

.score-display.large .score-value {
  font-size: 48px;
}

.score-display .score-label {
  font-size: 12px;
  color: #6b7280;
  margin-top: 6px;
}

.score-display.high {
  background: #dcfce7;
}

.score-display.high .score-value {
  color: #16a34a;
}

.score-display.medium {
  background: #fef3c7;
}

.score-display.medium .score-value {
  color: #d97706;
}

.score-display.low {
  background: #fee2e2;
}

.score-display.low .score-value {
  color: #dc2626;
}

/* 分析内容区块 */
.analysis-content h5 {
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  margin: 0 0 8px 0;
}

.analysis-content ul {
  margin: 0 0 16px 0;
  padding-left: 20px;
}

.analysis-content li {
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 8px;
  color: #4b5563;
}

.analysis-content li strong {
  color: #1f2937;
}

.analysis-content .detail {
  color: #6b7280;
  font-size: 12px;
}

.analysis-content .suggestion {
  color: #059669;
  font-size: 12px;
  font-style: italic;
}

/* 优劣势网格 */
.sw-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.strengths-col,
.weaknesses-col {
  padding: 12px;
  border-radius: 8px;
}

.strengths-col {
  background: #f0fdf4;
}

.weaknesses-col {
  background: #fef3c7;
}

/* 职业问题 */
.risk-level {
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 500;
}

.risk-level.低,
.risk-level.low {
  background: #dcfce7;
  color: #16a34a;
}

.risk-level.中,
.risk-level.medium {
  background: #fef3c7;
  color: #d97706;
}

.risk-level.高,
.risk-level.high {
  background: #fee2e2;
  color: #dc2626;
}

.severity {
  font-size: 11px;
  color: #dc2626;
}

/* 岗位匹配 */
.job-match .summary {
  padding: 12px;
  background: #f9fafb;
  border-radius: 8px;
  margin-bottom: 16px;
}

.job-match .summary p {
  margin: 0;
  font-size: 14px;
  color: #374151;
}

.recommendation h5 {
  margin-bottom: 8px;
}

.rec-level {
  padding: 4px 10px;
  border-radius: 4px;
  font-weight: 600;
}

.match-strengths,
.match-gaps {
  margin-top: 12px;
}

/* 历史记录 */
.analysis-history-list {
  max-height: 400px;
  overflow-y: auto;
}

.history-item {
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all 0.2s;
}

.history-item:hover {
  background: #f9fafb;
  border-color: #c7d2fe;
}

.history-date {
  font-size: 12px;
  color: #9ca3af;
  margin-bottom: 4px;
}

.history-types {
  font-size: 14px;
  font-weight: 500;
  color: #1f2937;
}

.history-order {
  font-size: 12px;
  color: #6b7280;
  margin-top: 4px;
}

.loading-hint,
.empty-hint,
.error-hint {
  text-align: center;
  padding: 40px;
  color: #9ca3af;
  font-size: 14px;
}

.error-hint {
  color: #dc2626;
}

.no-result {
  text-align: center;
  padding: 40px;
  color: #9ca3af;
}

/* 响应式 */
@media (max-width: 768px) {
  .analysis-types-grid {
    grid-template-columns: 1fr;
  }

  .extracted-info-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sw-grid {
    grid-template-columns: 1fr;
  }

  .ai-analysis-result-content {
    max-width: 100%;
    margin: 10px;
  }
}

.resume-ai-analysis-section {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid #c7d2fe;
  border-radius: 12px;
  background: linear-gradient(135deg, #eef2ff 0%, #f5f3ff 100%);
}

.ai-analysis-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.ai-analysis-header h5 {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  margin: 0;
  color: #4f46e5;
}

.ai-analysis-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ai-analysis-meta .analysis-time {
  font-size: 12px;
  color: #6b7280;
}

.ai-analysis-inline-content {
  font-size: 13px;
  color: #374151;
  line-height: 1.6;
}

.ai-analysis-inline-content .analysis-section {
  margin-bottom: 16px;
  padding: 12px;
  background: #fff;
  border-radius: 8px;
}

.ai-analysis-inline-content .analysis-section:last-child {
  margin-bottom: 0;
}

.ai-analysis-inline-content .analysis-section h4 {
  font-size: 13px;
  font-weight: 600;
  color: #4f46e5;
  margin: 0 0 8px 0;
}

.ai-analysis-inline-content .score-display {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 16px;
  border-radius: 8px;
  background: #f3f4f6;
  margin-bottom: 8px;
}

.ai-analysis-inline-content .score-display.high {
  background: #dcfce7;
  color: #166534;
}

.ai-analysis-inline-content .score-display.medium {
  background: #fef3c7;
  color: #92400e;
}

.ai-analysis-inline-content .score-display.low {
  background: #fee2e2;
  color: #991b1b;
}

.ai-analysis-inline-content .score-value {
  font-size: 24px;
  font-weight: 700;
}

.ai-analysis-inline-content .score-label {
  font-size: 11px;
}

.ai-analysis-inline-content ul {
  margin: 0;
  padding-left: 20px;
}

.ai-analysis-inline-content li {
  margin-bottom: 4px;
}

.ai-analysis-inline-content .sw-grid {
  display: flex;
  gap: 16px;
}

.ai-analysis-inline-content .strengths-col,
.ai-analysis-inline-content .weaknesses-col {
  flex: 1;
}

.ai-analysis-inline-content h5 {
  font-size: 12px;
  font-weight: 600;
  margin: 0 0 6px 0;
  color: #374151;
}

.ai-analysis-inline-content .detail {
  font-size: 12px;
  color: #6b7280;
}

.ai-analysis-inline-content .suggestion {
  font-size: 12px;
  color: #059669;
  font-style: italic;
}

.no-analysis-hint {
  text-align: center;
  color: #9ca3af;
  padding: 20px;
  font-size: 13px;
}

.resume-full-editor-content {
  max-width: 95vw;
  width: 1200px;
  max-height: 90vh;
}

.resume-full-editor-content .modal-header {
  display: flex;
  align-items: center;
  gap: 20px;
}

.resume-full-editor-content .modal-header h3 {
  margin: 0;
  flex-shrink: 0;
}

.version-selector {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}

.version-selector label {
  color: #6b7280;
}

.version-selector select {
  padding: 4px 8px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
}

.resume-editor-body {
  padding: 0 !important;
}

.resume-editor-layout {
  display: flex;
  height: 60vh;
}

.resume-editor-left {
  width: 320px;
  flex-shrink: 0;
  border-right: 1px solid #e5e7eb;
  padding: 20px;
  overflow-y: auto;
  background: #f9fafb;
}

.resume-editor-left h4 {
  margin: 0 0 16px 0;
  font-size: 14px;
  color: #374151;
}

.structured-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.structured-fields .field-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.structured-fields .field-group label {
  font-size: 12px;
  color: #6b7280;
  font-weight: 500;
}

.structured-fields .field-group input,
.structured-fields .field-group select {
  padding: 8px 10px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 13px;
  transition: border-color 0.2s;
}

.structured-fields .field-group input:focus,
.structured-fields .field-group select:focus {
  outline: none;
  border-color: #3b82f6;
}

.structured-fields .field-group.full-width {
  grid-column: span 2;
}

.structured-fields .field-group.highlight input,
.structured-fields .field-group.highlight select {
  background: #fef9c3;
  border-color: #fbbf24;
}

.resume-editor-right {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  border-bottom: 1px solid #e5e7eb;
  background: #f9fafb;
}

.editor-toolbar h4 {
  margin: 0;
  font-size: 14px;
  color: #374151;
}

.highlight-legend {
  display: flex;
  align-items: center;
  gap: 12px;
}

.legend-item {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 4px;
}

.legend-item.completion-highlight {
  background: #fef9c3;
  color: #92400e;
  cursor: pointer;
  border: none;
}

.resume-text-editor {
  flex: 1;
  padding: 20px;
  overflow-y: auto;
  font-size: 14px;
  line-height: 1.7;
  color: #374151;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.resume-text-editor:focus {
  outline: none;
}

.resume-text-editor .completion-mark {
  background: #fef9c3;
  padding: 2px 4px;
  border-radius: 3px;
}

.complete-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.complete-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.complete-option:hover {
  border-color: #3b82f6;
  background: #f8fafc;
}

.complete-option input[type="radio"] {
  margin-top: 2px;
}

.complete-option .option-content {
  flex: 1;
}

.complete-option .option-title {
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 4px;
}

.complete-option .option-desc {
  font-size: 13px;
  color: #6b7280;
}

/* ==================== 人才管理页面样式 ==================== */
.resume-table-body {
  transition: opacity 0.15s ease;
}

.resume-table-body.is-loading {
  opacity: 0.55;
  pointer-events: none;
}
.talent-header-tabs {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

.talent-tab {
  padding: 6px 16px;
  background: transparent;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  font-size: 14px;
  color: #6b7280;
  cursor: pointer;
  transition: all 0.2s;
}

.talent-tab:hover { background: #f3f4f6; }
.talent-tab.active { background: #3b82f6; color: #fff; border-color: #3b82f6; }

#channel-talent > .panel-body {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  transition: grid-template-columns 0.22s ease;
}

#channel-talent > .panel-body.talent-sidebar-open {
  grid-template-columns: 208px minmax(0, 1fr);
  gap: 16px;
}

#channel-talent > .panel-body > .talent-category-sidebar {
  grid-column: 1;
  grid-row: 1 / span 50;
}

#channel-talent > .panel-body > :not(.talent-category-sidebar) {
  grid-column: 2;
  min-width: 0;
}

.talent-category-sidebar {
  position: sticky;
  top: 76px;
  z-index: 5;
  box-sizing: border-box;
  width: 208px;
  overflow: hidden;
  padding: 14px 10px 12px;
  border: 1px solid #dfe7f3;
  border-radius: 12px;
  background: linear-gradient(160deg, #ffffff 0%, #fbfdff 68%, #f4f8ff 100%);
  box-shadow: 0 8px 24px rgba(31, 64, 116, 0.06);
  transform: translateX(-172px);
  transform-origin: right center;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.talent-category-sidebar.is-collapsed {
  width: 36px;
  height: 72px;
  padding: 0;
  overflow: visible;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  transform: translateX(0);
}

.talent-category-sidebar.is-open {
  height: auto;
  transform: translateX(0);
}

.talent-sidebar-toggle {
  position: absolute;
  top: 14px;
  right: 7px;
  z-index: 3;
  display: flex;
  width: 28px;
  height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: #3b82f6;
  border: 1px solid #dbe7f7;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);
  cursor: pointer;
  transition: width 0.2s ease, height 0.2s ease, transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.talent-sidebar-toggle:hover {
  color: #2563eb;
  border-color: #bfdbfe;
  background: #eef5ff;
}

.talent-sidebar-toggle-chevron {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.22s ease;
}

.talent-category-sidebar.is-open .talent-sidebar-toggle-chevron {
  transform: rotate(180deg);
}

.talent-category-sidebar.is-collapsed .talent-sidebar-toggle {
  top: 8px;
  right: 3px;
  width: 30px;
  height: 56px;
  color: #3b82f6;
  border-color: #dbe7f7;
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
  box-shadow: 0 4px 14px rgba(59, 130, 246, 0.11);
}

.talent-category-sidebar.is-collapsed .talent-sidebar-toggle:hover {
  transform: translateX(1px);
  border-color: #bfdbfe;
  background: #eef5ff;
  box-shadow: 0 5px 15px rgba(59, 130, 246, 0.15);
}

.talent-category-sidebar.is-collapsed .talent-sidebar-toggle-chevron {
  position: relative;
  z-index: 1;
  width: 16px;
  height: 16px;
  flex-basis: 16px;
}

.talent-category-sidebar.is-collapsed .talent-category-heading,
.talent-category-sidebar.is-collapsed .talent-category-nav {
  visibility: hidden;
  opacity: 0;
}

.talent-category-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 2px 34px 12px 7px;
  transition: opacity 0.15s ease;
}

.talent-category-heading-icon {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  color: #2563eb;
  border-radius: 10px;
  background: #eaf2ff;
}

.talent-category-heading-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-category-heading strong,
.talent-category-heading small {
  display: block;
}

.talent-category-heading strong {
  color: #172033;
  font-size: 14px;
}

.talent-category-heading small {
  margin-top: 2px;
  color: #94a3b8;
  font-size: 11px;
}

.talent-category-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: opacity 0.15s ease;
}

.talent-category-item {
  display: flex;
  width: 100%;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  color: #46566d;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
  transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

.talent-category-item:hover {
  color: #1d4ed8;
  border-color: #dbeafe;
  background: #f3f7ff;
  transform: translateX(2px);
}

.talent-category-item.active {
  color: #fff;
  border-color: #2f75ee;
  background: linear-gradient(135deg, #3182f6 0%, #2764df 100%);
  box-shadow: 0 6px 14px rgba(37, 99, 235, 0.19);
  font-weight: 600;
}

.talent-category-label {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.talent-category-dot {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #a9b6c9;
}

.talent-category-item.active .talent-category-dot {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}

.talent-category-count {
  display: inline-flex;
  min-width: 23px;
  height: 20px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  color: #607089;
  border-radius: 999px;
  background: #edf2f8;
  font-size: 11px;
  font-weight: 700;
}

.talent-category-item.active .talent-category-count {
  color: #2563eb;
  background: #fff;
}

.talent-category-divider {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 7px 6px 3px;
  color: #9aa8bb;
  font-size: 10px;
  letter-spacing: 0.08em;
}

.talent-category-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: #e8edf4;
}

.talent-top-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

.talent-favorites-panel, .talent-upload-panel {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px;
  min-width: 0;
}

.talent-favorites-panel {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #ffffff 0%, #fbfdff 62%, #f5f9ff 100%);
}

.talent-favorites-panel::after {
  content: "";
  position: absolute;
  width: 120px;
  height: 120px;
  right: -54px;
  top: -64px;
  border-radius: 50%;
  background: rgba(59, 130, 246, 0.06);
  pointer-events: none;
}

.talent-favorites-header {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.talent-favorites-heading {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
}

.talent-favorites-heading-icon {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #eaf2ff;
  color: #2563eb;
}

.talent-favorites-heading-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-favorites-heading strong {
  display: block;
  color: #172033;
  font-size: 14px;
  line-height: 1.25;
}

.talent-favorites-heading small {
  display: block;
  margin-top: 2px;
  color: #8a94a6;
  font-size: 11px;
  white-space: nowrap;
}

.talent-favorites-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.talent-favorites-back,
.talent-favorites-total,
.talent-folder-add-root {
  height: 29px;
  border-radius: 7px;
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}

.talent-favorites-back {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #cfe0ff;
  background: #ffffff;
  color: #2563eb;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.08);
  transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.talent-favorites-back svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-favorites-back:hover {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
  transform: translateX(-1px);
}

.talent-favorites-total {
  padding: 0 9px;
  border: 1px solid #e6edf7;
  background: rgba(248, 250, 252, 0.92);
  color: #64748b;
}

.talent-favorites-total:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #2563eb;
}

.talent-favorites-total strong { color: #2563eb; }

.talent-folder-add-root {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 10px;
  border: 1px solid #cfe0ff;
  background: #eff6ff;
  color: #2563eb;
  font-weight: 600;
}

.talent-folder-add-root:hover { background: #dbeafe; border-color: #93c5fd; }
.talent-folder-add-root svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; }

.talent-favorite-folders {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  max-height: 88px;
  overflow-y: auto;
  padding: 1px 2px 1px 0;
  scrollbar-width: thin;
  scrollbar-color: #dbe4f0 transparent;
}

.talent-folder-card {
  min-width: 0;
  border: 1px solid #e7ecf3;
  border-radius: 9px;
  background: rgba(248, 250, 252, 0.9);
  transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.talent-folder-card:hover {
  border-color: #cbdcf8;
  background: #fff;
  box-shadow: 0 3px 10px rgba(37, 99, 235, 0.07);
}

.talent-folder-card.is-active {
  border-color: #8eb9ff;
  background: #eff6ff;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.08);
}

.talent-folder-card-main {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 7px 8px;
}

.talent-folder-select {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  flex: 1;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.talent-folder-icon {
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #e8f1ff;
  color: #3b82f6;
}

.talent-folder-icon svg { width: 16px; height: 16px; fill: currentColor; }
.talent-folder-copy { min-width: 0; flex: 1; }
.talent-folder-name { display: block; overflow: hidden; color: #263247; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.talent-folder-count { display: block; margin-top: 1px; color: #94a3b8; font-size: 10px; }

.talent-folder-actions {
  display: flex;
  align-items: center;
  gap: 1px;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.talent-folder-card:hover .talent-folder-actions,
.talent-folder-card:focus-within .talent-folder-actions { opacity: 1; }

.talent-folder-action {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #7c8aa0;
  cursor: pointer;
}

.talent-folder-action:hover { background: #e5edfa; color: #2563eb; }
.talent-folder-action.is-danger:hover { background: #fee2e2; color: #dc2626; }
.talent-folder-action svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.talent-folder-children-toggle {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: #7890ad;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.talent-folder-children-toggle:hover,
.talent-folder-children-toggle[aria-expanded="true"] {
  border-color: #cfe0f8;
  background: #edf5ff;
  color: #2563eb;
}

.talent-folder-children-toggle:focus-visible { outline: 2px solid #bfdbfe; outline-offset: 1px; }
.talent-folder-children-toggle svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.18s ease;
}
.talent-folder-children-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.talent-folder-children {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: -2px 8px 7px 42px;
  padding-left: 6px;
  border-left: 1px solid #cbdcf8;
}

.talent-folder-children[hidden] { display: none; }
.talent-folder-card.is-expanded { border-color: #cbdcf8; background: #fff; }

.talent-child-folder {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-width: 0;
  height: 22px;
  padding: 0 6px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #eef2f7;
  color: #526174;
  font-size: 10px;
  cursor: pointer;
}

.talent-child-folder-wrap {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  min-width: 0;
  border-radius: 6px;
  background: #eef2f7;
}

.talent-child-folder-wrap .talent-child-folder { background: transparent; }
.talent-child-folder-wrap.is-active { background: #dbeafe; }

.talent-child-folder-action {
  width: 20px;
  height: 22px;
  padding: 0 3px 2px 0;
  border: 0;
  border-radius: 0 6px 6px 0;
  background: transparent;
  color: #94a3b8;
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
}

.talent-child-folder-action:hover { color: #2563eb; }
.talent-child-folder-action.is-danger:hover { color: #dc2626; }

.talent-child-folder:hover { border-color: #bfdbfe; background: #fff; color: #2563eb; }
.talent-child-folder.is-active { border-color: #93c5fd; background: #dbeafe; color: #1d4ed8; }
.talent-child-folder-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.talent-child-folder-count { margin-left: 4px; color: #94a3b8; }
.talent-child-folder.is-active .talent-child-folder-count { color: #3b82f6; }

.talent-folders-empty {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 14px;
  border: 1px dashed #d7e2f0;
  border-radius: 9px;
  background: rgba(248, 250, 252, 0.7);
  color: inherit;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.talent-folders-empty:hover {
  border-color: #a9c9f5;
  background: #f5f9ff;
  box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.04);
}

.talent-folders-empty:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; }

.talent-folders-empty-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  background: #eef4ff;
  color: #70a3ef;
  margin: 0;
}

.talent-folders-empty-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.talent-folders-empty-copy { display: block; min-width: 0; margin: 0; }
.talent-folders-empty-copy strong { display: block; color: #435066; font-size: 12px; line-height: 1.25; }
.talent-folders-empty-copy small { display: block; margin-top: 3px; color: #9aa5b5; font-size: 10px; line-height: 1.25; white-space: nowrap; }
.talent-folders-empty:hover .talent-folders-empty-icon { background: #e1ecff; color: #3b82f6; }

.talent-folder-loading { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.talent-folder-loading span { height: 46px; border-radius: 9px; background: linear-gradient(90deg, #f1f5f9 25%, #f8fafc 40%, #f1f5f9 65%); background-size: 400% 100%; animation: talent-folder-shimmer 1.4s ease infinite; }
@keyframes talent-folder-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }

.talent-favorite-folders-error {
  grid-column: 1 / -1;
  padding: 22px;
  text-align: center;
  color: #b45309;
  font-size: 12px;
}

.talent-upload-panel h4 { margin: 0 0 12px 0; font-size: 14px; color: #374151; }

.kpi-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.kpi-card {
  background: #f8fafc;
  border-radius: 8px;
  padding: 12px;
  text-align: center;
}

.kpi-card .kpi-value {
  font-size: 24px;
  font-weight: 700;
  color: #1f2937;
}

.kpi-card .kpi-label {
  font-size: 12px;
  color: #6b7280;
  margin-top: 4px;
}

.kpi-card-rate .kpi-value { color: #10b981; }

.upload-compact-header {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.upload-mode-btn {
  padding: 6px 12px;
  height: auto;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #374151;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.upload-mode-btn:hover { background: #e5e7eb; }
.upload-mode-btn.active { background: #3b82f6; color: #fff; border-color: #3b82f6; }

.template-dropdown { position: relative; }

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  min-width: 180px;
  z-index: 100;
}

.dropdown-item {
  padding: 8px 12px;
  cursor: pointer;
  font-size: 13px;
}

.dropdown-item:hover { background: #f3f4f6; }

.upload-mode-content { display: none; }
.upload-mode-content.active { display: block; }

.dropzone-compact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  border: 2px dashed #d1d5db;
  border-radius: 8px;
  cursor: pointer;
  color: #6b7280;
  font-size: 13px;
  transition: all 0.2s;
}

.dropzone-compact:hover { border-color: #3b82f6; background: #f8fafc; }
.dropzone-compact.dragover { border-color: #3b82f6; background: #eff6ff; }

.upload-msg { margin-top: 8px; font-size: 13px; color: #10b981; }

.talent-tab-content { display: none; }
.talent-tab-content.active { display: block; }

.mapping-section { padding: 16px; }
.mapping-toolbar { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.mapping-tree-container { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; min-height: 400px; max-height: 600px; overflow-y: auto; padding: 16px; }
.mapping-node { margin-bottom: 4px; }
.mapping-node-header { display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: #f9fafb; border-radius: 6px; transition: background 0.15s; }
.mapping-node-header:hover { background: #f3f4f6; }
.mapping-toggle { width: 16px; text-align: center; cursor: pointer; color: #6b7280; font-size: 12px; user-select: none; }
.mapping-type-badge { font-size: 11px; padding: 2px 6px; border-radius: 4px; color: #fff; font-weight: 500; }
.mapping-node-name { flex: 1; font-weight: 500; color: #1f2937; }
.mapping-stats { display: flex; gap: 4px; align-items: center; font-size: 13px; color: #6b7280; }
.mapping-count { color: #10b981; font-weight: 500; }
.mapping-target { color: #9ca3af; }
.mapping-actions { display: flex; gap: 4px; opacity: 0; transition: opacity 0.15s; }
.mapping-node-header:hover .mapping-actions { opacity: 1; }
.mapping-actions .btn-icon { background: none; border: none; padding: 4px; cursor: pointer; font-size: 14px; border-radius: 4px; }
.mapping-actions .btn-icon:hover { background: #e5e7eb; }
.mapping-actions .btn-delete:hover { background: #fee2e2; }
.mapping-actions .btn-ai { color: #3b82f6; }
.mapping-children { margin-top: 4px; }

.ai-suggestions-list { display: flex; flex-direction: column; gap: 12px; }
.ai-company-item { background: #f9fafb; border-radius: 8px; padding: 12px; }
.ai-company-header { display: flex; align-items: center; gap: 8px; font-weight: 600; color: #1f2937; margin-bottom: 8px; }
.ai-company-name { flex: 1; }
.ai-target { color: #6b7280; font-weight: 400; font-size: 13px; }
.ai-departments { padding-left: 20px; }
.ai-dept-item { margin-bottom: 8px; }
.ai-dept-name { font-weight: 500; color: #374151; margin-left: 4px; }
.ai-positions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; padding-left: 24px; }
.ai-pos-item { display: flex; align-items: center; gap: 4px; font-size: 13px; color: #6b7280; }
.ai-check { width: 16px; height: 16px; cursor: pointer; }

.loading-spinner { width: 40px; height: 40px; border: 3px solid #e5e7eb; border-top-color: #3b82f6; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto; }
@keyframes spin { to { transform: rotate(360deg); } }

.mindmap-section {
  padding: 16px;
}

.mindmap-toolbar {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

#mindmap-container {
  background: #fff;
  overflow: hidden;
}

#mindmap-svg {
  cursor: grab;
}

#mindmap-svg:active {
  cursor: grabbing;
}

#mindmap-svg foreignObject {
  cursor: pointer;
}

#mindmap-svg foreignObject:hover div {
  background: rgba(59, 130, 246, 0.1);
  border-radius: 4px;
}

.mindmap-node-input {
  padding: 4px 8px;
  border: 2px solid #3b82f6;
  border-radius: 4px;
  font-size: 14px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  outline: none;
}

.mindmap-context-menu {
  position: fixed;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  z-index: 10000;
  min-width: 120px;
  padding: 4px 0;
}

.mindmap-context-menu-item {
  padding: 8px 16px;
  cursor: pointer;
  font-size: 13px;
  color: #374151;
}

.mindmap-context-menu-item:hover {
  background: #f3f4f6;
}

.mindmap-context-menu-item.danger {
  color: #ef4444;
}

.mindmap-context-menu-item.danger:hover {
  background: #fef2f2;
}

#mindmap-editor {
  background: #f9fafb;
  line-height: 1.6;
}

#mindmap-editor:focus {
  outline: 2px solid #3b82f6;
  outline-offset: -2px;
}

.resume-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 12px;
}

.resume-filters {
  display: flex;
  flex: 1 1 760px;
  min-width: 0;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.talent-search-controls {
  display: flex;
  flex: 1 1 560px;
  min-width: 0;
  align-items: center;
  gap: 8px;
}

.resume-filters .talent-search-controls > #talent-search {
  width: auto;
  min-width: 200px;
  max-width: 340px;
  flex: 1 1 260px;
}

.talent-search-controls > button {
  flex: 0 0 auto;
  white-space: nowrap;
}

.resume-filters select, .resume-filters input {
  height: 32px;
  font-size: 13px;
}

.talent-quick-filters {
  display: inline-flex;
  flex: 0 0 auto;
  min-height: 32px;
  align-items: center;
  flex-wrap: nowrap;
  gap: 4px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.talent-quick-filters.has-active-filter {
  border-color: transparent;
  box-shadow: none;
}

.talent-member-combobox {
  position: relative;
  display: inline-flex;
  width: 140px;
  min-width: 140px;
  height: 32px;
  align-items: stretch;
}

.talent-member-combobox.is-filter-disabled {
  opacity: .68;
}

.talent-member-combobox.is-filter-disabled > input[type="search"] {
  border-color: transparent;
  background: #eef4fc;
  color: #4470a8;
  cursor: default;
}

.talent-member-combobox.is-filter-disabled .talent-member-combobox-toggle {
  cursor: default;
}

.talent-member-combobox > input[type="search"] {
  width: 100%;
  min-width: 0;
  height: 32px;
  padding: 0 32px 0 11px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 13px;
  outline: none;
}

.talent-member-combobox > input[type="search"]::-webkit-search-cancel-button { display: none; }
.talent-member-combobox > input[type="search"]:focus { border-color: #60a5fa; box-shadow: 0 0 0 3px rgba(59, 130, 246, .11); }
.talent-member-combobox-toggle {
  position: absolute;
  top: 1px;
  right: 1px;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 0 7px 7px 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
}
.talent-member-combobox-toggle::before {
  display: block;
  width: 7px;
  height: 7px;
  margin: -3px auto 0;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: '';
  transform: rotate(45deg);
  transition: transform .16s ease;
}
.talent-member-combobox.is-open .talent-member-combobox-toggle::before { margin-top: 3px; transform: rotate(225deg); }
.talent-member-combobox-options {
  position: absolute;
  z-index: 90;
  top: calc(100% + 5px);
  left: 0;
  width: 220px;
  max-height: 260px;
  box-sizing: border-box;
  padding: 5px;
  overflow-y: auto;
  border: 1px solid #dbe3ed;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .14);
}
.talent-member-combobox-options[hidden] { display: none; }
.talent-member-combobox-option {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 48px;
  box-sizing: border-box;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  gap: 3px;
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  background: #fff;
  color: #334155;
  text-align: left;
  cursor: pointer;
}
.talent-member-combobox-option:hover,
.talent-member-combobox-option:focus-visible { outline: none; background: #f1f7ff; }
.talent-member-combobox-option.is-selected { background: #eaf3ff; color: #1d5fb8; }
.talent-member-combobox-option span { display: block; max-width: 100%; overflow: hidden; font-size: 12px; font-weight: 600; line-height: 16px; text-overflow: ellipsis; white-space: nowrap; }
.talent-member-combobox-option small { display: block; max-width: 100%; overflow: hidden; color: #94a3b8; font-size: 10px; line-height: 13px; text-overflow: ellipsis; white-space: nowrap; }
.talent-member-combobox-empty { display: block; padding: 14px 8px; color: #94a3b8; font-size: 12px; text-align: center; }

.talent-status-filter {
  position: relative;
  display: inline-flex;
  height: 32px;
  align-items: center;
}

.talent-status-filter > svg {
  position: absolute;
  z-index: 1;
  left: 10px;
  width: 14px;
  height: 14px;
  fill: none;
  stroke: #7c8da5;
  stroke-linecap: round;
  stroke-width: 1.8;
  pointer-events: none;
}

.resume-filters .talent-status-filter > select {
  width: 132px;
  min-width: 132px;
  height: 32px;
  padding: 0 28px 0 30px;
  border: 1px solid #dbe3ed;
  border-radius: 8px;
  background-color: #fff;
  color: #334155;
  outline: none;
  cursor: pointer;
}

.resume-filters .talent-status-filter > select:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .1);
}

.talent-quick-filter-divider {
  width: 1px;
  height: 20px;
  margin: 0 3px;
  background: #dde5ef;
}

.talent-filter-toggle {
  position: relative;
  display: inline-flex;
  height: 32px;
  align-items: center;
  gap: 7px;
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #526176;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}

.talent-filter-toggle:hover {
  background: #fff;
  color: #245fae;
}

.talent-filter-toggle:has(input:focus-visible) {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}

.talent-filter-toggle:has(input:checked) {
  border-color: #bed6fb;
  background: #eaf3ff;
  color: #1e63bd;
}

.talent-filter-toggle > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.talent-filter-toggle-box {
  position: relative;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  box-sizing: border-box;
  border: 1.5px solid #b4c0cf;
  border-radius: 5px;
  background: #fff;
  transition: background .18s ease, border-color .18s ease;
}

.talent-filter-toggle > input:checked + .talent-filter-toggle-box {
  border-color: #3b82f6;
  background: #3b82f6;
}

.talent-filter-toggle > input:checked + .talent-filter-toggle-box::after {
  position: absolute;
  top: 2px;
  left: 4px;
  width: 4px;
  height: 7px;
  border-right: 1.7px solid #fff;
  border-bottom: 1.7px solid #fff;
  content: '';
  transform: rotate(45deg);
}

.talent-filter-load-error {
  display: flex;
  min-height: 150px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  color: #64748b;
  font-size: 13px;
  text-align: center;
}

.talent-filter-load-error strong {
  color: #334155;
  font-size: 14px;
}

.talent-filter-load-error button {
  margin-top: 4px;
  padding: 6px 13px;
  border: 1px solid #bfd6f7;
  border-radius: 7px;
  background: #f4f8ff;
  color: #2563b4;
  cursor: pointer;
}

.resume-count {
  font-size: 13px;
  color: #6b7280;
  white-space: nowrap;
}

.resume-toolbar-meta {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-left: auto;
  min-width: max-content;
}

.talent-manual-entry-button {
  display: inline-flex;
  height: 32px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-sizing: border-box;
  padding: 0 13px;
  border: 1px solid #b9d4fb;
  border-radius: 8px;
  background: #f7faff;
  color: #2563b8;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.talent-manual-entry-button svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 2;
}

.talent-manual-entry-button:hover {
  border-color: #83b5f6;
  background: #edf5ff;
  box-shadow: 0 3px 10px rgba(37, 99, 184, .1);
  transform: translateY(-1px);
}

.talent-manual-entry-button:focus-visible {
  outline: 3px solid rgba(59, 130, 246, .16);
  outline-offset: 1px;
}

.resume-count #resume-total-count {
  color: #f97316;
  font-weight: 700;
}

.talent-view-switch {
  display: inline-flex;
  overflow: hidden;
  border: 1px solid #d7e1ec;
  border-radius: 8px;
  background: #fff;
}

.talent-view-switch button {
  display: grid;
  width: 36px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #a8b1bd;
  box-shadow: none;
}

.talent-view-switch button + button { border-left: 1px solid #e5eaf0; }
.talent-view-switch button:hover { background: #f5faff; color: #1686cf; }
.talent-view-switch button.is-active { background: #edf8ff; color: #0785d1; }
.talent-view-switch svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.talent-favorite-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 190px;
  height: 28px;
  padding: 0 8px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 12px;
  cursor: pointer;
}

.talent-favorite-filter-chip:hover { background: #dbeafe; }
.talent-favorite-filter-chip svg { width: 13px; height: 13px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.talent-favorite-filter-chip #talent-favorite-filter-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.talent-favorite-modal-card { width: min(92vw, 500px); max-height: 78vh; }
.talent-favorite-modal-card .modal-header { align-items: flex-start; padding: 18px 20px; }
.talent-favorite-modal-card .modal-header h3 { font-size: 18px; }
.talent-favorite-modal-card .modal-header p { margin: 4px 0 0; color: #7b8798; font-size: 12px; }
.talent-favorite-modal-card .modal-body { padding: 16px 20px; }
.talent-favorite-modal-card .modal-footer { justify-content: space-between; padding: 12px 20px; }
.talent-favorite-modal-list { display: flex; flex-direction: column; gap: 8px; }

.talent-favorite-modal-group {
  overflow: hidden;
  border: 1px solid #e5eaf1;
  border-radius: 10px;
  background: #fff;
}

.talent-favorite-modal-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 8px 12px;
  color: #334155;
  font-size: 13px;
  cursor: pointer;
}

.talent-favorite-modal-row:hover { background: #f8fbff; }
.talent-favorite-modal-row.is-child { min-height: 38px; padding-left: 38px; border-top: 1px solid #eef2f6; color: #526174; }
.talent-favorite-modal-row input { width: 16px; height: 16px; margin: 0; accent-color: #3b82f6; }
.talent-favorite-modal-row svg { width: 17px; height: 17px; color: #4b8cef; fill: currentColor; }
.talent-favorite-modal-row.is-child svg { width: 13px; height: 13px; color: #89aee8; }
.talent-favorite-modal-row-name { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.talent-favorite-modal-row-count { color: #94a3b8; font-size: 11px; }

.talent-favorite-modal-empty {
  padding: 28px 16px;
  border: 1px dashed #d7e2f0;
  border-radius: 10px;
  color: #8b98aa;
  text-align: center;
  font-size: 12px;
}

.talent-favorite-modal-create {
  width: 100%;
  height: 38px;
  margin-top: 10px;
  border: 1px dashed #bdd2ef;
  border-radius: 9px;
  background: #f8fbff;
  color: #3475cf;
  font-size: 12px;
  cursor: pointer;
}

.talent-favorite-modal-create:hover { border-color: #7fb0f1; background: #eff6ff; }
.talent-favorite-modal-status { color: #8b98aa; font-size: 12px; }
.talent-favorite-modal-status.is-saving { color: #2563eb; }
.talent-favorite-modal-status.is-error { color: #dc2626; }

.talent-name-text {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.talent-name-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.talent-gender-mark {
  display: inline-grid;
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  align-items: center;
  justify-content: center;
  opacity: 0.78;
  transform: translateY(-0.5px);
}

.talent-gender-mark svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-gender-mark.is-male {
  color: #5f8fc8;
}

.talent-gender-mark.is-female {
  color: #c87998;
}

.talent-unread-mark {
  flex: 0 0 auto;
  color: #dc2626;
  font-size: 10px;
}

.talent-name-favorite {
  width: 30px;
  height: 24px;
  flex: 0 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 0 3px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
}

.talent-name-favorite:hover { background: #eff6ff; color: #2563eb; }
.talent-name-favorite.is-open { background: #eaf2ff; color: #2563eb; }
.talent-name-favorite.has-favorite { color: #4f7fca; }
.talent-name-favorite:focus-visible { outline: 2px solid #bfdbfe; outline-offset: 1px; }
.talent-name-favorite svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.talent-name-favorite-caret {
  width: 0;
  height: 0;
  border-left: 3px solid transparent;
  border-right: 3px solid transparent;
  border-top: 4px solid currentColor;
  opacity: 0.72;
  transition: transform 0.16s ease;
}
.talent-name-favorite.is-open .talent-name-favorite-caret { transform: rotate(180deg); }

.talent-favorite-dropdown {
  position: fixed;
  z-index: 10040;
  padding: 8px;
  border: 1px solid #dbe6f5;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 14px 36px rgba(31, 58, 95, 0.16), 0 3px 10px rgba(31, 58, 95, 0.08);
  color: #334155;
  animation: talentFavoriteDropdownIn 0.14s ease-out;
}

@keyframes talentFavoriteDropdownIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.talent-favorite-dropdown-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 28px;
  padding: 2px 6px 6px;
  color: #64748b;
  font-size: 12px;
  font-weight: 600;
}

.talent-favorite-dropdown-count {
  color: #94a3b8;
  font-weight: 500;
}

.talent-favorite-dropdown-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
  max-height: 190px;
  overflow-y: auto;
}

.talent-favorite-dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 7px 9px;
  border-radius: 7px;
  background: #f7faff;
  color: #334155;
  font-size: 13px;
}

.talent-favorite-dropdown-item svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: #eaf2ff;
  stroke: #4f86dc;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-favorite-dropdown-item span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.talent-favorite-dropdown-group {
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 7px;
  background: #f7faff;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.talent-favorite-dropdown-group.is-expanded {
  border-color: #dbeafe;
  background: #fbfdff;
}

.talent-favorite-dropdown-root {
  width: 100%;
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border: 0;
  background: transparent;
  color: #334155;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}

.talent-favorite-dropdown-root:hover { background: #eef5ff; }
.talent-favorite-dropdown-root:focus-visible { outline: 2px solid #bfdbfe; outline-offset: -2px; }

.talent-favorite-dropdown-root > svg,
.talent-favorite-dropdown-child > svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: #eaf2ff;
  stroke: #4f86dc;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-favorite-dropdown-root-name {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.talent-favorite-dropdown-root-count {
  min-width: 20px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  border-radius: 999px;
  background: #e8f1ff;
  color: #4b78b8;
  font-size: 11px;
}

.talent-favorite-dropdown-root-caret {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-right: 1.5px solid #7f95b3;
  border-bottom: 1.5px solid #7f95b3;
  transform: rotate(45deg) translate(-1px, -1px);
  transition: transform 0.16s ease;
}

.talent-favorite-dropdown-group.is-expanded .talent-favorite-dropdown-root-caret {
  transform: rotate(225deg) translate(-1px, -1px);
}

.talent-favorite-dropdown-children {
  padding: 0 7px 7px 26px;
}

.talent-favorite-dropdown-child {
  position: relative;
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 7px;
  border-radius: 6px;
  color: #52657d;
  font-size: 12px;
}

.talent-favorite-dropdown-child:hover { background: #f0f6ff; }
.talent-favorite-dropdown-child > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-favorite-dropdown-child.is-root-location { color: #7a8ba1; }
.talent-favorite-dropdown-branch {
  width: 9px;
  height: 13px;
  flex: 0 0 9px;
  margin-left: -14px;
  border-left: 1px solid #cbd9eb;
  border-bottom: 1px solid #cbd9eb;
  border-radius: 0 0 0 4px;
}

.talent-favorite-dropdown-empty,
.talent-favorite-dropdown-loading,
.talent-favorite-dropdown-error {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 64px;
  padding: 10px;
  color: #94a3b8;
  font-size: 12px;
}

.talent-favorite-dropdown-empty-icon { color: #9bb4d8; font-size: 18px; }
.talent-favorite-dropdown-error { color: #dc6262; text-align: center; }
.talent-favorite-dropdown-loading span {
  width: 13px;
  height: 13px;
  border: 2px solid #dbeafe;
  border-top-color: #3b82f6;
  border-radius: 50%;
  animation: talentFavoriteDropdownSpin 0.7s linear infinite;
}

@keyframes talentFavoriteDropdownSpin { to { transform: rotate(360deg); } }

.talent-favorite-dropdown-manage {
  width: 100%;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-top: 6px;
  border: 1px solid #cfe0f8;
  border-radius: 7px;
  background: #f5f9ff;
  color: #2563eb;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.talent-favorite-dropdown-manage:hover { background: #eaf2ff; border-color: #a9c8f2; }
.talent-favorite-dropdown-manage:focus-visible { outline: 2px solid #bfdbfe; outline-offset: 1px; }

.btn-talent-ai-search {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid #c4b5fd;
  border-radius: 7px;
  background: #f5f3ff;
  color: #6d28d9;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.btn-talent-ai-search:hover,
.btn-talent-ai-search.is-active {
  border-color: #8b5cf6;
  background: #ede9fe;
  box-shadow: 0 3px 10px rgba(109, 40, 217, 0.13);
}

.btn-talent-ai-search svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.btn-talent-more-filters {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.btn-talent-more-filters:hover,
.btn-talent-more-filters.is-active,
.btn-talent-more-filters.has-filters {
  color: #2563eb;
  border-color: #93c5fd;
  background: #f8fbff;
  box-shadow: 0 3px 10px rgba(37, 99, 235, 0.1);
}

.btn-talent-more-filters svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.talent-more-filter-caret {
  color: #94a3b8;
  font-size: 10px;
  transition: transform 0.16s ease;
}

.btn-talent-more-filters.is-active .talent-more-filter-caret { transform: rotate(180deg); }

.talent-advanced-filter-count {
  align-items: center;
  justify-content: center;
  min-width: 17px;
  height: 17px;
  padding: 0 5px;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
  font-size: 10px;
  line-height: 1;
}

.talent-advanced-filters {
  margin: -2px 0 12px;
  padding: 14px 16px 12px;
  border: 1px solid #d9e5f5;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}

.talent-advanced-filters[hidden] { display: none; }

.talent-advanced-filter-head,
.talent-advanced-filter-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.talent-advanced-filter-head {
  padding-bottom: 11px;
  margin-bottom: 12px;
  border-bottom: 1px solid #e8eef7;
}

.talent-advanced-filter-head > div {
  display: flex;
  align-items: baseline;
  gap: 9px;
}

.talent-advanced-filter-head strong { color: #0f172a; font-size: 14px; }
.talent-advanced-filter-head span,
.talent-advanced-filter-footer > span { color: #94a3b8; font-size: 12px; }

.talent-advanced-filter-summary {
  padding: 3px 9px;
  border-radius: 999px;
  background: #eff6ff;
  color: #3b82f6 !important;
  white-space: nowrap;
}

.talent-advanced-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(230px, 1fr));
  gap: 11px 22px;
}

.talent-advanced-filter-grid > label {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.talent-advanced-filter-grid > label > span:first-child {
  color: #475569;
  font-size: 12px;
  text-align: right;
}

.talent-advanced-filter-grid input,
.talent-advanced-filter-grid select {
  width: 100%;
  min-width: 0;
  height: 34px;
  padding: 0 10px;
  border: 1px solid #d7e0ec;
  border-radius: 8px;
  background: #fff;
  color: #1e293b;
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.talent-advanced-filter-grid input:focus,
.talent-advanced-filter-grid select:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.11);
}

.talent-city-combobox {
  position: relative;
  display: block;
  min-width: 0;
}

.talent-advanced-filter-grid .talent-city-combobox > input {
  padding-right: 38px;
}

.talent-city-combobox-toggle {
  position: absolute;
  top: 1px;
  right: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 32px;
  padding: 0;
  border: 0;
  border-left: 1px solid #edf2f8;
  border-radius: 0 7px 7px 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.talent-city-combobox-toggle:hover {
  background: #f4f8ff;
  color: #2563eb;
}

.talent-city-combobox-toggle > span {
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.15s ease;
}

.talent-city-combobox.is-open .talent-city-combobox-toggle > span {
  transform: translateY(2px) rotate(225deg);
}

.talent-city-combobox-options {
  position: absolute;
  z-index: 80;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  max-height: 224px;
  padding: 8px;
  overflow-y: auto;
  border: 1px solid #dbe6f4;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.14);
}

.talent-city-combobox-options[hidden] { display: none; }

.talent-city-combobox-option {
  min-width: 0;
  height: 30px;
  padding: 0 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #334155;
  font-size: 12px;
  text-align: center;
  cursor: pointer;
}

.talent-city-combobox-option:hover,
.talent-city-combobox-option.is-active {
  background: #eff6ff;
  color: #1d4ed8;
  font-weight: 600;
}

.talent-city-combobox-empty {
  grid-column: 1 / -1;
  padding: 18px 8px;
  color: #94a3b8;
  font-size: 12px;
  text-align: center;
}

.talent-advanced-status-field select {
  border-color: #bfdbfe;
  background: #f8fbff;
  color: #1d4ed8;
  font-weight: 600;
}

.talent-advanced-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
}

.talent-advanced-range em { color: #94a3b8; font-size: 12px; font-style: normal; }

.talent-advanced-filter-footer {
  padding-top: 12px;
  margin-top: 12px;
  border-top: 1px solid #e8eef7;
}

.talent-advanced-filter-actions { display: flex; align-items: center; gap: 8px; }
.talent-advanced-filter-actions .btn-primary { min-width: 72px; }

.talent-search-tag-advanced {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.talent-ai-search-panel {
  margin: -2px 0 12px;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff 0%, #fafbff 100%);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}

.talent-ai-search-fields {
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) minmax(170px, 0.9fr) 130px minmax(220px, 0.8fr) 92px;
  gap: 16px;
  align-items: end;
}

.talent-ai-search-fields > label:not(.talent-ai-phone-field) {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #334155;
  font-size: 12px;
}

.talent-ai-search-fields > label > span:first-child {
  flex: 0 0 auto;
  white-space: nowrap;
}

.talent-ai-search-fields input[type="text"],
.talent-ai-search-fields input[type="number"],
.talent-ai-search-fields select {
  min-width: 0;
  height: 30px;
  border: 1px solid #d8dee9;
  border-radius: 8px;
  background: #fff;
  color: #334155;
  font-size: 12px;
}

.talent-ai-search-fields input[type="text"],
.talent-ai-search-fields select {
  flex: 1 1 auto;
  width: 100%;
}

.talent-ai-search-fields select {
  height: 34px;
  min-height: 34px;
  padding: 0 34px 0 11px;
  line-height: 32px;
  white-space: nowrap;
}

#talent-ai-city {
  min-width: 118px;
}

#talent-ai-gender {
  min-width: 84px;
}

.talent-ai-age-range {
  display: grid;
  grid-template-columns: 1fr 28px 1fr;
  flex: 1 1 auto;
  align-items: center;
}

.talent-ai-age-range input {
  width: 100%;
  text-align: center;
}

.talent-ai-age-range em {
  height: 30px;
  border-top: 1px solid #d8dee9;
  border-bottom: 1px solid #d8dee9;
  color: #64748b;
  font-style: normal;
  line-height: 28px;
  text-align: center;
}

.talent-ai-phone-field {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 30px;
  color: #334155;
  font-size: 12px;
}

#talent-ai-query {
  width: 100%;
  min-height: 132px;
  box-sizing: border-box;
  margin-top: 10px;
  padding: 11px 12px;
  border: 0;
  border-radius: 10px;
  outline: none;
  resize: vertical;
  background: #f5f6f8;
  color: #334155;
  font-size: 13px;
  line-height: 1.6;
}

#talent-ai-query:focus {
  box-shadow: inset 0 0 0 1px #c4b5fd, 0 0 0 3px rgba(139, 92, 246, 0.08);
}

.talent-ai-search-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
}

.talent-ai-exclude-wrap {
  position: relative;
  flex: 0 0 auto;
}

.talent-ai-exclude-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid #dbe2ea;
  border-radius: 8px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(15, 23, 42, 0.05);
}

.talent-ai-exclude-btn:hover,
.talent-ai-exclude-btn[aria-expanded="true"] {
  border-color: #a5b4fc;
  color: #4f46e5;
  background: #f8f7ff;
}

.talent-ai-exclude-btn svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.talent-ai-exclude-caret {
  color: #94a3b8;
  font-size: 10px;
}

.talent-ai-exclude-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 7px);
  z-index: 30;
  width: 210px;
  overflow: hidden;
  padding: 5px 0;
  border: 1px solid #d9e0e8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
}

.talent-ai-exclude-menu button {
  display: block;
  width: 100%;
  padding: 8px 13px;
  border: 0;
  background: transparent;
  color: #253047;
  font-size: 12px;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}

.talent-ai-exclude-menu button:hover,
.talent-ai-exclude-menu button.is-selected {
  background: #eef2ff;
  color: #4338ca;
}

.talent-ai-search-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.talent-ai-link-btn {
  padding: 3px 0;
  border: 0;
  background: transparent;
  color: #4f46e5;
  font-size: 12px;
  cursor: pointer;
}

.talent-ai-link-btn:hover {
  text-decoration: underline;
}

.talent-ai-deep-option {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #475569;
  font-size: 12px;
  white-space: nowrap;
}

.talent-ai-submit {
  min-width: 74px;
  border-radius: 8px;
  background: linear-gradient(135deg, #6366f1, #3b82f6);
}

.talent-search-tag-ai {
  border-color: #c4b5fd;
  background: #f5f3ff;
  color: #6d28d9;
}

@media (max-width: 1200px) {
  .talent-advanced-filter-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
  .talent-ai-search-fields {
    grid-template-columns: minmax(240px, 1.5fr) minmax(160px, 1fr) 130px;
  }
}

@media (max-width: 768px) {
  .talent-advanced-filters { padding: 12px; }
  .talent-advanced-filter-head,
  .talent-advanced-filter-footer { align-items: flex-start; flex-direction: column; }
  .talent-advanced-filter-grid { grid-template-columns: 1fr; }
  .talent-advanced-filter-grid > label { grid-template-columns: 58px minmax(0, 1fr); }
  .talent-advanced-filter-actions { width: 100%; justify-content: flex-end; }
  .talent-ai-search-panel { padding: 10px; }
  .talent-ai-search-fields { grid-template-columns: 1fr; gap: 9px; }
  .talent-ai-search-fields > label:not(.talent-ai-phone-field) { align-items: flex-start; flex-direction: column; gap: 4px; }
  .talent-ai-age-range { width: 100%; }
  #talent-ai-query { min-height: 150px; }
  .talent-ai-search-footer { align-items: flex-start; flex-direction: column; }
  .talent-ai-search-actions { width: 100%; justify-content: flex-end; flex-wrap: wrap; }
}

.talent-search-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.talent-search-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border: 1px solid #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
  border-radius: 999px;
  font-size: 12px;
}

.talent-search-tag-text {
  max-width: 360px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.talent-search-tag-close {
  width: 18px;
  height: 18px;
  padding: 0;
  border: 1px solid #60a5fa;
  background: #fff;
  color: #2563eb;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
}

.talent-search-tag-close:hover {
  background: #dbeafe;
}

.btn-sm {
  padding: 4px 10px;
  height: 28px;
  font-size: 12px;
}

.btn-action {
  background: transparent;
  border: 1px solid #d1d5db;
  color: #374151;
  padding: 2px 8px;
  height: auto;
  font-size: 12px;
}

.btn-action:hover { background: #f3f4f6; }

.resume-table {
  border: 1px solid #cce4f8;
  border-radius: 10px;
  overflow-x: auto;
  overflow-y: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(30, 100, 160, 0.05);
}

.resume-table-header, .resume-table-row {
  display: grid;
  grid-template-columns: minmax(96px, 0.85fr) minmax(150px, 1.25fr) minmax(170px, 1.5fr) 80px 62px 100px 92px 104px 108px;
  gap: 8px;
  padding: 8px 14px;
  align-items: center;
  box-sizing: border-box;
  min-height: 50px;
  min-width: 1080px;
}

.resume-table.is-batch-mode .resume-table-header,
.resume-table.is-batch-mode .resume-table-row {
  grid-template-columns: 28px minmax(96px, 0.85fr) minmax(150px, 1.25fr) minmax(170px, 1.5fr) 80px 62px 100px 92px 104px 108px;
  min-width: 1120px;
}

.resume-table-header {
  min-height: 44px;
  background: #eef8ff;
  color: #1e3a56;
  font-size: 12.5px;
  font-weight: 700;
}

.resume-table-row {
  border-top: 1px solid #d8ebfb;
  color: #26384a;
  font-size: 12.5px;
  line-height: 1.35;
}

.resume-table-row:hover { background: #f5fbff; }
.resume-table-row.resume-unread { background: #fffdf5; }

.resume-table-row-clickable {
  cursor: pointer;
  transition: background-color 0.16s ease;
}

.resume-table-row-clickable:hover {
  background: #f3faff;
}

.col-name, .col-position, .col-company, .col-city, .col-salary, .col-age, .col-status, .col-last-contact {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.col-name { color: #172b3f; font-weight: 600; }
#talent-list .resume-table-row .col-name { display: flex; align-items: center; gap: 3px; }
.col-company { color: #334155; }
.col-city, .col-salary, .col-age, .col-status, .col-last-contact { text-align: center; }
.col-last-contact { color: #64748b; }
.col-remark { color: #475569; }
.resume-table-header .col-actions { text-align: center; }
.resume-table .resume-table-row .col-actions { display: flex; flex-direction: row; gap: 6px; align-items: center; justify-content: center; white-space: nowrap; }
.col-actions .btn-action { white-space: nowrap; }
.resume-table .col-actions .talent-row-action { display: inline-flex; align-items: center; justify-content: center; height: 30px; padding: 0 12px; border-radius: 6px; font-size: 12px; font-weight: 600; line-height: 1; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.resume-table .col-actions .talent-row-action.is-primary { width: 66px; }
.resume-table .col-actions .talent-row-action.is-primary { border: 1px solid #168bd2; background: #168bd2; color: #fff; }
.resume-table .col-actions .talent-row-action.is-primary:hover { border-color: #0878bd; background: #0878bd; color: #fff; }
.resume-table .col-actions .talent-row-action.is-secondary { width: 30px; min-width: 30px; padding: 0; border: 1px solid #cfe3f3; background: #fff; color: #52708a; font-weight: 500; }
.resume-table .col-actions .talent-row-action.is-secondary:hover { border-color: #cce4f8; background: #eef8ff; color: #0878bd; }
.resume-table .col-actions .talent-row-action.is-secondary svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.resume-table .col-actions .talent-row-action:focus-visible { outline: 2px solid #60a5fa; outline-offset: 1px; }

.resume-table.is-grid-view {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.resume-table.is-grid-view .resume-table-header { display: none; }
.talent-card-profile { display: none; }
.resume-table.is-grid-view .resume-table-body { display: grid; grid-template-columns: 1fr; gap: 10px; padding: 10px; border-radius: 12px; background: #f5f8fb; }
.resume-table.is-grid-view .resume-table-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(230px, .82fr) minmax(0, 2.6fr) 136px;
  grid-template-areas: "name profile actions";
  gap: 24px;
  min-width: 0;
  min-height: 150px;
  padding: 20px 22px;
  border: 1px solid #e3ebf3;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(30, 75, 115, 0.045);
}
.resume-table.is-grid-view .resume-table-row::after { position: absolute; inset: 14px auto 14px 0; width: 3px; border-radius: 0 3px 3px 0; background: #25a6df; content: ''; opacity: 0; transition: opacity .16s ease; }
.resume-table.is-grid-view .resume-table-row:hover { border-color: #b7dced; background: #fff; box-shadow: 0 7px 20px rgba(30, 100, 160, 0.1); transform: translateY(-1px); }
.resume-table.is-grid-view .resume-table-row:hover::after { opacity: 1; }
.resume-table.is-grid-view .resume-table-row.resume-unread { border-left: 3px solid #f59e0b; background: #fffdf7; }
.resume-table.is-grid-view .resume-table-row > .col-company,
.resume-table.is-grid-view .resume-table-row > .col-city,
.resume-table.is-grid-view .resume-table-row > .col-salary,
.resume-table.is-grid-view .resume-table-row > .col-age,
.resume-table.is-grid-view .resume-table-row > .col-position,
.resume-table.is-grid-view .resume-table-row > .col-status,
.resume-table.is-grid-view .resume-table-row > .col-last-contact { display: none; }
#talent-list.resume-table.is-grid-view .resume-table-row .col-name { grid-area: name; display: grid; grid-template-columns: 58px minmax(0, 1fr) 30px; grid-template-rows: 58px; align-content: center; align-items: center; gap: 0 16px; min-width: 0; padding-right: 22px; border-right: 1px solid #edf2f7; font-size: 17px; text-align: left; white-space: normal; }
.resume-table.is-grid-view .resume-table-row .col-name::before { display: grid; grid-column: 1; grid-row: 1; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: linear-gradient(145deg, #dff3ff, #b9ddf7); color: #147ab5; content: attr(data-initial); font-size: 21px; font-weight: 700; box-shadow: inset 0 0 0 1px rgba(22, 139, 210, .13); }
.resume-table.is-grid-view .resume-table-row:nth-child(3n + 2) .col-name::before { background: linear-gradient(145deg, #e9e4ff, #d4cafa); color: #6653ba; }
.resume-table.is-grid-view .resume-table-row:nth-child(3n) .col-name::before { background: linear-gradient(145deg, #dcf7ef, #bfe9dc); color: #16866c; }
.resume-table.is-grid-view .resume-table-row .col-name .talent-name-text { grid-column: 2; grid-row: 1; align-self: center; overflow: hidden; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.resume-table.is-grid-view .resume-table-row .col-name .talent-name-favorite { grid-column: 3; grid-row: 1; }
.resume-table.is-grid-view .talent-card-profile { grid-area: profile; display: grid; grid-template-columns: minmax(300px, 1.08fr) minmax(320px, .92fr); min-width: 0; align-items: center; gap: 28px; }
.resume-table.is-grid-view .talent-card-summary { position: relative; display: flex; min-width: 0; justify-content: center; flex-direction: column; gap: 8px; padding-right: 22px; }
.resume-table.is-grid-view .talent-card-basics { display: flex; min-height: 22px; align-items: center; flex-wrap: wrap; gap: 0; color: #17324a; font-size: 12px; font-weight: 650; }
.resume-table.is-grid-view .talent-card-basics > span { display: inline-flex; align-items: center; }
.resume-table.is-grid-view .talent-card-basics > span:not(:last-child)::after { margin: 0 9px; color: #d0d9e2; content: ''; width: 1px; height: 12px; background: currentColor; }
.resume-table.is-grid-view .talent-card-basics .is-placeholder { color: #9aaabd; font-weight: 500; }
.resume-table.is-grid-view .talent-card-intent { display: flex; min-width: 0; align-items: baseline; gap: 8px; font-size: 13px; }
.resume-table.is-grid-view .talent-card-intent em { flex: 0 0 auto; color: #74869a; font-style: normal; }
.resume-table.is-grid-view .talent-card-intent strong { min-width: 0; overflow: hidden; color: #18324b; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.resume-table.is-grid-view .talent-card-tags { display: flex; min-height: 22px; align-items: center; flex-wrap: wrap; gap: 5px; }
.resume-table.is-grid-view .talent-card-tags span { padding: 3px 8px; color: #52677b; border-radius: 4px; background: #f0f3f6; font-size: 10.5px; line-height: 1.35; }
.resume-table.is-grid-view .talent-card-meta-line { display: flex; min-height: 20px; align-items: center; justify-content: space-between; gap: 12px; color: #8293a5; font-size: 10.5px; }
.resume-table.is-grid-view .talent-card-meta-line .status-badge { padding: 2px 7px; font-size: 10.5px; }
.resume-table.is-grid-view .talent-card-headline { display: flex; min-width: 0; align-items: baseline; gap: 12px; }
.resume-table.is-grid-view .talent-card-headline strong { min-width: 0; overflow: hidden; color: #1e3348; font-size: 15px; font-weight: 650; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.resume-table.is-grid-view .talent-card-headline span { min-width: 0; overflow: hidden; color: #62758a; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.resume-table.is-grid-view .talent-card-headline span::before { margin-right: 7px; color: #c0cad5; content: '@'; }
.resume-table.is-grid-view .talent-card-facts { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; }
.resume-table.is-grid-view .talent-card-facts > span { display: inline-flex; min-height: 30px; align-items: center; gap: 7px; padding: 4px 10px; border: 1px solid #e8eef4; border-radius: 7px; background: #f8fafc; color: #41566c; font-size: 12px; }
.resume-table.is-grid-view .talent-card-facts em { color: #8a9aad; font-size: 11px; font-style: normal; }
.resume-table.is-grid-view .talent-card-facts b { max-width: 160px; overflow: hidden; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.resume-table.is-grid-view .talent-card-facts .status-badge { padding: 1px 7px; font-size: 11px; }
.resume-table.is-grid-view .talent-card-journey { position: relative; display: grid; min-width: 0; align-content: center; gap: 12px; padding: 4px 0 4px 30px; border-left: 1px solid #edf2f7; }
.resume-table.is-grid-view .talent-card-journey::before { position: absolute; top: 8px; bottom: 8px; left: 7px; width: 1px; background: #dce6ef; content: ''; }
.resume-table.is-grid-view .talent-card-journey-item { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr); min-width: 0; align-items: baseline; gap: 8px; }
.resume-table.is-grid-view .talent-card-journey-item::before { position: absolute; top: 7px; left: -25px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #91c9e8; content: ''; box-shadow: 0 0 0 1px #c8e2f1; }
.resume-table.is-grid-view .talent-card-journey-item:first-child::before { background: #22a4d9; }
.resume-table.is-grid-view .talent-card-journey-item em { color: #91a0af; font-size: 10.5px; font-style: normal; white-space: nowrap; }
.resume-table.is-grid-view .talent-card-journey-item strong { min-width: 0; overflow: hidden; color: #203d55; font-size: 12px; font-weight: 650; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }
.resume-table.is-grid-view .resume-table-row .col-actions { grid-area: actions; align-items: center; align-self: center; flex-direction: column; justify-content: center; gap: 8px; padding-left: 18px; border-left: 1px solid #edf2f7; }
.resume-table.is-grid-view .resume-table-row .col-actions .talent-row-action.is-primary { width: 100px; min-width: 100px; height: 34px; box-shadow: 0 3px 8px rgba(22, 139, 210, .16); }
.resume-table.is-grid-view .resume-table-row .col-actions .talent-row-action.is-secondary { width: auto; min-width: 0; height: 28px; padding: 0 4px; border-color: transparent; background: transparent; color: #1686c8; }
.resume-table.is-grid-view .resume-table-row .col-actions .talent-row-action.is-secondary .sr-only { position: static !important; width: auto !important; height: auto !important; margin: 0 !important; overflow: visible !important; clip: auto !important; white-space: nowrap !important; }
.resume-table.is-grid-view .resume-table-row .col-batch { position: absolute; top: 12px; left: 12px; }

@media (max-width: 900px) {
  .resume-table.is-grid-view .resume-table-row {
    grid-template-columns: 1fr;
    grid-template-areas:
      "name"
      "profile"
      "actions";
    gap: 14px;
  }
  .resume-table.is-grid-view .resume-table-row .col-name { padding: 0 0 14px; border-right: 0; border-bottom: 1px solid #edf2f7; }
  .resume-table.is-grid-view .talent-card-profile { grid-template-columns: 1fr; gap: 14px; }
  .resume-table.is-grid-view .talent-card-journey { padding-top: 10px; border-top: 1px solid #edf2f7; }
  .resume-table.is-grid-view .resume-table-row .col-actions { align-items: center; flex-direction: row; justify-content: flex-end; padding: 12px 0 0; border-top: 1px solid #edf2f7; border-left: 0; }
}

/* 推荐记录标签 */
.col-recommendations {
  display: flex;
  flex-wrap: nowrap;
  overflow: hidden;
  gap: 6px;
  align-items: center;
}

.rec-tag {
  display: inline-block;
  padding: 3px 8px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: #fff;
  font-size: 12px;
  border-radius: 4px;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: default;
  transition: all 0.2s;
}

.rec-tag:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
}

.rec-empty {
  color: #9ca3af;
  font-size: 13px;
}

/* 订单自动补全 */
.resume-recommend-modal .modal-content {
  --resume-project-modal-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  color: #334155;
  font-family: var(--resume-project-modal-font);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.resume-recommend-modal .modal-header {
  padding: 18px 22px;
}

.resume-recommend-modal .modal-body {
  padding: 18px 22px 20px;
}

.resume-recommend-modal .modal-footer {
  padding: 12px 22px 16px;
  gap: 10px;
}

.resume-recommend-modal button,
.resume-recommend-modal input,
.resume-recommend-modal textarea {
  font-family: var(--resume-project-modal-font);
  letter-spacing: 0;
}

.resume-recommend-modal .modal-header h3 {
  font-family: inherit;
  color: #172033;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
}

.resume-recommend-modal .form-group > label {
  font-family: inherit;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

.resume-recommend-modal .form-group input,
.resume-recommend-modal .form-group textarea {
  border-color: #d6dfeb;
  border-radius: 8px;
  color: #334155;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.55;
}

.resume-recommend-modal .form-group input {
  min-height: 38px;
  padding: 8px 11px;
}

.resume-recommend-modal .form-group textarea {
  min-height: 86px;
  padding: 10px 11px;
  resize: vertical;
}

.resume-recommend-modal input::placeholder,
.resume-recommend-modal textarea::placeholder {
  font-family: inherit;
  font-weight: 400;
}

.resume-recommend-modal .order-autocomplete-hint,
.resume-recommend-modal .resume-join-selected-empty {
  font-family: inherit;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

.resume-recommend-modal .resume-join-selected-head {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

.resume-recommend-modal .modal-footer button {
  font-family: inherit;
  min-height: 36px;
  padding: 8px 15px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
}

.order-autocomplete-wrapper {
  position: relative;
}

.order-autocomplete-hint {
  margin-top: 6px;
  color: #94a3b8;
  font-size: 12px;
}

.order-autocomplete-wrapper input.has-order-selection {
  border-color: #60a5fa;
  background: #f8fbff;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.08);
}

.resume-join-selected {
  margin-top: 10px;
  padding: 10px;
  border: 1px solid #dce7f5;
  border-radius: 9px;
  background: #f8fbff;
}

.resume-join-selected-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  color: #53657d;
  font-size: 12px;
  font-weight: 600;
}

.resume-join-selected-head span:last-child { color: #2563eb; font-weight: 600; }
.resume-join-selected-list { display: flex; flex-wrap: wrap; gap: 6px; }
.resume-join-selected-empty { width: 100%; padding: 6px 2px; color: #94a3b8; font-size: 12px; }

.resume-join-selected-chip {
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 5px 6px 5px 9px;
  border: 1px solid #cfe0f8;
  border-radius: 7px;
  background: #fff;
  color: #334155;
}

.resume-join-selected-chip-copy { min-width: 0; display: flex; align-items: center; gap: 6px; line-height: 1.45; }
.resume-join-selected-chip-copy strong { overflow: hidden; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.resume-join-selected-chip-copy small { overflow: hidden; color: #8492a6; font-size: 12px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.resume-join-selected-chip button {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  display: grid;
  place-items: center;
  padding: 0 0 2px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
}
.resume-join-selected-chip button:hover { background: #fee2e2; color: #dc2626; }

.order-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  margin-top: 4px;
  max-height: 240px;
  overflow-y: auto;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  z-index: 1000;
}

.suggestion-owner {
  margin-top: 3px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.5;
}

.order-suggestion-item {
  padding: 10px 14px;
  cursor: pointer;
  transition: background 0.15s;
  border-bottom: 1px solid #f3f4f6;
}

.order-suggestion-item:last-child {
  border-bottom: none;
}

.order-suggestion-item:hover {
  background: #f8fafc;
}

.order-suggestion-item.is-active {
  background: #eff6ff;
}

.order-suggestion-item.is-selected { background: #eff6ff; }
.suggestion-heading-actions { display: inline-flex; align-items: center; gap: 7px; }
.resume-join-option-check {
  width: 20px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #bfd6f5;
  border-radius: 6px;
  background: #f7fbff;
  color: #3b82f6;
  font-size: 13px;
  font-weight: 700;
}
.order-suggestion-item.is-selected .resume-join-option-check { border-color: #60a5fa; background: #3b82f6; color: #fff; }

#resume-recommend-submit:disabled { opacity: 0.55; cursor: not-allowed; }

.order-suggestion-empty,
.order-suggestion-loading {
  padding: 14px;
  color: #94a3b8;
  font-size: 13px;
  text-align: center;
}

.order-suggestion-loading {
  color: #64748b;
}

.suggestion-company {
  color: #111827;
  font-size: 13px;
  font-weight: 600;
}

.suggestion-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 3px;
}

.suggestion-heading .suggestion-company {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.suggestion-type-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1;
  font-weight: 500;
}

.suggestion-type-badge.is-order {
  color: #2563eb;
  background: #eff6ff;
}

.suggestion-type-badge.is-create {
  color: #059669;
  background: #ecfdf5;
}

.suggestion-position {
  color: #6b7280;
  font-size: 12px;
  line-height: 1.5;
}

.resume-pagination {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
  align-items: center;
  justify-content: stretch;
  gap: 12px;
  width: 100%;
  margin-top: 16px;
}

.resume-page-size {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 8px;
  color: #64748b;
  font-size: 13px;
  white-space: nowrap;
}

.resume-page-size select {
  width: 96px;
  min-width: 96px;
  flex: 0 0 96px;
  height: 36px;
  padding: 0 32px 0 12px;
  border: 1px solid #d7e1ec;
  border-radius: 7px;
  background-color: #fff;
  color: #334155;
  font: inherit;
  line-height: 34px;
  box-sizing: border-box;
  cursor: pointer;
}

.resume-page-size select:hover { border-color: #9fc9e8; }
.resume-page-size select:focus { border-color: #168bd2; outline: 2px solid rgba(22, 139, 210, 0.12); outline-offset: 1px; }

.resume-pagination-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.resume-page-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 142px;
  color: #334155;
  font-size: 14px;
  white-space: nowrap;
}

.resume-page-info strong {
  color: #0f172a;
  font-weight: 600;
}

.resume-page-input {
  width: 42px;
  height: 34px;
  padding: 0 5px;
  border: 1px solid #d7e1ec;
  border-radius: 7px;
  background: #fff;
  color: #0f172a;
  font: inherit;
  font-weight: 600;
  line-height: 32px;
  text-align: center;
  box-sizing: border-box;
  transition: border-color .16s ease, box-shadow .16s ease;
  appearance: textfield;
  -moz-appearance: textfield;
}

.resume-page-input::-webkit-outer-spin-button,
.resume-page-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.resume-page-input:hover { border-color: #9fc9e8; }

.resume-page-input:focus {
  border-color: #168bd2;
  outline: none;
  box-shadow: 0 0 0 3px rgba(22, 139, 210, 0.12);
}

.resume-pagination-spacer { justify-self: end; }

.daily-summary-section h4, .team-summaries-section h4, .kpi-settings-section h4, .team-kpi-stats h4 {
  margin: 0 0 12px 0;
  font-size: 15px;
  color: #1f2937;
}

.summary-input-area {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.summary-input-area textarea {
  min-height: 100px;
}

.summary-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.summary-form .form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.summary-form .form-group label {
  font-weight: 500;
  color: #374151;
  font-size: 14px;
}

.summary-form .form-row-inline {
  display: flex;
  gap: 16px;
}

.summary-form .form-row-inline .form-group {
  flex: 1;
}

.recommendation-row {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
  align-items: center;
}

.recommendation-row .rec-company {
  flex: 2;
}

.recommendation-row .rec-count {
  width: 80px;
}

.recommendation-row .btn-remove {
  background: #ef4444;
  color: #fff;
  border: none;
  border-radius: 4px;
  width: 28px;
  height: 28px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.recommendation-row .btn-remove .icon-x {
  width: 14px;
  height: 14px;
  stroke-width: 2.6;
}

.btn-sm {
  padding: 4px 10px;
  font-size: 13px;
}

.summary-field {
  margin-bottom: 6px;
  line-height: 1.5;
}

.summary-field b {
  color: #374151;
}

.summary-filter {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.summaries-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.summary-item {
  background: #f8fafc;
  border-radius: 8px;
  padding: 12px;
}

.summary-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}

.summary-user { font-weight: 600; color: #1f2937; }
.summary-date { font-size: 12px; color: #6b7280; }
.summary-content { font-size: 14px; color: #374151; line-height: 1.6; }
.summary-text { white-space: pre-wrap; word-break: break-word; }

.talent-summary-panel {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 12px;
}

.summary-compact-form { display: flex; flex-direction: column; gap: 8px; }
.summary-compact-row { display: flex; flex-direction: column; gap: 4px; }
.summary-compact-row label { font-size: 12px; color: #6b7280; font-weight: 500; }
.summary-compact-row textarea { font-size: 13px; padding: 8px 10px; resize: vertical; min-height: 96px; }
.summary-compact-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.summary-file-list { display: flex; flex-wrap: wrap; gap: 8px; }
.summary-file-chip {
  display: inline-flex;
  align-items: center;
  max-width: 220px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.summary-attachments,
.summary-card-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.summary-attachment-item {
  width: 120px;
}
.summary-attachment-button {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.summary-attachment-thumb {
  width: 100%;
  height: 84px;
  border-radius: 8px;
  background: #e5e7eb;
  object-fit: cover;
  display: block;
}
.summary-attachment-name {
  margin-top: 6px;
  font-size: 12px;
  color: #374151;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.summary-attachment-download {
  margin-top: 4px;
  font-size: 12px;
}
.summary-attachment-empty {
  font-size: 12px;
  color: #6b7280;
}

.my-summaries-list { display: flex; flex-direction: column; gap: 16px; }
.summary-date-group { margin-bottom: 8px; }
.summary-date-title { font-size: 13px; font-weight: 600; color: #6b7280; padding: 4px 0; border-bottom: 1px solid #e5e7eb; margin-bottom: 8px; }
.summary-card { background: #f8fafc; border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.summary-card-row { display: flex; gap: 16px; margin-bottom: 4px; }
.summary-card-label { color: #6b7280; min-width: 70px; }
.summary-card-value { color: #1f2937; }
.summary-card-text { color: #374151; line-height: 1.5; margin-top: 6px; padding-top: 6px; border-top: 1px dashed #e5e7eb; }
.summary-card-attachments { margin-top: 10px; }
.summary-stat-line { font-size: 12px; color: #2563eb; font-weight: 600; margin-bottom: 6px; }
.summary-pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 12px; font-size: 13px; color: #6b7280; }
.summary-pager button:disabled { opacity: .5; cursor: not-allowed; }

.kpi-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 400px;
}

.kpi-form .form-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.kpi-form label { min-width: 100px; font-size: 14px; color: #374151; }
.kpi-form input[type="number"] { width: 80px; }
.kpi-form .form-hint { font-size: 12px; color: #6b7280; }

.kpi-stats-table {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
}

.kpi-table-header, .kpi-table-row {
  display: grid;
  grid-template-columns: 1fr 80px 80px 100px;
  gap: 8px;
  padding: 10px 12px;
}

.kpi-table-header {
  background: #f3f4f6;
  font-weight: 600;
  font-size: 13px;
}

.kpi-table-row { border-top: 1px solid #e5e7eb; font-size: 13px; }

.status-badge {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.status-done { color: #10b981; font-weight: 500; }
.status-pending { color: #f59e0b; font-weight: 500; }
.status-badge.status-done { background: #ecfdf5; color: #047857; }
.status-badge.status-pending { background: #fffbeb; color: #b45309; }
.status-badge.status-draft { background: #f1f5f9; color: #64748b; }

@media (max-width: 768px) {
  #channel-talent > .panel-body,
  #channel-talent > .panel-body.talent-sidebar-open {
    position: relative;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 8px;
  }
  .talent-category-sidebar { position: absolute; top: 0; left: 0; }
  .talent-category-heading small { display: none; }
  .talent-top-row { grid-template-columns: 1fr; }
  .kpi-cards { grid-template-columns: repeat(2, 1fr); }
  .talent-favorite-folders { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 140px; }
  .talent-favorites-heading small { display: none; }
  .talent-favorites-total { display: none; }
  .resume-toolbar { align-items: flex-start; flex-direction: column; }
  .resume-toolbar-meta { width: 100%; justify-content: space-between; }
  .resume-table-header, .resume-table-row {
    grid-template-columns: minmax(96px, 0.85fr) minmax(150px, 1.25fr) minmax(170px, 1.5fr) 80px 62px 100px 92px 104px 108px;
    gap: 8px;
    padding: 10px 10px;
    min-height: 46px;
  }
  .col-actions { gap: 4px; }
}

.tools-panel-body { padding: 24px; }
.tools-container { max-width: 1200px; margin: 0 auto; }
#channel-tools > .panel-header {
  width: calc(100% - 48px);
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.tools-section { margin-bottom: 40px; }
.tools-section-title { font-size: 20px; font-weight: 600; color: #1f2937; margin-bottom: 8px; }
.tools-section-desc { color: #6b7280; margin-bottom: 20px; }
.tools-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.tool-card { background: #fff; border-radius: 12px; padding: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); border: 1px solid #e5e7eb; transition: all 0.3s; }
.tool-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.12); }
.tool-card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.tool-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.tool-icon.blue { background: linear-gradient(135deg, #3b82f6, #1d4ed8); }
.tool-icon.pink { background: linear-gradient(135deg, #ec4899, #be185d); }
.tool-icon.green { background: linear-gradient(135deg, #10b981, #047857); }
.tool-icon.purple { background: linear-gradient(135deg, #8b5cf6, #6d28d9); }
.tool-icon.orange { background: linear-gradient(135deg, #f59e0b, #d97706); }
.tool-card-title { font-size: 16px; font-weight: 600; color: #1f2937; }
.tool-status { font-size: 12px; padding: 2px 8px; border-radius: 12px; background: #fef3c7; color: #92400e; }
.tool-card-desc { color: #6b7280; font-size: 14px; line-height: 1.6; margin-bottom: 16px; }
.tool-steps { background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 16px; }
.tool-steps-title { font-size: 13px; font-weight: 600; color: #374151; margin-bottom: 8px; }
.tool-steps ol { margin: 0; padding-left: 20px; font-size: 13px; color: #6b7280; }
.tool-steps li { margin-bottom: 4px; }
.tool-vote { display: flex; gap: 12px; align-items: center; }
.vote-btn { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 20px; border: 1px solid #e5e7eb; background: #fff; cursor: pointer; font-size: 14px; transition: all 0.2s; }
.vote-btn.up:hover, .vote-btn.up.active { background: #dcfce7; border-color: #22c55e; color: #15803d; }
.vote-btn.down:hover, .vote-btn.down.active { background: #fee2e2; border-color: #ef4444; color: #dc2626; }
.vote-count { font-weight: 600; }
.suggestion-form { display: flex; gap: 12px; margin-bottom: 20px; }
.suggestion-form textarea { flex: 1; padding: 12px; border: 1px solid #e5e7eb; border-radius: 8px; resize: none; font-size: 14px; }
.suggestion-form button { padding: 12px 24px; }
.suggestion-list { display: flex; flex-direction: column; gap: 12px; }
.suggestion-item { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px; }
.suggestion-header { display: flex; justify-content: space-between; margin-bottom: 8px; }
.suggestion-user { font-weight: 600; color: #1f2937; }
.suggestion-time { font-size: 12px; color: #9ca3af; }
.suggestion-content { color: #374151; font-size: 14px; line-height: 1.6; }
.reward-section { text-align: center; background: linear-gradient(135deg, #fef3c7, #fef9c3); border-radius: 16px; padding: 32px; }
.reward-tiger-avatar { margin: 20px 0; }
.reward-tiger-avatar img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; box-shadow: 0 4px 20px rgba(245, 158, 11, 0.3); }
.reward-buttons { display: flex; justify-content: center; gap: 16px; margin: 24px 0; }
.reward-btn { padding: 12px 32px; border-radius: 24px; border: none; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.3s; }
.reward-btn.reward-8 { background: linear-gradient(135deg, #fbbf24, #f59e0b); color: #fff; }
.reward-btn.reward-88 { background: linear-gradient(135deg, #f97316, #ea580c); color: #fff; }
.reward-btn.reward-888 { background: linear-gradient(135deg, #ef4444, #dc2626); color: #fff; }
.reward-btn:hover { transform: scale(1.05); box-shadow: 0 4px 16px rgba(0,0,0,0.2); }
.reward-ranking { margin-top: 32px; background: #fff; border-radius: 12px; padding: 20px; }
.reward-ranking h4 { font-size: 16px; margin-bottom: 16px; color: #1f2937; }
.ranking-list { display: flex; flex-direction: column; gap: 8px; }
.ranking-item { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 8px; background: #f8fafc; }
.ranking-item.rank-1 { background: linear-gradient(135deg, #fef3c7, #fde68a); }
.ranking-item.rank-2 { background: linear-gradient(135deg, #e5e7eb, #d1d5db); }
.ranking-item.rank-3 { background: linear-gradient(135deg, #fed7aa, #fdba74); }
.ranking-badge { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.rank-1 .ranking-badge { background: #fbbf24; color: #fff; }
.rank-2 .ranking-badge { background: #9ca3af; color: #fff; }
.rank-3 .ranking-badge { background: #f97316; color: #fff; }
.ranking-user { flex: 1; font-weight: 500; color: #1f2937; }
.ranking-amount { font-weight: 700; color: #f59e0b; }
.plugin-center-section { background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%); border: 1px solid #e2e8f0; border-radius: 16px; padding: 24px; }
.plugin-package-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-bottom: 20px; }
.plugin-package-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 16px; }
.plugin-package-title { font-size: 16px; font-weight: 600; color: #111827; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.plugin-package-meta { margin: 0 0 14px; padding: 0; list-style: none; font-size: 13px; color: #4b5563; }
.plugin-package-meta li { margin-bottom: 6px; word-break: break-all; }
.plugin-package-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.plugin-package-actions .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100px;
  height: 44px;
  min-height: 44px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}

/* 插件下载版本选择 */
.plugin-download-modal {
  z-index: 1350;
  padding: 20px;
  box-sizing: border-box;
  background: rgba(15, 23, 42, 0.54);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.plugin-download-modal-card {
  width: min(620px, 100%);
  max-width: 620px;
  max-height: min(760px, calc(100vh - 40px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 20px;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28), 0 8px 24px rgba(37, 99, 235, 0.10);
  animation: plugin-download-modal-in 180ms ease-out;
}
.plugin-download-modal-header {
  position: relative;
  display: flex;
  gap: 15px;
  align-items: flex-start;
  padding: 24px 24px 20px;
  overflow: hidden;
  background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 54%, #eef2ff 100%);
  border-bottom: 1px solid #e5e7eb;
}
.plugin-download-modal-header::after {
  content: '';
  position: absolute;
  width: 150px;
  height: 150px;
  right: -55px;
  top: -82px;
  border-radius: 50%;
  background: rgba(59, 130, 246, 0.10);
  pointer-events: none;
}
.plugin-download-browser-mark {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  font-size: 25px;
  background: #fff;
  border: 1px solid #dbeafe;
  border-radius: 15px;
  box-shadow: 0 8px 20px rgba(37, 99, 235, 0.12);
}
.plugin-download-title-group { position: relative; z-index: 1; min-width: 0; padding-right: 36px; }
.plugin-download-eyebrow {
  display: block;
  margin: 0 0 3px;
  color: #2563eb;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}
.plugin-download-title-group h3 { margin: 0; color: #0f172a; font-size: 21px; line-height: 1.4; }
.plugin-download-title-group p { margin: 5px 0 0; color: #64748b; font-size: 13px; line-height: 1.5; }
.plugin-download-close { position: absolute; z-index: 2; top: 18px; right: 18px; color: #64748b; }
.plugin-download-modal-body { padding: 21px 24px 20px; background: #fff; }
.plugin-download-section-label { margin-bottom: 10px; color: #475569; font-size: 13px; font-weight: 650; }
.plugin-download-options { display: grid; gap: 11px; }
.plugin-release-option {
  position: relative;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 22px;
  gap: 13px;
  align-items: flex-start;
  width: 100%;
  min-height: 116px;
  padding: 16px;
  color: #0f172a;
  text-align: left;
  font-family: inherit;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.plugin-release-option:hover { border-color: #93c5fd; background: #f8fbff; transform: translateY(-1px); }
.plugin-release-option:focus-visible { outline: 3px solid rgba(59, 130, 246, .20); outline-offset: 2px; }
.plugin-release-option.selected {
  border-color: #3b82f6;
  background: linear-gradient(135deg, #eff6ff 0%, #fff 76%);
  box-shadow: 0 0 0 1px rgba(59, 130, 246, .10), 0 8px 20px rgba(37, 99, 235, .08);
}
.plugin-release-radio {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border: 1.5px solid #cbd5e1;
  border-radius: 50%;
  background: #fff;
}
.plugin-release-radio span { width: 8px; height: 8px; border-radius: 50%; background: transparent; }
.plugin-release-option.selected .plugin-release-radio { border-color: #2563eb; }
.plugin-release-option.selected .plugin-release-radio span { background: #2563eb; }
.plugin-release-content { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.plugin-release-heading { display: flex; align-items: center; gap: 8px; }
.plugin-release-heading strong { font-size: 16px; line-height: 1.4; }
.plugin-release-badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  background: #dbeafe;
  border-radius: 999px;
}
.plugin-release-badge.stable { color: #047857; background: #d1fae5; }
.plugin-release-description { color: #64748b; font-size: 13px; line-height: 1.45; }
.plugin-release-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; color: #475569; font-size: 12px; }
.plugin-release-meta span { position: relative; }
.plugin-release-meta span + span::before { content: ''; position: absolute; left: -9px; top: 6px; width: 3px; height: 3px; border-radius: 50%; background: #cbd5e1; }
.plugin-release-sync-note { width: fit-content; color: #64748b; font-size: 11px; }
.plugin-release-check {
  align-self: center;
  width: 21px;
  height: 21px;
  fill: none;
  stroke: transparent;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.plugin-release-option.selected .plugin-release-check { stroke: #2563eb; }
.plugin-download-tip {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 14px;
  padding: 11px 13px;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
}
.plugin-download-tip > svg { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; fill: none; stroke: #64748b; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.plugin-download-tip > div { display: flex; flex-direction: column; gap: 2px; font-size: 12px; line-height: 1.5; }
.plugin-download-tip strong { color: #334155; }
.plugin-download-error { align-items: center; margin-top: 12px; padding: 9px 12px; color: #b91c1c; font-size: 13px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 9px; }
.plugin-download-modal-footer { justify-content: space-between; padding: 16px 24px; background: #fbfdff; }
.plugin-download-selection-summary { color: #64748b; font-size: 12px; }
.plugin-download-footer-actions { display: flex; gap: 10px; align-items: center; margin-left: auto; }
.plugin-download-footer-actions > button { height: 40px; min-height: 40px; padding: 0 18px; border-radius: 9px; font-family: inherit; }
.plugin-download-footer-actions .btn-secondary { color: #475569; background: #fff; border: 1px solid #cbd5e1; box-shadow: none; }
.plugin-download-footer-actions .btn-secondary:hover { color: #1e293b; background: #f8fafc; border-color: #94a3b8; }
.plugin-download-footer-actions > button:focus-visible { outline: 3px solid rgba(59, 130, 246, .22); outline-offset: 2px; }
.plugin-download-confirm { display: inline-flex; align-items: center; gap: 7px; min-width: 156px; justify-content: center; }
.plugin-download-confirm > svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.plugin-download-confirm:disabled { cursor: wait; opacity: .72; }
.plugin-download-spinner { width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: plugin-download-spin .7s linear infinite; }
@keyframes plugin-download-modal-in { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes plugin-download-spin { to { transform: rotate(360deg); } }

.plugin-install-box, .plugin-faq-box, .plugin-debug-box { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 16px; margin-bottom: 16px; }
.plugin-install-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.plugin-install-header h4, .plugin-faq-box h4, .plugin-debug-box h4 { margin: 0; color: #111827; font-size: 16px; }
.plugin-install-tabs { display: flex; gap: 8px; }
.plugin-tab-btn { border: 1px solid #d1d5db; background: #fff; color: #374151; border-radius: 999px; padding: 6px 14px; height: auto; }
.plugin-tab-btn.active { background: #2563eb; border-color: #2563eb; color: #fff; }
.plugin-install-steps { margin: 0; padding-left: 20px; color: #374151; line-height: 1.8; }
.plugin-faq-item { padding: 10px 0; border-bottom: 1px solid #f1f5f9; }
.plugin-faq-item:last-child { border-bottom: none; }
.plugin-faq-q { font-weight: 600; color: #111827; margin-bottom: 4px; }
.plugin-faq-a { color: #475569; font-size: 14px; }
.plugin-debug-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.plugin-debug-grid textarea { grid-column: 1 / -1; }
.plugin-debug-actions { display: flex; gap: 10px; margin-top: 10px; }
.plugin-debug-result { margin: 10px 0 0; padding: 12px; background: #0f172a; color: #e2e8f0; border-radius: 8px; min-height: 72px; white-space: pre-wrap; word-break: break-word; font-size: 12px; }
@media (max-width: 768px) {
  .tools-grid { grid-template-columns: 1fr; }
  .suggestion-form { flex-direction: column; }
  .reward-buttons { flex-direction: column; align-items: center; }
  .plugin-debug-grid { grid-template-columns: 1fr; }
  .plugin-install-header { flex-direction: column; align-items: flex-start; }
  .plugin-download-modal { padding: 12px; }
  .plugin-download-modal-card { max-height: calc(100vh - 24px); border-radius: 16px; }
  .plugin-download-modal-header { padding: 20px 18px 17px; gap: 12px; }
  .plugin-download-browser-mark { flex-basis: 44px; width: 44px; height: 44px; border-radius: 13px; font-size: 21px; }
  .plugin-download-title-group { padding-right: 25px; }
  .plugin-download-title-group h3 { font-size: 18px; }
  .plugin-download-modal-body { padding: 18px; }
  .plugin-release-option { grid-template-columns: 18px minmax(0, 1fr); min-height: 0; padding: 14px; gap: 11px; }
  .plugin-release-check { display: none; }
  .plugin-download-modal-footer { flex-direction: column; align-items: stretch; padding: 14px 18px 18px; }
  .plugin-download-selection-summary { text-align: center; }
  .plugin-download-footer-actions { width: 100%; margin-left: 0; }
  .plugin-download-footer-actions > button { flex: 1; }
}

.annual-goal-display, .annual-goal-entry {
  cursor: pointer;
  color: #10b981;
  font-size: 14px;
}
.annual-goal-display:hover, .annual-goal-entry:hover {
  color: #059669;
  text-decoration: none;
  background: #f3f4f6;
}
.annual-goal-icon {
  margin-right: 4px;
}
.annual-goal-text {
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
}
#annual-goal-input {
  width: 100%;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 14px;
  resize: vertical;
}
.goal-review-item {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
}
.goal-review-user {
  font-size: 14px;
  color: #374151;
  margin-bottom: 8px;
}
.goal-review-content {
  font-size: 14px;
  color: #1f2937;
  line-height: 1.6;
  padding: 12px;
  background: #fff;
  border-radius: 6px;
  margin-bottom: 12px;
}
.goal-review-actions {
  display: flex;
  gap: 8px;
}
.btn-success {
  background: #10b981;
  color: #fff;
  border: none;
  padding: 6px 16px;
  border-radius: 6px;
  cursor: pointer;
}
.btn-success:hover {
  background: #059669;
}
.btn-danger {
  background: #ef4444;
  color: #fff;
  border: none;
  padding: 6px 16px;
  border-radius: 6px;
  cursor: pointer;
}
.btn-danger:hover {
  background: #dc2626;
}
.btn-sm {
  padding: 4px 12px;
  font-size: 12px;
}
.editable {
  cursor: pointer;
  border-bottom: 1px dashed transparent;
  transition: border-color .2s, background .2s;
  border-radius: 3px;
  padding: 1px 4px;
  margin: -1px -4px;
}
.editable:hover {
  border-bottom-color: #d1d5db;
  background: #f3f4f6;
}
.editable .inline-edit-input,
.editable .inline-edit-select {
  font: inherit;
  color: inherit;
  border: 1px solid #3b82f6;
  border-radius: 4px;
  padding: 2px 6px;
  outline: none;
  background: #fff;
  min-width: 60px;
  box-shadow: 0 0 0 2px rgba(59,130,246,.15);
}
h4.editable .inline-edit-input {
  font-size: inherit;
  font-weight: inherit;
}
.editable-composite .inline-edit-input {
  width: 80px;
  margin: 0 2px;
}
.editable-composite .inline-edit-sep {
  margin: 0 2px;
  color: #64748b;
}
.run-panel-collapse { margin-top: 24px; border: 1px solid #e5e7eb; border-radius: 10px; background: #f9fafb; }
.run-panel-collapse summary { cursor: pointer; padding: 14px 20px; font-size: 16px; font-weight: 600; color: #374151; user-select: none; list-style: none; display: flex; align-items: center; gap: 8px; }
.run-panel-collapse summary::before { content: "\25B6"; font-size: 12px; transition: transform .2s; }
.run-panel-collapse[open] summary::before { transform: rotate(90deg); }
.run-panel-collapse summary:hover { color: #374151; background: #f3f4f6; }
.run-panel-collapse[open] > .panel { border: none; box-shadow: none; margin-bottom: 0; }

.admin-filter-bar {
  display: grid; grid-template-columns: minmax(180px, 1.35fr) repeat(5, minmax(130px, 1fr)); gap: 12px;
  padding: 16px; margin-bottom: 14px;
  background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px;
}
.admin-filter-bar .filter-item { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.admin-filter-bar .filter-item label { font-size: 12px; font-weight: 600; color: #64748b; }
.admin-filter-bar .filter-item input,
.admin-filter-bar .filter-item select { width: 100%; height: 38px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 13px; background: #fff; }
.admin-filter-bar .filter-item input:focus,
.admin-filter-bar .filter-item select:focus { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,.12); outline: none; }

/* 用户管理顶部工作区 */
#admin-panel {
  --admin-accent: #2563eb;
  --admin-accent-soft: #eff6ff;
  --admin-border: #e2e8f0;
}
.admin-management-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 24px;
  margin: -18px -20px 20px; padding: 24px 28px;
  border-bottom: 1px solid #dbeafe;
  background: linear-gradient(118deg, #f8fbff 0%, #eff6ff 52%, #f8fafc 100%);
}
.admin-management-kicker {
  display: block; margin-bottom: 6px; color: var(--admin-accent);
  font-size: 11px; line-height: 1; font-weight: 700; letter-spacing: .12em;
}
.admin-management-header h2 { margin: 0; color: #0f172a; font-size: 24px; line-height: 1.25; }
.admin-management-header p { margin: 7px 0 0; color: #64748b; font-size: 13px; }
.admin-management-badge {
  flex: none; display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 11px; border: 1px solid #bfdbfe; border-radius: 999px;
  background: rgba(255,255,255,.82); color: #1d4ed8; font-size: 12px; font-weight: 600;
}
.admin-management-badge::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59,130,246,.12);
}
.admin-management-section {
  padding: 18px; border: 1px solid var(--admin-border); border-radius: 14px; background: #fff;
}
.admin-model-section { margin-bottom: 16px; background: linear-gradient(180deg, #fff 0%, #fbfdff 100%); }
.admin-create-section { margin-bottom: 22px; }
.admin-section-heading,
.admin-user-list-header {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.admin-section-heading { margin-bottom: 16px; }
.admin-section-heading h3,
.admin-user-list-header h3 { margin: 0; color: #1e293b; font-size: 16px; line-height: 1.35; }
.admin-section-heading p,
.admin-user-list-header p { margin: 4px 0 0; color: #94a3b8; font-size: 12px; }
.admin-model-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.admin-create-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px 12px; }
.admin-field { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.admin-field > span { color: #475569; font-size: 12px; font-weight: 600; }
.admin-field-required > span::after { content: " *"; color: #ef4444; }
.admin-field input,
.admin-field select {
  width: 100%; height: 40px; padding: 0 11px; border-color: #cbd5e1; border-radius: 8px;
  color: #1e293b; background: #fff; transition: border-color .15s, box-shadow .15s;
}
.admin-field input:hover,
.admin-field select:hover { border-color: #94a3b8; }
.admin-field input:focus,
.admin-field select:focus {
  border-color: var(--admin-accent); outline: none; box-shadow: 0 0 0 3px rgba(37,99,235,.10);
}
.admin-field input::placeholder { color: #b0bac8; }
.admin-required-note { display: inline-flex; align-items: center; gap: 7px; color: #94a3b8; font-size: 12px; white-space: nowrap; }
.admin-required-note i { width: 6px; height: 6px; border-radius: 50%; background: #ef4444; }
.admin-create-actions {
  display: flex; min-height: 36px; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 16px;
}
.admin-primary-action { min-width: 112px; font-weight: 600; box-shadow: 0 5px 12px rgba(37,99,235,.18); }
.admin-inline-message { margin-top: 0; font-size: 13px; }
.admin-model-section > .admin-inline-message:not(:empty) { display: block; margin-top: 10px; }
.admin-import-strip {
  display: grid; grid-template-columns: minmax(200px, 1fr) auto; align-items: center; gap: 14px 24px;
  margin-top: 18px; padding: 14px 16px; border: 1px dashed #cbd5e1; border-radius: 10px; background: #f8fafc;
}
.admin-import-copy { display: flex; align-items: center; gap: 11px; color: #334155; }
.admin-import-copy strong { display: block; font-size: 13px; }
.admin-import-copy small { display: block; margin-top: 2px; color: #94a3b8; font-size: 11px; }
.admin-import-icon {
  display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px;
  background: #dbeafe; color: #2563eb; font-size: 19px; font-weight: 700;
}
.admin-import-control { display: flex; align-items: center; gap: 10px; }
.admin-import-control label { min-width: 280px; }
.admin-import-control input[type="file"] { width: 100%; margin: 0; border-color: #cbd5e1; background: #fff; }
.admin-import-strip > .message:empty { display: none; }
.admin-import-strip > .message:not(:empty) { grid-column: 1 / -1; }
.admin-create-section > #admin-addressbook-result:empty { display: none; }
.admin-create-section > #admin-addressbook-result:not(:empty) { margin-top: 14px; }
.admin-user-list-header { margin: 0 0 12px; }
.admin-user-list-actions { display: flex; align-items: center; gap: 9px; }
.admin-merge-button {
  height: 34px; padding: 0 14px; border-color: #c4b5fd; background: #f5f3ff; color: #6d28d9; font-weight: 600;
}
.admin-merge-button:hover { border-color: #a78bfa; background: #ede9fe; color: #5b21b6; }
.admin-refresh-button {
  height: 34px; padding: 0 13px; border-color: #bfdbfe; background: #eff6ff; color: #1d4ed8; font-weight: 600;
}
.admin-refresh-button:hover { border-color: #93c5fd; background: #dbeafe; color: #1d4ed8; }
.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;
}

/* 管理员用户合并 */
.admin-user-merge-modal { z-index: 10040; padding: 24px; box-sizing: border-box; }
.admin-user-merge-modal [hidden] { display: none !important; }
.admin-user-merge-card {
  width: min(920px, calc(100vw - 48px)); max-width: 920px; max-height: calc(100vh - 48px);
  overflow: hidden; border: 1px solid #dbe3ef; border-radius: 18px; box-shadow: 0 24px 70px rgba(15,23,42,.24);
}
.admin-user-merge-header { padding: 20px 22px; border-bottom: 1px solid #e2e8f0; background: linear-gradient(120deg,#f8fbff,#f5f3ff); }
.admin-user-merge-title-wrap { display: flex; align-items: center; gap: 12px; }
.admin-user-merge-title-wrap h3 { margin: 0; color: #0f172a; font-size: 19px; }
.admin-user-merge-title-wrap p { margin: 4px 0 0; color: #64748b; font-size: 12px; }
.admin-user-merge-title-icon {
  display: grid; flex: none; width: 38px; height: 38px; place-items: center; border-radius: 11px;
  background: #ede9fe; color: #6d28d9; font-size: 20px; font-weight: 700;
}
.admin-user-merge-body { overflow-y: auto; padding: 20px 22px; }
.admin-user-merge-notice {
  display: flex; align-items: baseline; gap: 10px; padding: 11px 13px; border: 1px solid #bfdbfe;
  border-radius: 10px; background: #eff6ff; color: #475569; font-size: 12px;
}
.admin-user-merge-notice strong { flex: none; color: #1d4ed8; font-size: 13px; }
.admin-user-merge-picker { display: grid; grid-template-columns: 1fr 40px 1fr; align-items: center; gap: 12px; margin-top: 18px; }
.admin-user-merge-account {
  min-width: 0; margin: 0; padding: 14px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff;
}
.admin-user-merge-account legend { padding: 0 6px; color: #1e293b; font-size: 14px; font-weight: 700; }
.admin-user-merge-account > label { display: block; margin-bottom: 7px; color: #64748b; font-size: 12px; }
.admin-user-merge-account select { width: 100%; height: 42px; border-color: #cbd5e1; }
.admin-user-merge-combobox { display: flex; }
.admin-user-merge-account .admin-user-merge-combobox > input[type="search"] {
  width: 100%; height: 42px; padding: 0 38px 0 13px; border: 1px solid #cbd5e1; border-radius: 8px;
  background: #fff; color: #0f172a; font: inherit; font-size: 13px;
}
.admin-user-merge-account .admin-user-merge-combobox > input[type="search"]::placeholder { color: #94a3b8; }
.admin-user-merge-account .admin-user-merge-combobox .data-stats-combobox-toggle {
  top: 3px; right: 3px; bottom: 3px; height: auto; border-radius: 6px;
}
.admin-user-merge-combobox-options { z-index: 80; max-height: 210px; }
.admin-user-merge-combobox-options .data-stats-combobox-option { min-height: 42px; padding: 7px 10px; }
.admin-user-merge-combobox-options .data-stats-combobox-option strong { font-size: 12px; }
.admin-user-merge-combobox-options .data-stats-combobox-option small {
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.admin-user-merge-account > small { display: block; margin-top: 7px; color: #94a3b8; font-size: 11px; }
.admin-user-merge-account.is-source { border-color: #fed7aa; background: #fffaf5; }
.admin-user-merge-account.is-target { border-color: #bbf7d0; background: #f7fef9; }
.admin-user-merge-swap {
  width: 38px; height: 38px; padding: 0; border: 1px solid #d8b4fe; border-radius: 50%;
  background: #faf5ff; color: #7e22ce; font-size: 18px;
}
.admin-user-merge-swap:hover { border-color: #c084fc; background: #f3e8ff; color: #6b21a8; }
.admin-user-merge-analyze-row { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 16px; }
.admin-user-merge-message { flex: 1; color: #64748b; font-size: 12px; }
.admin-user-merge-message.is-error { color: #dc2626; }
.admin-user-merge-analyze { min-width: 160px; background: #6d28d9; border-color: #6d28d9; font-weight: 600; }
.admin-user-merge-analyze:hover { background: #5b21b6; border-color: #5b21b6; }
.admin-user-merge-result { margin-top: 18px; }
.admin-user-merge-verdict { padding: 15px 16px; border: 1px solid; border-radius: 12px; }
.admin-user-merge-verdict.is-safe { border-color: #a7f3d0; background: #ecfdf5; color: #065f46; }
.admin-user-merge-verdict.is-warning { border-color: #fde68a; background: #fffbeb; color: #92400e; }
.admin-user-merge-verdict.is-blocked { border-color: #fecaca; background: #fef2f2; color: #991b1b; }
.admin-user-merge-verdict-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.admin-user-merge-verdict-head strong { font-size: 14px; }
.admin-user-merge-verdict-head span { padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.7); font-size: 11px; font-weight: 700; }
.admin-user-merge-verdict p { margin: 0; line-height: 1.65; font-size: 13px; }
.admin-user-merge-sections { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.admin-user-merge-section { padding: 11px 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; }
.admin-user-merge-section strong { display: block; overflow: hidden; color: #475569; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-merge-section div { display: flex; align-items: baseline; gap: 8px; margin-top: 6px; color: #94a3b8; font-size: 11px; }
.admin-user-merge-section b { color: #0f172a; font-size: 18px; }
.admin-user-merge-plan {
  margin-top: 12px; overflow: hidden; border: 1px solid #c7d2fe; border-radius: 12px; background: #f8faff;
}
.admin-user-merge-plan-head {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px;
  border-bottom: 1px solid #dbeafe; background: linear-gradient(90deg,#eef2ff 0%,#f5f3ff 100%);
}
.admin-user-merge-plan-head > div { display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.admin-user-merge-plan-head strong { color: #312e81; font-size: 13px; }
.admin-user-merge-plan-head span { color: #818cf8; font-size: 11px; }
.admin-user-merge-plan-head b {
  flex: none; padding: 4px 9px; border: 1px solid #a5b4fc; border-radius: 999px;
  background: #fff; color: #4338ca; font-size: 12px;
}
.admin-user-merge-plan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: #e2e8f0; }
.admin-user-merge-plan-item { min-width: 0; padding: 11px 14px; background: #fff; }
.admin-user-merge-plan-item.is-wide { grid-column: 1 / -1; }
.admin-user-merge-plan-item > span:first-child { display: block; margin-bottom: 7px; color: #64748b; font-size: 11px; }
.admin-user-merge-plan-item > strong { color: #0f172a; font-size: 13px; }
.admin-user-merge-plan-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-user-merge-plan-chips em {
  display: inline-flex; max-width: 180px; overflow: hidden; padding: 4px 8px; border: 1px solid #dbeafe;
  border-radius: 7px; background: #eff6ff; color: #1d4ed8; font-size: 11px; font-style: normal;
  line-height: 1.2; text-overflow: ellipsis; white-space: nowrap;
}
.admin-user-merge-plan-empty { color: #94a3b8; font-size: 12px; }
.admin-user-merge-plan > p { margin: 0; padding: 10px 14px; background: #f8fafc; color: #64748b; font-size: 11px; line-height: 1.55; }
.admin-user-merge-conflicts,
.admin-user-merge-recommendations { margin-top: 12px; padding: 13px 14px; border: 1px solid #e2e8f0; border-radius: 10px; }
.admin-user-merge-conflicts h4,
.admin-user-merge-recommendations h4 { margin: 0 0 8px; color: #334155; font-size: 13px; }
.admin-user-merge-conflicts ul,
.admin-user-merge-recommendations ul { margin: 0; padding-left: 19px; color: #64748b; font-size: 12px; line-height: 1.75; }
.admin-user-merge-conflicts li.is-blocking { color: #b91c1c; }
.admin-user-merge-conflicts li.is-warning { color: #a16207; }
.admin-user-merge-conflicts > p { font-size: 12px; line-height: 1.65; color: #475569; }
.admin-merge-conflict-choice { margin: 14px 0 0; padding: 12px; border: 1px solid #cbd5e1; border-radius: 8px; min-width: 0; }
.admin-merge-conflict-choice legend { padding: 0 5px; font-size: 13px; font-weight: 600; }
.admin-merge-conflict-sides { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.admin-merge-conflict-sides label { display: block; min-width: 0; padding: 10px; border: 1px solid #e2e8f0; border-radius: 8px; cursor: pointer; }
.admin-merge-conflict-sides label:has(input:checked) { border-color: #7c3aed; background: #f5f3ff; }
.admin-merge-conflict-sides input { width: auto; margin-right: 5px; }
.admin-merge-conflict-sides span { font-size: 12px; font-weight: 600; }
.admin-merge-conflict-sides small { display: block; color: #64748b; margin-top: 6px; }
.admin-merge-conflict-sides pre { max-height: 210px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 12px; line-height: 1.65; }
.admin-user-merge-confirm {
  display: flex; align-items: flex-start; gap: 9px; margin-top: 14px; padding: 12px 13px;
  border: 1px solid #cbd5e1; border-radius: 10px; background: #f8fafc; color: #475569; font-size: 12px; cursor: pointer;
}
.admin-user-merge-confirm input { flex: none; width: 16px; height: 16px; margin: 1px 0 0; }
.admin-user-merge-footer { justify-content: flex-end; padding: 14px 22px; border-top: 1px solid #e2e8f0; background: #f8fafc; }
.admin-user-merge-submit-status {
  flex: 1 1 240px;
  min-width: 0;
  margin-right: auto;
  color: #64748b;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
}
.admin-user-merge-submit-status:empty { display: none; }
.admin-user-merge-submit-status.is-working { color: #6d28d9; }
.admin-user-merge-submit-status.is-success { color: #047857; }
.admin-user-merge-submit-status.is-error { color: #dc2626; }
.admin-user-merge-toast {
  position: fixed;
  top: 74px;
  right: 24px;
  z-index: 10100;
  max-width: min(520px,calc(100vw - 32px));
  padding: 13px 17px;
  border: 1px solid #a7f3d0;
  border-radius: 10px;
  background: #ecfdf5;
  box-shadow: 0 14px 34px rgba(15,23,42,.2);
  color: #065f46;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.55;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-10px);
  transition: opacity .18s ease,transform .18s ease;
}
.admin-user-merge-toast.is-error { border-color: #fecaca; background: #fef2f2; color: #b91c1c; }
.admin-user-merge-toast.is-visible { opacity: 1; transform: translateY(0); }
.admin-user-merge-footer button { min-width: 96px; }
.admin-user-merge-cancel { border-color: #cbd5e1; background: #fff; color: #475569; }
.admin-user-merge-cancel:hover { border-color: #94a3b8; background: #f1f5f9; color: #334155; }
.admin-user-merge-footer .btn-primary:disabled { border-color: #cbd5e1; background: #cbd5e1; box-shadow: none; cursor: not-allowed; }
@media (max-width: 720px) {
  .admin-user-merge-modal { padding: 10px; }
  .admin-user-merge-card { width: calc(100vw - 20px); max-height: calc(100vh - 20px); }
  .admin-user-merge-picker { grid-template-columns: 1fr; }
  .admin-user-merge-swap { margin: -5px auto; transform: rotate(90deg); }
  .admin-user-merge-sections { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-user-merge-plan-grid { grid-template-columns: 1fr; }
  .admin-user-merge-plan-item.is-wide { grid-column: auto; }
  .admin-user-merge-plan-head { align-items: flex-start; flex-direction: column; gap: 7px; }
  .admin-user-merge-notice { align-items: flex-start; flex-direction: column; gap: 3px; }
  .admin-user-merge-footer { flex-wrap: wrap; }
  .admin-user-merge-submit-status { flex-basis: 100%; margin-right: 0; }
}
@media (max-width: 1260px) {
  .admin-create-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .admin-filter-bar { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
}
@media (max-width: 900px) {
  .admin-model-grid { grid-template-columns: 1fr; }
  .admin-create-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-import-strip { grid-template-columns: 1fr; }
  .admin-import-control { align-items: stretch; }
  .admin-import-control label { min-width: 0; flex: 1; }
}
@media (max-width: 620px) {
  .admin-management-header { margin: -18px -20px 16px; padding: 20px; }
  .admin-management-header p { max-width: 240px; }
  .admin-management-section { padding: 14px; }
  .admin-create-grid,
  .admin-filter-bar { grid-template-columns: 1fr; }
  .admin-section-heading { align-items: flex-start; }
  .admin-required-note { display: none; }
  .admin-import-control { flex-direction: column; }
  .admin-import-control button { width: 100%; }
}

.admin-table-wrap {
  overflow: auto; border: 1px solid #e2e8f0; border-radius: 10px; background: #fff;
  max-height: 620px;
}
.admin-user-table { border-collapse: collapse; width: 100%; min-width: 900px; }
.admin-user-table thead { position: sticky; top: 0; z-index: 2; }
.admin-user-table th {
  background: #f1f5f9; color: #475569; font-size: 13px; font-weight: 600;
  padding: 10px 12px; text-align: left; border-bottom: 2px solid #e2e8f0; white-space: nowrap;
}
.admin-user-table td {
  padding: 10px 12px; font-size: 13px; color: #334155; border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}
.admin-user-table tbody tr:hover { background: #f8fafc; }
.admin-user-table tbody tr:nth-child(even) { background: #fafbfd; }
.admin-user-table tbody tr:nth-child(even):hover { background: #f1f5f9; }

.username-tag { font-weight: 600; color: #1e293b; }
.pwd-display { font-size: 12px; color: #94a3b8; margin-bottom: 4px; }
.pwd-status { font-size: 12px; color: #64748b; margin-bottom: 6px; line-height: 1.4; }
.pwd-edit { display: flex; gap: 4px; align-items: center; }
.pwd-edit input { width: 110px; height: 30px; font-size: 12px; padding: 0 8px; border: 1px solid #cbd5e1; border-radius: 6px; }

.inline-select {
  height: 32px; padding: 0 8px; border: 1px solid #cbd5e1; border-radius: 6px;
  font-size: 13px; background: #fff; color: #334155; min-width: 80px;
}
.inline-select:focus { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,.12); outline: none; }
.inline-input {
  height: 32px; padding: 0 8px; border: 1px solid #cbd5e1; border-radius: 6px;
  font-size: 13px; background: #fff; color: #334155; min-width: 120px; box-sizing: border-box;
}
.inline-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59,130,246,.12); outline: none; }

.role-badge {
  display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; white-space: nowrap;
}
.role-badge.role-admin { background: #fef3c7; color: #92400e; }
.role-badge.role-finance { background: #dbeafe; color: #1e40af; }
.role-badge.role-viewer { background: #d1fae5; color: #065f46; }
.role-badge.role-advisor { background: #ede9fe; color: #5b21b6; }

.employment-status-select { min-width: 72px; font-weight: 600; }
.employment-status-select.is-active { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }
.employment-status-select.is-departed { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }

.btn-action {
  height: 30px; padding: 0 12px; border: none; border-radius: 6px; font-size: 12px;
  font-weight: 500; cursor: pointer; white-space: nowrap; transition: background .15s;
}
.btn-action.btn-save { background: #3b82f6; color: #fff; }
.btn-action.btn-save:hover { background: #2563eb; }
.btn-action.btn-edit { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }
.btn-action.btn-edit:hover { background: #e2e8f0; }
.btn-action.btn-pwd { background: #f97316; color: #fff; }
.btn-action.btn-pwd:hover { background: #ea580c; }
.col-actions { display: flex; gap: 6px; align-items: center; }

.admin-empty { padding: 40px; text-align: center; color: #94a3b8; font-size: 14px; }

.confidential-companies-description { margin: -4px 0 14px; line-height: 1.7; }
.confidential-company-search { display: inline-block; position: relative; vertical-align: middle; }
#confidential-company-input { width: 420px; max-width: min(620px, 70vw); }
.confidential-company-suggestions {
  position: absolute; z-index: 30; top: calc(100% + 5px); left: 0;
  width: 100%; max-height: 280px; overflow-y: auto;
  padding: 6px; box-sizing: border-box; background: #fff;
  border: 1px solid #cbd5e1; border-radius: 8px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .14);
}
.confidential-company-suggestion {
  display: block; width: 100%; height: auto; min-height: 34px;
  padding: 7px 10px; border: 0; border-radius: 6px;
  background: #fff; color: #334155; text-align: left;
  white-space: normal; word-break: break-word;
}
.confidential-company-suggestion:hover,
.confidential-company-suggestion:focus { background: #eff6ff; color: #1d4ed8; outline: none; }
.confidential-company-no-result { display: block; padding: 12px 10px; color: #94a3b8; font-size: 13px; }
.confidential-company-table { min-width: 520px; }
.confidential-company-table th:last-child,
.confidential-company-table td:last-child { width: 140px; }
.confidential-company-action { text-align: left; }
.btn-action.btn-confidential-remove { background: #fff; color: #dc2626; border: 1px solid #fecaca; }
.btn-action.btn-confidential-remove:hover { background: #fef2f2; }
.confidential-company-error { color: #dc2626; }

.commission-rule-management-description { margin: -4px 0 14px; line-height: 1.7; }
.commission-rule-management-form select {
  min-width: 260px; height: 38px; padding: 0 34px 0 11px;
  border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155;
}
.commission-rule-management-form select:focus {
  border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59, 130, 246, .12); outline: none;
}
.commission-rule-management-form .sel-search { min-width: 260px; vertical-align: middle; }
.commission-rule-management-form .sel-search-input {
  width: 100%; height: 38px; padding: 0 11px; border-radius: 8px; font-size: 14px;
}
.commission-rule-management-form .sel-search-panel { width: 100%; max-width: none; }
.commission-rule-management-form .sel-search-item { padding: 9px 11px; }
.commission-rule-management-form .sel-search-input:disabled {
  background: #f8fafc; color: #94a3b8; cursor: not-allowed;
}
.commission-rule-table { min-width: 720px; }
.commission-rule-table th:last-child,
.commission-rule-table td:last-child { width: 140px; }
.commission-rule-pagination,
.commission-member-pagination {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 12px; border-top: 1px solid #e2e8f0; background: #fff;
  color: #64748b; font-size: 13px;
}
.commission-rule-pagination-buttons,
.commission-member-pagination-buttons { display: flex; align-items: center; gap: 6px; }
.commission-rule-pagination-buttons button,
.commission-member-pagination-buttons button {
  min-width: 32px; height: 32px; padding: 0 10px; border: 1px solid #dbe2ea;
  border-radius: 7px; background: #fff; color: #475569; cursor: pointer;
}
.commission-rule-pagination-buttons button:hover:not(:disabled),
.commission-member-pagination-buttons button:hover:not(:disabled) {
  border-color: #93c5fd; background: #eff6ff; color: #2563eb;
}
.commission-rule-pagination-buttons button.is-active,
.commission-member-pagination-buttons button.is-active {
  border-color: #3b82f6; background: #3b82f6; color: #fff;
}
.commission-rule-pagination-buttons button:disabled,
.commission-member-pagination-buttons button:disabled {
  background: #f8fafc; color: #cbd5e1; cursor: not-allowed;
}
.commission-member-management {
  margin-top: 20px; padding-top: 18px; border-top: 1px solid #e2e8f0;
}
.commission-member-management h3 { margin: 0 0 14px; color: #1e293b; font-size: 17px; }
.commission-member-query-form select {
  min-width: 300px; height: 38px; padding: 0 34px 0 11px;
  border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155;
}
.commission-member-query-form .sel-search { min-width: 300px; vertical-align: middle; }
.commission-member-query-form .sel-search-input {
  width: 100%; height: 38px; padding: 0 11px; border-radius: 8px; font-size: 14px;
}
.commission-member-query-form .sel-search-panel { width: 100%; max-width: none; }
.commission-member-query-form .sel-search-item { padding: 9px 11px; }
.commission-member-query-form input[type="search"] {
  width: 240px; height: 38px; box-sizing: border-box; padding: 0 11px;
  border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155;
}
.commission-member-query-form input[type="search"]:focus {
  border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59, 130, 246, .12); outline: none;
}
.commission-member-query-form input[type="search"]:disabled {
  background: #f8fafc; color: #94a3b8; cursor: not-allowed;
}
.commission-member-query-form .sel-search-input:disabled {
  background: #f8fafc; color: #94a3b8; cursor: not-allowed;
}
.commission-member-table { min-width: 1320px; }
.commission-member-table th:first-child,
.commission-member-table td:first-child { min-width: 170px; }
.commission-member-table th:last-child,
.commission-member-table td:last-child { width: 86px; }
.commission-member-name { display: inline-flex; flex-direction: column; gap: 2px; font-weight: 600; color: #1e293b; }
.commission-member-name small { color: #94a3b8; font-size: 11px; font-weight: 400; }
.commission-member-inactive {
  display: inline-block; margin-left: 8px; padding: 2px 7px; border-radius: 999px;
  background: #f1f5f9; color: #94a3b8; font-size: 11px;
}
.commission-member-input {
  width: 128px; height: 34px; box-sizing: border-box; padding: 0 9px;
  border: 1px solid #cbd5e1; border-radius: 7px; background: #fff; color: #334155;
  font-size: 13px;
}
.commission-member-input::placeholder { color: #cbd5e1; }
.commission-member-input:focus {
  border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59, 130, 246, .12); outline: none;
}
.commission-member-input[readonly] {
  background: #f8fafc; color: #475569; cursor: default;
}
.commission-member-input[readonly]:focus { border-color: #cbd5e1; box-shadow: none; }
.commission-member-table .sel-search { width: 108px; }
.commission-member-table .sel-search-input {
  width: 108px; height: 34px; padding: 0 9px; border-radius: 7px;
}
.commission-member-table .sel-search-panel { width: 108px; max-width: 108px; }
.commission-member-table .sel-search-item { padding: 8px 9px; }
.commission-rate-input { position: relative; display: inline-flex; align-items: center; }
.commission-rate-input .commission-member-input { padding-right: 25px; }
.commission-rate-input span { position: absolute; right: 9px; color: #64748b; font-size: 12px; pointer-events: none; }
.commission-rule-badge {
  display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px;
  background: #ecfdf5; color: #047857; font-size: 12px; font-weight: 600;
}
.btn-action.btn-commission-rule-remove { background: #fff; color: #dc2626; border: 1px solid #fecaca; }
.btn-action.btn-commission-rule-remove:hover { background: #fef2f2; }

.commission-member-table .sel-search { position: relative; }
.commission-member-table .sel-search-input { padding-right: 27px; }
.commission-member-table .sel-search::after {
  content: "⌄"; position: absolute; right: 9px; top: 50%; transform: translateY(-55%);
  color: #64748b; font-size: 15px; line-height: 1; pointer-events: none;
}
.commission-grade-period-modal {
  position: fixed; inset: 0; z-index: 20000; align-items: center; justify-content: center;
  padding: 24px; box-sizing: border-box;
}
.commission-grade-period-backdrop {
  position: absolute; inset: 0; background: rgba(15, 23, 42, .52); backdrop-filter: blur(2px);
}
.commission-grade-period-panel {
  position: relative; width: min(820px, 100%); max-height: min(720px, calc(100vh - 48px));
  display: flex; flex-direction: column; overflow: visible;
  border-radius: 14px; background: #fff; box-shadow: 0 24px 64px rgba(15, 23, 42, .24);
}
.tiger-commission-management-panel {
  width: min(1480px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
}
.tiger-commission-management-body {
  overflow: auto;
}
.tiger-commission-management-body .commission-member-management {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.tiger-commission-management-body .commission-member-management > h3 {
  display: none;
}
.tiger-commission-management-body .commission-member-query-form {
  margin-top: 0;
}
.commission-rule-supplement-modal .commission-grade-period-panel { width: min(680px, 100%); }
.commission-rule-supplement-list { display: grid; gap: 14px; }
.commission-rule-supplement-card {
  display: flex; gap: 14px; padding: 16px;
  border: 1px solid #dbeafe; border-radius: 12px; background: #f8fbff;
}
.commission-rule-supplement-index {
  flex: 0 0 30px; width: 30px; height: 30px; display: inline-flex;
  align-items: center; justify-content: center; border-radius: 50%;
  background: #3b82f6; color: #fff; font-size: 14px; font-weight: 700;
}
.commission-rule-supplement-card h4 { margin: 2px 0 8px; color: #1e293b; font-size: 16px; }
.commission-rule-supplement-card p { margin: 0; color: #64748b; font-size: 13px; line-height: 1.65; }
.commission-rule-supplement-card .commission-rule-supplement-formula {
  margin-bottom: 7px; color: #1d4ed8; font-size: 14px; font-weight: 700;
}
.commission-grade-period-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
  padding: 22px 24px 17px; border-bottom: 1px solid #e2e8f0;
}
.commission-grade-period-header h3 { margin: 0; color: #172033; font-size: 20px; }
.commission-grade-period-header p { margin: 6px 0 0; color: #64748b; font-size: 13px; }
.commission-grade-period-close {
  width: 34px; height: 34px; padding: 0; border: 0; border-radius: 8px;
  background: #f1f5f9; color: #64748b; font-size: 24px; line-height: 1; cursor: pointer;
}
.commission-grade-period-close:hover { background: #e2e8f0; color: #1e293b; }
.commission-grade-period-body { padding: 18px 24px; overflow-y: auto; }
.commission-grade-period-help {
  margin: 0 0 16px; padding: 10px 12px; border-radius: 8px;
  background: #eff6ff; color: #475569; font-size: 13px; line-height: 1.6;
}
.commission-grade-period-columns,
.commission-period-row {
  display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) minmax(150px, 1fr) 136px;
  gap: 12px; align-items: end;
}
.commission-grade-period-columns {
  padding: 0 0 7px; color: #64748b; font-size: 12px; font-weight: 600;
}
.commission-period-row {
  margin-bottom: 10px; padding: 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc;
}
.commission-period-row label { display: flex; min-width: 0; flex-direction: column; gap: 6px; }
.commission-period-row label > span:not(.sel-search) { display: none; color: #64748b; font-size: 12px; }
.commission-period-row input,
.commission-period-row select,
.commission-period-row .sel-search,
.commission-period-row .sel-search-input {
  width: 100%; min-width: 0; height: 38px; box-sizing: border-box;
}
.commission-period-row input,
.commission-period-row select,
.commission-period-row .sel-search-input {
  padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155;
}
.commission-period-row input:focus,
.commission-period-row .sel-search-input:focus {
  border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59, 130, 246, .12); outline: none;
}
.commission-period-row.is-invalid {
  border-color: #fca5a5;
  background: #fff7f7;
}
.commission-period-row input.is-invalid,
.commission-period-row .sel-search-input.is-invalid {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, .12);
}
.commission-period-row .sel-search-panel { width: 100%; max-width: none; }
.commission-period-actions { display: flex; gap: 8px; align-items: center; }
.commission-period-update,
.commission-period-remove {
  min-width: 64px; height: 38px; padding: 0 10px; border-radius: 8px; cursor: pointer;
}
.commission-period-update {
  border: 1px solid #3b82f6; background: #3b82f6; color: #fff;
}
.commission-period-update:hover { background: #2563eb; border-color: #2563eb; }
.commission-period-update:disabled { opacity: .6; cursor: wait; }
.commission-period-remove {
  border: 1px solid #fecaca;
  background: #fff; color: #dc2626; cursor: pointer;
}
.commission-period-remove:hover { background: #fef2f2; }
.commission-period-empty {
  padding: 28px 16px; border: 1px dashed #cbd5e1; border-radius: 10px;
  color: #94a3b8; text-align: center; font-size: 13px;
}
.commission-grade-period-add {
  margin-top: 12px; padding: 9px 13px; border: 1px dashed #93c5fd; border-radius: 8px;
  background: #eff6ff; color: #2563eb; cursor: pointer;
}
.commission-grade-period-add:hover { background: #dbeafe; }
.commission-grade-period-footer {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  padding: 15px 24px; border-top: 1px solid #e2e8f0;
}
.commission-grade-period-footer .message {
  margin-right: auto; color: #dc2626; line-height: 1.45; font-weight: 600;
}
.commission-grade-period-footer .message.is-success {
  padding: 8px 12px; border: 1px solid #a7f3d0; border-radius: 8px;
  background: #ecfdf5; color: #047857; font-weight: 600;
  animation: commission-grade-success-pop .28s ease-out;
}
@keyframes commission-grade-success-pop {
  from { opacity: 0; transform: translateY(5px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.commission-grade-period-footer button { min-width: 86px; }
.commission-grade-period-footer .btn-secondary { background: #fff; color: #475569; border: 1px solid #cbd5e1; }

@media (max-width: 640px) {
  .confidential-company-search { width: 100%; }
  #confidential-company-input { min-width: 0; width: 100%; max-width: 100%; }
  .commission-rule-management-form label,
  .commission-rule-management-form select,
  .commission-rule-management-form .sel-search { width: 100%; min-width: 0; }
  .commission-member-query-form label,
  .commission-member-query-form select,
  .commission-member-query-form .sel-search,
  .commission-member-query-form input[type="search"] { width: 100%; min-width: 0; }
  .commission-rule-pagination,
  .commission-member-pagination { align-items: flex-start; flex-direction: column; }
  .commission-rule-pagination-buttons,
  .commission-member-pagination-buttons { width: 100%; overflow-x: auto; padding-bottom: 2px; }
  .commission-grade-period-modal { padding: 12px; align-items: flex-start; }
  .commission-grade-period-panel { max-height: calc(100vh - 24px); }
  .commission-grade-period-header,
  .commission-grade-period-body,
  .commission-grade-period-footer { padding-left: 16px; padding-right: 16px; }
  .commission-grade-period-columns { display: none; }
  .commission-period-row { grid-template-columns: 1fr; align-items: stretch; }
  .commission-period-row label > span:not(.sel-search) { display: block; }
  .commission-period-actions { justify-self: start; }
  .commission-grade-period-footer { flex-wrap: wrap; }
  .commission-grade-period-footer .message { width: 100%; }
}

.auto-demo-tabs { display: flex; gap: 4px; margin-left: auto; }
.auto-demo-tab { background: none; border: 1px solid #e2e8f0; border-radius: 6px; padding: 5px 14px; font-size: 13px; cursor: pointer; color: #64748b; transition: all .2s; }
.auto-demo-tab.active { background: #3b82f6; color: #fff; border-color: #3b82f6; }
.auto-demo-tab:hover:not(.active) { background: #f1f5f9; }
.auto-demo-section { animation: fadeIn .2s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.auto-demo-kpi-row { display: flex; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.auto-demo-kpi { flex: 1; min-width: 140px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; padding: 18px 16px; text-align: center; }
.auto-demo-kpi-val { font-size: 28px; font-weight: 700; color: #1e293b; }
.auto-demo-kpi-label { font-size: 13px; color: #94a3b8; margin-top: 4px; }
.auto-demo-kpi:nth-child(1) .auto-demo-kpi-val { color: #3b82f6; }
.auto-demo-kpi:nth-child(2) .auto-demo-kpi-val { color: #10b981; }
.auto-demo-kpi:nth-child(3) .auto-demo-kpi-val { color: #f59e0b; }
.auto-demo-kpi:nth-child(4) .auto-demo-kpi-val { color: #ef4444; }
.auto-demo-quick-actions { display: flex; gap: 10px; }
.auto-demo-toolbar { display: flex; gap: 10px; margin-bottom: 12px; align-items: center; flex-wrap: wrap; }
.auto-demo-form { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.auto-demo-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.auto-demo-form-grid .full { grid-column: 1 / -1; }
.auto-demo-form-grid .form-group label { display: block; font-size: 12px; color: #64748b; margin-bottom: 3px; }
.auto-demo-form-grid .form-group input,
.auto-demo-form-grid .form-group textarea,
.auto-demo-form-grid .form-group select { width: 100%; padding: 6px 8px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; }
.auto-demo-form-actions { margin-top: 10px; display: flex; gap: 8px; }
.auto-channel-checks { display: flex; gap: 10px; flex-wrap: wrap; }
.auto-channel-checks label { font-size: 13px; display: flex; align-items: center; gap: 3px; cursor: pointer; }
.auto-demo-list { display: flex; flex-direction: column; gap: 8px; }
.auto-demo-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; transition: box-shadow .2s; }
.auto-demo-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.auto-demo-card-info { flex: 1; }
.auto-demo-card-title { font-weight: 600; font-size: 14px; color: #1e293b; }
.auto-demo-card-meta { font-size: 12px; color: #94a3b8; margin-top: 3px; }
.auto-demo-card-actions { display: flex; gap: 6px; }
.auto-status { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.auto-status-pending { background: #fef3c7; color: #92400e; }
.auto-status-running { background: #dbeafe; color: #1d4ed8; }
.auto-status-completed { background: #d1fae5; color: #065f46; }
.auto-status-failed { background: #fee2e2; color: #991b1b; }
.auto-status-paused { background: #f3e8ff; color: #6b21a8; }
.auto-status-auto { background: #dbeafe; color: #1d4ed8; }
.auto-status-manual { background: #fef3c7; color: #92400e; }
.auto-demo-runs-panel { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 14px; margin-top: 12px; }
.auto-demo-runs-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.auto-demo-runs-header h4 { margin: 0; font-size: 14px; }
.auto-demo-runs-list { max-height: 300px; overflow-y: auto; }
.auto-demo-run-item { display: flex; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid #f1f5f9; font-size: 13px; }
.auto-demo-run-step { font-weight: 600; min-width: 70px; }
.auto-demo-run-channel { color: #6366f1; min-width: 60px; }
.auto-demo-run-dur { color: #94a3b8; min-width: 50px; }
.auto-conv-layout { display: flex; gap: 0; border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; min-height: 500px; }
.auto-conv-sidebar { width: 280px; border-right: 1px solid #e2e8f0; overflow-y: auto; max-height: 500px; background: #fafbfc; }
.auto-conv-list { display: flex; flex-direction: column; }
.auto-conv-item { padding: 10px 14px; border-bottom: 1px solid #f1f5f9; cursor: pointer; transition: background .15s; }
.auto-conv-item:hover, .auto-conv-item.active { background: #eff6ff; }
.auto-conv-item-name { font-weight: 600; font-size: 13px; color: #1e293b; }
.auto-conv-item-meta { font-size: 11px; color: #94a3b8; }
.auto-conv-main { flex: 1; display: flex; flex-direction: column; background: #fff; }
.auto-conv-empty { display: flex; align-items: center; justify-content: center; flex: 1; color: #94a3b8; font-size: 14px; }
.auto-conv-detail { display: flex; flex-direction: column; flex: 1; }
.auto-conv-detail-header { padding: 10px 16px; border-bottom: 1px solid #e2e8f0; display: flex; align-items: center; gap: 10px; }
.auto-conv-detail-header span:first-child { font-weight: 600; font-size: 14px; }
.auto-conv-badge { padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.auto-conv-messages { flex: 1; overflow-y: auto; padding: 12px 16px; max-height: 380px; display: flex; flex-direction: column; gap: 8px; }
.auto-conv-msg { max-width: 75%; padding: 8px 12px; border-radius: 10px; font-size: 13px; line-height: 1.5; word-break: break-word; }
.auto-conv-msg.system { align-self: flex-end; background: #3b82f6; color: #fff; }
.auto-conv-msg.candidate { align-self: flex-start; background: #f1f5f9; color: #1e293b; }
.auto-conv-msg.manual { align-self: flex-end; background: #10b981; color: #fff; }
.auto-conv-msg .msg-sender { font-size: 11px; opacity: .7; margin-bottom: 2px; }
.auto-conv-input-area { display: flex; gap: 8px; padding: 10px 16px; border-top: 1px solid #e2e8f0; }
.auto-conv-input-area input { flex: 1; padding: 6px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; }
.btn-warning { background: #f59e0b; color: #fff; border: none; border-radius: 6px; padding: 4px 10px; cursor: pointer; font-size: 12px; }
.btn-warning:hover { background: #d97706; }
.auto-demo-log-list { display: flex; flex-direction: column; gap: 6px; }
.auto-demo-log-item { display: flex; gap: 10px; align-items: center; padding: 8px 12px; background: #fff; border: 1px solid #f1f5f9; border-radius: 6px; font-size: 13px; }
.auto-demo-log-time { color: #94a3b8; min-width: 130px; font-size: 12px; }
.auto-demo-log-action { font-weight: 600; min-width: 90px; }
.auto-demo-log-channel { color: #6366f1; min-width: 60px; }
.auto-demo-log-detail { flex: 1; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.auto-demo-log-replay { cursor: pointer; color: #3b82f6; text-decoration: underline; font-size: 12px; }
.ai-launch-page { display: flex; flex-direction: column; gap: 18px; }
.ai-workspace-shell { display: flex; flex-direction: column; gap: 14px; align-items: stretch; }
.ai-workspace-sidebar { padding: 16px; min-width: 0; }
.ai-workspace-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ai-workspace-side-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.ai-workspace-side-head input { width: 100%; border: 1px solid #d8e0ea; border-radius: 12px; padding: 10px 12px; font-size: 13px; background: #fbfdff; }
.ai-workspace-job-list { display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 240px); overflow-y: auto; }
.ai-workspace-job-card { border: 1px solid #e2e8f0; border-radius: 16px; padding: 14px; background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%); cursor: pointer; }
.ai-workspace-job-card.active { border-color: #2563eb; background: #eff6ff; box-shadow: 0 8px 22px rgba(37,99,235,0.12); }
.ai-workspace-job-title { font-size: 14px; font-weight: 700; color: #0f172a; }
.ai-workspace-job-actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.ai-workspace-job-actions button { white-space: nowrap; }
.ai-workspace-job-meta { margin-top: 6px; font-size: 12px; color: #64748b; line-height: 1.6; }
.ai-workspace-job-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.ai-workspace-job-tag { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 999px; font-size: 11px; border: 1px solid #dbe4ef; background: #f8fafc; color: #334155; }
.ai-workspace-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ai-workspace-hero-title { font-size: 22px; font-weight: 700; color: #0f172a; }
.ai-workspace-hero-meta { margin-top: 8px; color: #64748b; font-size: 13px; line-height: 1.7; }
.ai-workspace-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.ai-action-soft-blocked { opacity: 0.68; }
.ai-action-soft-blocked:hover { opacity: 0.82; }
.ai-monitor-panel { display: flex; flex-direction: column; gap: 14px; }
.ai-monitor-primary { display: flex; flex-direction: column; gap: 10px; }
.ai-monitor-status-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ai-monitor-status { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.ai-monitor-status.is-running { background: #ecfeff; color: #0f766e; }
.ai-monitor-status.is-stalled { background: #fff7ed; color: #c2410c; }
.ai-monitor-status.is-paused { background: #eff6ff; color: #1d4ed8; }
.ai-monitor-status.is-failed { background: #fff1f2; color: #be123c; }
.ai-monitor-status.is-completed { background: #f0fdf4; color: #15803d; }
.ai-monitor-status.is-pending { background: #f8fafc; color: #334155; }
.ai-monitor-status-note { font-size: 12px; color: #64748b; }
.ai-monitor-headline { font-size: 20px; line-height: 1.5; font-weight: 700; color: #0f172a; }
.ai-monitor-subline { color: #64748b; font-size: 12px; line-height: 1.7; word-break: break-word; }
.ai-monitor-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ai-monitor-facts.is-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ai-monitor-fact { border: 1px solid #e2e8f0; border-radius: 14px; padding: 14px; background: #fbfdff; }
.ai-monitor-fact-label { font-size: 12px; color: #64748b; margin-bottom: 6px; }
.ai-monitor-fact-value { font-size: 13px; color: #0f172a; line-height: 1.6; word-break: break-word; }
.ai-workspace-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.ai-workspace-tab-btn { border: 1px solid #d8e0ea; background: #fff; color: #334155; border-radius: 999px; padding: 8px 14px; font-size: 12px; font-weight: 600; cursor: pointer; }
.ai-workspace-tab-btn.active { background: #2563eb; border-color: #2563eb; color: #fff; }
.ai-workspace-tab { display: none; flex-direction: column; gap: 16px; }
.ai-workspace-tab.active { display: flex; }
.ai-workspace-grid { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr); gap: 16px; }
.ai-workspace-mode-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ai-workspace-mode-card { border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px; background: #fbfdff; }
.ai-workspace-mode-card.active { border-color: #2563eb; background: #eff6ff; box-shadow: 0 8px 22px rgba(37,99,235,0.1); }
.ai-workspace-mode-card h4 { margin: 0 0 8px; font-size: 14px; color: #0f172a; }
.ai-workspace-mode-card p { margin: 0; color: #64748b; font-size: 12px; line-height: 1.7; }
.ai-workspace-timeline { display: flex; flex-direction: column; gap: 10px; }
.ai-workspace-time-row { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fbfdff; }
.ai-workspace-time-row.is-live { border-color: #bfdbfe; background: #eff6ff; }
.ai-workspace-time-side { min-width: 128px; color: #94a3b8; font-size: 12px; }
.ai-workspace-time-main { flex: 1; min-width: 0; }
.ai-workspace-time-title-wrap { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ai-workspace-time-title { font-size: 13px; font-weight: 700; color: #0f172a; }
.ai-workspace-time-badge { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.ai-workspace-time-badge.is-running { background: #dcfce7; color: #166534; }
.ai-workspace-time-badge.is-stalled { background: #ffedd5; color: #c2410c; }
.ai-workspace-time-badge.is-paused { background: #dbeafe; color: #1d4ed8; }
.ai-workspace-time-badge.is-failed { background: #ffe4e6; color: #be123c; }
.ai-workspace-time-badge.is-completed { background: #dcfce7; color: #15803d; }
.ai-workspace-time-badge.is-pending { background: #e2e8f0; color: #475569; }
.ai-workspace-time-detail { margin-top: 6px; color: #64748b; font-size: 12px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.ai-launch-form-grid input[type="checkbox"] { width: 16px; height: 16px; padding: 0; margin: 0; border: 0; border-radius: 4px; background: transparent; box-shadow: none; flex: 0 0 16px; vertical-align: middle; accent-color: #2563eb; }
.ai-launch-form-grid input[type="checkbox"]:focus { box-shadow: none; }
.ai-launch-toggle-field { justify-content: center; }
.ai-launch-form-grid .ai-launch-checkbox-row { display: inline-flex; align-items: center; gap: 8px; width: auto; margin: 0; padding: 0; font-size: 13px; font-weight: 500; color: #334155; cursor: pointer; }
.ai-launch-weekday-checks { display: flex; gap: 8px; flex-wrap: wrap; }
.ai-launch-weekday-item { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 12px; background: #f8fafc; border: 1px solid #e2e8f0; font-size: 12px; color: #334155; line-height: 1; cursor: pointer; }
.ai-launch-weekday-item .ai-launch-weekday { width: 14px; height: 14px; flex: 0 0 14px; }
.ai-launch-header-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.ai-launch-run-state { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #eff6ff; color: #2563eb; font-size: 12px; font-weight: 700; }
.ai-launch-run-state::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .8; }
.ai-launch-run-state.is-running { background: #ecfdf5; color: #047857; }
.ai-launch-run-state.is-running::before { animation: aw-live-pulse 1.5s ease-out infinite; }
.ai-launch-run-state.is-stalled { background: #fff7ed; color: #c2410c; }
.ai-launch-run-state.is-failed { background: #fff1f2; color: #be123c; }
.ai-launch-run-state.is-completed { background: #f0fdf4; color: #15803d; }
.ai-launch-run-state.is-paused, .ai-launch-run-state.is-pending { background: #fffbeb; color: #b45309; }
.ai-launch-kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.ai-launch-kpi-card { background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); border: 1px solid #e2e8f0; border-radius: 16px; padding: 18px 16px; box-shadow: 0 8px 28px rgba(15, 23, 42, 0.04); }
.ai-launch-kpi-value { font-size: 28px; line-height: 1; font-weight: 700; color: #0f172a; }
.ai-launch-kpi-label { margin-top: 8px; color: #64748b; font-size: 12px; }
.ai-launch-top-grid { display: grid; grid-template-columns: minmax(420px, 1.15fr) minmax(360px, 1fr); gap: 16px; align-items: start; }
.ai-launch-panel, .ai-launch-section { background: #fff; border: 1px solid #e2e8f0; border-radius: 18px; padding: 18px; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04); }
.ai-launch-panel-head, .ai-launch-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.ai-launch-panel-head h3, .ai-launch-section-head h3 { margin: 0; font-size: 16px; color: #0f172a; }
.ai-launch-subtle { color: #64748b; font-size: 12px; }
/* 执行规则 Tab 自动保存指示器：无内容自动隐藏，不同状态换色 */
.ai-launch-autosave-indicator { font-size: 12px; color: #64748b; margin-left: auto; transition: opacity .2s ease; }
.ai-launch-autosave-indicator:empty { display: none; }
.ai-launch-autosave-indicator[data-state="saving"] { color: #64748b; }
.ai-launch-autosave-indicator[data-state="saved"] { color: #10b981; }
.ai-launch-autosave-indicator[data-state="failed"] { color: #ef4444; }
.ai-launch-autosave-indicator[data-state="hint"] { color: #b45309; }
.ai-launch-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ai-launch-form-grid .full { grid-column: 1 / -1; }
.ai-launch-form-grid .form-group label { display: block; font-size: 12px; color: #64748b; margin-bottom: 4px; }
.ai-launch-form-grid input:not([type="checkbox"]):not([type="radio"]), .ai-launch-form-grid textarea, .ai-launch-form-grid select { width: 100%; border: 1px solid #d8e0ea; border-radius: 12px; padding: 10px 12px; font-size: 13px; background: #fbfdff; }
.ai-launch-form-grid textarea { resize: vertical; }
.ai-launch-channel-checks { display: flex; gap: 10px; flex-wrap: wrap; }
.ai-launch-channel-pill { display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 999px; border: 1px solid #bfdbfe; background: #eff6ff; font-size: 12px; color: #1d4ed8; }
.ai-launch-form-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.ai-launch-async-action.is-loading { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.ai-launch-async-action.is-loading::before {
  content: '';
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ai-launch-action-spin .7s linear infinite;
}
.ai-launch-async-action:disabled { cursor: not-allowed; opacity: .68; }
.ai-launch-action-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 2600;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, .32);
  backdrop-filter: blur(1px);
}
.ai-launch-action-loading-overlay.is-visible { display: flex; }
.ai-launch-action-loading-card {
  min-width: 220px;
  padding: 26px 30px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 55px rgba(15, 23, 42, .2);
  color: #1e293b;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
}
.ai-launch-action-loading-spinner {
  width: 34px;
  height: 34px;
  margin: 0 auto 13px;
  border: 3px solid #dbeafe;
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: ai-launch-action-spin .8s linear infinite;
}
@keyframes ai-launch-action-spin { to { transform: rotate(360deg); } }
.ai-launch-summary-box { min-height: 76px; padding: 14px; border-radius: 14px; background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%); color: #334155; font-size: 13px; line-height: 1.7; margin-bottom: 14px; }
.ai-launch-analysis-editor { margin-bottom: 14px; padding: 14px; border: 1px dashed #dbe4ef; border-radius: 14px; background: #f8fafc; }
.ai-launch-analysis-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ai-launch-analysis-editor-grid .full { grid-column: 1 / -1; }
.ai-launch-analysis-editor .form-group label { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; color: #64748b; margin-bottom: 4px; }
.ai-launch-mode-select { margin-left: auto; padding: 2px 8px; border: 1px solid #d8e0ea; border-radius: 8px; font-size: 12px; background: #fff; color: #334155; }
.ai-launch-mode-select:focus { outline: none; border-color: #93c5fd; }
.ai-launch-ai-toggle { display: inline-flex !important; align-items: center; gap: 4px; margin-left: auto; margin-bottom: 0 !important; font-size: 12px; color: #475569; cursor: pointer; }
.ai-launch-ai-toggle input[type="checkbox"] { margin: 0; cursor: pointer; }
.ai-launch-hint { font-size: 11px; color: #94a3b8; font-weight: normal; }

/* ============ v2 执行规则 tab 样式 (紧凑重设计) ============ */
.ai-launch-v2-editor { display: flex; flex-direction: column; gap: 10px; font-size: 13px; }
.ai-launch-v2-section { background: #fff; border: 1px solid #e5eaf3; border-radius: 10px; padding: 12px 14px; }
.ai-launch-v2-section-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; padding-bottom: 7px; border-bottom: 1px solid #f0f4f9; flex-wrap: wrap; }
.ai-launch-v2-section-head h4 { margin: 0; font-size: 13px; color: #0f172a; font-weight: 600; }
.ai-launch-v2-section-head .ai-launch-subtle { font-size: 11px; color: #94a3b8; }
.ai-launch-v2-section-toggle { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-size: 12px; color: #1e293b; font-weight: 500; cursor: pointer; }
.ai-launch-v2-section-toggle input[type="checkbox"] { width: auto !important; padding: 0 !important; margin: 0 !important; border: 1px solid #cbd5e1; flex-shrink: 0; cursor: pointer; }
.ai-launch-v2-logic-hint { background: #fef9e7; border: 1px solid #fde68a; border-radius: 7px; padding: 8px 11px; margin-bottom: 10px; font-size: 12px; color: #78350f; line-height: 1.6; }
.ai-launch-v2-logic-hint b { color: #b45309; font-weight: 600; }
.ai-launch-v2-section .form-group { margin-bottom: 8px; }
.ai-launch-v2-section .form-group:last-child { margin-bottom: 0; }
.ai-launch-v2-section .form-group > label { display: block; margin-bottom: 3px; font-size: 12px; color: #475569; font-weight: normal; }
.ai-launch-v2-section textarea { width: 100%; padding: 7px 10px; border: 1px solid #dde3ec; border-radius: 6px; font-size: 13px; resize: vertical; line-height: 1.5; font-family: inherit; background: #fafbfc; box-sizing: border-box; }
.ai-launch-v2-section textarea:focus { outline: none; border-color: #93c5fd; box-shadow: 0 0 0 3px rgba(59,130,246,0.08); background: #fff; }

/* 双轨筛选块:复选框 + textarea + radio 紧凑组合,使用浅灰背景做层次 */
.ai-launch-v2-toggle-block { background: #f8fafc; border: 1px solid #eaeff5; border-radius: 7px; padding: 8px 10px; margin-bottom: 6px; }
.ai-launch-v2-toggle-block:last-child { margin-bottom: 0; }
.ai-launch-v2-toggle-block .ai-launch-checkbox-row { display: inline-flex !important; align-items: center; gap: 6px; font-size: 13px; color: #1e293b; font-weight: 500; cursor: pointer; margin: 0 0 6px 0; }
.ai-launch-v2-toggle-block .ai-launch-checkbox-row input[type="checkbox"] { margin: 0; cursor: pointer; }
.ai-launch-v2-toggle-block .ai-launch-hint { font-size: 11px; color: #94a3b8; margin-left: 4px; font-weight: normal; }
.ai-launch-v2-toggle-block textarea { margin-top: 0; }

/* 匹配方式 radio:必须 inline,标签 white-space:nowrap 防止竖向挤压 */
.ai-launch-v2-radio-row { display: inline-flex; gap: 14px; margin-top: 7px; font-size: 12px; color: #475569; align-items: center; flex-wrap: wrap; }
.ai-launch-v2-radio-row > label { display: inline-flex !important; align-items: center; gap: 4px; cursor: pointer; margin: 0 !important; white-space: nowrap; font-size: 12px; font-weight: normal; color: #475569; }
.ai-launch-v2-radio-row input[type="radio"] { margin: 0; cursor: pointer; flex-shrink: 0; }

/* 4 套触发文案:2×2 网格布局 */
.ai-launch-v2-trigger-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ai-launch-v2-trigger-group { background: #f8fafc; border: 1px solid #eaeff5; border-radius: 7px; padding: 9px 11px; margin: 0; }
.ai-launch-v2-trigger-group h5 { margin: 0 0 6px 0; font-size: 12px; color: #1e40af; font-weight: 600; }
.ai-launch-v2-trigger-group .form-group { margin-bottom: 6px; }
.ai-launch-v2-trigger-group .form-group:last-of-type { margin-bottom: 4px; }
.ai-launch-v2-trigger-group label { display: block; margin-bottom: 3px; font-size: 11px; color: #64748b; font-weight: normal; }
.ai-launch-v2-trigger-group textarea { width: 100%; padding: 7px 10px; border: 1px solid #dde3ec; border-radius: 6px; font-size: 13px; resize: vertical; font-family: inherit; line-height: 1.55; background: #fff; box-sizing: border-box; }
.ai-launch-v2-trigger-group textarea[id*="-words"] { min-height: 56px; }
.ai-launch-v2-trigger-group textarea[id*="-template"] { min-height: 120px; }
.ai-launch-v2-trigger-group textarea:focus { outline: none; border-color: #93c5fd; box-shadow: 0 0 0 2px rgba(59,130,246,0.08); }
.ai-launch-v2-trigger-group .ai-launch-checkbox-row { display: inline-flex !important; align-items: center; gap: 5px; margin: 4px 0 0 0; font-size: 11px; color: #64748b; font-weight: normal; cursor: pointer; }
.ai-launch-v2-trigger-group .ai-launch-checkbox-row input[type="checkbox"] { margin: 0; }
.ai-launch-v2-trigger-group .ai-launch-hint { font-size: 11px; color: #94a3b8; font-weight: normal; }

@media (max-width: 900px) {
  .ai-launch-v2-trigger-grid { grid-template-columns: 1fr; }
}

/* 覆盖全局 .form-group input{width:100%} 对 checkbox/radio 的错误影响 */
.ai-launch-v2-section input[type="checkbox"],
.ai-launch-v2-section input[type="radio"],
.ai-launch-v2-trigger-group input[type="checkbox"],
.ai-launch-v2-trigger-group input[type="radio"] {
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid #cbd5e1;
  border-radius: 3px;
  flex-shrink: 0;
  cursor: pointer;
  vertical-align: middle;
}

.ai-launch-jd-dropzone { position: relative; }
.ai-launch-jd-dropzone .ai-launch-jd-drop-overlay { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(59,130,246,0.08); border: 2px dashed #3b82f6; border-radius: 12px; color: #2563eb; font-size: 14px; font-weight: 500; pointer-events: none; z-index: 5; }
.ai-launch-jd-dropzone.dragover .ai-launch-jd-drop-overlay { display: flex; }
.ai-launch-jd-dropzone.dragover textarea { border-color: #3b82f6; }
.ai-launch-analysis-editor textarea { width: 100%; min-height: 84px; padding: 10px 12px; border: 1px solid #d8e0ea; border-radius: 12px; font-size: 13px; background: #fff; resize: vertical; line-height: 1.6; font-family: inherit; }
.ai-launch-analysis-editor textarea:focus { outline: none; border-color: #93c5fd; box-shadow: 0 0 0 3px rgba(59,130,246,0.08); }
.ai-launch-analysis-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ai-launch-analysis-block h4 { margin: 0 0 10px; font-size: 13px; color: #0f172a; }
.ai-launch-chip-list, .ai-launch-script-list, .ai-launch-stage-list, .ai-launch-conv-insights { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-launch-chip-list.empty, .ai-launch-script-list.empty, .ai-launch-stage-list.empty { color: #94a3b8; font-size: 12px; }
.ai-launch-chip { display: inline-flex; align-items: center; padding: 7px 10px; border-radius: 999px; font-size: 12px; background: #f8fafc; color: #334155; border: 1px solid #e2e8f0; }
.ai-launch-chip.primary { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.ai-launch-chip.secondary { background: #f8fafc; color: #475569; }
.ai-launch-chip.exclude { background: #fff1f2; color: #be123c; border-color: #fecdd3; }
.ai-launch-script-card { border: 1px solid #e2e8f0; border-radius: 14px; padding: 12px; background: #fcfdff; min-width: 0; flex: 1 1 220px; }
.ai-launch-script-title { font-size: 12px; color: #64748b; margin-bottom: 6px; }
.ai-launch-script-content { font-size: 13px; color: #0f172a; line-height: 1.7; }
.ai-launch-stage-item { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 999px; background: #f8fafc; border: 1px solid #e2e8f0; font-size: 12px; color: #334155; }
.ai-launch-template-list, .ai-launch-task-list { display: flex; flex-direction: column; gap: 12px; }
.ai-launch-template-card, .ai-launch-task-card { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px; background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%); }
.ai-launch-card-title { font-size: 15px; font-weight: 700; color: #0f172a; }
.ai-launch-card-meta { margin-top: 6px; font-size: 12px; color: #64748b; }
.ai-launch-card-summary { margin-top: 8px; font-size: 13px; color: #334155; line-height: 1.6; }
.ai-launch-card-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.ai-launch-card-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.ai-launch-bottom-grid { display: grid; grid-template-columns: minmax(380px, 1.15fr) minmax(300px, 0.85fr); gap: 16px; }
.ai-launch-inline-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.ai-launch-inline-filters input, .ai-launch-inline-filters select, .ai-launch-section-head select { border: 1px solid #d8e0ea; border-radius: 10px; padding: 8px 10px; font-size: 12px; background: #fbfdff; }
.ai-workspace-collapse { padding: 0; overflow: hidden; }
.ai-workspace-collapse-head { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px; cursor: pointer; font-size: 16px; font-weight: 700; color: #0f172a; }
.ai-workspace-collapse-head::-webkit-details-marker { display: none; }
.ai-workspace-collapse-body { padding: 0 18px 18px; }
.ai-launch-runs-panel { margin-top: 14px; border-top: 1px dashed #dbe4ef; padding-top: 14px; }
.ai-launch-runs-list { display: flex; flex-direction: column; gap: 8px; }
.ai-launch-run-row { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 12px; background: #f8fafc; font-size: 12px; color: #334155; }
.ai-launch-conv-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 12px; }
.ai-launch-conv-list { max-height: 620px; overflow-y: auto; border-right: 1px solid #eef2f7; padding-right: 12px; }
.ai-launch-conv-item { padding: 12px; border: 1px solid #e2e8f0; border-radius: 14px; margin-bottom: 10px; cursor: pointer; background: #fcfdff; }
.ai-launch-conv-item.active { border-color: #3b82f6; background: #eff6ff; }
.ai-launch-conv-name { font-size: 13px; font-weight: 700; color: #0f172a; }
.ai-launch-conv-small { margin-top: 6px; color: #64748b; font-size: 12px; line-height: 1.5; }
.ai-launch-conv-main { min-height: 500px; }
.ai-launch-empty { display: flex; align-items: center; justify-content: center; min-height: 500px; color: #94a3b8; font-size: 13px; border: 1px dashed #dbe4ef; border-radius: 16px; }
.ai-launch-conv-header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ai-launch-conv-header-actions { display: flex; gap: 8px; align-items: center; }
.ai-launch-conv-title { font-size: 16px; font-weight: 700; color: #0f172a; }
.ai-launch-conv-meta { margin-top: 6px; color: #64748b; font-size: 12px; }
.ai-launch-conv-insight { display: inline-flex; align-items: center; padding: 7px 10px; border-radius: 999px; background: #f8fafc; border: 1px solid #e2e8f0; font-size: 12px; color: #334155; }
.ai-observer-panel { display: flex; flex-direction: column; gap: 16px; }

/* ========== 自动化工作台 · 新三栏布局 ========== */
.aw-console-btn { display: inline-flex; align-items: center; gap: 4px; }
.aw-job-context-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 20px; padding: 12px 18px; align-items: stretch; }
.aw-job-context-left { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.aw-job-context-right { display: flex; flex-direction: column; gap: 8px; min-width: 0; align-items: stretch; }
.aw-live-indicator { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 7px 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; color: #475569; }
.aw-live-dot { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 4px rgba(148, 163, 184, .14); }
.aw-live-copy { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.aw-live-copy strong { color: #334155; font-size: 13px; line-height: 1.35; }
.aw-live-copy span { max-width: 620px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #64748b; font-size: 11px; line-height: 1.35; }
.aw-live-indicator.is-running { border-color: #a7f3d0; background: #ecfdf5; }
.aw-live-indicator.is-running .aw-live-dot { background: #10b981; box-shadow: 0 0 0 4px rgba(16, 185, 129, .14); animation: aw-live-pulse 1.5s ease-out infinite; }
.aw-live-indicator.is-running .aw-live-copy strong { color: #047857; }
.aw-live-indicator.is-pending, .aw-live-indicator.is-paused { border-color: #fde68a; background: #fffbeb; }
.aw-live-indicator.is-pending .aw-live-dot, .aw-live-indicator.is-paused .aw-live-dot { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245, 158, 11, .14); }
.aw-live-indicator.is-stalled { border-color: #fdba74; background: #fff7ed; }
.aw-live-indicator.is-stalled .aw-live-dot { background: #ea580c; box-shadow: 0 0 0 4px rgba(234, 88, 12, .14); }
.aw-live-indicator.is-stalled .aw-live-copy strong { color: #c2410c; }
.aw-live-indicator.is-failed { border-color: #fecdd3; background: #fff1f2; }
.aw-live-indicator.is-failed .aw-live-dot { background: #e11d48; box-shadow: 0 0 0 4px rgba(225, 29, 72, .14); }
.aw-live-indicator.is-completed { border-color: #bbf7d0; background: #f0fdf4; }
.aw-live-indicator.is-completed .aw-live-dot { background: #16a34a; }
@keyframes aw-live-pulse { 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, .38); } 70% { box-shadow: 0 0 0 7px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } }
.aw-job-context-primary { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 14px; row-gap: 2px; min-width: 0; }
.aw-job-context-title { font-size: 22px; font-weight: 700; color: #0f172a; line-height: 1.25; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.aw-title-status { display: inline-flex; align-items: center; padding: 3px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; vertical-align: middle; line-height: 1.4; }
.aw-title-status.is-paused { background: #eff6ff; color: #1d4ed8; }
.aw-title-status.is-running { background: #ecfeff; color: #0f766e; }
.aw-title-status.is-stalled { background: #fff7ed; color: #c2410c; }
.aw-title-status.is-failed { background: #fff1f2; color: #be123c; }
.aw-title-status.is-completed { background: #f0fdf4; color: #15803d; }
.aw-title-status.is-pending { background: #f8fafc; color: #334155; }
.aw-title-status.is-idle { background: #f8fafc; color: #64748b; }
.aw-job-context-meta { font-size: 12px; color: #64748b; line-height: 1.5; }
.aw-job-context-actions { display: flex; gap: 10px; width: 100%; }
.aw-job-context-actions button { display: flex; align-items: center; justify-content: center; flex: 1 1 0; min-width: 0; min-height: 36px; padding: 0 14px; font-size: 13px; font-weight: 600; border-radius: 10px; border: none; cursor: pointer; white-space: nowrap; line-height: 1.2; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08); transition: background 0.15s ease, transform 0.05s ease; }
.aw-job-context-actions button:active { transform: translateY(1px); }
.aw-job-context-actions .btn-primary { background: #2563eb; color: #fff; }
.aw-job-context-actions .btn-primary:hover { background: #1d4ed8; }
.aw-job-context-actions .btn-secondary { background: #6366f1; color: #fff; }
.aw-job-context-actions .btn-secondary:hover { background: #4f46e5; }
.aw-job-context-actions .btn-warning { background: #f59e0b; color: #fff; }
.aw-job-context-actions .btn-warning:hover { background: #d97706; }
.aw-job-context-actions .btn-danger { background: #ef4444; color: #fff; }
.aw-job-context-actions .btn-danger:hover { background: #dc2626; }

/* 监控面板压平：状态徽章挪到标题旁，facts 变成横排 chip */
.aw-job-context-monitor { min-width: 0; font-size: 12px; color: #334155; line-height: 1.5; display: flex; flex-direction: column; gap: 4px; }
.aw-job-context-monitor:empty { display: none; }
.aw-job-context-monitor .ai-monitor-panel { display: flex; flex-direction: column; gap: 4px; background: transparent; border: none; padding: 0; box-shadow: none; }
.aw-job-context-monitor .ai-monitor-primary { gap: 2px; display: flex; flex-direction: column; }
.aw-job-context-monitor .ai-monitor-status-row { gap: 10px; align-items: center; }
.aw-job-context-monitor .ai-monitor-status { padding: 2px 10px; font-size: 11px; font-weight: 700; }
.aw-job-context-monitor .ai-monitor-status-note { font-size: 12px; color: #64748b; }
.aw-job-context-monitor .ai-monitor-headline { font-size: 13px; font-weight: 600; line-height: 1.4; color: #0f172a; }
.aw-job-context-monitor .ai-monitor-subline { font-size: 12px; color: #64748b; line-height: 1.4; }
.aw-job-context-monitor .ai-monitor-facts,
.aw-job-context-monitor .ai-monitor-facts.is-compact { display: flex; flex-wrap: wrap; gap: 6px; grid-template-columns: none; }
.aw-job-context-monitor .ai-monitor-fact { display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #f8fafc; border: 1px solid #e2e8f0; }
.aw-job-context-monitor .ai-monitor-fact-label { margin: 0; font-size: 11px; color: #94a3b8; font-weight: 500; }
.aw-job-context-monitor .ai-monitor-fact-label::after { content: '：'; }
.aw-job-context-monitor .ai-monitor-fact-value { font-size: 12px; color: #0f172a; font-weight: 500; line-height: 1.2; }
.aw-monitor-retry { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 4px 13px; border: 1px solid #fb923c; border-radius: 999px; background: #fff7ed; color: #c2410c; font-size: 12px; font-weight: 700; cursor: pointer; box-shadow: 0 1px 2px rgba(194, 65, 12, .08); }
.aw-monitor-retry:hover { background: #ffedd5; border-color: #f97316; }
.aw-monitor-retry:disabled { cursor: wait; opacity: .65; }
/* 隐藏冗余：当前选中职位（和标题重复）、岗位未对齐 chip（和卡住 fact 重复） */
.aw-job-context-monitor .ai-monitor-subline { display: none; }
.aw-job-context-monitor > .ai-launch-chip-list,
.aw-job-context-monitor .ai-monitor-primary > .ai-launch-chip-list { display: none; }

.aw-job-context-kpi { display: flex; gap: 10px; width: 100%; }
.aw-kpi-chip { display: flex; align-items: center; justify-content: center; flex: 1 1 0; gap: 6px; min-width: 0; min-height: 36px; padding: 0 14px; border-radius: 10px; background: linear-gradient(180deg, #f8fbff 0%, #eff6ff 100%); border: 1px solid #dbeafe; font-size: 12px; color: #475569; white-space: nowrap; }
.aw-kpi-chip b { font-size: 16px; font-weight: 700; color: #1d4ed8; }
.aw-job-context-tip { font-size: 12px; line-height: 1.4; color: #64748b; }
.aw-job-context-tip:empty { display: none; }
.aw-job-context-tip::before { content: '· '; color: #cbd5e1; }

.aw-tri-column { display: grid; grid-template-columns: 260px 320px minmax(0, 1fr); gap: 14px; align-items: stretch; min-height: calc(100vh - 240px); }
.aw-tri-column > .ai-launch-section { padding: 14px; display: flex; flex-direction: column; min-width: 0; min-height: 0; }

.aw-tri-column .ai-workspace-sidebar { padding: 14px; }
.aw-tri-column .ai-workspace-job-list { max-height: none; flex: 1 1 auto; overflow-y: auto; }

.aw-candidates-col { gap: 10px; }
.aw-candidates-head { display: flex; flex-direction: column; gap: 8px; }
.aw-candidates-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; font-weight: 700; color: #0f172a; }
.aw-candidates-count { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px; background: #eff6ff; color: #1d4ed8; font-size: 11px; font-weight: 600; }
.aw-candidates-search { width: 100%; border: 1px solid #d8e0ea; border-radius: 10px; padding: 8px 10px; font-size: 12px; background: #fbfdff; }
.aw-candidate-filter-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.aw-pill { border: 1px solid #d8e0ea; background: #fff; color: #475569; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.15s ease; }
.aw-pill:hover { border-color: #93c5fd; color: #1d4ed8; }
.aw-pill.active { background: #2563eb; border-color: #2563eb; color: #fff; }
.aw-candidates-col .ai-launch-conv-list { flex: 1 1 auto; max-height: none; overflow-y: auto; border-right: none; padding-right: 0; margin-top: 4px; }

.aw-detail-col { gap: 12px; min-height: 0; }
.aw-detail-empty { flex: 1 1 auto; min-height: 320px; }
.aw-detail-body { display: flex; flex-direction: column; gap: 12px; flex: 1 1 auto; min-height: 0; }
.aw-detail-split { display: grid; grid-template-columns: minmax(0, 3fr) minmax(340px, 2fr); gap: 12px; flex: 1 1 auto; min-height: 0; }
.aw-resume-panel, .aw-chat-panel { display: flex; flex-direction: column; min-width: 0; min-height: 0; border: 1px solid #eef2f7; border-radius: 12px; background: #fcfdff; overflow: hidden; }
.aw-panel-title { padding: 10px 14px; font-size: 12px; font-weight: 700; color: #475569; background: #f8fafc; border-bottom: 1px solid #eef2f7; }
.aw-panel-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.aw-panel-tool { background: #fff; border: 1px solid #d8e0ea; color: #1d4ed8; border-radius: 6px; font-size: 11px; padding: 3px 9px; cursor: pointer; transition: background 0.15s; }
.aw-panel-tool:hover { background: #eff6ff; }
.aw-panel-tool:disabled { color: #16a34a; border-color: #bbf7d0; background: #f0fdf4; cursor: default; }
.aw-resume-content { flex: 1 1 auto; overflow-y: auto; padding: 14px 16px; font-size: 13px; color: #0f172a; line-height: 1.75; word-break: break-word; }
.aw-resume-content.is-empty { display: flex; align-items: center; justify-content: center; color: #94a3b8; }
.aw-resume-content.is-empty::before { content: '暂无简历内容'; }
.aw-resume-section { position: relative; margin: 16px 0 10px; padding: 4px 0 4px 10px; font-size: 13px; font-weight: 700; color: #0f172a; border-left: 3px solid #2563eb; line-height: 1.4; background: linear-gradient(90deg, #eff6ff 0%, transparent 80%); }
.aw-resume-section:first-child { margin-top: 0; }
.aw-resume-line { margin: 4px 0 8px; font-size: 13px; color: #0f172a; line-height: 1.75; word-break: break-word; }

/* 经历条目时间线 */
.aw-resume-timeline { list-style: none; margin: 0 0 6px; padding: 0 0 0 14px; border-left: 2px solid #e2e8f0; }
.aw-resume-item { position: relative; padding: 8px 0 10px 14px; }
.aw-resume-item + .aw-resume-item { border-top: 1px dashed #eef2f7; }
.aw-resume-item::before { content: ''; position: absolute; left: -7px; top: 14px; width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 2px solid #2563eb; }
.aw-resume-item-head { font-size: 13px; font-weight: 600; color: #0f172a; line-height: 1.5; word-break: break-word; }
.aw-resume-item-meta { margin-top: 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 12px; color: #64748b; font-variant-numeric: tabular-nums; }
.aw-resume-span { color: #1d4ed8; font-weight: 600; }
.aw-resume-duration { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 4px; background: #f1f5f9; color: #475569; font-size: 11px; font-weight: 500; }
.aw-resume-meta-dot { color: #cbd5e1; }
.aw-resume-item-tail { margin-top: 4px; font-size: 12px; color: #475569; line-height: 1.6; word-break: break-word; }

/* 候选人档案卡 */
.aw-profile-card { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border: 1px solid #eef2f7; border-radius: 12px; background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); }
.aw-profile-main { display: flex; align-items: flex-start; gap: 12px; }
.aw-profile-avatar { width: 44px; height: 44px; border-radius: 50%; background: #eff6ff; color: #1d4ed8; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.aw-profile-info { flex: 1 1 auto; min-width: 0; }
.aw-profile-info .ai-launch-conv-title { font-size: 17px; font-weight: 700; color: #0f172a; line-height: 1.3; }
.aw-profile-info .ai-launch-conv-meta { margin-top: 4px; color: #64748b; font-size: 12px; }
.aw-profile-actions { display: flex; gap: 8px; align-items: center; flex: 0 0 auto; }
.aw-profile-kpis { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; padding-top: 10px; border-top: 1px dashed #e2e8f0; }
.aw-kpi-cell { display: inline-flex; align-items: baseline; gap: 6px; }
.aw-kpi-label { color: #94a3b8; font-size: 11px; font-weight: 500; }
.aw-kpi-value { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; color: #334155; }
.aw-kpi-value.tone-high { color: #15803d; }
.aw-kpi-value.tone-mid { color: #b45309; }
.aw-kpi-value.tone-low { color: #b91c1c; }
.aw-kpi-level { padding: 2px 8px; border-radius: 6px; font-size: 12px; font-weight: 600; background: #f1f5f9; color: #334155; }
.aw-kpi-level.tone-high { background: #dcfce7; color: #15803d; }
.aw-kpi-level.tone-mid { background: #fef3c7; color: #b45309; }
.aw-kpi-level.tone-low { background: #fee2e2; color: #b91c1c; }
.aw-profile-tags { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.aw-status-tag { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 6px; background: #f1f5f9; border: 1px solid #e2e8f0; color: #475569; font-size: 11px; }
.aw-status-tag.ok { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.aw-status-tag.muted { background: #fff; color: #64748b; }

/* 匹配画像 */
.aw-match-profile { border: 1px solid #eef2f7; border-radius: 12px; background: #fff; padding: 6px 14px; }
.aw-match-list { display: flex; flex-direction: column; gap: 0; }
.aw-match-row { display: grid; grid-template-columns: 20px 64px 1fr; gap: 10px; align-items: start; padding: 8px 0; border-bottom: 1px solid #f1f5f9; font-size: 13px; color: #334155; }
.aw-match-row:last-child { border-bottom: none; }
.aw-match-icon { text-align: center; font-weight: 700; }
.aw-match-label { color: #64748b; font-size: 12px; font-weight: 600; }
.aw-match-text { line-height: 1.6; word-break: break-word; }
.aw-match-row.tone-ok .aw-match-icon { color: #16a34a; }
.aw-match-row.tone-soft .aw-match-icon { color: #2563eb; }
.aw-match-row.tone-warn .aw-match-icon { color: #dc2626; }
.aw-match-row.tone-info .aw-match-icon { color: #475569; }
.aw-chat-panel .auto-conv-messages { max-height: none; flex: 1 1 auto; }
.aw-chat-panel .auto-conv-input-area { border-top: 1px solid #eef2f7; }
.aw-conv-salary { display: inline-flex; align-items: center; padding: 2px 7px; border-radius: 999px; background: #ecfdf5; color: #047857; font-size: 11px; font-weight: 600; margin-left: 6px; }
.aw-conv-score { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 6px; background: #eff6ff; color: #1d4ed8; font-size: 11px; margin-right: 6px; }
.aw-conv-badge { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px; background: #f1f5f9; color: #475569; font-size: 11px; }

/* 控制台抽屉 */
.aw-console-drawer { position: fixed; inset: 0; z-index: 1500; }
.aw-console-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.35); }
.aw-console-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(760px, 96vw); background: #fff; box-shadow: -18px 0 48px rgba(15, 23, 42, 0.12); display: flex; flex-direction: column; animation: aw-console-in 0.18s ease-out; }
@keyframes aw-console-in { from { transform: translateX(24px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.aw-console-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #eef2f7; }
.aw-console-tabs { display: flex; flex: 1 1 auto; min-width: 0; gap: 6px; flex-wrap: wrap; }
.aw-console-head-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.aw-console-save-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }
.aw-console-save-btn[hidden] { display: none; }
.aw-console-save-btn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.aw-console-save-btn.is-loading svg { display: none; }
.aw-console-tab-btn { border: 1px solid #d8e0ea; background: #fff; color: #334155; border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer; }
.aw-console-tab-btn.active { background: #2563eb; border-color: #2563eb; color: #fff; }
.aw-console-body { flex: 1 1 auto; overflow-y: auto; padding: 18px; }
.aw-console-body .ai-workspace-tab { display: none; flex-direction: column; gap: 16px; }
.aw-console-body .ai-workspace-tab.active { display: flex; }

.ai-launch-greet-interval-field {
  display: grid;
  grid-template-columns: minmax(170px, auto) minmax(260px, 1fr);
  align-items: center;
  gap: 10px 18px;
  padding: 14px 16px;
  border: 1px solid #dbe7f5;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8fbff, #f5f8ff);
}

.ai-launch-form-grid .form-group .ai-launch-greet-interval-toggle,
.ai-launch-greet-interval-control {
  display: flex;
  margin: 0;
  align-items: center;
  gap: 8px;
  color: #334155;
  font-size: 13px;
}

.ai-launch-form-grid .form-group .ai-launch-greet-interval-toggle {
  margin-bottom: 0;
  color: #334155;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
}

.ai-launch-greet-interval-toggle input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #2563eb;
}

.ai-launch-greet-interval-control {
  justify-content: flex-end;
  color: #64748b;
}

#ai-launch-greet-interval-seconds {
  width: 92px;
  min-width: 92px;
  height: 36px;
  padding: 6px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #0f172a;
  font-weight: 650;
  text-align: center;
}

#ai-launch-greet-interval-seconds:disabled {
  background: #eef2f7;
  color: #94a3b8;
  cursor: not-allowed;
}

.ai-launch-greet-interval-field > .ai-launch-hint {
  grid-column: 1 / -1;
  margin: -2px 0 0;
}

@media (max-width: 640px) {
  .ai-launch-greet-interval-field {
    grid-template-columns: 1fr;
  }

  .ai-launch-greet-interval-control {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

@media (max-width: 1200px) {
  .ai-workspace-sidebar {
    position: static;
  }

  .ai-workspace-job-list {
    max-height: 280px;
  }

  .aw-tri-column {
    grid-template-columns: 240px minmax(0, 1fr);
    min-height: 0;
  }

  .aw-tri-column .aw-detail-col {
    grid-column: 1 / -1;
  }

  .aw-detail-split {
    grid-template-columns: 1fr;
  }

  .ai-workspace-grid,
  .ai-workspace-mode-summary,
  .ai-monitor-facts,
  .ai-launch-top-grid,
  .ai-launch-bottom-grid,
  .ai-launch-conv-layout {
    grid-template-columns: 1fr;
  }

  .ai-workspace-hero {
    flex-direction: column;
  }

  .ai-workspace-hero-actions {
    justify-content: flex-start;
  }

  .aw-job-context-bar {
    grid-template-columns: 1fr;
  }

  .aw-job-context-actions {
    justify-content: flex-start;
  }

  .ai-workspace-time-row {
    flex-direction: column;
  }

  .top-navbar {
    padding: 0 16px;
  }

  .ai-launch-analysis-editor-grid {
    grid-template-columns: 1fr;
  }

  .navbar-left,
  .navbar-right,
  .panel-header,
  .panel-header-actions,
  .panel-tabs,
  .doc-toolbar,
  .doc-toolbar-right,
  .template-toolbar,
  .auto-demo-toolbar,
  .auto-demo-quick-actions,
  .auto-demo-form-actions,
  .audit-pagination-row,
  .profile-panel-header,
  .profile-panel-header-left {
    flex-wrap: wrap;
  }

  .navbar-left,
  .navbar-right {
    gap: 12px;
    min-width: 0;
  }

  .quote-bar {
    max-width: 240px;
  }

  .main-content {
    padding: 20px 16px;
  }

  .panel-header {
    gap: 12px;
  }

  .panel-header h2 {
    font-size: 22px;
  }

  .welcome-section-v2 {
    flex-direction: column;
    align-items: stretch;
    padding: 20px 24px;
    gap: 16px;
  }

  .welcome-text-v2 {
    font-size: 22px;
    word-break: break-word;
  }

  .top-deals-section {
    width: 100%;
    flex-wrap: wrap;
  }

  .deal-stage {
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
  }

  .deal-card {
    flex: 1 1 220px;
    max-width: none;
  }

  .announcement-split-layout {
    flex-direction: column;
    max-height: none;
  }

  .announcement-left-panel,
  .announcement-right-panel {
    width: 100%;
  }

  .announcement-left-panel {
    border-right: none;
    border-bottom: 1px solid #e5e7eb;
    padding-right: 0;
    padding-bottom: 12px;
  }

  .doc-file-item,
  .auto-demo-card {
    flex-wrap: wrap;
  }

  .auto-demo-card {
    align-items: flex-start;
    gap: 10px;
  }

  .auto-conv-layout {
    flex-direction: column;
    min-height: auto;
  }

  .auto-conv-sidebar {
    width: 100%;
    max-height: 240px;
    border-right: none;
    border-bottom: 1px solid #e2e8f0;
  }

  .company-detail-modal .modal-content {
    width: 96vw;
  }

  .info-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1024px) {
  body {
    overflow-x: hidden;
  }

  .top-navbar {
    position: sticky;
    padding: 10px 14px;
    height: auto;
    min-height: 64px;
    gap: 12px;
  }

  .navbar-left {
    flex: 1;
    gap: 12px;
  }

  .navbar-logo {
    height: 36px;
  }

  .mobile-menu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
  }

  .navbar-nav {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 12px;
    right: 12px;
    background: #ffffff;
    border-radius: 14px;
    padding: 12px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
    border: 1px solid #e5e7eb;
    flex-direction: column;
    gap: 8px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    z-index: 120;
  }

  .navbar-nav.show {
    display: flex;
  }

  .navbar-nav .nav-link {
    color: #374151;
    background: #f8fafc;
    padding: 12px 14px;
  }

  .navbar-nav .nav-link:hover {
    background: #eff6ff;
    color: #1d4ed8;
  }

  .navbar-nav .nav-link.active,
  .navbar-nav .nav-link.active:hover {
    background: #2563eb;
    color: #ffffff;
  }

  .navbar-nav .nav-menu {
    display: block;
    width: 100%;
  }

  .navbar-nav .nav-menu-trigger {
    width: 100%;
  }

  .navbar-nav .nav-menu-chevron {
    margin-left: auto;
  }

  .navbar-nav .nav-submenu {
    position: static;
    width: auto;
    margin: 6px 0 0 20px;
    padding: 4px;
    border-color: #e2e8f0;
    box-shadow: none;
  }

  .quote-bar {
    display: none;
  }

  .mobile-quote-bar {
    display: block;
  }

  .navbar-right {
    margin-left: auto;
    gap: 10px;
  }

  .user-section {
    gap: 10px;
  }

  .user-name {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .notification-btn,
  .help-btn {
    padding: 6px;
  }

  .main-content {
    padding: 16px 12px 24px;
    overflow-x: hidden;
  }

  .panel-header,
  .panel-header-actions,
  .panel-tabs,
  .toolbar,
  .doc-toolbar,
  .doc-toolbar-right,
  .resume-filters,
  .template-toolbar,
  .auto-demo-toolbar,
  .auto-demo-quick-actions,
  .auto-demo-form-actions {
    width: 100%;
  }

  .panel-header h2 {
    font-size: 20px;
  }

  .home-v2-container {
    max-width: none;
  }

  .dashboard-grid-v2 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
  }

  .col-span-2-v2,
  .col-span-3-v2,
  .col-span-4-v2,
  .col-span-6-v2,
  .col-span-10-v2,
  .col-span-12-v2 {
    grid-column: span 12;
  }

  .card-v2 {
    padding: 16px;
  }

  .welcome-section-v2 {
    padding: 20px;
  }

  .welcome-text-v2 {
    font-size: 20px;
    line-height: 1.5;
  }

  .welcome-quote-v2 {
    font-size: 14px;
  }

  .welcome-tiger-icon {
    height: 28px;
  }

  .latest-announcement {
    max-width: 100%;
  }

  .top-deals-section {
    display: block;
    width: 100%;
  }

  .deal-stage {
    width: 100%;
    min-width: 0;
    flex-wrap: wrap;
  }

  .deal-card {
    width: auto;
  }

  .calendar-widget-v2 {
    min-height: 320px;
  }

  .table-wrap,
  .audit-table-wrap,
  #perf-table {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }

  .audit-table-wrap table {
    min-width: 760px;
  }

  #perf-table table {
    min-width: 1100px;
  }

  .doc-toolbar-right input,
  .resume-filters input[type="text"] {
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .resume-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  }

  .template-toolbar,
  .auto-demo-toolbar,
  .auto-demo-card-actions,
  .auto-demo-quick-actions,
  .auto-demo-form-actions {
    gap: 8px;
  }

  .auto-demo-card-actions,
  .auto-demo-quick-actions,
  .auto-demo-form-actions {
    flex-wrap: wrap;
    width: 100%;
  }

  .auto-conv-messages {
    max-height: 320px;
  }

  .tiger-channel-layout {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
  }

  .tiger-channel-nav {
    flex-direction: row;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .tiger-channel-nav-item {
    min-width: 210px;
  }

  .tiger-channel-mount {
    height: min(720px, calc(100vh - 210px));
    min-height: 560px;
  }

  .tiger-channel-brief {
    display: none;
  }

  .modal-content {
    width: min(96vw, 800px);
    max-height: 88vh;
  }

  .modal-header {
    padding: 16px 18px;
  }

  .modal-body {
    padding: 18px;
  }

  .modal-footer {
    padding: 14px 18px;
    flex-wrap: wrap;
  }

  .order-modal-new {
    max-width: 96vw;
  }

  .order-modal-new .modal-body,
  .order-modal-new .modal-footer,
  .company-detail-modal .modal-header,
  .company-detail-modal .modal-body {
    padding-left: 18px;
    padding-right: 18px;
  }
}

@media (max-width: 768px) {
  .top-navbar {
    padding: 10px 12px;
  }

  .navbar-logo {
    height: 32px;
  }

  .navbar-right {
    gap: 8px;
  }

  .main-content {
    padding: 12px 10px 20px;
  }

  .panel-header h2 {
    font-size: 18px;
  }

  .panel-tabs,
  .doc-category-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }

  .panel-tab,
  .doc-category-tab {
    white-space: nowrap;
  }

  .welcome-section-v2 {
    padding: 16px;
    gap: 14px;
  }

  .welcome-text-v2 {
    font-size: 18px;
  }

  .welcome-quote-v2 {
    font-size: 13px;
  }

  .top-deals-section {
    display: block;
  }

  .deal-card {
    padding: 10px 14px;
  }

  .card-v2 {
    padding: 14px;
  }

  .rank-table-v2 th,
  .rank-table-v2 td,
  th,
  td {
    padding: 8px 10px;
    font-size: 13px;
  }

  .calendar-widget-v2 {
    min-height: 280px;
  }

  .announcement-left-panel {
    max-height: 220px;
    overflow-y: auto;
  }

  .audit-table-wrap table {
    min-width: 680px;
  }

  #perf-table table {
    min-width: 900px;
    font-size: 13px;
  }

  .doc-toolbar-right,
  .resume-filters,
  .template-toolbar,
  .auto-demo-toolbar,
  .auto-demo-card-actions,
  .auto-demo-quick-actions,
  .auto-demo-form-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .doc-toolbar-right > *,
  .resume-filters > *,
  .template-toolbar > *,
  .auto-demo-toolbar > *,
  .auto-demo-card-actions > *,
  .auto-demo-quick-actions > *,
  .auto-demo-form-actions > * {
    width: 100%;
  }

  .resume-grid {
    grid-template-columns: 1fr;
  }

  .modal-content {
    width: calc(100vw - 12px);
    max-height: 90vh;
  }

  .modal-header h3,
  .company-detail-modal .modal-header h2 {
    font-size: 18px;
  }

  .modal-header,
  .modal-body,
  .modal-footer,
  .order-modal-new .modal-body,
  .order-modal-new .modal-footer,
  .company-detail-modal .modal-header,
  .company-detail-modal .modal-body {
    padding: 16px;
  }

  .auto-conv-msg {
    max-width: 88%;
  }

  .tiger-chat-window {
    width: min(520px, calc(100vw - 20px));
    min-width: min(360px, calc(100vw - 20px));
    height: min(620px, calc(100vh - 104px));
    min-height: 460px;
    max-width: calc(100vw - 20px);
    max-height: calc(100vh - 104px);
    right: 0;
    bottom: 70px;
  }
}

@media (max-width: 480px) {
  .top-navbar {
    padding: 8px 10px;
  }

  .user-name {
    display: none;
  }

  .mobile-quote-bar {
    padding: 10px 12px;
  }

  .welcome-text-v2 {
    font-size: 16px;
  }

  .welcome-quote-v2 {
    font-size: 12px;
  }

  .welcome-tiger-icon {
    height: 24px;
  }

  .tiger-channel-hero {
    align-items: flex-start;
    flex-direction: column;
    padding: 16px;
  }

  .tiger-channel-avatar {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }

  .tiger-channel-brand h2 {
    font-size: 21px;
  }

  .tiger-channel-actions,
  .tiger-channel-action {
    width: 100%;
  }

  .tiger-channel-action {
    justify-content: center;
  }

  .tiger-channel-mount {
    height: calc(100vh - 260px);
    min-height: 500px;
  }

  .tiger-chat-window {
    width: calc(100vw - 16px);
    min-width: calc(100vw - 16px);
    height: min(600px, calc(100vh - 96px));
    min-height: 440px;
    max-width: calc(100vw - 16px);
    right: -8px;
  }

  .card-v2 {
    padding: 12px;
    border-radius: 14px;
  }

  .stat-value-v2 {
    font-size: 24px;
  }

  .rank-table-v2 th,
  .rank-table-v2 td {
    padding: 8px 4px;
  }

  .audit-table-wrap table {
    min-width: 620px;
  }

  #perf-table table {
    min-width: 820px;
  }

  .auto-demo-kpi {
    min-width: calc(50% - 8px);
  }
}

/* ============================================================ */
/* 个人工作台（Bento Grid · Apple 风）                          */
/* ============================================================ */
:root {
  /* 温馨配色：奶米底色 + 摩卡棕主操作色（参考 Notion/Sunsama 温暖调） */
  --pw-bg:        #F5F5F7;        /* Apple 冷浅灰系统背景 */
  --pw-surface:   #FFFFFF;
  --pw-text:      #2A2520;        /* 深棕灰，不再死黑 */
  --pw-text-2:    #6E665E;
  --pw-text-3:    #9B9389;
  --pw-border:    #ECE6DC;        /* 暖米边框 */
  --pw-divider:   #F4EFE6;
  --pw-shadow:    0 1px 3px rgba(120, 90, 50, 0.05), 0 8px 24px rgba(120, 90, 50, 0.04);
  --pw-shadow-hover: 0 4px 12px rgba(120, 90, 50, 0.08), 0 20px 48px rgba(120, 90, 50, 0.08);

  /* 主操作色：从 Apple 死黑 #1D1D1F 改为温暖摩卡棕 */
  --pw-primary:    #8B6F47;       /* 摩卡棕：足够深保证对比度，也足够暖 */
  --pw-primary-hover: #6F573A;
  --pw-primary-bg: #FBF4E8;       /* 主操作色对应的浅底（badge/标签用） */

  /* 类型语义色不变，但订单蓝换成更柔和的青蓝 */
  --pw-resume:    #C97B3E;        /* 暖橙琥珀 */
  --pw-resume-bg: #FBEBD4;
  --pw-order:     #4A7CB8;        /* 柔和蓝（之前 #2563EB 偏冷亮） */
  --pw-order-bg:  #DCE7F4;
  --pw-recom:     #4F8F6B;        /* 柔和绿 */
  --pw-recom-bg:  #DCEFE2;
  --pw-other:     #8A7F73;        /* 暖灰棕 */
  --pw-other-bg:  #F0EBE2;

  --pw-success:   #5CB17E;
  --pw-warning:   #E59544;
  --pw-error:     #DC5A4E;

  --pw-radius:    20px;
  --pw-radius-sm: 14px;
  --pw-radius-xs: 10px;
  --pw-easing:    cubic-bezier(0.16, 1, 0.3, 1);
  --pw-font:      -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI", "Segoe UI", sans-serif;
}

#channel-personal {
  background: var(--pw-bg);
  font-family: var(--pw-font);
  color: var(--pw-text);
  padding: 0;
  min-height: calc(100vh - 60px);
}

.pw-shell {
  max-width: 1400px;
  margin: 0 auto;
  padding: 32px 28px 60px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.pw-bento-top {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: minmax(140px, auto);
  gap: 16px;
}

.pw-span-2x1 { grid-column: span 2; }  /* 旧别名，保留兼容 */

/* 问候卡占 3 列、4 个 KPI（简历/订单/推荐/其他）各 1 列 → 第一行刚好 7 列填满
   上传区占整行；这两条要写在 .pw-span-2x1 之后才能覆盖 */
.pw-hello.pw-hello   { grid-column: span 3; }
.pw-upload.pw-upload { grid-column: 1 / -1; }

.pw-kpi-other strong { color: var(--pw-other); }
.pw-kpi-other.is-active { color: var(--pw-other); }

/* 批量操作浮动条 */
.pw-batch-bar {
  background: var(--pw-primary);
  color: #fff;
  border-radius: 999px;
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  box-shadow: 0 8px 28px rgba(0,0,0,0.18);
}

.pw-batch-bar .pw-btn-mini {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border-color: transparent;
}

.pw-batch-bar .pw-btn-mini:hover {
  background: rgba(255,255,255,0.22);
  color: #fff;
}

.pw-batch-bar .pw-btn-mini.is-danger {
  background: var(--pw-error);
  color: #fff;
}

.pw-batch-bar .pw-btn-mini.is-danger:hover {
  background: #c0291f;
}

.pw-batch-bar-info {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
}

.pw-batch-bar-info b {
  font-size: 16px;
  color: #fff;
  font-weight: 700;
}

.pw-batch-bar-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

/* 卡片批量选中复选框 */
.pw-card-checkbox {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 1.5px solid var(--pw-border);
  background: var(--pw-surface);
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: var(--pw-text);
  font-weight: 700;
  user-select: none;
  z-index: 2;
}

.is-batch-mode .pw-card-checkbox { display: flex; }

.pw-card-checkbox.is-checked {
  background: var(--pw-primary);
  color: #fff;
  border-color: var(--pw-primary);
}

.pw-file-card.is-selected {
  outline: 2px solid var(--pw-text);
  outline-offset: 2px;
}

.pw-card {
  background: var(--pw-surface);
  border-radius: var(--pw-radius);
  padding: 22px;
  box-shadow: var(--pw-shadow);
  transition: transform 220ms var(--pw-easing), box-shadow 220ms var(--pw-easing);
  position: relative;
}

.pw-hello {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  background: linear-gradient(135deg, #FFFFFF 0%, #FAFAFC 100%);
}

.pw-kicker {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pw-text-3);
  margin: 0 0 6px;
}

.pw-hello h2 {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--pw-text);
}

.pw-subtitle {
  margin: 6px 0 0;
  color: var(--pw-text-2);
  font-size: 14px;
  line-height: 1.5;
}

.pw-helper-status {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--pw-divider);
}

.pw-status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--pw-text-3);
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(110, 110, 115, 0.12);
}

.pw-status-dot.online {
  background: var(--pw-success);
  box-shadow: 0 0 0 4px rgba(52, 199, 89, 0.18);
}

.pw-status-dot.offline {
  background: var(--pw-warning);
  box-shadow: 0 0 0 4px rgba(255, 149, 0, 0.18);
}

.pw-helper-label {
  flex: 1;
  font-size: 13px;
  color: var(--pw-text-2);
  line-height: 1.6;
}

.pw-helper-label b {
  color: var(--pw-text);
  font-weight: 600;
}

.pw-helper-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.pw-doc-center-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.pw-doc-center-btn svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.pw-kpi {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
  border: 1px solid transparent;
}

.pw-kpi:hover {
  transform: scale(1.02);
  box-shadow: var(--pw-shadow-hover);
}

.pw-kpi-label {
  font-size: 13px;
  color: var(--pw-text-2);
  font-weight: 500;
}

.pw-kpi strong {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  margin: 12px 0 8px;
  font-variant-numeric: tabular-nums;
}

.pw-kpi small {
  font-size: 12px;
  color: var(--pw-text-3);
}

.pw-kpi small em {
  font-style: normal;
  font-weight: 600;
  color: var(--pw-warning);
}

.pw-kpi-resume strong { color: var(--pw-resume); }
.pw-kpi-order strong  { color: var(--pw-order); }
.pw-kpi-recom strong  { color: var(--pw-recom); }

.pw-kpi.is-active { border-color: currentColor; }
.pw-kpi-resume.is-active { color: var(--pw-resume); }
.pw-kpi-order.is-active  { color: var(--pw-order); }
.pw-kpi-recom.is-active  { color: var(--pw-recom); }

.pw-upload {
  background: linear-gradient(135deg, #FAFAFC 0%, #F0F0F4 100%);
  border: 1.5px dashed var(--pw-border);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-align: center;
  padding: 14px 22px;
  min-height: 0;
  transition: border-color 200ms var(--pw-easing), background 200ms var(--pw-easing);
}

.pw-upload.is-drag-over {
  border-color: var(--pw-order);
  background: var(--pw-order-bg);
}

.pw-upload-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  color: var(--pw-text-2);
  flex-wrap: wrap;
  justify-content: center;
}

.pw-upload-inner svg { color: var(--pw-text-3); }

.pw-upload-inner p { margin: 0; font-size: 14px; }

.pw-upload-inner p b { color: var(--pw-text); font-weight: 600; }

.pw-upload-inner a {
  color: var(--pw-order);
  text-decoration: none;
  font-weight: 600;
}

.pw-upload-inner small { font-size: 12px; color: var(--pw-text-3); }

.pw-upload-msg {
  margin-top: 12px;
  font-size: 13px;
  color: var(--pw-text-2);
  min-height: 18px;
}

.pw-upload-msg.is-success { color: var(--pw-success); }
.pw-upload-msg.is-error   { color: var(--pw-error); }

/* 个人文件重复与正式合并：显式给出取消、覆盖、新增，避免用颜色或浏览器弹窗隐藏风险。 */
.pw-decision-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, .54);
}

.pw-decision-dialog {
  width: min(520px, 100%);
  border-radius: 14px;
  background: #fff;
  color: #172033;
  box-shadow: 0 24px 64px rgba(15, 23, 42, .32);
  padding: 24px;
}

.pw-decision-dialog h3 {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.4;
}

.pw-decision-dialog p {
  margin: 0;
  color: #475569;
  font-size: 14px;
  line-height: 1.65;
}

.pw-decision-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 20px;
}

.pw-decision-actions .pw-btn {
  min-height: 44px;
}

.pw-btn-danger {
  color: #fff;
  background: #b42318;
  border-color: #b42318;
}

.pw-btn-danger:hover,
.pw-btn-danger:focus-visible {
  color: #fff;
  background: #8f1d13;
  border-color: #8f1d13;
}

.pw-decision-month {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  margin-top: 16px;
  border: 1px solid #94a3b8;
  border-radius: 8px;
  padding: 8px 10px;
  color: #172033;
  font: inherit;
}

.pw-decision-month:focus-visible,
.pw-decision-dialog button:focus-visible {
  outline: 3px solid rgba(37, 99, 235, .35);
  outline-offset: 2px;
}

@media (max-width: 560px) {
  .pw-decision-dialog { padding: 20px; }
  .pw-decision-actions { justify-content: stretch; }
  .pw-decision-actions .pw-btn { flex: 1 1 100%; }
}

.pw-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.pw-filter-pills {
  display: flex;
  gap: 6px;
  background: var(--pw-surface);
  padding: 4px;
  border-radius: 999px;
  box-shadow: var(--pw-shadow);
}

.pw-pill {
  border: none;
  background: transparent;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  color: var(--pw-text-2);
  cursor: pointer;
  transition: background 180ms var(--pw-easing), color 180ms var(--pw-easing);
  font-family: inherit;
}

.pw-pill:hover { color: var(--pw-text); }

.pw-pill.active {
  background: var(--pw-primary);
  color: #fff;
}

.pw-filter-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

#pw-search {
  background: var(--pw-surface);
  border: 1px solid var(--pw-border);
  border-radius: 999px;
  padding: 9px 16px;
  font-size: 13px;
  width: 280px;
  font-family: inherit;
  color: var(--pw-text);
  outline: none;
  transition: border-color 180ms var(--pw-easing), box-shadow 180ms var(--pw-easing);
}

#pw-search:focus {
  border-color: var(--pw-order);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.pw-btn {
  border: none;
  border-radius: 999px;
  padding: 9px 18px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: transform 180ms var(--pw-easing), background 180ms var(--pw-easing), opacity 180ms;
}

.pw-btn:active { transform: scale(0.97); }
.pw-btn:disabled {
  cursor: wait;
  opacity: 0.62;
  transform: none;
}

.pw-btn-primary {
  background: var(--pw-primary);
  color: #fff;
}
.pw-btn-primary:hover { background: var(--pw-primary-hover); }

.pw-btn-secondary {
  background: var(--pw-surface);
  color: var(--pw-text);
  border: 1px solid var(--pw-border);
}
.pw-btn-secondary:hover { background: var(--pw-divider); }

.pw-btn-ghost {
  background: transparent;
  color: var(--pw-text-2);
  padding: 9px 14px;
}
.pw-btn-ghost:hover {
  background: var(--pw-surface);
  color: var(--pw-text);
}

.pw-btn-icon {
  border: none;
  background: transparent;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  color: var(--pw-text-2);
  cursor: pointer;
  transition: background 180ms;
}
.pw-btn-icon:hover {
  background: var(--pw-divider);
  color: var(--pw-text);
}

.pw-btn-mini {
  border: 1px solid var(--pw-border);
  background: var(--pw-surface);
  color: var(--pw-text-2);
  font-size: 12px;
  padding: 5px 12px;
  border-radius: 999px;
  cursor: pointer;
  font-family: inherit;
  transition: background 180ms, color 180ms;
}
.pw-btn-mini:hover {
  background: var(--pw-primary);
  color: #fff;
  border-color: var(--pw-primary);
}

.pw-btn-mini.is-primary {
  background: var(--pw-primary);
  color: #fff;
  border-color: var(--pw-primary);
}

.pw-btn-mini.is-danger { color: var(--pw-error); }
.pw-btn-mini.is-danger:hover {
  background: var(--pw-error);
  color: #fff;
  border-color: var(--pw-error);
}

.pw-file-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

.pw-file-card {
  background: var(--pw-surface);
  border-radius: var(--pw-radius);
  padding: 20px 20px 18px;
  box-shadow: var(--pw-shadow);
  border-left: 4px solid var(--pw-other);
  transition: transform 220ms var(--pw-easing), box-shadow 220ms var(--pw-easing);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
}

.pw-file-card:hover {
  transform: scale(1.015);
  box-shadow: var(--pw-shadow-hover);
}

.pw-file-card.is-resume { border-left-color: var(--pw-resume); }
.pw-file-card.is-order  { border-left-color: var(--pw-order); }
.pw-file-card.is-recom  { border-left-color: var(--pw-recom); }
.pw-file-card.is-finance { border-left-color: #0f766e; }
.pw-file-card.is-other  { border-left-color: var(--pw-other); }
/* 全量视图(admin/finance)：被用户软删除的文件卡置灰 + 标注 */
.pw-file-card.is-deleted { opacity: .55 !important; }
.pw-deleted-badge {
  display: inline-block;
  background: var(--pw-danger, #FF3B30);
  color: #fff;
  font-size: 10px;
  line-height: 1.4;
  padding: 1px 6px;
  border-radius: 6px;
  margin-left: 4px;
}
/* 工具栏「全部用户」开关激活态 */
.pw-btn.is-active {
  background: var(--pw-accent, #2563EB) !important;
  color: #fff !important;
  border-color: var(--pw-accent, #2563EB) !important;
}

.pw-file-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.pw-type-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--pw-other-bg);
  color: var(--pw-other);
  letter-spacing: 0.02em;
}

.pw-type-badge.is-resume { background: var(--pw-resume-bg); color: var(--pw-resume); }
.pw-type-badge.is-order  { background: var(--pw-order-bg);  color: var(--pw-order); }
.pw-type-badge.is-recom  { background: var(--pw-recom-bg);  color: var(--pw-recom); }
.pw-type-badge.is-finance { background: #ccfbf1; color: #0f766e; }

.pw-file-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--pw-text);
  margin: 0;
  line-height: 1.4;
  word-break: break-all;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pw-file-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  font-size: 12px;
  color: var(--pw-text-3);
}

.pw-file-meta span b {
  color: var(--pw-text-2);
  font-weight: 600;
}

.pw-visibility-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}

.pw-visibility-badge.is-private {
  color: #475569;
  background: #f1f5f9;
}

.pw-visibility-badge.is-public {
  color: #166534;
  background: #dcfce7;
}

.pw-file-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 2px;
}

.pw-file-tags span {
  font-size: 11px;
  background: var(--pw-divider);
  color: var(--pw-text-2);
  padding: 2px 8px;
  border-radius: 6px;
}

.pw-file-status-line {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--pw-divider);
  margin-top: 4px;
}

.pw-status-text {
  font-size: 12px;
  color: var(--pw-text-2);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pw-status-text .pw-status-icon {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
}

.pw-status-text.is-synced .pw-status-icon  { background: var(--pw-success); }
.pw-status-text.is-pending .pw-status-icon { background: var(--pw-warning); }
.pw-status-text.is-archived .pw-status-icon{ background: var(--pw-recom); }
.pw-status-text.is-failed .pw-status-icon  { background: var(--pw-error); }

.pw-card-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.pw-drafts-section {
  background: var(--pw-surface);
  border-radius: var(--pw-radius);
  padding: 24px 22px;
  box-shadow: var(--pw-shadow);
}

.pw-drafts-section h3 {
  margin: 0 0 14px;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 10px;
}

.pw-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 8px;
  height: 22px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: var(--pw-order);
  border-radius: 999px;
}

.pw-draft-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pw-draft-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: var(--pw-bg);
  border-radius: var(--pw-radius-sm);
  border-left: 3px solid var(--pw-order);
}

.pw-draft-item-main { flex: 1; min-width: 0; }

.pw-draft-item-main strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
  word-break: break-all;
}

.pw-draft-item-main span {
  font-size: 12px;
  color: var(--pw-text-2);
}

.pw-draft-issue-summary {
  display: block;
  margin-top: 5px;
  color: #9a3412;
  font-size: 12px;
  font-weight: 600;
}

.pw-draft-issue-summary b {
  color: #166534;
}

.pw-draft-issue-summary.is-clean {
  color: #166534;
}

.pw-draft-actions { display: flex; gap: 6px; }

.pw-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 480px;
  max-width: 100%;
  background: var(--pw-surface);
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.08);
  transform: translateX(100%);
  transition: transform 280ms var(--pw-easing);
  z-index: 1001;
  display: flex;
  flex-direction: column;
  font-family: var(--pw-font);
  color: var(--pw-text);
}

.pw-drawer.is-open { transform: translateX(0); }

.pw-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms var(--pw-easing);
  z-index: 1000;
}

.pw-drawer-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.pw-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
  border-bottom: 1px solid var(--pw-divider);
}

.pw-drawer-head h3 {
  margin: 6px 0 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.pw-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 22px 32px;
}

.pw-detail-section { margin-bottom: 22px; }

.pw-detail-section h4 {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pw-text-3);
  margin: 0 0 8px;
}

.pw-detail-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  font-size: 14px;
  border-bottom: 1px solid var(--pw-divider);
}

.pw-detail-row:last-child { border-bottom: none; }

.pw-detail-row b {
  color: var(--pw-text-2);
  font-weight: 500;
  white-space: nowrap;
}

.pw-detail-row span {
  color: var(--pw-text);
  text-align: right;
  word-break: break-all;
}

.pw-setting-group { margin-bottom: 22px; }

.pw-setting-group label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--pw-text);
  margin-bottom: 8px;
}

.pw-setting-group select,
.pw-setting-group input[type="text"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-xs);
  font-size: 14px;
  font-family: inherit;
  color: var(--pw-text);
  background: var(--pw-surface);
  outline: none;
  transition: border-color 180ms;
}

.pw-setting-group select:focus,
.pw-setting-group input[type="text"]:focus {
  border-color: var(--pw-order);
}

.pw-hint {
  font-size: 12px;
  color: var(--pw-text-3);
  margin: 6px 0 0;
  line-height: 1.5;
}

.pw-setting-actions {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.pw-empty {
  text-align: center;
  padding: 64px 20px;
  color: var(--pw-text-3);
  font-size: 14px;
  grid-column: 1 / -1;
}

.pw-empty p { margin: 12px 0 0; }

.pw-case-recom-section {
  margin-top: 16px;
  padding: 16px 18px;
  background: var(--pw-recom-bg);
  border-radius: 12px;
  border-left: 3px solid var(--pw-recom);
}

.pw-case-recom-section h4 {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--pw-recom);
}

.pw-case-recom-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid rgba(5, 150, 105, 0.12);
  font-size: 13px;
}

.pw-case-recom-item:last-child { border-bottom: none; }

.pw-case-recom-item a {
  color: var(--pw-order);
  text-decoration: none;
  font-weight: 500;
}
.pw-case-recom-item a:hover { text-decoration: underline; }

@media (max-width: 1024px) {
  .pw-bento-top { grid-template-columns: repeat(4, 1fr); }
  .pw-span-2x1 { grid-column: span 2; }
}

@media (max-width: 768px) {
  .pw-shell { padding: 20px 16px 40px; }
  .pw-bento-top { grid-template-columns: repeat(2, 1fr); }
  .pw-span-2x1 { grid-column: span 2; }
  .pw-hello h2 { font-size: 22px; }
  .pw-helper-status { flex-wrap: wrap; }
  .pw-helper-actions { width: 100%; margin-left: 22px; flex-wrap: wrap; }
  .pw-kpi strong { font-size: 32px; }
  #pw-search { width: 160px; }
  .pw-drawer { width: 100vw; }
}

/* ============================================================ */
/* 外部对接（飞书 / 钉钉 / 微信）                                */
/* ============================================================ */
.pw-divider {
  border: none;
  border-top: 1px solid var(--pw-divider);
  margin: 24px 0;
}

.pw-integrations-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}

.pw-integration-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  background: var(--pw-bg);
  border-radius: var(--pw-radius-sm);
  border-left: 3px solid var(--pw-text-3);
}

.pw-integration-card.is-connected   { border-left-color: var(--pw-success); }
.pw-integration-card.is-configured  { border-left-color: var(--pw-warning); }
.pw-integration-card.is-error       { border-left-color: var(--pw-error); }

.pw-integration-card-main { flex: 1; min-width: 0; }

.pw-integration-card-main strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
}

.pw-integration-card-main span {
  font-size: 12px;
  color: var(--pw-text-2);
}

.pw-integration-status {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--pw-other-bg);
  color: var(--pw-other);
  margin-left: 6px;
}

.pw-integration-status.is-connected   { background: rgba(52, 199, 89, 0.16); color: #1F7A38; }
.pw-integration-status.is-configured  { background: rgba(255, 149, 0, 0.16); color: #B85700; }
.pw-integration-status.is-error       { background: rgba(255, 59, 48, 0.14); color: #B22A22; }

/* 嵌入模态（覆盖在 settings drawer 上方） */
.pw-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1100;
  padding: 20px;
}

.pw-modal.is-open { display: flex; }

.pw-modal-card {
  background: var(--pw-surface);
  border-radius: var(--pw-radius);
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
  font-family: var(--pw-font);
  color: var(--pw-text);
}

.pw-modal-head {
  padding: 20px 24px;
  border-bottom: 1px solid var(--pw-divider);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pw-modal-head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.pw-modal-body {
  padding: 22px 24px;
  overflow-y: auto;
}

.pw-modal-body label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin: 14px 0 6px;
}

.pw-modal-body input[type="text"],
.pw-modal-body input[type="password"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-xs);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  box-sizing: border-box;
}

.pw-modal-body input:focus { border-color: var(--pw-order); }

.pw-modal-body ol {
  font-size: 13px;
  color: var(--pw-text-2);
  line-height: 1.7;
  padding-left: 22px;
  margin: 8px 0;
}

.pw-modal-body a {
  color: var(--pw-order);
  text-decoration: none;
  font-weight: 500;
}

.pw-modal-body .pw-modal-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--pw-divider);
}

.pw-redirect-code {
  background: var(--pw-divider);
  padding: 8px 10px;
  border-radius: var(--pw-radius-xs);
  font-family: monospace;
  font-size: 12px;
  word-break: break-all;
  margin: 4px 0 0;
}

/* ============================================================ */
/* 今日复盘 + AI 日报                                            */
/* ============================================================ */
.pw-recap-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.pw-recap-card,
.pw-summary-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 220px;
}

.pw-recap-card header,
.pw-summary-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.pw-recap-card header h3,
.pw-summary-card header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.pw-recap-card header h3 small {
  font-size: 12px;
  font-weight: 500;
  color: var(--pw-text-3);
}

.pw-recap-hint {
  display: block;
  font-size: 12px;
  color: var(--pw-text-2);
  line-height: 1.5;
  margin-top: 4px;
}

#pw-recap-content {
  flex: 1;
  min-height: 120px;
  resize: vertical;
  padding: 12px 14px;
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-sm);
  font-family: var(--pw-font);
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--pw-text);
  background: var(--pw-bg);
  outline: none;
  transition: border-color 180ms, background 180ms;
}

#pw-recap-content:focus {
  border-color: var(--pw-order);
  background: var(--pw-surface);
}

.pw-recap-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.pw-recap-saved {
  font-size: 12px;
  color: var(--pw-text-3);
}

.pw-recap-saved.is-saved { color: var(--pw-success); }

.pw-btn-sm {
  padding: 6px 12px;
  font-size: 12px;
}

.pw-summary-content {
  flex: 1;
  padding: 14px 16px;
  background: var(--pw-bg);
  border-radius: var(--pw-radius-sm);
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--pw-text);
  white-space: pre-wrap;
  word-break: break-word;
  overflow-y: auto;
  max-height: 360px;
}

.pw-summary-content.is-loading {
  color: var(--pw-text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-style: italic;
}

.pw-summary-empty {
  margin: 0;
  color: var(--pw-text-3);
  font-size: 13px;
  line-height: 1.6;
}

.pw-summary-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 11px;
  color: var(--pw-text-3);
  padding-top: 10px;
  margin-top: 10px;
  border-top: 1px solid var(--pw-divider);
}

.pw-summary-meta span b { color: var(--pw-text-2); font-weight: 600; }

@media (max-width: 1024px) {
  .pw-recap-row { grid-template-columns: 1fr; }
}

/* ============================================================ */
/* 日报历史（日历 + 搜索）                                       */
/* ============================================================ */
.pw-history-section {
  background: var(--pw-surface);
  border-radius: var(--pw-radius);
  padding: 24px 22px;
  box-shadow: var(--pw-shadow);
}

.pw-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.pw-history-head h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.pw-history-head h3 small {
  font-size: 13px;
  font-weight: 500;
  color: var(--pw-text-2);
  margin-left: 8px;
}

.pw-history-tools {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

#pw-history-search {
  background: var(--pw-bg);
  border: 1px solid var(--pw-border);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  width: 260px;
  font-family: inherit;
  color: var(--pw-text);
  outline: none;
  margin-left: 4px;
  transition: border-color 180ms;
}

#pw-history-search:focus {
  border-color: var(--pw-order);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.pw-history-body {
  display: grid;
  grid-template-columns: minmax(280px, 360px) 1fr;
  gap: 24px;
}

.pw-calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}

.pw-cal-week-header {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--pw-text-3);
  letter-spacing: 0.06em;
  text-align: center;
  padding-bottom: 6px;
}

.pw-cal-cell {
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--pw-bg);
  border-radius: var(--pw-radius-xs);
  font-size: 13px;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background 180ms, border-color 180ms, transform 150ms;
  position: relative;
}

.pw-cal-cell.is-empty {
  cursor: default;
  background: transparent;
}

.pw-cal-cell:hover:not(.is-empty) {
  background: var(--pw-divider);
}

.pw-cal-cell.has-summary { background: var(--pw-resume-bg); color: var(--pw-resume); font-weight: 600; }
.pw-cal-cell.has-briefing { box-shadow: inset 0 -3px 0 var(--pw-order); }
.pw-cal-cell.is-today    { border-color: var(--pw-text); }
.pw-cal-cell.is-selected { background: var(--pw-text); color: #fff; }
.pw-cal-cell.is-selected.has-summary { color: #fff; }

.pw-cal-cell .pw-cal-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--pw-text-3);
  position: absolute;
  bottom: 6px;
  right: 8px;
}

.pw-history-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 480px;
  overflow-y: auto;
}

.pw-history-item {
  background: var(--pw-bg);
  border-radius: var(--pw-radius-sm);
  padding: 14px 16px;
  border-left: 3px solid var(--pw-resume);
  cursor: pointer;
  transition: background 180ms, transform 150ms;
}

.pw-history-item:hover {
  background: var(--pw-divider);
}

.pw-history-item.is-empty-status { border-left-color: var(--pw-text-3); opacity: 0.7; }

.pw-history-item strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 4px;
}

.pw-history-item p {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--pw-text-2);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pw-history-empty {
  text-align: center;
  padding: 40px 16px;
  color: var(--pw-text-3);
  font-size: 13px;
}

@media (max-width: 900px) {
  .pw-history-body { grid-template-columns: 1fr; }
  #pw-history-search { width: 100%; margin-left: 0; }
}

/* ============================================================ */
/* 日报导出下拉 + 团队日报区                                     */
/* ============================================================ */
.pw-btn-sm {
  padding: 6px 14px;
  font-size: 12px;
}

.pw-export-dropdown {
  position: relative;
  display: inline-block;
}

.pw-export-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: var(--pw-surface);
  border-radius: var(--pw-radius-sm);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  padding: 6px;
  min-width: 180px;
  display: none;
  z-index: 100;
}

.pw-export-menu.is-open { display: flex; flex-direction: column; gap: 2px; }

.pw-export-menu button {
  background: transparent;
  border: none;
  text-align: left;
  padding: 8px 12px;
  border-radius: var(--pw-radius-xs);
  font-size: 13px;
  color: var(--pw-text);
  cursor: pointer;
  font-family: inherit;
  transition: background 120ms;
}

.pw-export-menu button:hover { background: var(--pw-divider); }

.pw-team-section {
  background: var(--pw-surface);
  border-radius: var(--pw-radius);
  padding: 24px 22px;
  box-shadow: var(--pw-shadow);
  margin-top: 16px;
}

#pw-team-scope, #pw-team-date, #pw-team-filter {
  padding: 7px 12px;
  border: 1px solid var(--pw-border);
  border-radius: 999px;
  font-size: 13px;
  font-family: inherit;
  background: var(--pw-bg);
  color: var(--pw-text);
}

#pw-team-filter { width: 170px; }

.pw-team-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.pw-team-card {
  background: var(--pw-bg);
  border-radius: var(--pw-radius-sm);
  padding: 14px 16px;
  border-left: 3px solid var(--pw-resume);
  cursor: pointer;
  transition: background 180ms, transform 150ms;
}

.pw-team-card:hover { background: var(--pw-divider); transform: translateY(-1px); }

.pw-team-card.no-data { border-left-color: var(--pw-text-3); opacity: 0.75; }

.pw-team-card h4 {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 4px;
}

.pw-team-card-meta {
  font-size: 12px;
  color: var(--pw-text-2);
  margin: 2px 0;
}

.pw-team-card p {
  font-size: 12px;
  color: var(--pw-text-2);
  line-height: 1.5;
  margin: 8px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ============================================================ */
/* 工作台 + 待办（Notion/Things 3 风的 productivity dashboard） */
/* ============================================================ */
.pw-workbench-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr;   /* 左 60%、右 40% */
  gap: 16px;
  align-items: stretch;
}

@media (max-width: 1024px) {
  .pw-workbench-row { grid-template-columns: 1fr; }
}

/* ----- 工作台卡（复盘 + 上传一体） ----- */
.pw-workbench-card {
  display: flex;
  flex-direction: column;
  padding: 20px 22px;
  gap: 14px;
  min-height: 420px;
}

.pw-workbench-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.pw-workbench-head h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.pw-workbench-head h3 small {
  font-size: 13px;
  font-weight: 500;
  color: var(--pw-text-3);
}

.pw-workbench-hint {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--pw-text-3);
}

.pw-workbench-head-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.pw-recap-saved {
  font-size: 12px;
  color: var(--pw-text-3);
}

.pw-recap-saved.is-saved { color: var(--pw-success); }

#pw-recap-content {
  flex: 1;
  min-height: 200px;
  resize: vertical;
  border: 1px solid var(--pw-divider);
  background: var(--pw-bg);
  border-radius: var(--pw-radius-sm);
  padding: 14px 16px;
  font-family: var(--pw-font);
  font-size: 14px;
  line-height: 1.7;
  color: var(--pw-text);
  outline: none;
  transition: border-color 180ms;
}

#pw-recap-content:focus {
  border-color: var(--pw-order);
  background: var(--pw-surface);
}

/* 工作台底部的上传区（瘦条版） */
.pw-workbench-upload {
  border: 1.5px dashed var(--pw-border);
  border-radius: var(--pw-radius-sm);
  padding: 12px 16px;
  background: var(--pw-bg);
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
  transition: border-color 200ms var(--pw-easing), background 200ms;
}

.pw-workbench-upload:hover { border-color: var(--pw-text-3); }
.pw-workbench-upload.is-drag-over {
  border-color: var(--pw-order);
  background: var(--pw-order-bg);
}

.pw-workbench-upload .pw-upload-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  color: var(--pw-text-2);
  font-size: 13px;
  text-align: left;
}

.pw-workbench-upload .pw-upload-inner svg { color: var(--pw-text-3); flex-shrink: 0; }
.pw-workbench-upload .pw-upload-inner b { color: var(--pw-text); font-weight: 600; }
.pw-workbench-upload .pw-upload-inner a { color: var(--pw-order); text-decoration: none; font-weight: 600; }

.pw-workbench-upload .pw-upload-msg {
  margin: 0;
  font-size: 12px;
  color: var(--pw-text-2);
  min-height: 0;
}

.pw-workbench-upload .pw-upload-msg:empty { display: none; }
.pw-workbench-upload .pw-upload-msg.is-success { color: var(--pw-success); }
.pw-workbench-upload .pw-upload-msg.is-error   { color: var(--pw-error); }

/* ----- 待办卡 ----- */
.pw-todos-card {
  display: flex;
  flex-direction: column;
  padding: 20px 22px;
  gap: 4px;
  min-height: 420px;
}

.pw-todos-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.pw-todos-head h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pw-todos-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--pw-primary);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  border-radius: 999px;
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
}

/* Todo calendar */
.pw-todo-calendar-card {
  margin: 4px 0 10px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(245, 158, 11, 0.28);
  border-radius: var(--pw-radius-xs);
}

.pw-todo-calendar-card .calendar-widget-v2 {
  height: auto;
  min-height: 0;
}

.pw-todo-calendar-card .calendar-header-v2 {
  margin-bottom: 8px;
  padding-bottom: 8px;
}

.pw-todo-calendar-card .calendar-title-v2 {
  font-size: 13px;
}

.pw-todo-calendar-card .calendar-nav-v2 {
  gap: 6px;
}

.pw-todo-calendar-card .calendar-nav-v2 button {
  width: 24px;
  height: 24px;
  border-radius: 6px;
}

.pw-todo-calendar-card .calendar-grid-v2 {
  flex: none;
  gap: 3px;
  overflow: visible;
}

.pw-todo-calendar-card .cal-day-name-v2 {
  font-size: 10px;
  padding: 2px 0 4px;
}

.pw-todo-calendar-card .cal-date-v2 {
  min-height: 34px;
  padding: 3px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 11px;
  align-items: center;
  position: relative;
}

.pw-todo-calendar-card .cal-date-event-v2,
.pw-todo-calendar-card .cal-date-custom-event-v2,
.pw-todo-calendar-card .cal-date-todo-v2,
.pw-todo-calendar-card .cal-date-more-v2 {
  display: none;
}

.pw-todo-calendar-card .cal-date-v2.has-event-v2::after,
.pw-todo-calendar-card .cal-date-v2.has-custom-event-v2::before,
.pw-todo-calendar-card .cal-date-v2.has-todo-v2 > .cal-date-num-v2::after {
  content: "";
  position: absolute;
  bottom: 4px;
  width: 5px;
  height: 5px;
  border-radius: 999px;
}

.pw-todo-calendar-card .cal-date-v2.has-event-v2::after {
  left: calc(50% - 6px);
  background: #2563eb;
}

.pw-todo-calendar-card .cal-date-v2.has-custom-event-v2::before {
  right: calc(50% - 6px);
  background: #f59e0b;
}

.pw-todo-calendar-card .cal-date-v2.has-todo-v2 > .cal-date-num-v2::after {
  right: 4px;
  background: #10b981;
}

/* Add todo input row */
.pw-todo-add-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  padding: 8px 10px;
  background: var(--pw-bg);
  border-radius: var(--pw-radius-xs);
}

#pw-todo-input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-family: var(--pw-font);
  font-size: 14px;
  color: var(--pw-text);
  padding: 4px 4px;
}

#pw-todo-input::placeholder { color: var(--pw-text-3); }

/* todo 列表 */
.pw-todo-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  overflow-y: auto;
  max-height: 460px;
  margin: 0 -8px;
}

.pw-todo-list-done { flex: 0 0 auto; max-height: 320px; }

.pw-todo-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 8px;
  border-radius: 8px;
  transition: background 150ms, opacity 1.6s ease, transform 320ms ease, max-height 320ms ease, padding 320ms;
  cursor: pointer;
}

.pw-todo-item:hover { background: var(--pw-divider); }

.pw-todo-checkbox {
  width: 18px;
  height: 18px;
  min-width: 18px;
  border-radius: 5px;
  border: 1.5px solid var(--pw-border);
  background: var(--pw-surface);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  margin-top: 2px;
  transition: background 150ms, border-color 150ms, transform 150ms;
  flex-shrink: 0;
}

.pw-todo-checkbox:hover { border-color: var(--pw-text-2); }

.pw-todo-item.is-done .pw-todo-checkbox {
  background: var(--pw-success);
  border-color: var(--pw-success);
}

.pw-todo-item.is-done .pw-todo-checkbox::before {
  content: "✓";
}

.pw-todo-content {
  flex: 1;
  font-size: 14px;
  color: var(--pw-text);
  line-height: 1.5;
  word-break: break-word;
}

.pw-todo-time {
  font-size: 11px;
  color: var(--pw-text-3);
  flex-shrink: 0;
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}

.pw-todo-source-badge {
  display: inline-block;
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 4px;
  margin-right: 6px;
  font-weight: 500;
  vertical-align: middle;
}

.pw-todo-source-recap { background: rgba(37,99,235,0.10); color: var(--pw-order); }
.pw-todo-source-ai    { background: rgba(217,119,6,0.10);  color: var(--pw-resume); }
.pw-todo-source-manual{ background: rgba(110,110,115,0.10);color: var(--pw-text-2); }
.pw-todo-source-interview { background: rgba(109,40,217,0.10); color: #6d28d9; }

/* 勾选时的过渡：先划线灰化，再 fade-out */
.pw-todo-item.is-checking .pw-todo-content {
  text-decoration: line-through;
  color: var(--pw-text-3);
  transition: color 200ms, text-decoration 200ms;
}

.pw-todo-item.is-fading-out {
  opacity: 0;
  transform: translateX(8px);
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  pointer-events: none;
}

/* 已完成列表里的项 */
.pw-todo-list-done .pw-todo-item {
  opacity: 0.55;
}

.pw-todo-list-done .pw-todo-content {
  text-decoration: line-through;
  color: var(--pw-text-3);
}

/* 待办删除按钮（hover 时显现） */
.pw-todo-actions {
  display: none;
  align-items: center;
  gap: 4px;
}

.pw-todo-item:hover .pw-todo-actions { display: flex; }

.pw-todo-delete {
  border: none;
  background: transparent;
  color: var(--pw-text-3);
  cursor: pointer;
  font-size: 14px;
  padding: 2px 6px;
  border-radius: 4px;
}

.pw-todo-delete:hover { background: rgba(255,59,48,0.10); color: var(--pw-error); }

/* 折叠条 */
.pw-todo-divider {
  height: 1px;
  background: var(--pw-divider);
  margin: 8px 0;
}

.pw-todo-fold-btn {
  border: none;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--pw-text-2);
  cursor: pointer;
  padding: 6px 4px;
  width: 100%;
  text-align: left;
  font-family: inherit;
}

.pw-todo-fold-btn:hover { color: var(--pw-text); }

.pw-todo-fold-arrow {
  display: inline-block;
  transition: transform 200ms;
}

.pw-todo-fold-btn.is-open .pw-todo-fold-arrow { transform: rotate(90deg); }

.pw-todo-done-count {
  font-weight: 500;
  color: var(--pw-text-3);
}

/* 空状态 */
.pw-todo-empty {
  padding: 20px 12px;
  text-align: center;
  color: var(--pw-text-3);
  font-size: 13px;
}

/* ----- AI 日报独立宽卡 ----- */
.pw-summary-row {
  display: block;
}

.pw-summary-card-wide {
  padding: 22px 26px;
}

.pw-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.pw-summary-head h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.pw-summary-head h3 small {
  font-size: 13px;
  font-weight: 500;
  color: var(--pw-text-3);
}

.pw-summary-content {
  font-size: 14px;
  color: var(--pw-text);
  line-height: 1.75;
  white-space: pre-wrap;
}

.pw-summary-empty {
  color: var(--pw-text-3);
  font-style: italic;
  margin: 8px 0 0;
}

.pw-summary-meta {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--pw-divider);
  font-size: 12px;
  color: var(--pw-text-3);
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.pw-summary-meta b { color: var(--pw-text-2); font-weight: 600; }

/* =============================================================== */
/* 个人频道 v2 布局：sidebar 待办 + 工作台 + 日报 + 折叠历史 + 文件全宽 */
/* spec: docs/superpowers/specs/2026-05-15-personal-page-redesign-design.md */
/* =============================================================== */

.pw-workbench-row-v2 {
  display: grid;
  grid-template-columns: 420px 1fr 1fr;
  gap: 12px;
  align-items: stretch;
  margin-bottom: 0;
}

/* 三卡共用：浅边 / 弱阴影 / 紧凑 padding / 统一字号 */
.pw-workbench-row-v2 .pw-card {
  padding: 16px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  border-radius: var(--pw-radius-sm);
}
.pw-workbench-row-v2 .pw-card h3 {
  font-size: 14px;
  font-weight: 600;
}

/* 待办 sidebar：浅黄渐变 + 琥珀边 + 棕色标题（mockup v7 同款） */
.pw-workbench-row-v2 .pw-todos-card-v2 {
  background: linear-gradient(180deg, #FFFBEB 0%, #FFFFFF 60%);
  border: 1px solid #FDE68A;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.pw-workbench-row-v2 .pw-todos-card-v2 .pw-todos-head h3 {
  color: #92400E;
}
.pw-workbench-row-v2 .pw-todos-card-v2 .pw-todos-count-badge {
  background: #F59E0B;
  color: #fff;
  font-weight: 600;
}
/* 待办列表撑满，已完成区贴底 */
.pw-workbench-row-v2 .pw-todos-card-v2 #pw-todo-list-open {
  flex: 1;
}

/* 工作台：白底 + 浅边 + flex 列，textarea shell 撑满中段 */
.pw-workbench-row-v2 .pw-workbench-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--pw-surface);
  border: 1px solid var(--pw-border);
}
.pw-workbench-row-v2 .pw-workbench-card .pw-recap-shell {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--pw-surface);
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-xs);
  min-height: 160px;
  overflow: hidden;
  margin-bottom: 12px;
}
.pw-workbench-row-v2 .pw-workbench-card .pw-recap-shell textarea {
  flex: 1;
  width: 100%;
  border: none;
  background: transparent;
  padding: 12px 14px;
  font: inherit;
  font-size: 14px;
  color: var(--pw-text);
  resize: none;
  outline: none;
  line-height: 1.6;
}

/* AI 日报 v2：浅紫渐变 + 紫边 + 紫色标题（mockup v7 同款） */
.pw-workbench-row-v2 .pw-summary-card-v2 {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: linear-gradient(135deg, #EEF2FF 0%, #FFFFFF 60%);
  border: 1px solid #C7D2FE;
}
.pw-workbench-row-v2 .pw-summary-card-v2 .pw-summary-head h3 {
  color: #4338CA;
}
.pw-workbench-row-v2 .pw-summary-card-v2 .pw-summary-content {
  flex: 1;
  font-size: 13px;
  line-height: 1.7;
}
.pw-summary-head-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* === 三卡头部严格对齐（统一 center / 等高 margin / h3 内同基线）=== */
.pw-workbench-row-v2 .pw-todos-head,
.pw-workbench-row-v2 .pw-workbench-head,
.pw-workbench-row-v2 .pw-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  min-height: 28px;
}
.pw-workbench-row-v2 .pw-todos-head h3,
.pw-workbench-row-v2 .pw-workbench-head h3,
.pw-workbench-row-v2 .pw-summary-head h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  line-height: 1.4;
}
/* 标题里的 small（日期 / 子标题）也跟主标题垂直居中 */
.pw-workbench-row-v2 .pw-todos-head h3 small,
.pw-workbench-row-v2 .pw-workbench-head h3 small,
.pw-workbench-row-v2 .pw-summary-head h3 small {
  font-size: 12px;
  font-weight: 400;
  color: var(--pw-text-3);
  line-height: 1.4;
}
/* 右侧操作区 — 整体垂直居中，按钮间距一致 */
.pw-workbench-row-v2 .pw-workbench-head-right,
.pw-workbench-row-v2 .pw-summary-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* 日报历史折叠条 — 简约风 */
.pw-history-collapsed {
  background: var(--pw-surface);
  border: 1px solid var(--pw-border);
  border-radius: var(--pw-radius-xs);
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: var(--pw-text);
  cursor: pointer;
  margin-bottom: 12px;
  transition: background .15s var(--pw-easing);
}
.pw-history-collapsed:hover {
  background: var(--pw-divider);
}
.pw-history-collapsed b {
  font-weight: 500;
}
.pw-history-collapsed .pw-history-toggle {
  font-size: 12px;
  color: var(--pw-text-3);
  font-weight: 400;
}

/* 旧 .pw-workbench-row / .pw-summary-row 不再使用（已被替换为 v2） */
.pw-workbench-row, .pw-summary-row { display: none; }

/* 日报历史展开后：日历 / 列表 1:1，给日历更舒展的空间（覆盖既有 minmax 配置） */
#pw-history-section .pw-history-body {
  grid-template-columns: 1fr 1fr;
}

/* =============================================================== */
/* 个人频道：所有按钮统一透明背景 + 黑字 + 浅边（极简风） */
/* =============================================================== */
#channel-personal .pw-btn,
#channel-personal .pw-btn-mini,
#channel-personal .pw-pill,
#channel-personal .pw-btn-icon,
#channel-personal button {
  background: transparent;
  color: var(--pw-text);
  border: 1px solid var(--pw-border);
  box-shadow: none;
}
#channel-personal .pw-btn:hover,
#channel-personal .pw-btn-mini:hover,
#channel-personal .pw-pill:hover,
#channel-personal .pw-btn-icon:hover,
#channel-personal button:hover {
  background: var(--pw-divider);
  color: var(--pw-text);
}
/* 选中态：浅琥珀底 + 棕字 + 加粗（柔和不刺眼） */
#channel-personal .pw-pill.active {
  background: var(--pw-resume-bg);
  color: var(--pw-resume);
  border-color: var(--pw-resume);
  font-weight: 600;
}

/* 圆形 icon 按钮（‹ ● ›）：内容 flex 居中，字符不偏 */
#channel-personal .pw-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

/* 日历单元格选中态：不要黑底白字，改成浅琥珀 + 深色加粗 */
#channel-personal .pw-cal-cell.is-selected {
  background: var(--pw-resume-bg);
  color: var(--pw-resume);
  font-weight: 700;
  box-shadow: inset 0 0 0 2px var(--pw-resume);
}
#channel-personal .pw-cal-cell.is-selected.has-summary {
  color: var(--pw-resume);
}
/* 不影响：modal/抽屉里的关闭按钮 X 图标 + 文件 card 上的图标按钮（保留原状） */
#channel-personal .pw-drawer-close,
#channel-personal .modal-close {
  background: transparent;
  border: none;
}

/* ============================================================
   人才页面：批量 AI 排版工具条 / 选中态 / 进度模态
   ============================================================ */
.talent-batch-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  margin: 8px 0;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  font-size: 13px;
}
.talent-batch-toolbar .talent-batch-count {
  color: #475569;
}
.talent-batch-toolbar .talent-batch-count strong {
  color: #2563eb;
  font-size: 14px;
  margin-right: 2px;
}
.resume-table-header .col-batch,
.resume-table-row .col-batch {
  width: 28px;
  flex: 0 0 28px;
  align-items: center;
  justify-content: center;
}
.resume-row-selected {
  background: #eff6ff !important;
  border-left: 3px solid #2563eb;
}
.talent-batch-checkbox {
  cursor: pointer;
  width: 16px;
  height: 16px;
}

.talent-batch-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.talent-batch-modal-card {
  background: #fff;
  border-radius: 10px;
  padding: 20px 24px;
  width: 480px;
  max-width: 90vw;
  max-height: 80vh;
  overflow-y: auto;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
}
.talent-batch-modal-card h3 {
  margin: 0 0 12px;
  font-size: 16px;
  color: #0f172a;
}
.talent-batch-modal-progress {
  margin-bottom: 12px;
}
.talent-batch-modal-bar {
  width: 100%;
  height: 8px;
  background: #e2e8f0;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 8px;
}
.talent-batch-modal-bar-inner {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6, #2563eb);
  width: 0;
  transition: width 0.2s ease;
}
.talent-batch-modal-status {
  font-size: 13px;
  color: #475569;
  word-break: break-all;
}
.talent-batch-modal-counts {
  display: flex;
  gap: 16px;
  font-size: 13px;
  color: #475569;
  padding: 8px 0;
  border-top: 1px solid #f1f5f9;
  border-bottom: 1px solid #f1f5f9;
  margin-bottom: 12px;
}
.talent-batch-modal-counts strong {
  color: #2563eb;
  margin-left: 4px;
}
.talent-batch-modal-detail {
  font-size: 12px;
  color: #475569;
  margin-bottom: 12px;
}
.talent-batch-modal-detail ul {
  margin: 4px 0 12px;
  padding-left: 18px;
}
.talent-batch-modal-detail li {
  line-height: 1.6;
}
.talent-batch-modal-actions {
  text-align: right;
}

/* ===== 会议纪要 ===== */
.pw-meeting-card{margin:0 !important;padding:16px;}
.pw-meeting-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.pw-meeting-head h3{margin:0;font-size:16px;}
.pw-meeting-dropzone{border:1.5px dashed #cdd5e0;border-radius:10px;padding:14px;text-align:center;color:#6b7280;font-size:13px;cursor:pointer;transition:.15s;}
.pw-meeting-dropzone.is-drag-over{border-color:#4f7cff;background:#f2f6ff;}
.pw-meeting-list{margin-top:12px;display:flex;flex-direction:column;gap:8px;}
.pw-mtg-empty,.pw-mtg-noteam{color:#9aa3af;font-size:13px;padding:8px 2px;}
.pw-mtg-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #eef1f5;border-radius:10px;background:#fff;}
.pw-mtg-row:hover{border-color:#dce3ee;box-shadow:0 1px 6px rgba(20,40,80,.06);}
.pw-mtg-row-main{flex:1;min-width:0;cursor:pointer;}
.pw-mtg-title{font-weight:600;font-size:14px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pw-mtg-sub{font-size:12px;color:#8a93a3;margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.pw-mtg-src.is-mine{color:#4f7cff;}
.pw-mtg-badge{padding:1px 7px;border-radius:999px;font-size:11px;}
.pw-mtg-badge.is-private{background:#f1f2f4;color:#6b7280;}
.pw-mtg-badge.is-team{background:#eaf2ff;color:#2f6bff;}
.pw-mtg-badge.is-public{background:#e9f9ee;color:#1f9d57;}
.pw-mtg-ops{display:flex;gap:6px;flex-shrink:0;}
.pw-mtg-ops .pw-btn-mini.is-danger{color:#e5484d;}
/* 弹窗 */
.pw-mtg-modal{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;}
.pw-mtg-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45);}
.pw-mtg-modal-panel{position:relative;z-index:1;width:min(640px,92vw);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(15,23,42,.3);}
.pw-mtg-modal-head,.pw-mtg-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #eef1f5;}
.pw-mtg-modal-head h3,.pw-mtg-drawer-head h3{margin:0;font-size:16px;}
.pw-mtg-close{border:0;background:transparent;font-size:16px;cursor:pointer;color:#8a93a3;}
.pw-mtg-modal-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px;}
.pw-mtg-field{display:flex;flex-direction:column;gap:6px;}
.pw-mtg-field>span{font-size:13px;color:#4b5563;font-weight:600;}
.pw-mtg-field input:not([type=radio]):not([type=checkbox]),.pw-mtg-field textarea{width:100%;box-sizing:border-box;border:1px solid #d7dce5;border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;}
.pw-mtg-share input,.pw-mtg-teams input{width:15px;height:15px;margin:0;flex:none;accent-color:#2f6bff;cursor:pointer;}
.pw-mtg-title-row{display:flex;gap:8px;}
.pw-mtg-title-row input{flex:1;}
.pw-mtg-share{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:#374151;}
.pw-mtg-share label{display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;}
.pw-mtg-teams{display:flex;gap:14px;flex-wrap:wrap;padding:8px 10px;background:#f7f9fc;border-radius:8px;font-size:13px;}
.pw-mtg-teams label{display:flex;align-items:center;gap:5px;cursor:pointer;}
.pw-mtg-file-tip{font-size:12px;color:#1f9d57;background:#eefaf1;border-radius:6px;padding:6px 10px;}
.pw-mtg-modal-foot,.pw-mtg-drawer-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #eef1f5;}
.pw-mtg-modal-msg{margin-right:auto;font-size:12px;color:#e5484d;}

/* 美猴王频道：任务工作台 */
.tiger-workbench-shell {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  gap: 0;
  min-height: calc(100vh - 92px);
  margin: -24px;
  background: #f5f7fb;
  border-top: 1px solid #e5eaf2;
}

.tiger-task-sidebar {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 14px;
  background: #121826;
  color: #e5e7eb;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  overflow-y: auto;
}

.tiger-task-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  min-height: 48px;
  margin-bottom: 8px;
}

.tiger-task-brand img {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  object-fit: cover;
  background: #fff;
}

.tiger-task-brand strong,
.tiger-task-brand span {
  display: block;
}

.tiger-task-brand strong {
  color: #fff;
  font-size: 16px;
  line-height: 1.2;
}

.tiger-task-brand span {
  margin-top: 2px;
  color: #94a3b8;
  font-size: 12px;
}

.tiger-new-chat-btn,
.tiger-new-task-btn,
.tiger-more-btn,
.tiger-task-item,
.tiger-task-mini-actions button {
  border: none;
  color: inherit;
  cursor: pointer;
}

.tiger-new-chat-btn,
.tiger-new-task-btn,
.tiger-more-btn {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  border-radius: 10px;
  background: transparent;
  color: #f8fafc;
  font-size: 14px;
  font-weight: 700;
  transition: background 0.18s, color 0.18s;
}

.tiger-more-btn {
  color: #cbd5e1;
}

.tiger-new-chat-btn:hover,
.tiger-new-task-btn:hover,
.tiger-more-btn:hover,
.tiger-new-chat-btn:focus-visible,
.tiger-new-task-btn:focus-visible,
.tiger-more-btn:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  outline: none;
}

.tiger-new-chat-btn svg,
.tiger-new-task-btn svg,
.tiger-more-btn svg,
.tiger-task-mini-actions svg,
.tiger-task-folder svg,
.tiger-tool-icon svg,
.tiger-send-task svg,
.tiger-best-practice-head svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tiger-task-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 22px 0 4px;
  color: #cbd5e1;
  font-size: 12px;
}

.tiger-task-mini-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.tiger-task-mini-actions button {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: transparent;
  color: #94a3b8;
}

.tiger-task-mini-actions button:hover,
.tiger-task-mini-actions button:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  color: #f8fafc;
  outline: none;
}

.tiger-task-folder {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #f8fafc;
  font-size: 13px;
}

.tiger-task-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-task-empty {
  padding: 12px 10px;
  color: #94a3b8;
  font-size: 12px;
  line-height: 1.5;
}

.tiger-task-item {
  width: 100%;
  min-height: 56px;
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 10px 10px;
  border-radius: 10px;
  background: transparent;
  color: #cbd5e1;
  text-align: left;
  transition: background 0.18s, color 0.18s;
}

.tiger-task-item:hover,
.tiger-task-item:focus-visible,
.tiger-task-item.active {
  background: rgba(59, 130, 246, 0.16);
  color: #fff;
  outline: none;
}

.tiger-task-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #60a5fa;
}

.tiger-task-dot.done { background: #22c55e; }
.tiger-task-dot.error { background: #f87171; }
.tiger-task-dot.running { background: #60a5fa; }
.tiger-task-dot.chat { background: #fb923c; }

.tiger-task-copy {
  min-width: 0;
}

.tiger-task-copy strong,
.tiger-task-copy small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiger-task-copy strong {
  font-size: 13px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  word-break: break-word;
}

.tiger-task-copy small {
  margin-top: 3px;
  color: #94a3b8;
  font-size: 11px;
}

.tiger-task-flag {
  padding: 2px 6px;
  border-radius: 999px;
  background: #1d4ed8;
  color: #bfdbfe;
  font-size: 11px;
  font-weight: 700;
}

.tiger-workspace-main {
  min-width: 0;
  min-height: 0;
  position: relative;
  padding: 34px 32px 28px;
  overflow-y: auto;
  background:
    linear-gradient(135deg, rgba(255, 247, 237, 0.72), rgba(236, 254, 255, 0.74)),
    #f8fafc;
}

.tiger-task-home {
  min-height: calc(100vh - 158px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 980px;
  margin: 0 auto;
}

.tiger-command-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.tiger-command-center h2 {
  margin: 0;
  color: #0f172a;
  font-size: 34px;
  line-height: 1.2;
  font-weight: 800;
}

.tiger-command-center p {
  margin: 10px 0 22px;
  color: #64748b;
  font-size: 14px;
}

.tiger-command-box {
  position: relative;
  width: min(800px, 100%);
  min-height: 104px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  padding: 16px;
  border: 1px solid #d1d5db;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08);
}

.tiger-command-drop-overlay {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  z-index: 5;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: rgba(255, 247, 237, 0.98);
  border: 2px dashed #f97316;
  border-radius: 20px;
  color: #9a3412;
  pointer-events: none;
}

.tiger-command-box.is-file-dragging .tiger-command-drop-overlay {
  display: flex;
}

.tiger-command-drop-overlay svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tiger-command-drop-overlay strong { font-size: 15px; }
.tiger-command-drop-overlay span { font-size: 12px; color: #7c2d12; }

.tiger-workbench-upload-panel {
  width: min(800px, 100%);
  margin-top: 12px;
  text-align: left;
}

.tiger-workbench-upload-panel[hidden] { display: none; }

.tiger-workbench-upload-panel .tiger-message {
  width: 100%;
  max-width: 100%;
}

.tiger-workbench-upload-panel .tiger-message-avatar {
  display: none;
}

.tiger-workbench-upload-panel .tiger-message-content {
  width: 100%;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.tiger-workbench-upload-notice {
  margin-bottom: 8px;
  padding: 9px 12px;
  border-radius: 9px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 13px;
}

.tiger-workbench-upload-notice.is-error {
  background: #fef2f2;
  color: #b91c1c;
}

.tiger-command-box textarea {
  width: 100%;
  min-height: 46px;
  border: none;
  outline: none;
  resize: vertical;
  background: transparent;
  color: #0f172a;
  font-size: 15px;
  line-height: 1.5;
}

.tiger-command-tools {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tiger-tool-icon,
.tiger-send-task {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  cursor: pointer;
}

.tiger-tool-icon {
  background: #f1f5f9;
  color: #64748b;
}

.tiger-send-task {
  margin-left: auto;
  background: #f97316;
  color: #fff;
  box-shadow: 0 10px 22px rgba(249, 115, 22, 0.26);
}

.tiger-tool-icon:hover,
.tiger-tool-icon:focus-visible,
.tiger-send-task:hover,
.tiger-send-task:focus-visible {
  outline: none;
  transform: translateY(-1px);
}

.tiger-run-mode-wrap {
  position: relative;
  display: inline-flex;
}

.tiger-run-mode {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
}

.tiger-run-mode:hover {
  border-color: #fdba74;
  color: #ea580c;
}

.tiger-run-mode.is-super {
  border-color: #f59e0b;
  background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
  color: #fff;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}

.tiger-run-mode-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  box-sizing: border-box;
  width: 248px;
  padding: 6px;
  background: #fff;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  z-index: 60;
  display: none;
  flex-direction: column;
  gap: 2px;
}

/* 补上按钮与菜单之间的空隙,避免鼠标移动时菜单闪退 */
.tiger-run-mode-menu::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  height: 10px;
}

.tiger-run-mode-wrap:hover .tiger-run-mode-menu,
.tiger-run-mode-wrap:focus-within .tiger-run-mode-menu {
  display: flex;
}

.tiger-run-mode-menu button {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  height: auto;
  min-height: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 8px 12px;
  border: none;
  border-radius: 8px;
  background: none;
  cursor: pointer;
  text-align: left;
  line-height: 1.4;
  overflow: visible;
  transition: background 0.15s;
}

.tiger-run-mode-menu button strong,
.tiger-run-mode-menu button .tiger-run-mode-text span {
  display: block;
  width: 100%;
  margin: 0;
  white-space: normal;
  word-break: break-word;
}

.tiger-run-mode-menu button .tiger-run-mode-text span {
  margin-top: 3px;
}

.tiger-run-mode-text {
  flex: 1;
  min-width: 0;
}

.tiger-run-mode-icon {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
  background: #f3f4f6;
}

.tiger-run-mode-icon.is-blank {
  background: transparent;
}

.tiger-run-mode-menu button:hover {
  background: #fff7ed;
}

.tiger-run-mode-menu button.active {
  background: #fff7ed;
  box-shadow: inset 0 0 0 1px #fdba74;
}

.tiger-run-mode-menu button strong {
  font-size: 13px;
  color: #1f2937;
}

.tiger-run-mode-menu button.active strong {
  color: #ea580c;
}

.tiger-run-mode-menu button span {
  font-size: 11px;
  color: #9ca3af;
}

.tiger-skill-chips {
  width: min(760px, 100%);
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.tiger-skill-chips button {
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #ffffff;
  color: #1e3a8a;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s;
}

.tiger-skill-chips button:hover,
.tiger-skill-chips button:focus-visible {
  border-color: #60a5fa;
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.tiger-best-practice-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin: 52px 0 16px;
}

.tiger-practice-title {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.tiger-best-practice-head h3 {
  margin: 0;
  color: #0f172a;
  font-size: 16px;
  font-weight: 800;
}

.tiger-practice-count {
  color: #94a3b8;
  font-size: 12px;
  font-weight: 700;
}

.tiger-practice-filters {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.tiger-practice-filter {
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}

.tiger-practice-filter:hover,
.tiger-practice-filter:focus-visible {
  border-color: #cbd5e1;
  color: #0f172a;
  outline: none;
}

.tiger-practice-filter.is-active {
  border-color: #0f172a;
  background: #0f172a;
  color: #fff;
}

.tiger-practice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
}

.tiger-practice-card {
  min-height: 124px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 16px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 14px;
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
  transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
}

.tiger-practice-card:hover,
.tiger-practice-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(15, 23, 42, 0.16);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.11);
  outline: none;
}

.tiger-practice-card-top {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.tiger-practice-card strong {
  color: #0f172a;
  font-size: 16px;
  line-height: 1.3;
}

.tiger-practice-desc {
  color: #475569;
  font-size: 12.5px;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tiger-practice-type {
  display: inline-flex;
  width: fit-content;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: #334155;
  font-size: 11.5px;
  font-weight: 800;
}

.tiger-practice-card.accent-teal { background: linear-gradient(135deg, #ecfccb, #d5f5ee); }
.tiger-practice-card.accent-blue { background: linear-gradient(135deg, #e5efff, #eaf6ff); }
.tiger-practice-card.accent-orange { background: linear-gradient(135deg, #fff1de, #fef6e0); }
.tiger-practice-card.accent-green { background: linear-gradient(135deg, #e6fbec, #f4fdf6); }
.tiger-practice-card.accent-purple { background: linear-gradient(135deg, #f0edfe, #fdeef5); }
.tiger-practice-card.accent-cyan { background: linear-gradient(135deg, #ddfaff, #e6f0ff); }

.tiger-task-stage {
  min-height: calc(100vh - 156px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tiger-task-stage-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.07);
}

.tiger-task-stage-head h2 {
  margin: 5px 0 0;
  color: #0f172a;
  font-size: 22px;
  line-height: 1.25;
}

.tiger-active-skill {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  background: #ecfeff;
  color: #0f766e;
  font-size: 12px;
  font-weight: 800;
}

.tiger-active-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tiger-active-actions button {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #334155;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.tiger-commission-analysis-toolbar {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  padding: 13px 16px;
  border: 1px solid #dbe4ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.tiger-commission-analysis-fields {
  display: grid;
  grid-template-columns: minmax(145px, 1.2fr) minmax(145px, 1.2fr) minmax(132px, 0.9fr) repeat(3, minmax(105px, 0.7fr));
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.tiger-commission-analysis-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
}

.tiger-commission-analysis-field select,
.tiger-commission-analysis-field input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  outline: none;
  background: #fff;
  color: #0f172a;
  font-size: 13px;
}

.tiger-commission-analysis-field select:focus,
.tiger-commission-analysis-field input:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

.tiger-commission-analysis-field select:disabled {
  background: #f8fafc;
  color: #94a3b8;
}

.tiger-commission-analysis-field .sel-search {
  display: block;
  width: 100%;
}

.tiger-commission-analysis-field .sel-search-input:disabled {
  background: #f8fafc;
  color: #94a3b8;
  cursor: not-allowed;
}

.tiger-commission-analysis-submit {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 0 18px;
  border: 1px solid #2563eb;
  border-radius: 8px;
  background: #3b82f6;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.tiger-commission-analysis-submit:hover {
  background: #2563eb;
}

.tiger-commission-analysis-submit:disabled {
  border-color: #94a3b8;
  background: #94a3b8;
  cursor: wait;
}

.tiger-commission-analysis-loading,
.tiger-commission-analysis-error {
  width: 100%;
  padding: 4px 2px;
  color: #64748b;
  font-size: 13px;
}

.tiger-commission-analysis-error {
  color: #b91c1c;
}

.tiger-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  background: #dbeafe;
  color: #1d4ed8;
}

.tiger-status-pill.done {
  background: #dcfce7;
  color: #15803d;
}

.tiger-status-pill.error {
  background: #fee2e2;
  color: #b91c1c;
}

.tiger-task-stage .tiger-channel-mount {
  flex: 1 1 auto;
  min-height: 560px;
}

.tiger-task-stage .tiger-chat-window.is-channel-mode {
  border-radius: 0;
}

.tiger-task-stage.is-chat-conversation {
  min-height: calc(100vh - 92px);
  gap: 0;
  margin: 0 -32px -56px;
}

.tiger-task-stage.is-chat-conversation .tiger-task-stage-head {
  display: none;
}

.tiger-task-stage.is-chat-conversation .tiger-channel-mount {
  height: calc(100vh - 92px);
  min-height: calc(100vh - 92px);
}

.tiger-task-stage.is-chat-conversation .tiger-chat-window.is-channel-mode {
  height: calc(100vh - 92px) !important;
}

.tiger-mapping-workbench {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 680px;
}

.tiger-map-toolbar,
.tiger-map-command,
.tiger-map-inputs,
.tiger-map-stats,
.tiger-map-grid,
.tiger-map-empty-state,
.tiger-map-assistant-note,
.tiger-map-followup,
.tiger-map-error {
  border: 1px solid #dbe4ef;
  background: #fff;
  border-radius: 8px;
}

.tiger-map-toolbar {
  min-height: 64px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.tiger-map-title {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tiger-map-title span,
.tiger-map-panel-head {
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.tiger-map-title strong {
  color: #0f172a;
  font-size: 18px;
  line-height: 1.3;
}

.tiger-map-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tiger-map-primary {
  min-height: 40px;
  border: 1px solid #f97316;
  border-radius: 8px;
  background: #f97316;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  padding: 0 16px;
  cursor: pointer;
}

.tiger-map-primary:hover,
.tiger-map-primary:focus-visible {
  background: #ea580c;
  outline: 3px solid rgba(249, 115, 22, .18);
}

.tiger-map-primary:disabled {
  cursor: not-allowed;
  opacity: .62;
}

.tiger-map-secondary,
.tiger-map-edit-actions button,
.tiger-org-dept-tools button,
.tiger-map-node-actions button,
.tiger-map-inline-add,
.tiger-map-action-list button,
.tiger-org-gaps span button,
.tiger-map-gap-list span button {
  min-height: 32px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  font-size: 12px;
  font-weight: 800;
  padding: 0 10px;
  cursor: pointer;
}

.tiger-map-secondary:hover,
.tiger-map-secondary:focus-visible,
.tiger-map-edit-actions button:hover,
.tiger-map-edit-actions button:focus-visible,
.tiger-org-dept-tools button:hover,
.tiger-org-dept-tools button:focus-visible,
.tiger-map-node-actions button:hover,
.tiger-map-node-actions button:focus-visible,
.tiger-map-inline-add:hover,
.tiger-map-inline-add:focus-visible,
.tiger-map-action-list button:hover,
.tiger-map-action-list button:focus-visible,
.tiger-org-gaps span button:hover,
.tiger-org-gaps span button:focus-visible,
.tiger-map-gap-list span button:hover,
.tiger-map-gap-list span button:focus-visible {
  border-color: #f97316;
  color: #c2410c;
  outline: 3px solid rgba(249, 115, 22, .12);
}

.tiger-map-edit-actions button.danger {
  border-color: #fecaca;
  color: #b91c1c;
}

.tiger-map-command {
  padding: 12px;
}

.tiger-map-command textarea {
  width: 100%;
  min-height: 86px;
  resize: vertical;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 14px;
  line-height: 1.6;
  padding: 10px 12px;
  outline: none;
}

.tiger-map-command textarea:focus {
  border-color: #f97316;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, .14);
}

.tiger-map-command-foot {
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.tiger-map-chip-row {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tiger-map-chip {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid #dbe4ef;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
  padding: 0 10px;
}

.tiger-map-chip b {
  color: #0f172a;
}

.tiger-map-chip.muted {
  color: #94a3b8;
}

.tiger-map-assistant-note {
  padding: 10px 12px;
  color: #334155;
  background: #f8fafc;
  font-size: 13px;
  line-height: 1.7;
}

.tiger-map-followup {
  min-height: 48px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

.tiger-map-followup strong {
  flex: 0 0 auto;
  font-size: 13px;
}

.tiger-map-followup .tiger-map-chip-row {
  flex: 1 1 auto;
}

.tiger-map-inputs {
  padding: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.tiger-map-inputs.collapsed {
  display: none;
}

.tiger-map-inputs label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-map-inputs label.wide {
  grid-column: span 3;
}

.tiger-map-inputs span {
  color: #334155;
  font-size: 12px;
  font-weight: 800;
}

.tiger-map-inputs input {
  width: 100%;
  min-height: 40px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 0 11px;
  color: #0f172a;
  background: #f8fafc;
  font-size: 14px;
  outline: none;
}

.tiger-map-inputs input:focus {
  border-color: #f97316;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, .14);
}

.tiger-map-error {
  padding: 10px 12px;
  color: #991b1b;
  background: #fef2f2;
  border-color: #fecaca;
  font-size: 13px;
}

.tiger-map-stats {
  padding: 10px 12px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.tiger-map-stats span {
  min-height: 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 8px;
  background: #f8fafc;
  color: #64748b;
  font-size: 12px;
  padding: 6px 10px;
}

.tiger-map-stats b {
  color: #0f172a;
  font-size: 20px;
  line-height: 1.1;
}

.tiger-map-grid {
  min-height: 760px;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr) 360px;
  overflow: hidden;
}

.tiger-map-company-panel,
.tiger-map-inspector {
  min-width: 0;
  background: #f8fafc;
  padding: 12px;
  overflow: auto;
}

.tiger-map-company-panel {
  border-right: 1px solid #dbe4ef;
}

.tiger-map-inspector {
  border-left: 1px solid #dbe4ef;
}

.tiger-map-panel-head {
  margin: 0 0 8px;
}

.tiger-map-company-list,
.tiger-map-action-list,
.tiger-map-source-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tiger-map-company {
  width: 100%;
  min-height: 84px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.tiger-map-company:hover,
.tiger-map-company:focus-visible,
.tiger-map-company.active {
  border-color: #f97316;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
  outline: none;
}

.tiger-map-company span {
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 7px;
}

.tiger-map-company strong,
.tiger-map-next-item strong,
.tiger-map-source-list strong {
  color: #0f172a;
  font-size: 13px;
}

.tiger-map-company small {
  display: -webkit-box;
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tiger-map-next {
  margin-top: 18px;
}

.tiger-map-next-item,
.tiger-map-action-list div,
.tiger-map-source-list a {
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  padding: 8px 9px;
}

.tiger-map-next-item {
  border-left: 3px solid #f97316;
  border-radius: 0 8px 8px 0;
  margin-bottom: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tiger-map-next-item span,
.tiger-map-next-item em,
.tiger-map-source-list span,
.tiger-map-source-note span {
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
  font-style: normal;
}

.tiger-map-canvas {
  min-width: 0;
  background: linear-gradient(180deg, #fff, #f8fafc);
  padding: 16px;
  overflow: hidden;
}

.tiger-map-canvas-head {
  display: grid;
  grid-template-columns: minmax(180px, 280px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  margin-bottom: 12px;
}

.tiger-map-canvas-head span {
  color: #0369a1;
  font-size: 12px;
  font-weight: 800;
}

.tiger-map-canvas-head h3,
.tiger-map-detail h3 {
  margin: 4px 0 0;
  color: #0f172a;
  font-size: 22px;
}

.tiger-map-canvas-head p,
.tiger-map-detail p {
  margin: 0;
  color: #475569;
  font-size: 14px;
  line-height: 1.6;
}

.tiger-map-mindmap-head {
  grid-template-columns: minmax(180px, 320px) minmax(0, 1fr);
  margin-bottom: 10px;
}

.tiger-mm-shell {
  min-height: 760px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.tiger-mm-toolbar {
  min-height: 48px;
  padding: 7px 8px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.tiger-mm-toolbar button {
  min-height: 38px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  font-size: 13px;
  font-weight: 800;
  padding: 0 12px;
  cursor: pointer;
}

.tiger-mm-toolbar button:hover,
.tiger-mm-toolbar button:focus-visible {
  border-color: #f97316;
  color: #c2410c;
  outline: 3px solid rgba(249, 115, 22, .12);
}

.tiger-mm-toolbar span {
  min-width: 52px;
  text-align: center;
  color: #64748b;
  font-size: 13px;
  font-weight: 800;
}

.tiger-mm-viewport {
  height: 760px;
  height: clamp(680px, calc(100dvh - 300px), 960px);
  overflow: hidden;
  background:
    linear-gradient(#eef2f7 1px, transparent 1px),
    linear-gradient(90deg, #eef2f7 1px, transparent 1px),
    #fff;
  background-size: 28px 28px;
  cursor: grab;
  touch-action: none;
}

.tiger-mm-viewport:active {
  cursor: grabbing;
}

.tiger-mm-svg {
  display: block;
  min-width: 100%;
  min-height: 100%;
  user-select: none;
}

.tiger-mm-link {
  fill: none;
  stroke: #38bdf8;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .9;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.tiger-mm-port {
  fill: #0284c7;
  stroke: #fff;
  stroke-width: 2.5;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.tiger-mm-node {
  cursor: move;
  filter: drop-shadow(0 8px 16px rgba(15, 23, 42, .08));
}

.tiger-mm-node rect {
  fill: #fff;
  stroke: #cbd5e1;
  stroke-width: 1.2;
}

.tiger-mm-node.company rect {
  fill: #eff6ff;
  stroke: #2563eb;
  stroke-width: 2;
}

.tiger-mm-node.branch rect {
  fill: #fff;
}

.tiger-mm-node.branch rect {
  stroke: #f59e0b;
}

.tiger-mm-node.person rect {
  fill: #f8fafc;
  stroke: #94a3b8;
}

.tiger-mm-node.person.has-resume rect {
  fill: #f0fdf4;
  stroke: #16a34a;
}

.tiger-mm-node.person.record-resume rect {
  fill: #f0f9ff;
  stroke: #0ea5e9;
}

.tiger-mm-node.gap rect {
  fill: #fff7ed;
  stroke: #fb923c;
  stroke-dasharray: 5 4;
}

.tiger-mm-node.selected rect {
  stroke: #f97316;
  stroke-width: 2.5;
}

.tiger-mm-node.collapsed rect {
  stroke-dasharray: 6 4;
}

.tiger-mm-badge {
  fill: #0369a1;
  font-size: 12px;
  font-weight: 900;
}

.tiger-mm-node.person.has-resume .tiger-mm-badge {
  fill: #166534;
}

.tiger-mm-node.person.record-resume .tiger-mm-badge {
  fill: #075985;
}

.tiger-mm-node.gap .tiger-mm-badge {
  fill: #9a3412;
}

.tiger-mm-title {
  fill: #0f172a;
  font-size: 16px;
  font-weight: 800;
  pointer-events: none;
}

.tiger-mm-inline-title-object,
.tiger-mm-actions-object {
  overflow: visible;
}

.tiger-mm-inline-title-wrap {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}

.tiger-mm-inline-title {
  width: 100%;
  height: 34px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #0f172a;
  font-family: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  padding: 5px 6px;
  outline: none;
  cursor: text;
  text-overflow: ellipsis;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.tiger-mm-inline-title:hover {
  border-color: #bae6fd;
  background: rgba(255, 255, 255, .88);
}

.tiger-mm-inline-title:focus {
  border-color: #0284c7;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(14, 165, 233, .16);
  text-overflow: clip;
}

.tiger-mm-node-actions {
  width: 100%;
  height: 46px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.tiger-mm-node-actions button {
  min-width: 0;
  min-height: 44px;
  flex: 1 1 0;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: rgba(255, 255, 255, .96);
  color: #334155;
  font-family: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  padding: 0 5px;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.tiger-mm-node-actions button:hover,
.tiger-mm-node-actions button:focus-visible {
  border-color: #0284c7;
  background: #e0f2fe;
  color: #075985;
  outline: 2px solid rgba(14, 165, 233, .18);
  outline-offset: -2px;
}

.tiger-mm-node-actions button.danger {
  border-color: #fecaca;
  color: #b91c1c;
}

.tiger-mm-node-actions button.danger:hover,
.tiger-mm-node-actions button.danger:focus-visible {
  border-color: #ef4444;
  background: #fef2f2;
  color: #991b1b;
  outline-color: rgba(239, 68, 68, .18);
}

.tiger-mm-role-editor {
  cursor: pointer;
  outline: none;
}

.tiger-mm-edit-hint {
  margin-left: auto;
  color: #475569;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
}

.tiger-mm-role-hitbox {
  fill: #f0f9ff;
  stroke: #bae6fd;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.tiger-mm-node.person.has-resume .tiger-mm-role-hitbox {
  fill: #ecfdf5;
  stroke: #bbf7d0;
}

.tiger-mm-role-editor:hover .tiger-mm-role-hitbox,
.tiger-mm-role-editor:focus-visible .tiger-mm-role-hitbox {
  fill: #e0f2fe;
  stroke: #0284c7;
  stroke-width: 2;
}

.tiger-mm-role-text,
.tiger-mm-role-action {
  font-size: 13px;
  font-weight: 700;
  pointer-events: none;
}

.tiger-mm-role-text {
  fill: #0f172a;
}

.tiger-mm-role-action {
  fill: #0369a1;
  font-size: 11px;
  text-anchor: end;
}

.tiger-mm-meta {
  fill: #64748b;
  font-size: 13px;
  font-weight: 600;
  pointer-events: none;
}

.tiger-mm-toggle {
  cursor: pointer;
}

.tiger-mm-toggle circle {
  fill: #fff;
  stroke: #cbd5e1;
  stroke-width: 1.2;
}

.tiger-mm-toggle text {
  fill: #0f172a;
  font-size: 16px;
  font-weight: 900;
  text-anchor: middle;
}

.tiger-map-detail {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-map-detail small {
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
}

.tiger-map-person-role-button {
  width: 100%;
  min-height: 58px;
  border: 1px solid #bae6fd;
  border-radius: 8px;
  background: #f0f9ff;
  color: #0f172a;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 8px;
  text-align: left;
  cursor: pointer;
}

.tiger-map-person-role-button span {
  grid-column: 1 / -1;
  color: #0369a1;
  font-size: 11px;
  font-weight: 800;
}

.tiger-map-person-role-button strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 14px;
}

.tiger-map-person-role-button em {
  color: #0369a1;
  font-size: 11px;
  font-style: normal;
  align-self: center;
}

.tiger-map-person-role-button:hover,
.tiger-map-person-role-button:focus-visible {
  border-color: #0284c7;
  outline: 3px solid rgba(14, 165, 233, .14);
}

.tiger-map-person-contact-grid {
  margin: 0 0 12px;
  display: grid;
  gap: 6px;
}

.tiger-map-person-contact-grid div {
  min-width: 0;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}

.tiger-map-person-contact-grid span,
.tiger-map-person-facts span,
.tiger-map-resume-preview > span,
.tiger-map-person-note-editor > span {
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
}

.tiger-map-person-contact-grid strong {
  min-width: 0;
  color: #0f172a;
  font-size: 13px;
  overflow-wrap: anywhere;
  user-select: text;
}

.tiger-map-person-section-head {
  margin-top: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.tiger-map-person-section-head em {
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-size: 10px;
  font-style: normal;
  padding: 3px 7px;
}

.tiger-map-person-resume-detail,
.tiger-map-person-remarks {
  margin-bottom: 12px;
}

.tiger-map-person-loading {
  color: #64748b;
  font-size: 12px;
  padding: 10px 0;
}

.tiger-map-duplicate-notice {
  border: 1px solid #fde68a;
  border-radius: 8px;
  background: #fffbeb;
  color: #78350f;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.tiger-map-duplicate-notice strong {
  font-size: 12px;
}

.tiger-map-duplicate-notice span {
  font-size: 11px;
}

.tiger-map-person-facts {
  margin-top: 8px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.tiger-map-person-facts div {
  min-width: 0;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #fff;
  padding: 7px 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.tiger-map-person-facts strong {
  color: #0f172a;
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.tiger-map-resume-preview {
  margin-top: 8px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  padding: 9px 10px;
}

.tiger-map-resume-preview p,
.tiger-map-person-remark p {
  margin: 5px 0 0;
  color: #334155;
  font-size: 12px;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.tiger-map-resume-preview details {
  margin-top: 8px;
}

.tiger-map-resume-preview summary {
  color: #0369a1;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.tiger-map-resume-preview pre {
  max-height: 420px;
  margin: 8px 0 0;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: #334155;
  font-family: inherit;
  font-size: 12px;
  line-height: 1.55;
}

.tiger-map-person-remarks {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-map-person-remark {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  padding: 8px 10px;
}

.tiger-map-person-remark.mine {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.tiger-map-person-remark header {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  color: #64748b;
  font-size: 10px;
}

.tiger-map-person-note-editor {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-map-person-note-editor textarea {
  width: 100%;
  min-height: 96px;
  resize: vertical;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  font: inherit;
  font-size: 13px;
  line-height: 1.5;
  padding: 9px 10px;
}

.tiger-map-person-note-editor textarea:focus-visible {
  border-color: #0284c7;
  outline: 3px solid rgba(14, 165, 233, .14);
}

.tiger-map-person-note-editor small {
  color: #64748b;
  font-size: 10px;
  line-height: 1.4;
}

.tiger-map-person-note-actions {
  margin: 8px 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.tiger-map-person-note-actions button {
  min-height: 38px;
  border: 1px solid #0284c7;
  border-radius: 8px;
  background: #0284c7;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  padding: 0 12px;
  cursor: pointer;
}

.tiger-map-person-note-actions button:disabled {
  opacity: .55;
  cursor: wait;
}

.tiger-map-person-note-actions span {
  color: #475569;
  font-size: 11px;
}

.tiger-map-detail-badge {
  width: fit-content;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: 11px;
  font-weight: 900;
  padding: 3px 8px;
}

.tiger-map-detail-badge.covered {
  background: #dcfce7;
  color: #166534;
}

.tiger-map-detail-badge.partial {
  background: #fef3c7;
  color: #92400e;
}

.tiger-map-detail-badge.missing {
  background: #fee2e2;
  color: #991b1b;
}

.tiger-map-match-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.tiger-map-match-list button {
  min-height: 58px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #0f172a;
  text-align: left;
  padding: 8px 10px;
  cursor: pointer;
}

.tiger-map-match-list button:hover,
.tiger-map-match-list button:focus-visible {
  border-color: #2563eb;
  outline: 3px solid rgba(37, 99, 235, .14);
}

.tiger-map-match-list strong,
.tiger-map-match-list span {
  display: block;
}

.tiger-map-match-list strong {
  font-size: 13px;
}

.tiger-map-match-list span {
  margin-top: 3px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
}

.tiger-org-map {
  min-width: 1080px;
  display: flex;
  align-items: flex-start;
  gap: 34px;
  padding: 8px 8px 32px;
}

.tiger-org-root-node {
  flex: 0 0 250px;
  min-height: 112px;
  border: 1px solid #93c5fd;
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  background: #eff6ff;
  color: #0f172a;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.tiger-org-root-node span,
.tiger-org-branch-card span {
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 7px;
}

.tiger-org-root-node span {
  background: #dbeafe;
  color: #1d4ed8;
}

.tiger-org-root-node strong {
  color: #0f172a;
  font-size: 17px;
  line-height: 1.35;
}

.tiger-org-root-node small {
  color: #475569;
  font-size: 12px;
  line-height: 1.45;
}

.tiger-org-root-node button,
.tiger-org-node-actions button {
  min-height: 28px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  color: #0f172a;
  font-size: 12px;
  font-weight: 800;
  padding: 0 9px;
  cursor: pointer;
}

.tiger-org-root-node button:hover,
.tiger-org-root-node button:focus-visible,
.tiger-org-node-actions button:hover,
.tiger-org-node-actions button:focus-visible {
  border-color: #f97316;
  color: #c2410c;
  outline: 3px solid rgba(249, 115, 22, .12);
}

.tiger-org-node-actions button.danger {
  border-color: #fecaca;
  color: #b91c1c;
}

.tiger-org-tree-list {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-left: 32px;
}

.tiger-org-root-branches {
  flex: 1 0 auto;
  min-width: 760px;
}

.tiger-org-tree-list::before {
  content: "";
  position: absolute;
  left: 0;
  top: 22px;
  bottom: 22px;
  border-left: 2px solid #86efac;
}

.tiger-org-tree-node {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.tiger-org-tree-node::before {
  content: "";
  position: absolute;
  left: -32px;
  top: 24px;
  width: 32px;
  border-top: 2px solid #86efac;
}

.tiger-org-branch-card,
.tiger-org-person-node {
  flex: 0 0 280px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  color: #0f172a;
  padding: 10px;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
}

.tiger-org-branch-node.covered > .tiger-org-branch-card {
  border-left: 4px solid #16a34a;
}

.tiger-org-branch-node.partial > .tiger-org-branch-card {
  border-left: 4px solid #f59e0b;
}

.tiger-org-branch-node.missing > .tiger-org-branch-card {
  border-left: 4px solid #ef4444;
}

.tiger-org-branch-node.covered > .tiger-org-branch-card span { background: #dcfce7; color: #166534; }
.tiger-org-branch-node.partial > .tiger-org-branch-card span { background: #fef3c7; color: #92400e; }
.tiger-org-branch-node.missing > .tiger-org-branch-card span { background: #fee2e2; color: #991b1b; }

.tiger-org-branch-main,
.tiger-org-person-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tiger-org-branch-main strong,
.tiger-org-person-copy strong {
  color: #0f172a;
  font-size: 14px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.tiger-org-branch-main small,
.tiger-org-person-copy span,
.tiger-org-person-copy em {
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
  font-style: normal;
  overflow-wrap: anywhere;
}

.tiger-org-node-actions {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tiger-org-branch-gaps {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #e2e8f0;
}

.tiger-org-person-node {
  flex-basis: 330px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 10px;
  row-gap: 8px;
  align-items: start;
}

.tiger-org-person-node.has-resume {
  border-left: 4px solid #16a34a;
  background: #f0fdf4;
}

.tiger-org-person-node.record-resume {
  border-left: 4px solid #0ea5e9;
  background: #f0f9ff;
}

.tiger-org-person-node.no-resume {
  border-left: 4px solid #94a3b8;
  background: #f8fafc;
}

.tiger-org-resume-state {
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  padding: 3px 8px;
  white-space: nowrap;
}

.tiger-org-resume-state.has-resume {
  background: #dcfce7;
  color: #166534;
}

.tiger-org-resume-state.record-resume {
  background: #e0f2fe;
  color: #075985;
}

.tiger-org-resume-state.no-resume {
  background: #e2e8f0;
  color: #475569;
}

.tiger-org-person-node .tiger-org-node-actions {
  grid-column: 1 / -1;
  margin-top: 0;
}

.tiger-org-empty-branch::before {
  display: none;
}

.tiger-org-empty-leaf {
  flex: 0 0 180px;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  color: #94a3b8;
  font-size: 12px;
  padding: 10px;
}

.tiger-org-board {
  min-width: 720px;
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 12px;
}

.tiger-org-dept {
  min-height: 180px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.tiger-org-dept header {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 10px;
  background: #f1f5f9;
  border-bottom: 1px solid #e2e8f0;
}

.tiger-org-dept header > div:first-child {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

.tiger-org-dept header strong {
  color: #0f172a;
  font-size: 14px;
}

.tiger-org-dept header span {
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 7px;
}

.tiger-org-dept.covered header span { background: #dcfce7; color: #166534; }
.tiger-org-dept.partial header span { background: #fef3c7; color: #92400e; }
.tiger-org-dept.missing header span { background: #fee2e2; color: #991b1b; }

.tiger-org-dept-tools,
.tiger-map-node-actions,
.tiger-map-edit-actions,
.tiger-map-empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tiger-org-dept-tools button,
.tiger-map-node-actions button {
  min-height: 26px;
  border-radius: 6px;
  padding: 0 7px;
}

.tiger-org-people {
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tiger-org-person {
  width: 100%;
  min-height: 66px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  padding: 8px 9px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 3px;
  cursor: default;
}

.tiger-org-person-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.tiger-org-person.local { border-color: #86efac; background: #f0fdf4; }
.tiger-org-person.public { border-color: #bfdbfe; background: #eff6ff; }
.tiger-org-person.pending { border-style: dashed; background: #f8fafc; }

.tiger-org-person strong {
  color: #0f172a;
  font-size: 13px;
}

.tiger-org-person span,
.tiger-org-person em {
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
  font-style: normal;
}

.tiger-org-gaps,
.tiger-map-gap-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tiger-org-gaps {
  border-top: 1px solid #e2e8f0;
  padding: 8px 10px 10px;
}

.tiger-org-gaps span,
.tiger-map-gap-list span {
  border-radius: 999px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 8px;
}

.tiger-org-gaps span,
.tiger-map-gap-list span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.tiger-org-gaps span button,
.tiger-map-gap-list span button {
  min-height: 20px;
  width: 20px;
  border-radius: 999px;
  padding: 0;
  line-height: 1;
}

.tiger-map-inline-add {
  min-height: 28px;
}

.tiger-map-detail,
.tiger-map-gap-list,
.tiger-map-action-list,
.tiger-map-source-list,
.tiger-map-source-note {
  margin-bottom: 16px;
}

.tiger-map-action-list div {
  color: #334155;
  font-size: 13px;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.tiger-map-action-list div span {
  min-width: 0;
}

.tiger-map-source-list a {
  color: inherit;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tiger-map-source-list a:hover,
.tiger-map-source-list a:focus-visible {
  border-color: #0ea5e9;
  outline: 3px solid rgba(14, 165, 233, .14);
}

.tiger-map-source-note {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-org-missing-person,
.tiger-map-empty,
.tiger-map-empty-small,
.tiger-map-gap-list em,
.tiger-map-action-list em,
.tiger-map-source-list em {
  color: #64748b;
  font-size: 13px;
  line-height: 1.6;
  font-style: normal;
}

.tiger-map-empty-state {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 28px;
}

.tiger-map-empty-state strong {
  color: #0f172a;
  font-size: 20px;
  margin-bottom: 8px;
}

.tiger-map-empty-state p {
  max-width: 680px;
  color: #475569;
  font-size: 14px;
  line-height: 1.7;
  margin: 0 0 18px;
}

@media (max-width: 1100px) {
  .tiger-workbench-shell {
    grid-template-columns: 230px minmax(0, 1fr);
  }

  .tiger-workspace-main {
    padding: 24px 20px;
  }
}

@media (max-width: 820px) {
  .tiger-workbench-shell {
    grid-template-columns: 1fr;
    margin: -16px -12px -24px;
  }

  .tiger-task-sidebar {
    max-height: 260px;
  }

  .tiger-task-home {
    justify-content: flex-start;
    min-height: auto;
  }

  .tiger-command-center h2 {
    font-size: 26px;
  }

  .tiger-practice-grid {
    grid-template-columns: 1fr;
  }

  .tiger-task-stage-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .tiger-active-actions {
    justify-content: flex-start;
  }

  .tiger-commission-analysis-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .tiger-commission-analysis-fields {
    grid-template-columns: 1fr 1fr;
  }

  .tiger-commission-analysis-submit {
    width: 100%;
  }

  .tiger-map-toolbar,
  .tiger-map-canvas-head,
  .tiger-map-command-foot,
  .tiger-map-followup {
    align-items: flex-start;
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .tiger-map-inputs,
  .tiger-map-stats,
  .tiger-map-grid {
    grid-template-columns: 1fr;
  }

  .tiger-map-inputs label.wide {
    grid-column: auto;
  }

  .tiger-map-company-panel,
  .tiger-map-inspector {
    border: 0;
    max-height: none;
  }

  .tiger-org-board {
    min-width: 0;
    grid-template-columns: 1fr;
  }

  .tiger-org-map {
    min-width: 760px;
    gap: 22px;
  }

  .tiger-org-root-node {
    flex-basis: 220px;
  }

  .tiger-org-root-branches {
    min-width: 520px;
  }

  .tiger-org-branch-card {
    flex-basis: 240px;
  }

  .tiger-org-person-node {
    flex-basis: 280px;
    grid-template-columns: 1fr;
  }

  .tiger-mm-shell {
    min-height: 460px;
  }

  .tiger-mm-viewport {
    height: 460px;
  }

  .tiger-mm-toolbar {
    align-items: flex-start;
  }
}
/* 抽屉 */
.pw-mtg-drawer{position:fixed;inset:0;z-index:5000;}
.pw-mtg-drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(560px,94vw);background:#fff;box-shadow:-12px 0 40px rgba(15,23,42,.2);display:flex;flex-direction:column;}
.pw-mtg-view-meta{padding:10px 18px;font-size:12px;color:#8a93a3;display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-bottom:1px solid #f3f5f9;}
.pw-mtg-drawer-body{flex:1;overflow:auto;}
.pw-meeting-view-content{white-space:pre-wrap;word-break:break-word;font:13px/1.7 system-ui,-apple-system,"Segoe UI",sans-serif;color:#1f2937;padding:16px 18px;margin:0;}

/* ===== 人才备注(多人各一条) ===== */
.col-remark-summary { cursor: pointer; display: flex; align-items: center; gap: 6px; min-width: 0; }
.col-remark-summary .remark-latest { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #475569; }
.col-remark-summary:hover .remark-latest { color: #2563eb; }
.remark-count-badge { flex: 0 0 auto; font-size: 11px; color: #2563eb; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 9px; padding: 0 6px; line-height: 16px; }
.remark-empty { color: #94a3b8; }

.resume-remarks-section {
  margin-top: 0;
  padding: 16px;
  border: 1px solid #e5eaf1;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.035);
}
.resume-remarks-section .remarks-head h5 {
  margin: 0 0 10px;
  color: #1e293b;
  font-size: 13px;
  font-weight: 700;
}
.resume-remarks-section .remarks-head h5::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 13px;
  margin-right: 8px;
  border-radius: 999px;
  background: #3b82f6;
  vertical-align: -2px;
}
.remark-row { padding: 10px 0; border-top: 1px solid #eef2f7; }
.remark-row:first-child { border-top: none; }
.remark-row.remark-mine { background: #f8fafc; border-radius: 10px; padding: 10px 12px; }
.remark-meta { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #64748b; }
.remark-author { font-weight: 600; color: #334155; }
.remark-time { color: #94a3b8; }
.remark-ops { margin-left: auto; display: flex; gap: 6px; }
.remark-op { border: none; background: none; cursor: pointer; font-size: 12px; color: #2563eb; padding: 0 2px; }
.remark-op-danger { color: #dc2626; }
.remark-content { margin-top: 6px; font-size: 13px; line-height: 1.55; color: #334155; white-space: pre-wrap; word-break: break-word; }
.remark-edit-input { width: 100%; box-sizing: border-box; font-size: 13px; padding: 6px; border: 1px solid #cbd5e1; border-radius: 6px; }
.remarks-add-box { display: flex; gap: 8px; margin-top: 10px; align-items: flex-start; }
.remarks-add-box textarea { flex: 1; box-sizing: border-box; font-size: 13px; padding: 9px 10px; border: 1px solid #dbe2ea; border-radius: 9px; resize: vertical; }
.remarks-empty { color: #94a3b8; font-size: 13px; padding: 6px 0; }

/* ===== 人才详情：猎聘式三段工作区 ===== */
.resume-drawer-nav-button svg,
.resume-contact-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-drawer-nav-button:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.resume-detail-kicker-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}

.resume-detail-kicker-row .resume-detail-kicker { margin: 0; }

.resume-detail-id {
  padding: 0;
  border: 0;
  background: none;
  color: #94a3b8;
  font-size: 11px;
  cursor: pointer;
}

.resume-detail-id:hover { color: #2563eb; }
.resume-detail-updated { color: #a3aab7; font-size: 11px; }

.resume-contact-icon {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #eff6ff;
  color: #2563eb;
  cursor: pointer;
  transition: background 0.16s ease, transform 0.16s ease;
}

.resume-contact-icon:hover:not(:disabled) { background: #dbeafe; transform: translateY(-1px); }
.resume-contact-icon:disabled { color: #b8c0cc; background: #f1f5f9; cursor: not-allowed; }

.resume-detail-quick-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.resume-detail-quick-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 9px;
  border: 1px solid #e8edf4;
  border-radius: 999px;
  background: #f8fafc;
  color: #667085;
  font-size: 11px;
}

.resume-detail-more-wrap { position: relative; }

.resume-detail-more-button {
  display: flex;
  width: 100%;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 11px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  cursor: pointer;
}

.resume-detail-more-button:hover { border-color: #cbd5e1; background: #f8fafc; }

.resume-detail-more-menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 6px);
  right: 0;
  width: 188px;
  max-height: min(460px, calc(100vh - 190px));
  box-sizing: border-box;
  margin-top: 0;
  padding: 6px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.resume-detail-more-menu button {
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #334155;
  text-align: left;
  font-size: 12px;
  cursor: pointer;
}

.resume-detail-more-menu button:hover { background: #f1f5f9; color: #1d4ed8; }

.resume-detail-more-menu .resume-detail-menu-danger { color: #dc2626; }
.resume-detail-more-menu .resume-detail-menu-danger:hover { background: #fef2f2; color: #b91c1c; }

/* 简历保存成功提示 */
.resume-save-toast-layer {
  position: fixed;
  z-index: 100500;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  backdrop-filter: blur(1.5px);
  transition: opacity 0.22s ease, visibility 0.22s ease;
}

.resume-save-toast-layer.is-visible {
  opacity: 1;
  visibility: visible;
}

.resume-save-toast-card {
  position: relative;
  display: flex;
  width: min(330px, calc(100vw - 48px));
  min-height: 86px;
  box-sizing: border-box;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  overflow: hidden;
  border: 1px solid rgba(187, 247, 208, 0.95);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.2), 0 4px 16px rgba(34, 197, 94, 0.12);
  transform: translateY(12px) scale(0.96);
  transition: transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.resume-save-toast-layer.is-visible .resume-save-toast-card {
  transform: translateY(0) scale(1);
}

.resume-save-toast-icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #22c55e, #16a34a);
  color: #fff;
  box-shadow: 0 8px 20px rgba(34, 197, 94, 0.28);
}

.resume-save-toast-icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-save-toast-layer.is-visible .resume-save-toast-icon svg path {
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  animation: resume-save-check 0.42s 0.12s ease forwards;
}

.resume-save-toast-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.resume-save-toast-copy strong {
  color: #16231b;
  font-size: 18px;
  font-weight: 750;
  letter-spacing: 0.01em;
}

.resume-save-toast-copy span {
  color: #64748b;
  font-size: 13px;
}

.resume-save-toast-progress {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  transform-origin: left center;
  background: linear-gradient(90deg, #22c55e, #86efac);
}

.resume-save-toast-layer.is-visible .resume-save-toast-progress {
  animation: resume-save-progress 1.9s linear forwards;
}

.resume-save-button-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  animation: resume-save-spin 0.7s linear infinite;
}

@keyframes resume-save-check { to { stroke-dashoffset: 0; } }
@keyframes resume-save-progress { to { transform: scaleX(0); } }
@keyframes resume-save-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .resume-save-toast-layer,
  .resume-save-toast-card { transition: none; }
  .resume-save-toast-layer.is-visible .resume-save-toast-icon svg path,
  .resume-save-toast-layer.is-visible .resume-save-toast-progress,
  .resume-save-button-spinner { animation: none; }
}

.resume-detail-rail {
  min-width: 0;
  background: #fbfcfe;
}

.resume-rail-section {
  padding: 18px 16px;
  border-bottom: 1px solid #edf0f4;
  background: #fff;
}

.resume-rail-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 14px;
}

.resume-rail-heading > div { display: flex; align-items: center; gap: 7px; min-width: 0; }
.resume-rail-heading h5 { margin: 0; color: #1e293b; font-size: 14px; font-weight: 750; white-space: nowrap; }
.resume-rail-accent { width: 3px; height: 16px; border-radius: 99px; background: #2f80ed; }

.resume-position-heading-actions {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
}

@media (max-width: 768px) {
  .tiger-workbench-shell {
    margin: -12px -10px -20px;
  }
}

.resume-position-analyze-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 29px;
  padding: 6px 9px;
  border: 1px solid #d7ccff;
  border-radius: 7px;
  background: #f7f5ff;
  color: #6d4bea;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
}

.resume-position-analyze-all:hover:not(:disabled) {
  border-color: #a997fa;
  background: #f0ecff;
  box-shadow: 0 4px 10px rgba(109, 75, 234, .1);
}

.resume-position-analyze-all:disabled { cursor: not-allowed; opacity: .52; }
.resume-position-analyze-all.is-loading { cursor: wait; opacity: 1; }
.resume-position-analyze-all.is-loading .resume-position-analyze-all-icon { animation: resume-ai-sparkle 1s ease-in-out infinite; }

@keyframes resume-ai-sparkle {
  0%, 100% { transform: scale(.86) rotate(0); opacity: .55; }
  50% { transform: scale(1.12) rotate(18deg); opacity: 1; }
}

.resume-rail-add-button {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid #bfdbfe;
  border-radius: 7px;
  background: #fff;
  color: #1681e8;
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
}

.resume-rail-add-button:hover { background: #eff6ff; border-color: #93c5fd; }

.resume-rail-empty {
  padding: 24px 10px;
  color: #a0a7b2;
  font-size: 12px;
  line-height: 1.55;
  text-align: center;
}

.resume-rail-empty.is-error { color: #dc2626; }

.resume-position-operation-item {
  padding: 11px;
  border: 1px solid #e5eaf1;
  border-radius: 10px;
  margin-bottom: 9px;
  background: #fbfdff;
}

.resume-position-operation-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; color: #253045; font-size: 12px; font-weight: 700; line-height: 1.45; }
.resume-position-operation-project-link {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #253045;
  font: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
}
.resume-position-operation-project-link:hover { color: #1677ff; text-decoration: underline; }
.resume-position-operation-project-link:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; border-radius: 3px; }
.resume-position-operation-status { flex: 0 0 auto; padding: 2px 6px; border-radius: 999px; background: #ecfdf3; color: #0f9f6e; font-size: 10px; }
.resume-position-operation-meta { margin-top: 5px; color: #98a1af; font-size: 10.5px; }
.resume-position-operation-note { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 7px; color: #667085; font-size: 11px; line-height: 1.45; }
.resume-position-operation-note > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resume-position-operation-note i { color: #a3aab7; }
.resume-position-operation-tools { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.resume-position-ai-slot { display: inline-flex; align-items: center; min-height: 22px; }
.resume-position-ai-score { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 4px; min-height: 24px; padding: 3px 8px; border: 1px solid #cfe0f5; border-radius: 999px; background: #eff6ff; color: #2563eb; font: inherit; font-size: 10px; line-height: 1; white-space: nowrap; }
.resume-position-ai-score strong { font-size: 11px; font-weight: 750; }
.resume-position-ai-score svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.resume-position-ai-score.is-high { border-color: #b7ead5; background: #ecfdf5; color: #07875f; }
.resume-position-ai-score.is-medium { border-color: #f8df9e; background: #fff8e6; color: #c26a08; }
.resume-position-ai-score.is-low { border-color: #fecaca; background: #fff1f2; color: #dc2626; }
.resume-position-ai-score.is-pending { border-color: #e2e8f0; background: #f8fafc; color: #8a97a8; }
.resume-position-ai-score.is-failed { border-color: #fed7aa; background: #fff7ed; color: #c25c08; }
.resume-position-ai-score.is-action { cursor: pointer; transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease; }
.resume-position-ai-score.is-action:hover { border-color: #93b8ee; background: #eef5ff; color: #1d61d6; transform: translateY(-1px); }
.resume-position-ai-score.is-action:focus-visible { outline: 2px solid rgba(59, 130, 246, .3); outline-offset: 2px; }
.resume-position-ai-score.is-result { box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.resume-position-ai-score.is-result:hover { box-shadow: 0 5px 12px rgba(37, 99, 235, .12); }
.resume-position-ai-score.is-analyzing { border-color: #d9d4ff; background: #f6f4ff; color: #6856df; cursor: wait; }
.resume-position-ai-score.is-analyzing i { width: 10px; height: 10px; border: 1.5px solid rgba(104, 86, 223, .25); border-top-color: currentColor; border-radius: 50%; animation: resume-ai-score-spin .7s linear infinite; }
.resume-position-ai-slot.is-analyzing .resume-position-ai-score { animation: resume-ai-score-pulse 1s ease-in-out infinite; }

@keyframes resume-ai-score-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0); }
  50% { box-shadow: 0 0 0 4px rgba(99, 102, 241, .12); }
}
@keyframes resume-ai-score-spin { to { transform: rotate(360deg); } }
.resume-match-result-loading,
.resume-match-result-error { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: #64748b; text-align: center; }
.resume-match-result-loading i { width: 28px; height: 28px; border: 3px solid #dbeafe; border-top-color: #3b82f6; border-radius: 50%; animation: resume-ai-score-spin .75s linear infinite; }
.resume-match-result-loading strong,
.resume-match-result-error strong { color: #1e293b; font-size: 15px; }
.resume-match-result-loading span,
.resume-match-result-error span { font-size: 13px; }
.resume-match-result-error::before { content: "!"; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #fff1f2; color: #dc2626; font-weight: 800; }
.resume-position-operation-actions { display: flex; flex: 0 0 auto; gap: 3px; }
.resume-position-operation-actions .btn-action { padding: 2px 5px; font-size: 10px; }
.resume-position-operation-actions .is-danger { color: #dc2626; }

.resume-communication-composer {
  padding: 11px;
  border: 1px solid #cfe2fb;
  border-radius: 10px;
  margin-bottom: 12px;
  background: #f8fbff;
}

.resume-communication-fields { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 7px; margin-bottom: 7px; }
.resume-communication-fields select,
.resume-communication-fields input,
.resume-communication-composer textarea { width: 100%; box-sizing: border-box; border: 1px solid #d7e0eb; border-radius: 7px; background: #fff; color: #334155; font-size: 11px; }
.resume-communication-fields select,
.resume-communication-fields input { min-height: 32px; padding: 5px 7px; }
.resume-communication-composer textarea { padding: 8px; resize: vertical; line-height: 1.5; }
.resume-communication-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin-top: 7px; }
.resume-communication-actions span { margin-right: auto; color: #dc2626; font-size: 10px; }
.resume-communication-actions button { padding: 5px 9px; border: 1px solid #d7e0eb; border-radius: 6px; background: #fff; color: #475569; font-size: 11px; cursor: pointer; }
.resume-communication-actions button.is-primary { border-color: #2f80ed; background: #2f80ed; color: #fff; }

.resume-communications-list { position: relative; padding-left: 12px; }
.resume-communications-list::before { content: ""; position: absolute; top: 7px; bottom: 8px; left: 16px; width: 1px; background: #cde7fb; }
.resume-communication-empty { position: relative; background: #fff; }
.resume-communication-item { position: relative; padding: 0 0 14px 22px; }
.resume-communication-dot { position: absolute; z-index: 1; top: 5px; left: 0; width: 9px; height: 9px; border: 2px solid #74c0fc; border-radius: 50%; background: #fff; }
.resume-communication-item.is-phone .resume-communication-dot { border-color: #22c55e; }
.resume-communication-item.is-interview .resume-communication-dot { border-color: #f59e0b; }
.resume-communication-card { position: relative; padding: 1px 0 0; }
.resume-communication-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.resume-communication-meta strong { color: #344054; font-size: 11.5px; }
.resume-communication-meta time { color: #98a1af; font-size: 10px; }
.resume-communication-author { margin-top: 2px; color: #98a1af; font-size: 10px; }
.resume-communication-card p { margin: 6px 0 0; color: #536071; font-size: 11px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
.resume-communication-delete { position: absolute; right: 0; bottom: -1px; padding: 0; border: 0; background: none; color: #c4cad3; font-size: 10px; cursor: pointer; opacity: 0; }
.resume-communication-item:hover .resume-communication-delete { opacity: 1; }
.resume-communication-delete:hover { color: #dc2626; }

.resume-detail-rail .resume-remarks-section { padding: 18px 16px; border: 0; border-radius: 0; box-shadow: none; }
.resume-detail-rail .remark-row.remark-mine { padding: 9px; }
.resume-detail-rail .remarks-add-box { flex-direction: column; }
.resume-detail-rail .remarks-add-box textarea { width: 100%; }
.resume-detail-rail .remarks-add-box button { align-self: flex-end; }

@media (min-width: 1025px) {
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: #fff;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-main,
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-rail {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-main {
    container-name: resume-detail-main;
    container-type: inline-size;
    padding: 18px 20px 24px;
    background: #f8fafc;
  }
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-rail { border-left: 1px solid #e8edf3; }

  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-header {
    min-height: 126px;
    border-color: #e2e8f0;
    border-radius: 12px;
    background: linear-gradient(120deg, #fff 0%, #fbfdff 70%, #f1f7ff 100%);
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-avatar { width: 64px; height: 64px; border-radius: 50%; }
}

@media (max-width: 1180px) and (min-width: 1025px) {
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-workspace { grid-template-columns: minmax(0, 1fr) 280px; }
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-main { padding-left: 14px; padding-right: 14px; }
  #resume-detail-modal:not(.is-preview-expanded) .resume-header-title-row { gap: 8px 12px; }
}

/* 主内容区变窄时让操作按钮下移；按实际容器宽度判断，避免右侧记录栏挤乱档案信息。 */
@container resume-detail-main (max-width: 700px) {
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-header {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px 16px;
    align-items: center;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-avatar {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-header-info {
    grid-column: 2;
    width: 100%;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-profile-actions {
    grid-column: 2;
    width: 100%;
    flex-basis: auto;
    flex-direction: row;
  }

  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-favorite-button,
  #resume-detail-modal:not(.is-preview-expanded) .resume-detail-more-wrap {
    min-width: 0;
    flex: 1 1 0;
  }
}

/* 兼容尚不支持容器查询的旧内核。 */
@supports not (container-type: inline-size) {
  @media (max-width: 1600px) and (min-width: 1025px) {
    #resume-detail-modal:not(.is-preview-expanded) .resume-detail-header {
      display: grid;
      grid-template-columns: 64px minmax(0, 1fr);
      gap: 12px 16px;
      align-items: center;
    }

    #resume-detail-modal:not(.is-preview-expanded) .resume-avatar {
      grid-column: 1;
      grid-row: 1 / span 2;
    }

    #resume-detail-modal:not(.is-preview-expanded) .resume-header-info {
      grid-column: 2;
      width: 100%;
    }

    #resume-detail-modal:not(.is-preview-expanded) .resume-detail-profile-actions {
      grid-column: 2;
      width: 100%;
      flex-basis: auto;
      flex-direction: row;
    }

    #resume-detail-modal:not(.is-preview-expanded) .resume-detail-favorite-button,
    #resume-detail-modal:not(.is-preview-expanded) .resume-detail-more-wrap {
      min-width: 0;
      flex: 1 1 0;
    }
  }
}

@media (max-width: 1024px) {
  .resume-detail-main { min-width: 0; }
  .resume-detail-rail { margin: 0 14px 16px; border: 1px solid #e5eaf1; border-radius: 12px; overflow: hidden; }
}

/* ===== 人才详情：统一字体与信息层级 ===== */
.resume-detail-content {
  --resume-detail-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", system-ui, sans-serif;
  --resume-detail-text: #334155;
  --resume-detail-muted: #8795a7;
  color: var(--resume-detail-text);
  font-family: var(--resume-detail-font);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.resume-detail-content button,
.resume-detail-content input,
.resume-detail-content select,
.resume-detail-content textarea {
  font-family: var(--resume-detail-font);
  letter-spacing: 0;
}

.resume-detail-content > .modal-header h3 {
  color: #172033;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.resume-detail-kicker,
.resume-detail-id,
.resume-detail-updated,
.resume-info-tab small,
.resume-detail-grid .detail-item .label,
.resume-attachment-toolbar p,
.resume-attachment-category-label {
  color: var(--resume-detail-muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
}

.resume-detail-kicker {
  color: #3b82f6;
  font-weight: 600;
}

.resume-header-info h4 {
  color: #172033;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

.resume-header-info p,
.resume-detail-grid .detail-item,
.resume-detail-grid .detail-item > span:last-child,
.resume-attachment-file-name {
  font-size: 13px;
  line-height: 1.55;
}

.resume-header-info p { color: #64748b; font-weight: 400; }
.resume-detail-grid .detail-item > span:last-child { color: #334155; font-weight: 500; }
.resume-detail-status-control label { font-size: 11px; font-weight: 500; }
.resume-detail-status-control select { font-size: 12px; font-weight: 600; }
.resume-detail-favorite-button { font-size: 12px; font-weight: 600; }
.resume-detail-more-button { font-size: 12px; font-weight: 500; }
.resume-detail-quick-tags span { font-size: 11px; font-weight: 400; }

.resume-info-tab span,
.resume-section-heading h5,
.resume-attachment-toolbar h5,
.resume-raw-text-section h5,
.resume-expanded-section-title h5,
.resume-rail-heading h5,
.resume-detail-rail .remarks-head h5 {
  color: #25364a;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0;
}

.resume-info-tab span { font-size: 13px; }
.resume-info-tab small { font-size: 11px; }
.resume-info-tab.is-active span { font-weight: 700; }

.raw-text-content {
  border-color: #e2e8f0;
  background: #fff;
  color: #405268;
  font-family: var(--resume-detail-font);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.72;
  letter-spacing: 0;
}

.resume-raw-line {
  color: #405268;
  font-family: inherit;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
}

.resume-raw-section-title {
  color: #25364a;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
}

.resume-rail-add-button { font-size: 11px; font-weight: 500; }
.resume-rail-empty { font-size: 12px; font-weight: 400; }
.resume-position-operation-title { font-size: 12px; font-weight: 600; }
.resume-position-operation-meta { font-size: 11px; font-weight: 400; }
.resume-position-operation-note,
.resume-communication-card p,
.remark-content { font-size: 12px; font-weight: 400; line-height: 1.6; }
.resume-communication-meta strong { font-size: 12px; font-weight: 600; }
.resume-communication-meta time,
.resume-communication-author { font-size: 11px; font-weight: 400; }
.resume-detail-rail .remarks-add-box textarea { font-size: 12px; line-height: 1.6; }

.resume-detail-footer button {
  font-family: var(--resume-detail-font);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
}

.resume-detail-id,
.resume-detail-updated,
.resume-detail-grid .detail-item > span:last-child,
.resume-position-operation-meta,
.resume-communication-meta time {
  font-variant-numeric: tabular-nums;
}

/* 共享工作台块：首页底部挂载容器 */
.home-pw-mount { display: block; margin-top: 16px; }
.home-pw-mount:empty { display: none; }
#pw-workbench-shared {
  font-family: var(--pw-font);
  color: var(--pw-text);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.home-pw-mount #pw-workbench-shared { max-width: none; margin: 0; }

/* ===== 美猴王助手：轻量会话首页 ===== */
.tiger-channel-panel {
  --tiger-home-bg: #f8f8fa;
  --tiger-home-text: #111827;
  --tiger-home-muted: #667085;
  --tiger-home-line: #171717;
  --tiger-home-soft: #f5f5f4;
  --tiger-home-accent: #f97316;
}

.tiger-workbench-shell {
  background: #031827;
}

@media (min-width: 821px) {
  .tiger-channel-panel .tiger-workbench-shell {
    box-sizing: border-box;
    margin-top: -36px;
    padding-top: 12px;
    border-top: 0;
  }
}

.tiger-channel-panel .tiger-workspace-main {
  padding: 0 32px 56px;
  background-color: #041b2d;
  background-image:
    linear-gradient(90deg, rgba(2, 19, 33, .9) 0%, rgba(4, 28, 46, .8) 46%, rgba(2, 20, 35, .66) 100%),
    linear-gradient(90deg, rgba(99, 218, 247, .035) 1px, transparent 1px),
    linear-gradient(rgba(99, 218, 247, .035) 1px, transparent 1px),
    url('/static/tech_dashboard_background_v1.png?v=20260922');
  background-repeat: no-repeat, repeat, repeat, no-repeat;
  background-position: center, center, center, center;
  background-size: auto, 32px 32px, 32px 32px, cover;
  box-shadow: inset 0 1px 0 rgba(112, 225, 250, .12);
}

.tiger-channel-panel .tiger-task-home {
  width: 100%;
  max-width: 1040px;
  min-height: calc(100vh - 92px);
  justify-content: flex-start;
  padding: clamp(28px, 6vh, 72px) 0 48px;
}

.tiger-channel-panel .tiger-command-center {
  width: 100%;
}

.tiger-hero-greeting {
  width: min(920px, 100%);
  min-height: 176px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 5vw, 64px);
  margin: 0 auto -2px;
  text-align: left;
}

.tiger-hero-avatar-wrap {
  width: 180px;
  height: 180px;
  flex: 0 0 180px;
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  background: var(--tiger-home-bg);
}

.tiger-hero-avatar {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

.tiger-hero-copy {
  min-width: 0;
  padding-bottom: 10px;
}

.tiger-channel-panel .tiger-hero-copy p {
  margin: 10px 0 0;
  color: rgba(203, 229, 239, .72);
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
}

.tiger-channel-panel .tiger-command-center h2 {
  max-width: 680px;
  margin: 0;
  color: var(--tiger-home-text);
  font-size: clamp(30px, 3vw, 40px);
  line-height: 1.24;
  font-weight: 760;
  letter-spacing: -0.025em;
}

.tiger-channel-panel .tiger-command-box {
  box-sizing: border-box;
  width: min(920px, 100%);
  min-height: 128px;
  gap: 8px;
  padding: 16px 14px 12px;
  border: 1.5px solid rgba(130, 221, 243, .42);
  border-radius: 20px;
  background: rgba(246, 251, 253, .94);
  box-shadow: 0 18px 38px rgba(0, 12, 24, .28), inset 0 1px 0 rgba(255, 255, 255, .86);
  backdrop-filter: blur(16px) saturate(1.08);
}

.tiger-channel-panel .tiger-command-box:focus-within {
  border-color: #c2410c;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.12), 0 12px 30px rgba(15, 23, 42, 0.05);
}

.tiger-channel-panel .tiger-command-box textarea {
  min-height: 44px;
  padding: 0 2px;
  resize: none;
  color: var(--tiger-home-text);
  font-size: 16px;
  line-height: 1.6;
}

.tiger-channel-panel .tiger-command-box textarea::placeholder {
  color: #9ca3af;
  opacity: 1;
}

.tiger-channel-panel .tiger-command-tools {
  justify-content: space-between;
  gap: 16px;
}

.tiger-channel-panel .tiger-tool-icon,
.tiger-channel-panel .tiger-send-task {
  width: 44px;
  height: 44px;
  flex-basis: 44px;
  border-radius: 50%;
  transition: color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tiger-channel-panel .tiger-tool-icon {
  background: transparent;
  color: #27272a;
}

.tiger-channel-panel .tiger-tool-icon:hover,
.tiger-channel-panel .tiger-tool-icon:focus-visible {
  background: #f4f4f5;
  color: #c2410c;
  outline: 2px solid transparent;
}

.tiger-channel-panel .tiger-send-task {
  margin-left: auto;
  background: var(--tiger-home-accent);
  color: #fff;
  box-shadow: 0 8px 18px rgba(249, 115, 22, 0.24);
}

.tiger-channel-panel .tiger-send-task:hover,
.tiger-channel-panel .tiger-send-task:focus-visible {
  background: #ea580c;
  outline: 3px solid rgba(249, 115, 22, 0.2);
}

.tiger-channel-panel .tiger-skill-chips {
  width: min(880px, 100%);
  margin-top: 20px;
  gap: 8px;
}

.tiger-channel-panel .tiger-skill-chips button {
  min-height: 36px;
  border-color: #e5e7eb;
  background: rgba(247, 252, 254, .92);
  color: #4b5563;
  font-weight: 600;
}

.tiger-channel-panel .tiger-skill-chips button:hover,
.tiger-channel-panel .tiger-skill-chips button:focus-visible {
  border-color: #fdba74;
  color: #c2410c;
  box-shadow: 0 6px 18px rgba(249, 115, 22, 0.1);
}

.tiger-channel-panel .tiger-best-practice-head,
.tiger-channel-panel .tiger-practice-grid {
  width: min(920px, 100%);
  margin-right: auto;
  margin-left: auto;
}

.tiger-channel-panel .tiger-best-practice-head {
  margin-top: 64px;
}

.tiger-channel-panel .tiger-best-practice-head h3 {
  color: #effbff;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .28);
}

.tiger-channel-panel .tiger-practice-count {
  color: rgba(191, 222, 233, .68);
}

.tiger-channel-panel .tiger-practice-filter {
  color: rgba(215, 237, 244, .8);
  border-color: rgba(111, 204, 229, .24);
  background: rgba(5, 37, 56, .68);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .045);
  backdrop-filter: blur(10px);
}

.tiger-channel-panel .tiger-practice-filter:hover,
.tiger-channel-panel .tiger-practice-filter:focus-visible {
  color: #f4fbfd;
  border-color: rgba(111, 218, 244, .5);
  background: rgba(9, 67, 90, .78);
}

.tiger-channel-panel .tiger-practice-filter.is-active {
  color: #052438;
  border-color: rgba(126, 229, 250, .7);
  background: linear-gradient(135deg, #8cecff, #62cfe9);
  box-shadow: 0 7px 18px rgba(37, 187, 221, .2);
}

@media (max-width: 820px) {
  .tiger-channel-panel .tiger-workspace-main {
    padding: 0 20px 44px;
  }

  .tiger-channel-panel .tiger-task-home {
    padding-top: 28px;
  }

  .tiger-hero-greeting {
    min-height: 148px;
    gap: 24px;
  }

  .tiger-hero-avatar-wrap {
    width: 144px;
    height: 144px;
    flex-basis: 144px;
  }

  .tiger-channel-panel .tiger-command-center h2 {
    font-size: clamp(26px, 5vw, 32px);
  }
}

@media (max-width: 620px) {
  .tiger-channel-panel .tiger-workspace-main {
    padding-right: 16px;
    padding-left: 16px;
  }

  .tiger-hero-greeting {
    min-height: 0;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 24px;
    text-align: center;
  }

  .tiger-hero-avatar-wrap {
    width: 124px;
    height: 124px;
    flex-basis: 124px;
  }

  .tiger-hero-copy {
    padding-bottom: 0;
  }

  .tiger-channel-panel .tiger-command-center h2 {
    max-width: 360px;
    font-size: 26px;
  }

  .tiger-channel-panel .tiger-command-box {
    min-height: 148px;
    border-radius: 18px;
  }

  .tiger-channel-panel .tiger-command-tools {
    gap: 8px;
  }

  .tiger-channel-panel .tiger-tool-icon,
  .tiger-channel-panel .tiger-send-task {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  .tiger-channel-panel .tiger-best-practice-head {
    margin-top: 48px;
  }

  .tiger-task-stage.is-chat-conversation {
    margin-right: -16px;
    margin-left: -16px;
  }

  .tiger-chat-window.is-channel-mode .tiger-chat-messages {
    padding-right: 18px;
    padding-left: 18px;
  }

  .tiger-chat-window.is-channel-mode .tiger-chat-input-area {
    width: calc(100% - 24px);
    margin-bottom: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-channel-panel,
  .tiger-channel-panel .tiger-tool-icon,
  .tiger-channel-panel .tiger-send-task,
  .tiger-channel-panel .tiger-skill-chips button,
  .tiger-result-card,
  .tiger-result-arrow {
    animation: none !important;
    transition: none !important;
  }
}

/* 开支表+截图混合拖拽上传区 */
.ec-drop-zone {
  margin: 10px 0;
  padding: 22px 16px;
  border: 2px dashed #cbd5e1;
  border-radius: 10px;
  text-align: center;
  color: #6b7280;
  font-size: 14px;
  background: #f8fafc;
  transition: all 0.2s;
}
.ec-drop-zone.dragover {
  border-color: #2563eb;
  background: #eff6ff;
  color: #2563eb;
}

/* 开支截图画廊 */
.expense-screenshot-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.expense-screenshot-actions button {
  flex: 0 0 auto;
  margin: 0;
}

.expense-screenshot-add {
  width: 36px;
  min-width: 36px;
  padding-left: 0;
  padding-right: 0;
}

.expense-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 14px;
}
.expense-gallery-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
  padding: 8px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fafafa;
}
.expense-gallery-item img {
  width: 100%;
  height: 120px;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
}
.expense-gallery-item-name {
  width: 100%;
  font-size: 12px;
  color: #6b7280;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 开支截图删除确认 */
.expense-delete-confirm-modal {
  z-index: 1120;
  padding: 20px;
  background: rgba(15, 23, 42, .42);
  opacity: 0;
  backdrop-filter: blur(2px);
  transition: opacity .16s ease;
}

.expense-delete-confirm-modal.is-visible {
  opacity: 1;
}

.expense-delete-confirm-modal.is-closing {
  opacity: 0;
  pointer-events: none;
}

.expense-delete-confirm-card {
  position: relative;
  width: min(430px, calc(100vw - 40px));
  padding: 30px 30px 24px;
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, .92);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .24), 0 8px 24px rgba(15, 23, 42, .12);
  opacity: 0;
  transform: translateY(10px) scale(.98);
  transition: opacity .16s ease, transform .2s cubic-bezier(.2, .8, .2, 1);
}

.expense-delete-confirm-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, #ef4444, #fb7185);
  content: "";
}

.expense-delete-confirm-modal.is-visible .expense-delete-confirm-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.expense-delete-confirm-modal.is-closing .expense-delete-confirm-card {
  opacity: 0;
  transform: translateY(6px) scale(.985);
}

.expense-delete-confirm-close {
  position: absolute;
  top: 15px;
  right: 15px;
  display: inline-flex;
  width: 34px;
  height: 34px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  transition: color .16s ease, background .16s ease;
}

.expense-delete-confirm-close:hover {
  background: #f1f5f9;
  color: #475569;
}

.expense-delete-confirm-close:focus-visible,
.expense-delete-confirm-cancel:focus-visible,
.expense-delete-confirm-submit:focus-visible {
  outline: 3px solid rgba(59, 130, 246, .24);
  outline-offset: 2px;
}

.expense-delete-confirm-icon {
  display: flex;
  width: 54px;
  height: 54px;
  margin-bottom: 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid #fecaca;
  border-radius: 16px;
  background: linear-gradient(145deg, #fff1f2, #fee2e2);
  color: #dc2626;
  box-shadow: 0 8px 20px rgba(239, 68, 68, .12);
}

.expense-delete-confirm-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.expense-delete-confirm-copy > span {
  color: #ef4444;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

.expense-delete-confirm-copy h3 {
  margin: 7px 40px 9px 0;
  color: #172033;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.35;
}

.expense-delete-confirm-copy p {
  margin: 0;
  color: #64748b;
  font-size: 14px;
  line-height: 1.7;
}

.expense-delete-confirm-file {
  margin-top: 14px;
  padding: 10px 12px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
  color: #475569;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.expense-delete-confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 10px;
  margin-top: 24px;
}

.expense-delete-confirm-actions button {
  display: inline-flex;
  min-height: 42px;
  margin: 0;
  padding: 9px 16px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 11px;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.expense-delete-confirm-cancel {
  border: 1px solid #dbe3ec;
  background: #fff;
  color: #475569;
}

.expense-delete-confirm-cancel:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.expense-delete-confirm-submit {
  border: 1px solid #dc2626;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #fff;
  box-shadow: 0 8px 18px rgba(220, 38, 38, .2);
}

.expense-delete-confirm-submit:hover {
  border-color: #b91c1c;
  background: linear-gradient(135deg, #dc2626, #b91c1c);
  box-shadow: 0 10px 22px rgba(220, 38, 38, .27);
  transform: translateY(-1px);
}

.expense-delete-confirm-submit svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 520px) {
  .expense-delete-confirm-card {
    padding: 26px 20px 20px;
    border-radius: 17px;
  }

  .expense-delete-confirm-actions {
    grid-template-columns: 1fr;
  }

  .expense-delete-confirm-submit {
    grid-row: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .expense-delete-confirm-modal,
  .expense-delete-confirm-card,
  .expense-delete-confirm-actions button {
    transition: none;
  }
}

/* 开支截图拖拽与逐张命名 */
.expense-image-naming-tip {
  margin: 0 0 12px;
  color: #64748b;
  font-size: 14px;
  line-height: 1.6;
}

.expense-image-dropzone {
  display: flex;
  min-height: 128px;
  padding: 18px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 2px dashed #93c5fd;
  border-radius: 10px;
  background: #eff6ff;
  color: #1d4ed8;
  text-align: center;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.expense-image-dropzone:hover,
.expense-image-dropzone:focus-visible,
.expense-image-dropzone.is-dragover {
  border-color: #2563eb;
  outline: none;
  background: #dbeafe;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .13);
}

.expense-image-dropzone.is-dragover {
  transform: scale(1.01);
}

.expense-image-dropzone svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.expense-image-dropzone strong {
  font-size: 15px;
}

.expense-image-dropzone span,
.expense-image-drop-status {
  color: #64748b;
  font-size: 12px;
}

.expense-image-drop-status {
  min-height: 18px;
  margin-top: 8px;
  text-align: center;
}

.expense-image-name-list {
  display: flex;
  max-height: 42vh;
  margin-top: 4px;
  flex-direction: column;
  gap: 10px;
  overflow: auto;
}

.expense-image-name-empty {
  margin: 6px 0;
  color: #9ca3af;
  text-align: center;
}

.expense-image-name-item {
  padding: 12px;
  border: 1px solid #dbe4f0;
  border-radius: 8px;
  background: #f8fafc;
}

.expense-image-name-item-head {
  display: flex;
  min-width: 0;
  margin-bottom: 8px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.expense-image-name-item-head > span {
  min-width: 0;
  overflow: hidden;
  color: #64748b;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.expense-image-name-remove {
  flex: 0 0 auto;
  padding: 2px 6px;
  border: 0;
  background: transparent;
  color: #dc2626;
  font-size: 12px;
}

.expense-image-name-item label {
  display: flex;
  margin: 0;
  align-items: center;
  gap: 6px;
}

.expense-image-name-item label > span,
.expense-image-name-item label > em {
  flex: 0 0 auto;
  font-size: 14px;
  font-style: normal;
}

.expense-image-name-item label > em {
  color: #64748b;
}

.expense-image-name-input {
  flex: 1 1 auto;
  min-width: 0;
}

.expense-upload-selection {
  display: inline-flex;
  min-height: 36px;
  max-width: 520px;
  padding: 7px 10px;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.4;
  overflow-wrap: anywhere;
  transition: color .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.expense-upload-selection.is-ready {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
  font-weight: 600;
}

.expense-upload-selection.is-ready::before {
  display: inline-grid;
  width: 22px;
  height: 22px;
  margin-right: 7px;
  flex: 0 0 22px;
  place-items: center;
  border-radius: 50%;
  background: #22c55e;
  color: #fff;
  content: '✓';
  font-size: 14px;
  font-weight: 700;
}

.expense-upload-selection.is-ready-flash {
  animation: expense-upload-ready-pop .48s ease-out;
}

#btn-ec-upload.is-image-ready {
  border-color: #16a34a;
  background: #16a34a;
  box-shadow: 0 0 0 3px rgba(34, 197, 94, .14);
}

#btn-ec-upload.is-image-ready:hover {
  background: #15803d;
}

#btn-ec-upload.is-image-ready-flash {
  animation: expense-upload-submit-pulse .9s ease-out;
}

@keyframes expense-upload-ready-pop {
  0% { opacity: .35; transform: translateY(-4px) scale(.98); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes expense-upload-submit-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(34, 197, 94, .14); }
  45% { box-shadow: 0 0 0 8px rgba(34, 197, 94, .24); }
}

/* ===== 人选流程看板 ===== */

.tiger-pipeline-workbench {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  min-height: 680px;
}

.tiger-pipeline-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tiger-pipeline-head,
.tiger-pipeline-filters,
.tiger-pipeline-create,
.tiger-pipeline-column,
.tiger-pipeline-detail {
  border: 1px solid #dbe4ef;
  background: #fff;
  border-radius: 8px;
}

.tiger-pipeline-head {
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.tiger-pipeline-head h3 {
  margin: 0 0 4px;
  font-size: 16px;
  color: #0f172a;
}

.tiger-pipeline-head p {
  margin: 0;
  font-size: 12px;
  color: #64748b;
}

.tiger-pipeline-head-actions {
  display: flex;
  gap: 8px;
}

.tiger-pipeline-workbench button {
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  background: #f8fafc;
  color: #334155;
  font-size: 13px;
  cursor: pointer;
}

.tiger-pipeline-workbench button:hover {
  background: #eef2f7;
}

.tiger-pipeline-workbench button.primary {
  border-color: #2563eb;
  background: #2563eb;
  color: #fff;
}

.tiger-pipeline-workbench button.primary:hover {
  background: #1d4ed8;
}

.tiger-pipeline-workbench button.link-danger {
  border-color: transparent;
  background: transparent;
  color: #dc2626;
  padding: 0 6px;
}

.tiger-pipeline-workbench input,
.tiger-pipeline-workbench select,
.tiger-pipeline-workbench textarea {
  min-height: 30px;
  padding: 4px 8px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  background: #fff;
  color: #0f172a;
  font-size: 13px;
  font-family: inherit;
}

.tiger-pipeline-workbench input:disabled {
  background: #f1f5f9;
  color: #64748b;
}

.tiger-pipeline-alerts {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.tiger-pipeline-alert {
  min-height: 62px !important;
  padding: 8px 10px !important;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  border-radius: 8px !important;
  text-align: left;
}

.tiger-pipeline-alert strong {
  font-size: 20px;
  line-height: 1.2;
  color: #0f172a;
}

.tiger-pipeline-alert span {
  font-size: 12px;
  color: #64748b;
}

.tiger-pipeline-alert.is-empty {
  opacity: 0.55;
  cursor: default;
}

.tiger-pipeline-alert.tone-blue { background: #eff6ff !important; border-color: #bfdbfe !important; }
.tiger-pipeline-alert.tone-amber { background: #fffbeb !important; border-color: #fde68a !important; }
.tiger-pipeline-alert.tone-teal { background: #f0fdfa !important; border-color: #99f6e4 !important; }
.tiger-pipeline-alert.tone-red { background: #fef2f2 !important; border-color: #fecaca !important; }
.tiger-pipeline-alert.tone-red strong { color: #b91c1c; }
.tiger-pipeline-alert.tone-grey { background: #f8fafc !important; border-color: #e2e8f0 !important; }

.tiger-pipeline-filters {
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.tiger-pipeline-filters input {
  flex: 1 1 220px;
  min-width: 160px;
}

.tiger-pipeline-scope {
  display: inline-flex;
  gap: 0;
}

.tiger-pipeline-scope button {
  border-radius: 0;
}

.tiger-pipeline-scope button:first-child {
  border-radius: 6px 0 0 6px;
}

.tiger-pipeline-scope button:last-child {
  border-radius: 0 6px 6px 0;
  border-left: none;
}

.tiger-pipeline-scope button.is-active {
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
}

.tiger-pipeline-create {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tiger-pipeline-create-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.tiger-pipeline-create label,
.tiger-pipeline-detail-grid label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  color: #475569;
}

.tiger-pipeline-create-actions {
  display: flex;
  gap: 8px;
}

.tiger-pipeline-columns {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 6px;
  align-items: flex-start;
}

.tiger-pipeline-column {
  flex: 0 0 232px;
  display: flex;
  flex-direction: column;
  max-height: 560px;
}

.tiger-pipeline-column > header {
  padding: 9px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #eef2f7;
  font-size: 13px;
  color: #334155;
}

.tiger-pipeline-column > header b {
  color: #2563eb;
}

.tiger-pipeline-column-body {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
}

.tiger-pipeline-card {
  padding: 9px 10px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
  cursor: pointer;
}

.tiger-pipeline-card:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.tiger-pipeline-card header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.tiger-pipeline-card strong {
  font-size: 14px;
  color: #0f172a;
}

.tiger-pipeline-card header span {
  font-size: 11px;
  color: #94a3b8;
}

.tiger-pipeline-card p {
  margin: 3px 0 0;
  font-size: 12px;
  color: #64748b;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiger-pipeline-card-meta {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.tiger-pipeline-meta {
  padding: 1px 7px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: 11px;
}

.tiger-pipeline-meta.is-highlight {
  background: #dbeafe;
  color: #1d4ed8;
}

.tiger-pipeline-meta.is-warn {
  background: #fee2e2;
  color: #b91c1c;
}

.tiger-pipeline-empty {
  margin: 0;
  padding: 10px 0;
  text-align: center;
  color: #94a3b8;
  font-size: 12px;
  list-style: none;
}

.tiger-pipeline-loading,
.tiger-pipeline-error {
  padding: 24px;
  text-align: center;
  font-size: 13px;
  color: #64748b;
}

.tiger-pipeline-error {
  color: #b91c1c;
}

.tiger-pipeline-detail {
  flex: 0 0 360px;
  max-height: 720px;
  overflow-y: auto;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tiger-pipeline-detail > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #eef2f7;
}

.tiger-pipeline-detail > header strong {
  display: block;
  font-size: 15px;
  color: #0f172a;
}

.tiger-pipeline-detail > header span {
  font-size: 12px;
  color: #64748b;
}

.tiger-pipeline-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.tiger-pipeline-detail h4 {
  margin: 0 0 8px;
  font-size: 13px;
  color: #334155;
}

.tiger-pipeline-iv-list,
.tiger-pipeline-event-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tiger-pipeline-iv-list > li {
  padding: 8px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-pipeline-iv-head {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tiger-pipeline-iv-head strong {
  flex: 1 1 auto;
  font-size: 13px;
  color: #0f172a;
}

.tiger-pipeline-iv-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.tiger-pipeline-iv-list textarea {
  width: 100%;
  resize: vertical;
}

.tiger-pipeline-iv-add,
.tiger-pipeline-event-add {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.tiger-pipeline-iv-add input,
.tiger-pipeline-iv-add select {
  flex: 1 1 130px;
  min-width: 0;
}

.tiger-pipeline-event-add input {
  flex: 1 1 200px;
  min-width: 0;
}

.tiger-pipeline-event-list > li {
  padding: 7px 9px;
  border-left: 2px solid #bfdbfe;
  background: #f8fafc;
  border-radius: 0 6px 6px 0;
}

.tiger-pipeline-event-list span {
  font-size: 11px;
  color: #94a3b8;
}

.tiger-pipeline-event-list p {
  margin: 2px 0;
  font-size: 13px;
  color: #334155;
}

.tiger-pipeline-event-list em {
  font-size: 11px;
  color: #94a3b8;
  font-style: normal;
}

.tiger-pipeline-detail footer {
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid #eef2f7;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.tiger-pipeline-detail-head-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tiger-pipeline-detail-missing {
  font-size: 11px;
  color: #dc2626;
}

.tiger-pipeline-detail-done {
  font-size: 12px;
  color: #059669;
}

.tiger-pipeline-resume {
  padding: 1px 7px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 11px;
  cursor: pointer;
}

.tiger-pipeline-resume:hover {
  background: #dbeafe;
}

.tiger-pipeline-meta.is-danger {
  background: #fef2f2;
  color: #dc2626;
}

/* ===== 自然语言 / 截图录入的草稿核对表格 ===== */

.tiger-pipeline-capture {
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  background: #f8fbff;
}

.pipeline-capture-modal {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.45);
  padding: 24px;
}

.pipeline-capture-dialog {
  width: min(1180px, 100%);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.24);
  overflow: hidden;
}

.pipeline-capture-dialog > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #eef2f7;
}

.pipeline-capture-dialog > header h3 {
  margin: 0;
  font-size: 15px;
  color: #0f172a;
}

.pipeline-capture-body {
  padding: 14px 16px;
  overflow: auto;
}

.pipeline-capture-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.pipeline-capture-head strong {
  display: block;
  font-size: 14px;
  color: #0f172a;
}

.pipeline-capture-head span {
  font-size: 12px;
  color: #64748b;
}

.pipeline-capture-head-actions {
  display: flex;
  gap: 6px;
}

.pipeline-capture-tip {
  margin: 8px 0;
  font-size: 12px;
  color: #b45309;
}

.pipeline-capture-table-wrap {
  overflow-x: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

.pipeline-capture-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.pipeline-capture-table th,
.pipeline-capture-table td {
  padding: 6px 8px;
  border-bottom: 1px solid #eef2f7;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}

.pipeline-capture-table th {
  background: #f8fafc;
  color: #475569;
  font-weight: 600;
}

.pipeline-capture-table tr.is-unselected {
  opacity: 0.5;
}

.pipeline-capture-table tr.is-doubt td {
  background: #fffbeb;
}

.pipeline-capture-pick {
  width: 36px;
  text-align: center;
}

.pipeline-capture-input {
  width: 100%;
  min-width: 72px;
  padding: 4px 6px;
  border: 1px solid #dbe3ec;
  border-radius: 5px;
  font-size: 12px;
  color: #0f172a;
  background: #fff;
}

.pipeline-capture-input:focus {
  outline: none;
  border-color: #93c5fd;
}

/* AI 拿不准的字段标红，提示顾问重点核对 */
.pipeline-capture-input.is-low-confidence {
  border-color: #f87171;
  background: #fef2f2;
}

.pipeline-capture-missing {
  color: #dc2626;
  font-size: 11px;
}

.pipeline-capture-link {
  padding: 2px 8px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 11px;
  cursor: pointer;
}

.pipeline-capture-hint {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: #b45309;
}

.pipeline-capture-dup {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: #0d9488;
}

.pipeline-capture-check {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #475569;
}

.pipeline-capture-ops {
  display: flex;
  align-items: center;
  gap: 6px;
}

.pipeline-capture-conf {
  font-size: 11px;
  color: #64748b;
}

.pipeline-capture-conf.is-doubt {
  color: #dc2626;
  font-weight: 600;
}

.pipeline-capture-empty,
.pipeline-capture-loading,
.pipeline-capture-error,
.pipeline-capture-unparsed {
  padding: 10px 4px;
  font-size: 12px;
  color: #64748b;
}

.pipeline-capture-error {
  color: #dc2626;
}

.pipeline-capture-unparsed {
  margin: 8px 0 0;
  color: #94a3b8;
}

.pw-recap-capture {
  margin-top: 8px;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  border: 1px dashed #bfdbfe;
  border-radius: 8px;
  background: #f8fbff;
  font-size: 12px;
  color: #475569;
}

@media (max-width: 1280px) {
  .tiger-pipeline-alerts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .tiger-pipeline-workbench {
    flex-direction: column;
  }
  .tiger-pipeline-detail {
    flex: 1 1 auto;
    width: 100%;
  }
}

/* ===== 美猴王统一确认录入清单 ===== */

.tiger-intake-summary {
  font-size: 13px;
  line-height: 1.7;
  color: #1f2937;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
}

.tiger-intake-notes {
  margin-top: 8px;
  font-size: 12px;
  color: #6b7280;
}

.tiger-intake-notes ul {
  margin: 6px 0 0;
  padding-left: 18px;
}

.tiger-intake-group {
  margin-top: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
}

.tiger-intake-group > header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 12px;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
  font-size: 13px;
  color: #111827;
}

.tiger-intake-badge {
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}

.tiger-intake-badge.is-new { background: #dcfce7; color: #166534; }
.tiger-intake-badge.is-dup { background: #dbeafe; color: #1e40af; }
.tiger-intake-badge.is-unclear { background: #fef3c7; color: #92400e; }
.tiger-intake-badge.is-noise { background: #f3f4f6; color: #6b7280; }

.tiger-intake-group-question {
  padding: 10px 12px;
  background: #fffbeb;
  border-bottom: 1px solid #fde68a;
  font-size: 12px;
  color: #92400e;
  line-height: 1.6;
}

.tiger-intake-group-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.tiger-intake-group-actions button {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid #f59e0b;
  border-radius: 6px;
  background: #fff;
  color: #b45309;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.tiger-intake-group-question.is-member-confirm {
  background: #fff7ed;
  border-color: #fdba74;
}

.tiger-intake-member-list {
  display: grid;
  gap: 6px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.tiger-intake-member-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 9px;
  border: 1px solid #fed7aa;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.78);
}

.tiger-intake-member-list li span {
  color: #9a3412;
}

.tiger-intake-group-actions button.is-primary {
  background: #ea580c;
  border-color: #ea580c;
  color: #fff;
}

.tiger-intake-group-question.is-member-confirm small {
  display: block;
  margin-top: 8px;
  color: #9a3412;
}

.tiger-intake-group-answered {
  padding: 8px 12px;
  font-size: 12px;
  color: #047857;
  background: #ecfdf5;
  border-bottom: 1px solid #a7f3d0;
}

.tiger-intake-bucket {
  border-top: 1px solid #f3f4f6;
}

.tiger-intake-bucket > summary {
  padding: 8px 12px;
  font-size: 12px;
  color: #374151;
  cursor: pointer;
  user-select: none;
}

.tiger-intake-bucket.is-unclear > summary { background: #fffbeb; color: #92400e; }
.tiger-intake-bucket.is-dup > summary { background: #eff6ff; color: #1e40af; }
.tiger-intake-bucket.is-new > summary { background: #f0fdf4; color: #166534; }
.tiger-intake-bucket.is-noise > summary { background: #f9fafb; color: #6b7280; }

.tiger-intake-hint {
  margin-left: 8px;
  font-weight: 400;
  opacity: 0.75;
}

.tiger-intake-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.tiger-intake-table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

.tiger-intake-table th,
.tiger-intake-table td {
  white-space: nowrap;
}

.tiger-intake-table th,
.tiger-intake-table td {
  padding: 5px 8px;
  border-bottom: 1px solid #f3f4f6;
  text-align: left;
  vertical-align: middle;
}

.tiger-intake-table thead th {
  background: #fff;
  color: #6b7280;
  font-weight: 600;
  white-space: nowrap;
}

.tiger-intake-input {
  width: 100%;
  min-width: 130px;
  padding: 3px 6px;
  border: 1px solid #e5e7eb;
  border-radius: 5px;
  font-size: 12px;
  background: #fff;
}

.tiger-intake-input:focus {
  outline: none;
  border-color: #f97316;
}

.tiger-intake-extra td {
  padding: 4px 12px 8px;
  background: #fcfcfd;
}

.tiger-intake-dup-detail,
.tiger-intake-reason {
  margin-top: 4px;
  font-size: 11px;
  color: #6b7280;
  line-height: 1.6;
}

.tiger-intake-question {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  color: #92400e;
}

.tiger-intake-answer {
  min-width: 160px;
  padding: 4px 7px;
  border: 1px solid #fbbf24;
  border-radius: 6px;
  font-size: 12px;
}

.tiger-intake-answer.is-saved {
  border-color: #22c55e;
  background: #f0fdf4;
}

.tiger-intake-answer.is-save-error {
  border-color: #dc2626;
  background: #fef2f2;
}

.tiger-intake-answer-status {
  min-width: 42px;
  font-size: 11px;
  color: #15803d;
}

.tiger-intake-answer.is-save-error + .tiger-intake-answer-status {
  color: #b91c1c;
}

.tiger-intake-ask {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.tiger-intake-ask-input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 7px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
  font-size: 12px;
}

.tiger-intake-ask-btn,
.tiger-intake-commit,
.tiger-intake-cancel {
  min-height: 34px;
  padding: 7px 13px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid #fdba74;
  background: #fff;
  color: #c2410c;
}

.tiger-intake-commit {
  border-color: #ea580c;
  background: #ea580c;
  color: #fff;
}

.tiger-intake-commit:disabled {
  border-color: #e5e7eb;
  background: #e5e7eb;
  color: #9ca3af;
  cursor: not-allowed;
}

.tiger-intake-cancel {
  border-color: #e5e7eb;
  color: #6b7280;
}

.tiger-intake-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.tiger-intake-blocked {
  font-size: 12px;
  color: #b45309;
}

.tiger-intake-done {
  font-size: 13px;
  line-height: 1.7;
  color: #065f46;
  padding: 10px 12px;
  border-radius: 8px;
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
}

.tiger-intake-done ul {
  margin: 6px 0 0;
  padding-left: 18px;
}

.tiger-intake-error {
  margin-top: 6px;
  color: #b91c1c;
}

.tiger-intake-modal {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.45);
}

.tiger-intake-modal-box {
  width: min(460px, 100%);
  max-height: 80vh;
  overflow-y: auto;
  padding: 20px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.22);
}

.tiger-intake-modal-box h3 {
  margin: 0 0 10px;
  font-size: 16px;
  color: #111827;
}

.tiger-intake-modal-lead {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.7;
  color: #374151;
}

.tiger-intake-modal-targets {
  margin: 0 0 12px;
  padding-left: 18px;
  font-size: 12px;
  color: #4b5563;
  line-height: 1.8;
}

.tiger-intake-modal-ack {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #111827;
  cursor: pointer;
}

.tiger-intake-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

.tiger-intake-modal-actions button {
  min-height: 34px;
  padding: 7px 14px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #4b5563;
}

.tiger-intake-modal-ok {
  border-color: #ea580c;
  background: #ea580c;
  color: #fff;
}

.tiger-intake-modal-ok:disabled {
  border-color: #e5e7eb;
  background: #e5e7eb;
  color: #9ca3af;
  cursor: not-allowed;
}

/* ===== 人选流程看板：提醒折叠、列色调、看板设置 ===== */

.tiger-pipeline-alerts {
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
}

.tiger-pipeline-alerts-bar {
  display: flex;
  justify-content: flex-end;
}

.tiger-pipeline-alerts-toggle {
  border: 1px solid #dbe4ef !important;
  background: #f8fafc !important;
  color: #475569 !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.tiger-pipeline-column {
  border-top: 3px solid #cbd5e1;
  border-radius: 8px 8px 0 0;
}

.tiger-pipeline-column.tone-blue { border-top-color: #3b82f6; }
.tiger-pipeline-column.tone-teal { border-top-color: #14b8a6; }
.tiger-pipeline-column.tone-amber { border-top-color: #f59e0b; }
.tiger-pipeline-column.tone-red { border-top-color: #ef4444; }
.tiger-pipeline-column.tone-grey { border-top-color: #94a3b8; }

.tiger-pipeline-column-more {
  width: 100%;
  border: 1px dashed #cbd5e1 !important;
  background: #f8fafc !important;
  color: #475569 !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  padding: 6px !important;
  min-height: 0 !important;
}

.tiger-pipeline-settings .tiger-pipeline-setting-group {
  border-top: 1px solid #eef2f7;
  padding-top: 10px;
}

.tiger-pipeline-settings h4 {
  margin: 0 0 8px;
  font-size: 13px;
  color: #0f172a;
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.tiger-pipeline-settings h4 em {
  font-style: normal;
  font-size: 11px;
  color: #94a3b8;
}

.tiger-pipeline-setting-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tiger-pipeline-setting {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #475569;
}

.tiger-pipeline-setting > span {
  flex: 1 1 auto;
}

.tiger-pipeline-setting input[type="number"],
.tiger-pipeline-setting select,
.tiger-pipeline-setting input[type="text"],
.tiger-pipeline-setting input:not([type]) {
  flex: 0 0 132px;
  padding: 5px 8px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  font-size: 12px;
}

.tiger-pipeline-setting.is-check {
  align-items: flex-start;
}

.tiger-pipeline-setting.is-check input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: 2px;
}

.tiger-pipeline-setting em {
  flex: 1 1 100%;
  font-style: normal;
  font-size: 11px;
  color: #94a3b8;
}

.tiger-pipeline-stage-setting {
  border: 1px solid #eef2f7;
  border-radius: 8px;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tiger-pipeline-stage-setting-head {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tiger-pipeline-stage-setting-head input {
  flex: 1 1 auto;
  padding: 5px 8px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  font-size: 12px;
}

.tiger-pipeline-stage-setting-head code {
  font-size: 11px;
  color: #94a3b8;
}

.tiger-pipeline-stage-setting-head button,
.tiger-pipeline-alert-setting button {
  border: 1px solid #dbe4ef !important;
  background: #fff !important;
  color: #475569 !important;
  border-radius: 6px !important;
  font-size: 11px !important;
  padding: 3px 7px !important;
  min-height: 0 !important;
}

.tiger-pipeline-stage-setting-body {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  color: #475569;
}

.tiger-pipeline-stage-setting-body label {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tiger-pipeline-stage-setting-body input[type="number"],
.tiger-pipeline-stage-setting-body select {
  width: 84px;
  padding: 4px 6px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  font-size: 12px;
}

.tiger-pipeline-alert-setting {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #475569;
}

.tiger-pipeline-alert-setting label {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 6px;
}

.tiger-pipeline-settings > footer {
  display: flex;
  gap: 8px;
  border-top: 1px solid #eef2f7;
  padding-top: 10px;
}

/* ===== 看板内嵌对话框 ===== */

.tiger-pipeline-chat {
  position: relative;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tiger-pipeline-chat.is-file-dragging {
  border-color: #ea580c;
  background: #fff7ed;
}

.tiger-pipeline-chat > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.tiger-pipeline-chat > header strong {
  font-size: 14px;
  color: #0f172a;
  margin-right: 8px;
}

.tiger-pipeline-chat > header span {
  font-size: 12px;
  color: #94a3b8;
}

.tiger-pipeline-chat > header button {
  border: 1px solid #dbe4ef !important;
  background: #f8fafc !important;
  color: #475569 !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.tiger-pipeline-chat-messages {
  max-height: 190px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-right: 4px;
}

.tiger-pipeline-chat-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
  color: #94a3b8;
}

.tiger-pipeline-chat-msg {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
}

.tiger-pipeline-chat-msg p {
  margin: 0;
  padding: 7px 10px;
  border-radius: 8px;
  line-height: 1.6;
  max-width: 84%;
  white-space: pre-wrap;
  word-break: break-word;
}

.tiger-pipeline-chat-msg.is-user {
  flex-direction: row-reverse;
}

.tiger-pipeline-chat-msg.is-user p {
  background: #eff6ff;
  color: #1e3a5f;
}

.tiger-pipeline-chat-msg.is-bot p {
  background: #f8fafc;
  color: #334155;
}

.tiger-pipeline-chat-at {
  flex: 0 0 auto;
  font-size: 11px;
  color: #cbd5e1;
  padding-top: 8px;
}

.tiger-pipeline-chat-input {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.tiger-pipeline-chat-input textarea {
  flex: 1 1 auto;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.6;
  resize: vertical;
  font-family: inherit;
}

.tiger-pipeline-chat-actions {
  display: flex;
  gap: 6px;
}

.tiger-pipeline-chat-actions button {
  border: 1px solid #dbe4ef !important;
  background: #fff !important;
  color: #475569 !important;
  border-radius: 6px !important;
  padding: 6px 12px !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.tiger-pipeline-chat-actions button.primary {
  border-color: #ea580c !important;
  background: #ea580c !important;
  color: #fff !important;
}

.tiger-pipeline-chat-actions button.is-disabled,
.tiger-pipeline-chat-actions button:disabled {
  border-color: #e5e7eb !important;
  background: #f1f5f9 !important;
  color: #a3aab7 !important;
  cursor: not-allowed;
}

.tiger-pipeline-chat-pending {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 10px;
  border: 1px dashed #f0b27a;
  border-radius: 10px;
  background: #fff8f1;
}

.tiger-pipeline-chat-pending-thumbs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.tiger-pipeline-chat-thumb {
  position: relative;
  display: inline-flex;
}

.tiger-pipeline-chat-thumb img {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #fff;
}

.tiger-pipeline-chat-thumb button {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 18px;
  height: 18px;
  line-height: 16px;
  padding: 0 !important;
  min-height: 0 !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #64748b !important;
  font-size: 12px !important;
  cursor: pointer;
}

.tiger-pipeline-chat-pending-actions {
  display: flex;
  gap: 6px;
}

.tiger-pipeline-chat-pending-actions button {
  border: 1px solid #dbe4ef !important;
  background: #fff !important;
  color: #475569 !important;
  border-radius: 6px !important;
  padding: 6px 12px !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.tiger-pipeline-chat-pending-actions button.primary {
  border-color: #ea580c !important;
  background: #ea580c !important;
  color: #fff !important;
}

.tiger-pipeline-chat-pending-actions button:disabled {
  border-color: #e5e7eb !important;
  background: #f1f5f9 !important;
  color: #a3aab7 !important;
  cursor: not-allowed;
}

.tiger-pipeline-chat-dropmask {
  display: none;
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: rgba(255, 247, 237, 0.92);
  border: 2px dashed #ea580c;
  color: #c2410c;
  font-size: 14px;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.tiger-pipeline-chat.is-file-dragging .tiger-pipeline-chat-dropmask {
  display: flex;
}

/* ===== 人选流程看板 V2：与美猴王工作台统一的橙色轻卡片风格 ===== */

.tiger-pipeline-workbench {
  --pw-accent: #f97316;
  --pw-accent-dark: #c2410c;
  --pw-text: #111827;
  --pw-muted: #667085;
  --pw-line: #ececf0;
  --pw-soft: #f7f7f9;
  gap: 16px;
}

.tiger-pipeline-main {
  gap: 14px;
}

.tiger-pipeline-head,
.tiger-pipeline-create,
.tiger-pipeline-detail,
.tiger-pipeline-chat {
  border: 1px solid var(--pw-line);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.tiger-pipeline-head {
  padding: 0;
  display: block;
}

.tiger-pipeline-head-top {
  padding: 18px 20px 16px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.tiger-pipeline-head-title h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 6px;
  color: var(--pw-text);
  font-size: 20px;
  font-weight: 760;
  letter-spacing: -0.02em;
}

.tiger-pipeline-count {
  padding: 2px 10px;
  border-radius: 999px;
  background: #fff7ed;
  color: var(--pw-accent-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}

.tiger-pipeline-head-title p {
  margin: 0;
  color: var(--pw-muted);
  font-size: 13px;
}

.tiger-pipeline-head-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tiger-pipeline-workbench button {
  min-height: 36px;
  padding: 0 16px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  color: #3f3f46;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tiger-pipeline-workbench button:hover {
  border-color: #fdba74;
  background: #fff;
  color: var(--pw-accent-dark);
  box-shadow: 0 6px 16px rgba(249, 115, 22, 0.1);
}

.tiger-pipeline-workbench button.primary {
  border-color: transparent;
  background: linear-gradient(135deg, #fb923c, #f97316);
  color: #fff;
  box-shadow: 0 6px 16px rgba(249, 115, 22, 0.24);
}

.tiger-pipeline-workbench button.primary:hover {
  background: linear-gradient(135deg, #f97316, #ea580c);
  color: #fff;
  box-shadow: 0 8px 20px rgba(249, 115, 22, 0.3);
}

.tiger-pipeline-workbench button:disabled {
  border-color: #e5e7eb;
  background: #f4f4f5;
  color: #a1a1aa;
  box-shadow: none;
  cursor: not-allowed;
}

.tiger-pipeline-workbench input,
.tiger-pipeline-workbench select,
.tiger-pipeline-workbench textarea {
  min-height: 36px;
  padding: 6px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  color: var(--pw-text);
  font-size: 13px;
}

.tiger-pipeline-workbench input:focus,
.tiger-pipeline-workbench select:focus,
.tiger-pipeline-workbench textarea:focus {
  border-color: #fdba74;
  outline: none;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.12);
}

/* 筛选行并入头部卡片 */
.tiger-pipeline-head .tiger-pipeline-filters {
  border: none;
  border-top: 1px solid #f4f4f5;
  border-radius: 0;
  padding: 12px 20px;
  background: transparent;
}

.tiger-pipeline-head .tiger-pipeline-filters select {
  flex: 0 0 auto;
}

.tiger-pipeline-head .tiger-pipeline-filters .tiger-pipeline-alerts-toggle {
  margin-left: auto;
  border: 1px solid #e5e7eb !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #52525b !important;
  padding: 0 14px !important;
  min-height: 32px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.tiger-pipeline-head .tiger-pipeline-filters .tiger-pipeline-alerts-toggle:hover {
  border-color: #fdba74 !important;
  color: var(--pw-accent-dark) !important;
}

.tiger-pipeline-scope {
  padding: 3px;
  border-radius: 999px;
  background: #f4f4f5;
  gap: 2px;
}

.tiger-pipeline-scope button,
.tiger-pipeline-scope button:first-child,
.tiger-pipeline-scope button:last-child {
  min-height: 30px;
  padding: 0 16px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #52525b;
  box-shadow: none;
}

.tiger-pipeline-scope button:hover {
  background: rgba(255, 255, 255, 0.6);
  color: var(--pw-accent-dark);
  box-shadow: none;
}

.tiger-pipeline-scope button.is-active,
.tiger-pipeline-scope button.is-active:hover {
  background: #fff;
  border-color: transparent;
  color: var(--pw-accent-dark);
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.12);
}

/* 今日提醒 */
.tiger-pipeline-alerts {
  grid-template-columns: repeat(auto-fit, minmax(126px, 1fr));
  gap: 10px;
}

.tiger-pipeline-alert {
  position: relative;
  min-height: 72px !important;
  padding: 12px 14px 12px 18px !important;
  border: 1px solid var(--pw-line) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.tiger-pipeline-alert::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #d4d4d8;
}

.tiger-pipeline-alert:not(.is-empty):hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(16, 24, 40, 0.08);
}

.tiger-pipeline-alert strong {
  font-size: 24px;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--pw-text);
}

.tiger-pipeline-alert span {
  color: var(--pw-muted);
  font-size: 12px;
  font-weight: 600;
}

.tiger-pipeline-alert.is-empty {
  opacity: 1;
  background: #fbfbfc !important;
}

.tiger-pipeline-alert.is-empty strong {
  color: #d4d4d8;
}

.tiger-pipeline-alert.is-empty::before {
  background: #e5e7eb;
}

.tiger-pipeline-alert.tone-blue::before { background: #3b82f6; }
.tiger-pipeline-alert.tone-amber::before { background: #f59e0b; }
.tiger-pipeline-alert.tone-teal::before { background: #14b8a6; }
.tiger-pipeline-alert.tone-red::before { background: #ef4444; }
.tiger-pipeline-alert.tone-grey::before { background: #94a3b8; }
.tiger-pipeline-alert:not(.is-empty).tone-red strong { color: #dc2626; }

/* 阶段列 */
.tiger-pipeline-columns {
  gap: 12px;
  padding-bottom: 10px;
}

.tiger-pipeline-column {
  flex: 0 0 252px;
  border: 1px solid var(--pw-line);
  border-top: 1px solid var(--pw-line);
  border-radius: 14px;
  background: var(--pw-soft);
  max-height: 620px;
  overflow: hidden;
}

.tiger-pipeline-column > header {
  padding: 12px 14px;
  border-bottom: 1px solid var(--pw-line);
  background: #fff;
  color: var(--pw-text);
  font-size: 13px;
  font-weight: 700;
}

.tiger-pipeline-column > header span::before {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: #d4d4d8;
  vertical-align: middle;
}

.tiger-pipeline-column.tone-blue > header span::before { background: #3b82f6; }
.tiger-pipeline-column.tone-teal > header span::before { background: #14b8a6; }
.tiger-pipeline-column.tone-amber > header span::before { background: #f59e0b; }
.tiger-pipeline-column.tone-red > header span::before { background: #ef4444; }
.tiger-pipeline-column.tone-grey > header span::before { background: #94a3b8; }

.tiger-pipeline-column > header b {
  min-width: 24px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #f4f4f5;
  color: #52525b;
  font-size: 12px;
  text-align: center;
}

.tiger-pipeline-column-body {
  padding: 10px;
  gap: 10px;
}

.tiger-pipeline-card {
  padding: 12px;
  border: 1px solid var(--pw-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.tiger-pipeline-card:hover {
  border-color: #fdba74;
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(16, 24, 40, 0.08);
}

.tiger-pipeline-card strong {
  font-size: 14px;
  font-weight: 700;
  color: var(--pw-text);
}

.tiger-pipeline-card header span {
  color: #a1a1aa;
}

.tiger-pipeline-card p {
  color: var(--pw-muted);
}

.tiger-pipeline-meta {
  padding: 2px 8px;
  background: #f4f4f5;
  color: #52525b;
  font-weight: 600;
}

.tiger-pipeline-meta.is-highlight {
  background: #fff7ed;
  color: var(--pw-accent-dark);
}

.tiger-pipeline-resume {
  min-height: 0 !important;
  padding: 2px 9px !important;
  border-color: #fed7aa !important;
  border-radius: 999px !important;
  background: #fff7ed !important;
  color: var(--pw-accent-dark) !important;
  font-size: 11px !important;
  box-shadow: none !important;
}

.tiger-pipeline-column-more {
  border: 1px dashed #e5e7eb !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #71717a !important;
  min-height: 32px !important;
}

.tiger-pipeline-empty {
  padding: 20px 0;
  color: #a1a1aa;
}

/* 录入台 */
.tiger-pipeline-chat {
  padding: 16px 18px;
  gap: 12px;
}

.tiger-pipeline-chat > header strong {
  font-size: 15px;
  font-weight: 700;
}

.tiger-pipeline-chat > header button {
  border: 1px solid #e5e7eb !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #52525b !important;
  min-height: 32px !important;
  padding: 0 14px !important;
}

.tiger-pipeline-chat-input textarea {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.6;
}

.tiger-pipeline-chat-actions {
  gap: 8px;
}

.tiger-pipeline-chat-actions button {
  min-height: 36px !important;
  padding: 0 14px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  white-space: nowrap;
}

.tiger-pipeline-chat-actions button.primary {
  min-width: 76px;
  border-color: transparent !important;
  background: linear-gradient(135deg, #fb923c, #f97316) !important;
  box-shadow: 0 6px 16px rgba(249, 115, 22, 0.24);
}

.tiger-pipeline-chat-msg p {
  border-radius: 12px;
}

.tiger-pipeline-chat-msg.is-user p {
  background: #fff7ed;
  color: #7c2d12;
}

.tiger-pipeline-chat-msg.is-bot p {
  background: var(--pw-soft);
  color: #3f3f46;
}

.tiger-pipeline-chat-dropmask {
  border-radius: 16px;
}

/* 右侧详情 / 设置抽屉 */
.tiger-pipeline-detail {
  flex: 0 0 380px;
  padding: 16px 18px;
}

.tiger-pipeline-detail > header strong {
  font-size: 16px;
  font-weight: 750;
}

.tiger-pipeline-detail h4 {
  font-size: 13px;
  font-weight: 700;
  color: var(--pw-text);
}

.tiger-pipeline-iv-list > li,
.tiger-pipeline-event-list > li {
  border-radius: 12px;
  background: var(--pw-soft);
}

.tiger-pipeline-iv-list > li {
  border-color: var(--pw-line);
}

.tiger-pipeline-event-list > li {
  border-left: 3px solid #fdba74;
  border-radius: 0 12px 12px 0;
}

.tiger-pipeline-create {
  padding: 16px 18px;
}

.tiger-pipeline-settings .tiger-pipeline-stage-setting {
  border-color: var(--pw-line);
  border-radius: 12px;
}

/* ===== 人选流程台账表格视图 ===== */

.tiger-pipeline-table-wrap {
  border: 1px solid var(--pw-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  overflow: auto;
  max-height: 640px;
}

.tiger-pipeline-table {
  width: 100%;
  min-width: 1680px;
  border-collapse: collapse;
  font-size: 13px;
}

.tiger-pipeline-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 11px 12px;
  border: none;
  border-bottom: 1px solid var(--pw-line);
  background: #fafafa;
  color: #52525b;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  text-align: left;
}

.tiger-pipeline-table thead th:first-child {
  left: 0;
  z-index: 3;
  position: sticky;
}

.tiger-pipeline-table td {
  padding: 10px 12px;
  border: none;
  border-bottom: 1px solid #f4f4f5;
  color: #3f3f46;
  vertical-align: middle;
  white-space: nowrap;
}

.tiger-pipeline-td-name {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 136px;
  background: #fff;
}

.tiger-pipeline-td-name strong {
  color: var(--pw-text);
  font-size: 13px;
  font-weight: 700;
}

.tiger-pipeline-row {
  cursor: pointer;
}

.tiger-pipeline-row:hover td,
.tiger-pipeline-row:hover .tiger-pipeline-td-name,
.tiger-pipeline-row.is-active td,
.tiger-pipeline-row.is-active .tiger-pipeline-td-name {
  background: #fff7ed;
}

.tiger-pipeline-row.is-active .tiger-pipeline-td-name {
  box-shadow: inset 3px 0 0 var(--pw-accent);
}

.tiger-pipeline-td-sub {
  margin-top: 2px;
  color: #a1a1aa;
  font-size: 11px;
}

.tiger-pipeline-nil {
  color: #d4d4d8;
  font-size: 12px;
  font-style: normal;
}

.tiger-pipeline-td-num {
  text-align: right;
  color: var(--pw-text);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.tiger-pipeline-td-note {
  max-width: 220px;
  white-space: normal;
  color: #71717a;
  line-height: 1.5;
}

.tiger-pipeline-td-ops {
  white-space: nowrap;
}

.tiger-pipeline-td-ops button {
  min-height: 28px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
}

.tiger-pipeline-td-ops button + button {
  margin-left: 6px;
}

.tiger-pipeline-table td.is-soon > span {
  color: var(--pw-accent-dark);
  font-weight: 700;
}

.tiger-pipeline-table td.is-overdue > span,
.tiger-pipeline-table td.is-overdue .tiger-pipeline-td-sub {
  color: #dc2626;
  font-weight: 700;
}

.tiger-pipeline-table td.is-idle .tiger-pipeline-td-sub {
  color: #b45309;
}

.tiger-pipeline-stage-pill {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  background: #f4f4f5;
  color: #52525b;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.tiger-pipeline-stage-pill.tone-blue { background: #eff6ff; color: #1d4ed8; }
.tiger-pipeline-stage-pill.tone-teal { background: #f0fdfa; color: #0f766e; }
.tiger-pipeline-stage-pill.tone-amber { background: #fffbeb; color: #b45309; }
.tiger-pipeline-stage-pill.tone-red { background: #fef2f2; color: #b91c1c; }
.tiger-pipeline-stage-pill.tone-grey { background: #f4f4f5; color: #52525b; }

.tiger-pipeline-group-row td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--pw-line);
  background: #fafafa;
}

.tiger-pipeline-group-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: #d4d4d8;
  vertical-align: middle;
}

.tiger-pipeline-group-dot.tone-blue { background: #3b82f6; }
.tiger-pipeline-group-dot.tone-teal { background: #14b8a6; }
.tiger-pipeline-group-dot.tone-amber { background: #f59e0b; }
.tiger-pipeline-group-dot.tone-red { background: #ef4444; }
.tiger-pipeline-group-dot.tone-grey { background: #94a3b8; }

.tiger-pipeline-group-row b {
  margin-right: 10px;
  color: var(--pw-text);
  font-size: 13px;
}

.tiger-pipeline-group-count {
  padding: 1px 8px;
  border: 1px solid var(--pw-line);
  border-radius: 999px;
  background: #fff;
  color: #52525b;
  font-size: 11px;
}

.tiger-pipeline-group-amount {
  margin-left: 8px;
  color: var(--pw-accent-dark);
  font-size: 12px;
  font-weight: 700;
}

.tiger-pipeline-viewswitch {
  margin-left: auto;
}

/* 台账列设置面板 */
.tiger-pipeline-col-panel {
  border: 1px solid var(--pw-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tiger-pipeline-col-panel > header {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.tiger-pipeline-col-panel > header strong {
  color: var(--pw-text);
  font-size: 14px;
  font-weight: 700;
}

.tiger-pipeline-col-panel > header span {
  flex: 1 1 auto;
  color: var(--pw-muted);
  font-size: 12px;
}

.tiger-pipeline-col-panel > header div {
  display: flex;
  gap: 8px;
}

.tiger-pipeline-col-panel > header button {
  min-height: 30px;
  padding: 0 12px;
  font-size: 12px;
}

.tiger-pipeline-col-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
  gap: 6px 12px;
}

.tiger-pipeline-col-item {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 8px;
  border-radius: 8px;
  color: #3f3f46;
  font-size: 13px;
  cursor: pointer;
}

.tiger-pipeline-col-item:hover {
  background: #fff7ed;
}

.tiger-pipeline-col-item input[type="checkbox"] {
  min-height: 0;
  accent-color: var(--pw-accent);
}

.tiger-pipeline-col-item.is-locked {
  color: #a1a1aa;
  cursor: default;
}

.tiger-pipeline-col-item em {
  margin-left: auto;
  color: #d4d4d8;
  font-size: 11px;
  font-style: normal;
}

/* 详情抽屉：录入人与备注 */
.tiger-pipeline-detail-created {
  display: block;
  margin-top: 2px;
  color: #a1a1aa;
  font-size: 11px;
}

.tiger-pipeline-detail-note {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  color: #475569;
}

.tiger-pipeline-head .tiger-pipeline-filters .tiger-pipeline-alerts-toggle {
  margin-left: 0;
}

@media (max-width: 1180px) {
  .tiger-pipeline-workbench {
    flex-direction: column;
  }

  .tiger-pipeline-detail {
    flex: 1 1 auto;
    width: 100%;
  }
}

.sel-search {
  position: relative;
  display: inline-block;
  min-width: 0;
}

select.sel-search-native {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.sel-search-input {
  width: 150px;
  max-width: 100%;
  height: 32px;
  padding: 4px 8px;
  font-size: 13px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  color: #111827;
  box-sizing: border-box;
}

.sel-search-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .15);
}

.perf-filter-grid .sel-search {
  flex: 1;
  min-width: 0;
}

.perf-filter-grid .sel-search .sel-search-input {
  width: 100%;
}

.sel-search-panel {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 3000;
  min-width: 100%;
  max-width: 260px;
  max-height: 260px;
  overflow-y: auto;
  margin-top: 2px;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}

.sel-search-panel.open {
  display: block;
}

.sel-search-item {
  padding: 6px 10px;
  font-size: 13px;
  color: #111827;
  cursor: pointer;
  white-space: nowrap;
}

.sel-search-item:hover {
  background: #eff6ff;
}

.sel-search-empty {
  padding: 6px 10px;
  font-size: 13px;
  color: #9ca3af;
}

.tiger-conversation-search {
  margin: 4px 0 8px;
}

.tiger-conversation-search input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 9px;
  background: rgba(15, 23, 42, 0.5);
  color: #f8fafc;
  outline: none;
}

.tiger-conversation-search input::placeholder {
  color: #64748b;
}

.tiger-task-item-wrap {
  position: relative;
}

.tiger-task-item-wrap .tiger-task-item {
  padding-right: 34px;
}

.tiger-task-more {
  position: absolute;
  top: 9px;
  right: 6px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
}

.tiger-task-more:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.tiger-task-context-menu {
  position: absolute;
  top: 38px;
  right: 6px;
  z-index: 80;
  display: none;
  min-width: 92px;
  padding: 4px;
  border: 1px solid #e5e7eb;
  border-radius: 9px;
  background: #fff;
}

.tiger-task-context-menu.is-open {
  display: block;
}

.tiger-task-context-menu button {
  display: block;
  width: 100%;
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #374151;
  cursor: pointer;
  text-align: left;
}

.tiger-task-context-menu button:hover {
  background: #f3f4f6;
}

.tiger-chat-mode-wrap .tiger-run-mode-menu {
  top: auto;
  bottom: calc(100% + 8px);
}

.tiger-chat-mode-wrap .tiger-run-mode-menu::before {
  top: auto;
  bottom: -10px;
}

.tiger-chat-agent-model {
  max-width: 150px;
  min-height: 36px;
  padding: 0 8px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: 12px;
}

#tiger-chat-send.is-stopping {
  background: #374151;
  box-shadow: 0 4px 12px rgba(55, 65, 81, 0.3);
}

.tiger-message-actions {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  opacity: 0;
  transition: opacity 0.18s;
}

.tiger-message:hover .tiger-message-actions,
.tiger-message:focus-within .tiger-message-actions {
  opacity: 1;
}

.tiger-message-actions button {
  padding: 3px 9px;
  border: 1px solid var(--tg-line, #e8eaef);
  border-radius: var(--tg-radius-pill, 999px);
  background: var(--tg-surface, #fff);
  color: var(--tg-muted, #6b7280);
  font-size: 12px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.tiger-message-actions button:hover {
  background: var(--tg-accent-soft, #fff7ed);
  border-color: var(--tg-accent-border, #fed7aa);
  color: var(--tg-accent-deep, #c2410c);
}

.tiger-carrie-workbench {
  --carrie-ink: #18231d;
  --carrie-muted: #6c756f;
  --carrie-line: #e7e8e4;
  --carrie-orange: #f6753c;
  --carrie-orange-dark: #c94f20;
  --carrie-sage: #dfe9e1;
  color: var(--carrie-ink);
}

.tiger-carrie-hero {
  min-height: 220px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  padding: 36px 40px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 82% 16%, rgba(246, 117, 60, 0.28), transparent 27%),
    radial-gradient(circle at 58% 100%, rgba(138, 170, 148, 0.18), transparent 34%),
    linear-gradient(135deg, #14231b 0%, #26362d 56%, #18221d 100%);
  color: #fff;
  box-shadow: 0 24px 60px rgba(22, 35, 27, 0.2);
}

.tiger-carrie-hero::after {
  content: "";
  width: 240px;
  height: 240px;
  position: absolute;
  top: -120px;
  right: -70px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  box-shadow: 0 0 0 36px rgba(255, 255, 255, 0.025), 0 0 0 74px rgba(255, 255, 255, 0.018);
  pointer-events: none;
}

.tiger-carrie-hero-copy {
  max-width: 700px;
  position: relative;
  z-index: 1;
}

.tiger-carrie-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ffc7aa;
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.tiger-carrie-kicker::before {
  content: "";
  width: 26px;
  height: 2px;
  border-radius: 2px;
  background: var(--carrie-orange);
}

.tiger-carrie-hero h3 {
  margin: 18px 0 10px;
  color: #fff;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.18;
  font-weight: 760;
  letter-spacing: -0.035em;
}

.tiger-carrie-hero p {
  max-width: 660px;
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 16px;
  line-height: 1.75;
}

.tiger-carrie-total-progress {
  width: 190px;
  flex: 0 0 190px;
  position: relative;
  z-index: 1;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(12px);
}

.tiger-carrie-total-progress > div:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.tiger-carrie-total-progress strong {
  font-size: 30px;
  line-height: 1;
  font-weight: 760;
}

.tiger-carrie-total-progress span,
.tiger-carrie-total-progress small {
  color: rgba(255, 255, 255, 0.62);
  font-size: 13px;
}

.tiger-carrie-progress-track {
  height: 5px;
  overflow: hidden;
  margin: 16px 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
}

.tiger-carrie-progress-track i {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff9a63, #ffd4bb);
  transition: width 0.28s ease;
}

.tiger-carrie-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 18px 0;
}

.tiger-carrie-search {
  width: min(500px, 100%);
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 1px solid #dedfda;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(24, 35, 29, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.tiger-carrie-search:focus-within {
  border-color: #f4a17c;
  box-shadow: 0 0 0 3px rgba(246, 117, 60, 0.1);
}

.tiger-carrie-search svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: none;
  stroke: #858d87;
  stroke-width: 1.8;
}

.tiger-carrie-search input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--carrie-ink);
  font: inherit;
  font-size: 15px;
}

.tiger-carrie-search button {
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f2f3f0;
  color: #7b837e;
  cursor: pointer;
}

.tiger-carrie-toolbar-note {
  color: #838a85;
  font-size: 14px;
}

.tiger-carrie-layout {
  display: grid;
  grid-template-columns: 260px minmax(520px, 1fr) 290px;
  align-items: start;
  gap: 22px;
}

.tiger-carrie-nav {
  position: sticky;
  top: 18px;
  overflow: hidden;
  padding: 10px;
  border: 1px solid var(--carrie-line);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 32px rgba(24, 35, 29, 0.055);
}

.tiger-carrie-nav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 10px 14px;
}

.tiger-carrie-nav-head span {
  color: #303a34;
  font-size: 14px;
  font-weight: 750;
}

.tiger-carrie-nav-head strong {
  color: #a0a59f;
  font-size: 11px;
  letter-spacing: 0.12em;
}

.tiger-carrie-nav > button {
  width: 100%;
  min-height: 70px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 11px 12px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: #3f4943;
  text-align: left;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.tiger-carrie-nav > button:hover {
  background: #f4f5f2;
  transform: translateX(2px);
}

.tiger-carrie-nav > button.is-active {
  background: #26372e;
  color: #fff;
  box-shadow: 0 8px 18px rgba(38, 55, 46, 0.18);
}

.tiger-carrie-nav-number {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #f0f2ee;
  color: #727b75;
  font-size: 12px;
  font-weight: 800;
}

.tiger-carrie-nav > button.is-active .tiger-carrie-nav-number {
  background: var(--carrie-orange);
  color: #fff;
}

.tiger-carrie-nav > button.is-complete:not(.is-active) .tiger-carrie-nav-number {
  background: #ddf1e2;
  color: #247245;
}

.tiger-carrie-nav > button > span:last-child {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tiger-carrie-nav > button strong {
  overflow: hidden;
  font-size: 15px;
  font-weight: 720;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tiger-carrie-nav > button small {
  color: #99a09b;
  font-size: 12px;
}

.tiger-carrie-nav > button.is-active small {
  color: rgba(255, 255, 255, 0.56);
}

.tiger-carrie-main {
  min-width: 0;
}

.tiger-carrie-stage-headline {
  min-height: 166px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
  padding: 32px 34px;
  border: 1px solid #ecece8;
  border-radius: 20px;
  background: linear-gradient(145deg, #fff 0%, #fbfaf6 100%);
}

.tiger-carrie-stage-headline > div:first-child > span {
  color: var(--carrie-orange-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.13em;
}

.tiger-carrie-stage-headline h3 {
  margin: 10px 0 9px;
  color: var(--carrie-ink);
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.tiger-carrie-stage-headline p {
  max-width: 680px;
  margin: 0;
  color: var(--carrie-muted);
  font-size: 15px;
  line-height: 1.7;
}

.tiger-carrie-stage-progress {
  min-width: 88px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.tiger-carrie-stage-progress strong {
  color: var(--carrie-orange-dark);
  font-size: 30px;
}

.tiger-carrie-stage-progress span {
  color: #9b9f9b;
  font-size: 12px;
}

.tiger-carrie-stage-content + .tiger-carrie-stage-content {
  margin-top: 20px;
}

.tiger-carrie-result-stage {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 5px 0 10px;
  color: #334039;
  font-size: 15px;
  font-weight: 750;
}

.tiger-carrie-result-stage span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #26372e;
  color: #fff;
  font-size: 11px;
}

.tiger-carrie-section-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

.tiger-carrie-section-card {
  overflow: hidden;
  border: 1px solid var(--carrie-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 9px 26px rgba(24, 35, 29, 0.035);
}

.tiger-carrie-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  padding: 24px 26px 20px;
  border-bottom: 1px solid #f0f0ed;
}

.tiger-carrie-section-head h4 {
  margin: 0 0 7px;
  color: #202b25;
  font-size: 19px;
}

.tiger-carrie-section-head p {
  margin: 0;
  color: #8a918d;
  font-size: 14px;
  line-height: 1.55;
}

.tiger-carrie-section-head > span {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 999px;
  background: #f6f1ec;
  color: #9b674f;
  font-size: 11px;
  font-weight: 700;
}

.tiger-carrie-checklist {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px;
}

.tiger-carrie-check {
  width: 100%;
  height: auto;
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 14px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #455049;
  font: inherit;
  font-size: 14px;
  line-height: 1.65;
  text-align: left;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease;
}

.tiger-carrie-check:hover {
  background: #f7f8f5;
}

.tiger-carrie-check > span:last-child {
  min-width: 0;
  flex: 1;
  overflow-wrap: anywhere;
}

.tiger-carrie-checkbox {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border: 1.5px solid #cfd4cf;
  border-radius: 6px;
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  transition: background 0.16s ease, border-color 0.16s ease;
}

.tiger-carrie-check.is-done {
  color: #9aa19c;
}

.tiger-carrie-check.is-done > span:last-child {
  text-decoration: line-through;
  text-decoration-color: #c7cbc8;
}

.tiger-carrie-check.is-done .tiger-carrie-checkbox {
  border-color: #4b8a62;
  background: #4b8a62;
}

.tiger-carrie-aside {
  position: sticky;
  top: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tiger-carrie-aside-card {
  padding: 24px;
  border: 1px solid var(--carrie-line);
  border-radius: 18px;
  background: #fff;
}

.tiger-carrie-aside-card.is-principle {
  border: 0;
  background: var(--carrie-sage);
}

.tiger-carrie-aside-label {
  color: #78817b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.tiger-carrie-aside-card h4 {
  margin: 11px 0 17px;
  color: #26342c;
  font-size: 18px;
  line-height: 1.45;
}

.tiger-carrie-aside-card ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tiger-carrie-aside-card li {
  position: relative;
  padding-left: 17px;
  color: #5f6963;
  font-size: 13px;
  line-height: 1.7;
}

.tiger-carrie-aside-card li::before {
  content: "";
  width: 6px;
  height: 6px;
  position: absolute;
  top: 6px;
  left: 0;
  border-radius: 50%;
  background: var(--carrie-orange);
}

.tiger-carrie-loading,
.tiger-carrie-empty {
  min-height: 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid var(--carrie-line);
  border-radius: 24px;
  background: #fff;
  color: #7c847f;
}

.tiger-carrie-loading span {
  width: 30px;
  height: 30px;
  border: 3px solid #ede9e4;
  border-top-color: var(--carrie-orange);
  border-radius: 50%;
  animation: tiger-carrie-spin 0.8s linear infinite;
}

.tiger-carrie-empty strong,
.tiger-carrie-loading strong {
  color: #344038;
  font-size: 14px;
}

.tiger-carrie-empty span {
  font-size: 11px;
}

@keyframes tiger-carrie-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 1280px) {
  .tiger-carrie-layout {
    grid-template-columns: 240px minmax(0, 1fr);
  }

  .tiger-carrie-aside {
    position: static;
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .tiger-carrie-hero {
    min-height: auto;
    align-items: stretch;
    flex-direction: column;
    padding: 30px;
  }

  .tiger-carrie-total-progress {
    width: auto;
    flex-basis: auto;
  }

  .tiger-carrie-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .tiger-carrie-nav {
    position: static;
    display: flex;
    gap: 8px;
    overflow-x: auto;
  }

  .tiger-carrie-nav-head {
    display: none;
  }

  .tiger-carrie-nav > button {
    min-width: 160px;
  }

  .tiger-carrie-main {
    grid-column: 1;
  }
}

@media (max-width: 680px) {
  .tiger-carrie-hero {
    padding: 26px 22px;
    border-radius: 22px;
  }

  .tiger-carrie-hero h3 {
    font-size: 27px;
  }

  .tiger-carrie-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .tiger-carrie-section-grid,
  .tiger-carrie-aside {
    grid-template-columns: 1fr;
  }

  .tiger-carrie-stage-headline {
    align-items: flex-start;
    flex-direction: column;
    padding: 22px;
  }

  .tiger-carrie-stage-progress {
    align-items: flex-start;
  }
}
.admin-ledger-balance-card { max-width: 640px; }
.admin-ledger-balance-card .modal-header > div { min-width: 0; }
.admin-ledger-balance-subtitle { margin: 4px 0 0; color: #6b7280; font-size: 13px; }
.admin-ledger-balance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-ledger-team-field, .admin-ledger-amount-field { grid-column: span 2; }
.admin-ledger-balance-card .form-group { margin-bottom: 0; }
.admin-ledger-balance-card .form-group label { display: block; margin-bottom: 6px; color: #374151; font-size: 13px; font-weight: 600; }
.admin-ledger-balance-card .form-group select,
.admin-ledger-balance-card .form-group input { box-sizing: border-box; width: 100%; min-height: 40px; }
.admin-ledger-current { margin-top: 14px; padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 8px; background: #f8fafc; color: #475569; font-size: 13px; }
.admin-ledger-warning { display: flex; gap: 10px; margin-top: 14px; padding: 12px; border: 1px solid #fbbf24; border-radius: 9px; background: #fffbeb; color: #92400e; }
.admin-ledger-warning svg { flex: 0 0 auto; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.admin-ledger-warning p { margin: 4px 0 0; font-size: 13px; line-height: 1.55; }
.admin-ledger-impact-preview { margin-top: 10px; color: #475569; font-size: 13px; line-height: 1.6; }
.admin-ledger-analysis-actions { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.admin-ledger-analysis-actions button { background: #fff; color: #2563eb; border-color: #93c5fd; }
.admin-ledger-analysis-actions button:hover { background: #eff6ff; border-color: #60a5fa; }
.admin-ledger-analysis-actions span { color: #64748b; font-size: 12px; }
.admin-ledger-message { min-height: 20px; margin-top: 10px; color: #dc2626; font-size: 13px; }
.admin-ledger-message.is-success { color: #15803d; }
.admin-ledger-result { margin-top: 12px; border: 1px solid #bbf7d0; border-radius: 9px; overflow: hidden; background: #f0fdf4; }
.admin-ledger-result.is-preview { border-color: #bfdbfe; background: #eff6ff; }
.admin-ledger-result-summary { padding: 10px 12px; color: #166534; font-size: 13px; font-weight: 600; }
.admin-ledger-result.is-preview .admin-ledger-result-summary { color: #1d4ed8; }
.admin-ledger-result-list { max-height: 190px; overflow: auto; border-top: 1px solid #bbf7d0; background: #fff; }
.admin-ledger-result.is-preview .admin-ledger-result-list { border-top-color: #bfdbfe; }
.admin-ledger-result-row { display: grid; grid-template-columns: 82px 1fr 22px 1fr 92px; gap: 6px; align-items: center; padding: 8px 12px; border-bottom: 1px solid #f0fdf4; color: #475569; font-size: 12px; }
.admin-ledger-result-row:last-child { border-bottom: 0; }
.admin-ledger-result-row strong { color: #111827; text-align: right; }
.admin-ledger-result-difference { text-align: right; font-weight: 600; }
.admin-ledger-result-difference.is-up { color: #dc2626; }
.admin-ledger-result-difference.is-down { color: #15803d; }
.admin-ledger-result-difference.is-flat { color: #64748b; }
.admin-ledger-footer { justify-content: flex-end; }

@media (max-width: 640px) {
  .admin-ledger-balance-grid { grid-template-columns: 1fr; }
  .admin-ledger-team-field, .admin-ledger-amount-field { grid-column: auto; }
  .admin-ledger-analysis-actions { align-items: flex-start; flex-direction: column; }
  .admin-ledger-result-row { grid-template-columns: 66px 1fr 16px 1fr; padding: 8px; }
  .admin-ledger-result-difference { grid-column: 2 / 5; }
}

/* 历史推荐台账：与新版人选表保持紧凑单行，不让长工作内容撑高整行 */
.project-people-section .case-rec-ledger-scroll {
  max-height: min(520px, calc(100vh - 330px));
  overflow: auto;
}

.project-people-section .case-rec-ledger thead th {
  height: 32px;
  padding: 0 7px;
  vertical-align: middle;
  white-space: nowrap;
}

.project-people-section .case-rec-ledger tbody tr {
  height: 46px;
}

.project-people-section .case-rec-ledger tbody td {
  height: 46px;
  max-height: 46px;
  padding: 0 7px;
  overflow: hidden;
  vertical-align: middle;
  line-height: 1.25;
  white-space: nowrap;
  word-break: normal;
}

.project-people-section .case-rec-ledger .crl-cell-text {
  display: block;
  width: 100%;
  overflow: hidden;
  color: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-people-section .case-rec-ledger .crl-name {
  white-space: nowrap;
}

.project-people-section .case-rec-ledger .crl-no-resume {
  display: inline-flex;
  margin: 0 0 0 4px;
  vertical-align: middle;
  font-size: 9px;
}

/* 人选分页条数：给原生下拉箭头留足空间，确保 10 / 20 / 50 完整显示 */
.project-people-section .case-candidate-result-count {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0;
  white-space: nowrap;
}

.project-people-section .case-candidate-result-count label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 30px;
  color: #64748b;
  line-height: 30px;
}

.project-people-section .case-candidate-page-size {
  width: 60px;
  min-width: 60px;
  height: 30px;
  flex: 0 0 60px;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #cfd8e5;
  border-radius: 7px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 7px center;
  background-size: 12px 12px;
  color: #334155;
  font-size: 12px;
  font-family: inherit;
  font-variant-numeric: tabular-nums;
  line-height: 28px;
  text-align: center;
  text-align-last: center;
  vertical-align: middle;
}

.project-people-section .case-candidate-page-size option {
  text-align: center;
}

.project-people-section .case-candidate-table-footer {
  min-height: 48px;
  padding: 8px 12px;
}
.att-item small {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
}

.att-item[class*="jd-file-"] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: min(100%, 620px);
  padding: 7px 9px 7px 12px;
}

.jd-file-name {
  min-width: 0;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.jd-file-progress {
  position: relative;
  width: 150px;
  height: 22px;
  overflow: hidden;
  flex: 0 0 auto;
  border-radius: 999px;
  background: #dbeafe;
  box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.16);
}

.jd-file-progress i {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #3b82f6 0%, #2563eb 70%, #7c3aed 100%);
  box-shadow: 0 0 8px rgba(37, 99, 235, 0.28);
  transition: width 0.42s ease;
}

.jd-file-progress:not(.is-complete) i::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.48), transparent);
  animation: jd-file-progress-shine 1.15s ease-in-out infinite;
}

.jd-file-progress.is-complete i {
  background: linear-gradient(90deg, #10b981, #059669);
  box-shadow: 0 0 8px rgba(5, 150, 105, 0.25);
}

.jd-file-progress em {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 1px rgba(30, 64, 175, 0.28);
}

@keyframes jd-file-progress-shine {
  to { transform: translateX(100%); }
}

.att-item.jd-file-loading small {
  color: #2563eb;
}

.att-item.jd-file-success small {
  color: #059669;
}

.att-item.jd-file-warning small {
  color: #b45309;
}

.att-item.jd-file-error small {
  color: #dc2626;
}
.modal-city-combobox {
  position: relative;
}

.modal-city-input-row {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
}

.modal-city-input-row > input {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding-right: 40px;
  box-sizing: border-box;
}

.modal-city-selected {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 7px;
}

.modal-city-selected[hidden] {
  display: none;
}

.modal-city-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 27px;
  padding: 3px 7px 3px 10px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 12px;
  line-height: 1;
}

.modal-city-chip button {
  width: 19px;
  height: 19px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #64748b;
  font-size: 16px;
  line-height: 18px;
  cursor: pointer;
}

.modal-city-chip button:hover {
  background: #dbeafe;
  color: #1d4ed8;
}

.modal-city-toggle {
  position: absolute;
  top: 50%;
  right: 4px;
  bottom: auto;
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  box-shadow: none;
  transform: translateY(-50%);
  transition: color 0.18s ease, background 0.18s ease;
}

.modal-city-toggle:hover {
  background: #eff6ff;
  color: #2563eb;
}

.modal-city-toggle:focus-visible {
  outline: 2px solid rgba(59, 130, 246, 0.35);
  outline-offset: 1px;
}

.modal-city-toggle svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.18s ease;
}

.modal-city-input-row > input[aria-expanded="true"] + .modal-city-toggle svg {
  transform: rotate(180deg);
}

.modal-city-suggestions {
  position: absolute;
  z-index: 35;
  top: calc(100% + 5px);
  left: 0;
  right: 0;
  max-height: 220px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #dbe3ef;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
}

.modal-city-option {
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #334155;
  text-align: left;
  cursor: pointer;
}

.modal-city-option:hover,
.modal-city-option:focus {
  outline: none;
  background: #eff6ff;
  color: #1d4ed8;
}

.modal-city-empty {
  padding: 10px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.5;
}

/* 工资/社保上传记录：原提交表内容预览 */
.ss-submission-preview-button {
  margin-left: 6px;
  padding: 3px 9px;
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}

.ss-submission-preview-modal {
  z-index: 10060;
  padding: 22px;
  box-sizing: border-box;
}

.ss-submission-preview-card {
  width: min(1380px, calc(100vw - 44px));
  max-width: none;
  height: min(860px, calc(100vh - 44px));
  max-height: none;
}

.ss-submission-preview-subtitle {
  max-width: min(1000px, calc(100vw - 190px));
  overflow: hidden;
  margin: 5px 0 0;
  color: #64748b;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ss-submission-preview-body {
  display: flex;
  min-height: 0;
  padding: 16px 18px;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

.ss-submission-preview-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.ss-submission-preview-meta > span {
  min-width: 0;
  padding: 9px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #f8fafc;
}

.ss-submission-preview-meta small,
.ss-submission-preview-meta strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ss-submission-preview-meta small { color: #64748b; font-size: 11px; }
.ss-submission-preview-meta strong { margin-top: 3px; color: #0f172a; font-size: 13px; }

.ss-submission-preview-remark,
.ss-submission-preview-notice,
.ss-submission-preview-error,
.ss-submission-preview-loading,
.ss-submission-preview-empty {
  padding: 11px 13px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.55;
}

.ss-submission-preview-remark { border: 1px solid #dbeafe; background: #eff6ff; color: #1e40af; }
.ss-submission-preview-notice { border: 1px solid #fde68a; background: #fffbeb; color: #92400e; }
.ss-submission-preview-error { border: 1px solid #fecaca; background: #fef2f2; color: #b91c1c; }
.ss-submission-preview-loading,
.ss-submission-preview-empty { color: #64748b; text-align: center; }

.ss-submission-preview-table-wrap {
  flex: 1;
  min-height: 0;
  overflow: auto;
  border: 1px solid #dbe3ef;
  border-radius: 9px;
}

.ss-submission-preview-table {
  width: max-content;
  min-width: 100%;
  margin: 0;
  border: 0;
}

.ss-submission-preview-table th,
.ss-submission-preview-table td {
  min-width: 112px;
  max-width: 280px;
  padding: 8px 10px;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}

.ss-submission-preview-table td > span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ss-submission-preview-table thead th {
  position: sticky;
  z-index: 3;
  top: 0;
  background: #f1f5f9;
  color: #334155;
}

.ss-submission-preview-table .ss-submission-preview-row-number {
  position: sticky;
  z-index: 2;
  left: 0;
  min-width: 58px;
  max-width: 58px;
  background: #f8fafc;
  color: #64748b;
  text-align: center;
}

.ss-submission-preview-table thead .ss-submission-preview-row-number { z-index: 4; background: #e2e8f0; }
.ss-submission-preview-footer { justify-content: flex-end; }
.ss-submission-preview-count { margin-right: auto; color: #64748b; font-size: 12px; }

@media (max-width: 760px) {
  .ss-submission-preview-modal { padding: 8px; }
  .ss-submission-preview-card { width: calc(100vw - 16px); height: calc(100vh - 16px); }
  .ss-submission-preview-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ss-submission-preview-subtitle { max-width: calc(100vw - 100px); }
}

@media (max-width: 760px) {
  .resume-filters {
    flex: 0 0 auto;
  }

  .talent-search-controls {
    width: 100%;
    flex: 0 0 auto;
    flex-wrap: wrap;
  }

  .resume-filters .talent-search-controls > #talent-search {
    width: 100%;
    min-width: 0;
    max-width: none;
    flex-basis: 100%;
  }

  .talent-quick-filters {
    width: 100%;
    height: auto;
    flex-wrap: wrap;
  }

  .talent-member-combobox,
  .talent-status-filter {
    flex: 1 1 140px;
  }

  .resume-filters .talent-status-filter > select {
    width: 100%;
  }

  .talent-quick-filter-divider {
    display: none;
  }

  .resume-ai-autofill-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .resume-ai-autofill-button {
    justify-content: center;
  }
}

/* ==================== 美猴王统一动态形象 ==================== */
@keyframes monkeyKingHeroAlive {
  0%, 100% { transform: translate3d(0, 3px, 0) rotate(-0.7deg) scale(1); }
  36% { transform: translate3d(0, -8px, 0) rotate(0.8deg) scale(1.025); }
  64% { transform: translate3d(0, -3px, 0) rotate(-0.2deg) scale(1.012); }
}

@keyframes monkeyKingAvatarAlive {
  0%, 100% { transform: translate3d(0, 1px, 0) rotate(-1deg) scale(1); }
  50% { transform: translate3d(0, -3px, 0) rotate(1.2deg) scale(1.055); }
}

@keyframes monkeyKingHeroStageAlive {
  0%, 100% { transform: translate3d(0, 5px, 0) rotate(-1.2deg) scale(1, .99); }
  14% { transform: translate3d(-2px, -2px, 0) rotate(-.25deg) scale(1.015, 1.025); }
  30% { transform: translate3d(2px, -9px, 0) rotate(1.35deg) scale(1.035, 1.045); }
  44% { transform: translate3d(1px, -4px, 0) rotate(.25deg) scale(1.015, 1.025); }
  60% { transform: translate3d(-2px, 1px, 0) rotate(-1deg) scale(.995, .985); }
  76% { transform: translate3d(-1px, -8px, 0) rotate(.85deg) scale(1.028, 1.04); }
  90% { transform: translate3d(1px, -1px, 0) rotate(.15deg) scale(1.01, 1.015); }
}

@keyframes monkeyKingModelGesture {
  0%, 100% { transform: translate3d(0, 1px, 0) rotate(0deg) scale(1); }
  16% { transform: translate3d(-5px, -7px, 0) rotate(-3deg) scale(1.035); }
  32% { transform: translate3d(4px, -15px, 0) rotate(3.4deg) scale(1.075, 1.09); }
  47% { transform: translate3d(-3px, -7px, 0) rotate(-2deg) scale(1.035); }
  62% { transform: translate3d(3px, -12px, 0) rotate(2deg) scale(1.06); }
  80% { transform: translate3d(-1px, -4px, 0) rotate(-.7deg) scale(1.02); }
}

@keyframes monkeyKingGroundShadow {
  0%, 100% { opacity: .26; transform: scaleX(.88); }
  30%, 76% { opacity: .14; transform: scaleX(.68); }
  60% { opacity: .32; transform: scaleX(.96); }
}

@keyframes monkeyKingSidebarAlive {
  0%, 100% { transform: translate3d(0, 1px, 0) rotate(-2deg) scale(1); }
  45% { transform: translate3d(0, -4px, 0) rotate(2.2deg) scale(1.075); }
  62% { transform: translate3d(0, -2px, 0) rotate(.4deg) scale(1.045); }
}

@keyframes monkeyKingHaloPulse {
  0%, 100% { opacity: .42; transform: scale(.9) rotate(0deg); }
  50% { opacity: .82; transform: scale(1.08) rotate(8deg); }
}

@keyframes monkeyKingWake {
  0% { transform: translate3d(0, 9px, 0) scale(.9); filter: saturate(.85) brightness(.92); }
  55% { transform: translate3d(0, -5px, 0) scale(1.045); filter: saturate(1.12) brightness(1.05); }
  100% { transform: translate3d(0, 0, 0) scale(1); filter: saturate(1.04) brightness(1); }
}

.tiger-hero-avatar-wrap {
  overflow: hidden;
  border: 1px solid rgba(212, 170, 88, .62);
  background:
    radial-gradient(circle at 50% 36%, rgba(255, 229, 155, .32), transparent 48%),
    linear-gradient(145deg, rgba(83, 17, 15, .12), rgba(212, 170, 88, .16));
  box-shadow: 0 18px 40px rgba(87, 25, 17, .16), inset 0 0 28px rgba(255, 221, 133, .12);
  transform-origin: 50% 86%;
  animation: monkeyKingHeroStageAlive 4.6s cubic-bezier(.45, 0, .55, 1) infinite;
  will-change: transform;
  cursor: pointer;
}

.tiger-hero-avatar-wrap.is-gesturing {
  animation: monkeyKingModelGesture 1.45s cubic-bezier(.2, .72, .18, 1) 1 both;
}

.tiger-hero-avatar-wrap::before {
  content: "";
  position: absolute;
  inset: 10px;
  z-index: 0;
  border: 1px solid rgba(255, 219, 128, .5);
  border-radius: 20px;
  box-shadow: 0 0 24px rgba(212, 170, 88, .28);
  animation: monkeyKingHaloPulse 3.8s ease-in-out infinite;
  pointer-events: none;
}

.tiger-hero-avatar-wrap::after {
  content: "";
  position: absolute;
  right: 22%;
  bottom: 2px;
  left: 22%;
  z-index: 0;
  height: 13px;
  border-radius: 50%;
  background: rgba(66, 207, 239, .5);
  filter: blur(6px);
  animation: monkeyKingGroundShadow 4.6s ease-in-out infinite;
  pointer-events: none;
}

.tiger-hero-avatar {
  position: relative;
  z-index: 1;
  object-fit: cover;
  object-position: 50% 23%;
  transform-origin: 50% 88%;
  animation: monkeyKingHeroAlive 3.9s cubic-bezier(.45, 0, .55, 1) infinite;
  filter: saturate(1.05) contrast(1.02) drop-shadow(0 10px 20px rgba(70, 20, 14, .18));
  will-change: transform;
}

/* 画框与背景保持固定，只切换面部帧，让角色本身眨眼。 */
.tiger-hero-avatar.tiger-hero-avatar-base {
  animation: none;
  transform: none;
  will-change: auto;
}

.tiger-hero-avatar.tiger-hero-avatar-blink {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  clip-path: ellipse(39% 37% at 50% 31%);
  animation: none;
  transform: none;
  will-change: opacity;
}

.tiger-hero-avatar.is-awake {
  animation: monkeyKingWake .72s cubic-bezier(.2, .75, .25, 1) 1 both;
}

.tiger-avatar-small.is-awake {
  animation-name: monkeyKingWake, monkeyKingAvatarAlive;
  animation-duration: .72s, 3.2s;
  animation-delay: 0s, .72s;
  animation-timing-function: cubic-bezier(.2, .75, .25, 1), ease-in-out;
  animation-iteration-count: 1, infinite;
}

.welcome-tiger-icon,
.tiger-task-brand img,
.tiger-avatar-small,
.tiger-avatar-header,
.tiger-message-avatar,
.tiger-super-badge img,
.reward-tiger-avatar img {
  object-fit: cover;
  object-position: 50% 22%;
  transform-origin: 50% 82%;
  animation: monkeyKingAvatarAlive 3.2s ease-in-out infinite;
  will-change: transform;
}

.welcome-tiger-icon { width: 32px; border-radius: 10px; animation-delay: -.5s; }
.tiger-task-brand img {
  animation: monkeyKingSidebarAlive 2.8s cubic-bezier(.45, 0, .55, 1) -1.2s infinite;
  filter: saturate(1.08) drop-shadow(0 5px 7px rgba(247, 120, 35, .28));
}
.tiger-avatar-header { animation-delay: -.8s; }
.tiger-message-avatar { animation-duration: 3.8s; animation-delay: -1.7s; }
.tiger-super-badge img { object-position: 50% 19%; animation-duration: 2.8s; }
.reward-tiger-avatar img { object-position: 50% 24%; animation: monkeyKingHeroAlive 4.2s ease-in-out infinite; }

.tiger-chat-toggle::before {
  content: "";
  position: absolute;
  inset: -5px;
  z-index: -1;
  border: 1px solid rgba(255, 218, 119, .66);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(212, 170, 88, .36);
  animation: monkeyKingHaloPulse 3s ease-in-out infinite;
  pointer-events: none;
}

.tiger-channel-panel .tiger-task-brand strong,
.tiger-channel-panel .tiger-hero-copy h2 {
  background: linear-gradient(100deg, #7f1d1d 0%, #b45309 48%, #8b5a10 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.tiger-channel-panel .tiger-hero-copy h2 {
  background: linear-gradient(100deg, #fff4cf 0%, #f7c55d 48%, #f09a35 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 4px 16px rgba(0, 0, 0, .24));
}

@media (prefers-reduced-motion: reduce) {
  .tiger-hero-avatar,
  .tiger-hero-avatar-blink,
  .tiger-hero-avatar-wrap,
  .tiger-hero-avatar-wrap::before,
  .tiger-hero-avatar-wrap::after,
  .welcome-tiger-icon,
  .tiger-task-brand img,
  .tiger-avatar-small,
  .tiger-avatar-header,
  .tiger-message-avatar,
  .tiger-super-badge img,
  .reward-tiger-avatar img,
  .tiger-chat-toggle::before {
    animation: none !important;
  }
}

/* Background-free Monkey King asset: keep the mascot, remove the former picture frame. */
.tiger-hero-avatar-wrap {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.tiger-hero-avatar-wrap::before {
  display: block;
  inset: 13% 16% 7%;
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 44%, rgba(106, 226, 250, .16), rgba(42, 168, 208, .06) 52%, transparent 72%);
  box-shadow: none;
  filter: blur(8px);
}

.tiger-hero-avatar {
  filter: saturate(1.05) contrast(1.02) drop-shadow(0 12px 16px rgba(77, 36, 10, .2));
}

/* The hero mascot is a real transparent looping video; motion is authored in the media. */
.tiger-hero-avatar-wrap,
.tiger-hero-avatar-wrap.is-gesturing {
  animation: none;
  cursor: default;
  will-change: auto;
}

.tiger-hero-avatar-wrap::before,
.tiger-hero-avatar-wrap::after {
  display: none;
}

.tiger-hero-video {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  object-fit: contain;
  object-position: center;
  background: transparent;
  filter: saturate(1.05) contrast(1.02) drop-shadow(0 12px 16px rgba(77, 36, 10, .2));
  pointer-events: none;
}

/* ==================== 美猴王工作台 · 深蓝科技视觉升级 ==================== */
@keyframes tigerWorkbenchFloat {
  0%, 100% { transform: translate3d(0, 2px, 0) scale(1); }
  50% { transform: translate3d(0, -6px, 0) scale(1.018); }
}

@keyframes tigerWorkbenchHalo {
  0%, 100% { opacity: .48; transform: scale(.92); }
  50% { opacity: .82; transform: scale(1.05); }
}

@keyframes tigerWorkbenchScan {
  0% { transform: translateX(-120%); opacity: 0; }
  18%, 72% { opacity: .6; }
  100% { transform: translateX(220%); opacity: 0; }
}

.tiger-channel-panel {
  --tiger-tech-cyan: #62e4ff;
  --tiger-tech-blue: #2b8cff;
  --tiger-tech-gold: #f5bf59;
  --tiger-tech-ink: #031525;
  --tiger-tech-panel: rgba(5, 31, 49, .82);
  --tiger-tech-line: rgba(104, 218, 244, .22);
  --tiger-tech-text: #edfaff;
  --tiger-tech-muted: rgba(194, 222, 233, .72);
}

.tiger-channel-panel .tiger-workbench-shell {
  grid-template-columns: 270px minmax(0, 1fr);
  background: #031522;
  border-top: 1px solid rgba(100, 220, 247, .24);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}

.tiger-channel-panel .tiger-task-sidebar {
  position: relative;
  z-index: 2;
  gap: 7px;
  padding: 16px 14px 20px;
  background:
    radial-gradient(circle at 4% 9%, rgba(37, 171, 224, .13), transparent 28%),
    linear-gradient(180deg, rgba(8, 28, 45, .98), rgba(7, 20, 35, .98));
  border-right: 1px solid rgba(112, 222, 247, .18);
  box-shadow: 12px 0 34px rgba(0, 8, 17, .2), inset -1px 0 0 rgba(255, 255, 255, .018);
}

.tiger-channel-panel .tiger-task-sidebar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(93, 211, 239, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(93, 211, 239, .025) 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: linear-gradient(to bottom, #000, transparent 84%);
  pointer-events: none;
}

.tiger-channel-panel .tiger-task-brand {
  min-height: 58px;
  gap: 11px;
  margin: 0 0 7px;
  padding: 8px 10px;
  border: 1px solid rgba(109, 220, 244, .15);
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(17, 66, 91, .58), rgba(7, 33, 52, .56));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 10px 26px rgba(0, 8, 17, .18);
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.tiger-channel-panel .tiger-task-brand:hover {
  transform: translateY(-1px);
  border-color: rgba(112, 227, 250, .34);
  background: linear-gradient(135deg, rgba(18, 78, 105, .66), rgba(8, 39, 60, .62));
}

.tiger-channel-panel .tiger-task-brand img {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(247, 194, 91, .36);
  border-radius: 12px;
  background: radial-gradient(circle, rgba(255, 214, 118, .16), transparent 68%);
  box-shadow: 0 0 18px rgba(246, 172, 54, .16);
}

.tiger-channel-panel .tiger-task-brand strong {
  background: linear-gradient(105deg, #fff2c8, #f4bd59 58%, #e99032);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 15px;
  letter-spacing: .02em;
}

.tiger-channel-panel .tiger-task-brand span {
  color: rgba(193, 221, 232, .62);
}

.tiger-channel-panel .tiger-new-chat-btn,
.tiger-channel-panel .tiger-new-task-btn,
.tiger-channel-panel .tiger-more-btn {
  min-height: 42px;
  padding: 0 11px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: rgba(236, 249, 253, .86);
  font-weight: 650;
  background: transparent;
}

.tiger-channel-panel .tiger-new-chat-btn svg,
.tiger-channel-panel .tiger-new-task-btn svg,
.tiger-channel-panel .tiger-more-btn svg {
  color: rgba(115, 223, 248, .78);
}

.tiger-channel-panel .tiger-new-chat-btn:hover,
.tiger-channel-panel .tiger-new-task-btn:hover,
.tiger-channel-panel .tiger-more-btn:hover,
.tiger-channel-panel .tiger-new-chat-btn:focus-visible,
.tiger-channel-panel .tiger-new-task-btn:focus-visible,
.tiger-channel-panel .tiger-more-btn:focus-visible {
  border-color: rgba(105, 220, 246, .18);
  background: linear-gradient(90deg, rgba(30, 132, 173, .18), rgba(22, 78, 104, .1));
  color: #f5fcff;
  box-shadow: inset 3px 0 0 rgba(91, 225, 255, .72);
}

.tiger-channel-panel .tiger-task-section-head {
  margin-top: 19px;
  color: rgba(189, 219, 231, .7);
  letter-spacing: .05em;
}

.tiger-channel-panel .tiger-task-mini-actions button {
  border: 1px solid rgba(104, 215, 241, .1);
  background: rgba(8, 41, 60, .38);
  color: rgba(163, 214, 231, .7);
}

.tiger-channel-panel .tiger-task-mini-actions button:hover,
.tiger-channel-panel .tiger-task-mini-actions button:focus-visible {
  border-color: rgba(111, 228, 252, .3);
  background: rgba(24, 110, 145, .24);
  color: #73e6ff;
}

.tiger-channel-panel .tiger-task-folder {
  min-height: 38px;
  padding: 0 9px;
  border-radius: 10px;
  color: rgba(236, 250, 254, .86);
  background: rgba(7, 36, 54, .36);
}

.tiger-channel-panel .tiger-task-folder svg {
  color: #69dcf7;
}

.tiger-channel-panel .tiger-conversation-search {
  margin: 3px 0 9px;
}

.tiger-channel-panel .tiger-conversation-search input {
  min-height: 38px;
  padding: 8px 11px 8px 13px;
  border-color: rgba(109, 216, 241, .18);
  border-radius: 11px;
  background: rgba(1, 15, 28, .52);
  color: #eefaff;
  box-shadow: inset 0 1px 10px rgba(0, 0, 0, .16);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.tiger-channel-panel .tiger-conversation-search input:focus {
  border-color: rgba(91, 222, 250, .56);
  background: rgba(3, 26, 43, .76);
  box-shadow: 0 0 0 3px rgba(63, 201, 237, .08), inset 0 1px 10px rgba(0, 0, 0, .12);
}

.tiger-channel-panel .tiger-task-item {
  min-height: 58px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: rgba(216, 236, 244, .78);
}

.tiger-channel-panel .tiger-task-item:hover,
.tiger-channel-panel .tiger-task-item:focus-visible,
.tiger-channel-panel .tiger-task-item.active {
  border-color: rgba(101, 218, 244, .2);
  background: linear-gradient(90deg, rgba(27, 119, 157, .21), rgba(15, 64, 88, .12));
  box-shadow: inset 3px 0 0 var(--tiger-tech-cyan), 0 8px 22px rgba(0, 8, 18, .14);
}

.tiger-channel-panel .tiger-task-copy strong {
  color: #eaf8fc;
  font-weight: 650;
}

.tiger-channel-panel .tiger-task-copy small {
  color: rgba(168, 205, 219, .62);
}

.tiger-channel-panel .tiger-workspace-main {
  position: relative;
  isolation: isolate;
  padding: 0 clamp(20px, 3vw, 42px) 60px;
  background-color: #031727;
  background-image:
    radial-gradient(circle at 38% 6%, rgba(34, 152, 199, .13), transparent 31%),
    radial-gradient(circle at 82% 48%, rgba(37, 98, 179, .11), transparent 32%),
    linear-gradient(90deg, rgba(1, 16, 29, .9), rgba(3, 27, 44, .74) 52%, rgba(2, 19, 34, .84)),
    linear-gradient(90deg, rgba(103, 219, 247, .03) 1px, transparent 1px),
    linear-gradient(rgba(103, 219, 247, .03) 1px, transparent 1px),
    url('/static/tech_dashboard_background_v1.png?v=20260922');
  background-repeat: no-repeat, no-repeat, no-repeat, repeat, repeat, no-repeat;
  background-position: center, center, center, center, center, center;
  background-size: auto, auto, auto, 34px 34px, 34px 34px, cover;
}

.tiger-channel-panel .tiger-workspace-main::before,
.tiger-channel-panel .tiger-workspace-main::after {
  content: "";
  position: fixed;
  z-index: -1;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  filter: blur(58px);
  opacity: .13;
  pointer-events: none;
}

.tiger-channel-panel .tiger-workspace-main::before {
  top: 14%;
  left: 32%;
  background: #26c9ed;
}

.tiger-channel-panel .tiger-workspace-main::after {
  right: 6%;
  bottom: 4%;
  background: #356bff;
}

.tiger-channel-panel .tiger-task-home {
  position: relative;
  z-index: 1;
  max-width: 1120px;
  min-height: calc(100vh - 92px);
  padding: clamp(24px, 4vh, 44px) 0 52px;
}

.tiger-channel-panel .tiger-command-center {
  gap: 0;
}

.tiger-channel-panel .tiger-hero-greeting {
  position: relative;
  width: min(980px, 100%);
  min-height: 190px;
  box-sizing: border-box;
  justify-content: center;
  gap: clamp(32px, 5vw, 70px);
  margin: 0 auto 18px;
  padding: 12px clamp(28px, 5vw, 70px);
  overflow: hidden;
  border: 1px solid rgba(104, 219, 246, .2);
  border-radius: 26px;
  background:
    radial-gradient(circle at 23% 42%, rgba(43, 183, 225, .13), transparent 30%),
    linear-gradient(135deg, rgba(8, 47, 70, .72), rgba(4, 28, 47, .56));
  box-shadow: 0 22px 54px rgba(0, 8, 19, .28), inset 0 1px 0 rgba(255, 255, 255, .055);
  backdrop-filter: blur(14px) saturate(1.12);
}

.tiger-channel-panel .tiger-hero-greeting::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(99, 218, 247, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(99, 218, 247, .035) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(90deg, #000, rgba(0,0,0,.24) 58%, transparent);
  pointer-events: none;
}

.tiger-channel-panel .tiger-hero-greeting::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 42%;
  background: linear-gradient(100deg, transparent, rgba(109, 232, 255, .08), transparent);
  animation: tigerWorkbenchScan 8s ease-in-out infinite;
  pointer-events: none;
}

.tiger-channel-panel .tiger-hero-avatar-wrap {
  width: 184px;
  height: 184px;
  flex: 0 0 184px;
  overflow: visible;
  isolation: isolate;
}

.tiger-channel-panel .tiger-hero-avatar-wrap::before {
  display: block;
  inset: 15% 8% 7%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(95, 224, 250, .2), rgba(31, 145, 191, .08) 48%, transparent 72%);
  filter: blur(9px);
  animation: tigerWorkbenchHalo 4.6s ease-in-out infinite;
}

.tiger-channel-panel .tiger-hero-video {
  animation: tigerWorkbenchFloat 4.8s ease-in-out infinite;
  transform-origin: 50% 86%;
  filter: saturate(1.08) contrast(1.04) drop-shadow(0 16px 18px rgba(0, 0, 0, .28));
  will-change: transform;
}

.tiger-channel-panel .tiger-hero-copy {
  position: relative;
  z-index: 2;
  max-width: 480px;
  padding: 0;
}

.tiger-channel-panel .tiger-command-center h2 {
  font-size: clamp(34px, 3.25vw, 46px);
  font-weight: 820;
  letter-spacing: -.035em;
  filter: drop-shadow(0 7px 20px rgba(0, 0, 0, .28));
}

.tiger-channel-panel .tiger-hero-copy p {
  max-width: 450px;
  margin: 12px 0 0;
  color: rgba(207, 232, 240, .76);
  font-size: 14px;
  letter-spacing: .015em;
}

.tiger-channel-panel .tiger-hero-copy p::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 9px 2px 0;
  border-radius: 50%;
  background: #5de1ff;
  box-shadow: 0 0 12px rgba(93, 225, 255, .9);
}

.tiger-channel-panel .tiger-command-box {
  width: min(980px, 100%);
  min-height: 142px;
  gap: 12px;
  padding: 18px 18px 14px;
  overflow: visible;
  border: 1px solid rgba(112, 222, 248, .3);
  border-radius: 22px;
  background:
    radial-gradient(circle at 84% 20%, rgba(43, 140, 255, .1), transparent 32%),
    linear-gradient(145deg, rgba(7, 43, 64, .92), rgba(4, 27, 45, .91));
  box-shadow:
    0 20px 50px rgba(0, 8, 20, .36),
    0 0 0 1px rgba(7, 25, 39, .72),
    inset 0 1px 0 rgba(255, 255, 255, .06);
  backdrop-filter: blur(18px) saturate(1.18);
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.tiger-channel-panel .tiger-command-box::before,
.tiger-channel-panel .tiger-command-box::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 40px;
  height: 14px;
  border-top: 1px solid rgba(113, 228, 253, .54);
  pointer-events: none;
}

.tiger-channel-panel .tiger-command-box::before {
  top: -1px;
  left: 26px;
  border-left: 1px solid rgba(113, 228, 253, .54);
  border-radius: 9px 0 0;
}

.tiger-channel-panel .tiger-command-box::after {
  right: 26px;
  bottom: -1px;
  transform: rotate(180deg);
  border-left: 1px solid rgba(113, 228, 253, .54);
  border-radius: 9px 0 0;
}

.tiger-channel-panel .tiger-command-box:focus-within {
  transform: translateY(-1px);
  border-color: rgba(96, 226, 255, .64);
  box-shadow:
    0 0 0 3px rgba(77, 207, 239, .1),
    0 24px 58px rgba(0, 8, 20, .4),
    inset 0 1px 0 rgba(255, 255, 255, .08);
}

.tiger-channel-panel .tiger-command-box textarea {
  position: relative;
  z-index: 2;
  min-height: 58px;
  padding: 1px 3px;
  border: 0;
  background: transparent;
  background-color: transparent;
  color: #eaf9fd;
  -webkit-text-fill-color: #eaf9fd;
  caret-color: var(--tiger-tech-cyan);
  font-size: 15px;
  line-height: 1.62;
  box-shadow: none;
}

#channel-tiger .tiger-command-box textarea:hover,
#channel-tiger .tiger-command-box textarea:focus,
#channel-tiger .tiger-command-box textarea:active {
  border: 0;
  outline: none;
  background: transparent;
  background-color: transparent;
  color: #eaf9fd;
  -webkit-text-fill-color: #eaf9fd;
  box-shadow: none;
}

#channel-tiger .tiger-command-box textarea:-webkit-autofill,
#channel-tiger .tiger-command-box textarea:-webkit-autofill:hover,
#channel-tiger .tiger-command-box textarea:-webkit-autofill:focus {
  -webkit-text-fill-color: #eaf9fd;
  caret-color: var(--tiger-tech-cyan);
  box-shadow: 0 0 0 1000px rgba(5, 35, 54, .98) inset !important;
  transition: background-color 9999s ease-out 0s;
}

.tiger-channel-panel .tiger-command-box textarea::placeholder {
  color: rgba(178, 208, 220, .5);
}

.tiger-channel-panel .tiger-command-tools {
  position: relative;
  z-index: 3;
  justify-content: flex-start;
  gap: 9px;
  padding-top: 10px;
  border-top: 1px solid rgba(105, 215, 241, .1);
}

.tiger-channel-panel .tiger-tool-icon,
.tiger-channel-panel .tiger-send-task {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  border: 1px solid rgba(112, 218, 243, .18);
}

.tiger-channel-panel .tiger-tool-icon {
  background: rgba(12, 61, 83, .72);
  color: rgba(208, 237, 246, .8);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
}

.tiger-channel-panel .tiger-tool-icon:hover,
.tiger-channel-panel .tiger-tool-icon:focus-visible {
  border-color: rgba(99, 228, 255, .5);
  background: rgba(25, 107, 139, .72);
  color: #7be8ff;
  box-shadow: 0 0 20px rgba(51, 201, 237, .16), inset 0 1px 0 rgba(255, 255, 255, .08);
}

.tiger-channel-panel .tiger-run-mode {
  min-height: 38px;
  padding: 0 15px;
  border-color: rgba(112, 217, 242, .19);
  background: rgba(9, 45, 66, .7);
  color: rgba(223, 242, 248, .82);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .045);
}

.tiger-channel-panel .tiger-run-mode:hover {
  border-color: rgba(244, 190, 84, .5);
  color: #ffd982;
  background: rgba(83, 60, 24, .3);
}

.tiger-channel-panel .tiger-send-task {
  margin-left: auto;
  border-color: rgba(255, 201, 95, .46);
  background: linear-gradient(135deg, #ffb52e, #f06a22);
  color: #fff;
  box-shadow: 0 10px 25px rgba(240, 106, 34, .28), 0 0 24px rgba(255, 184, 50, .13);
}

.tiger-channel-panel .tiger-send-task:hover,
.tiger-channel-panel .tiger-send-task:focus-visible {
  transform: translateY(-2px) scale(1.02);
  border-color: rgba(255, 226, 150, .72);
  background: linear-gradient(135deg, #ffc54b, #f17924);
  box-shadow: 0 13px 30px rgba(240, 106, 34, .34), 0 0 30px rgba(255, 184, 50, .2);
}

.tiger-channel-panel .tiger-command-drop-overlay {
  border-color: rgba(99, 227, 255, .72);
  background: rgba(4, 34, 52, .97);
  color: #e8faff;
  box-shadow: inset 0 0 50px rgba(52, 198, 232, .12);
}

.tiger-channel-panel .tiger-command-drop-overlay span {
  color: rgba(193, 226, 237, .7);
}

.tiger-channel-panel .tiger-skill-chips {
  width: min(940px, 100%);
  justify-content: center;
  gap: 9px;
  margin-top: 18px;
}

.tiger-channel-panel .tiger-skill-chips button {
  position: relative;
  min-height: 38px;
  padding: 0 15px 0 27px;
  border: 1px solid rgba(105, 215, 241, .18);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(10, 50, 72, .86), rgba(5, 31, 50, .82));
  color: rgba(220, 239, 246, .82);
  font-size: 12.5px;
  font-weight: 650;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .045), 0 7px 18px rgba(0, 8, 18, .12);
  transition: transform .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease, background .2s ease;
}

.tiger-channel-panel .tiger-skill-chips button::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 50%;
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-radius: 50%;
  background: #5bdffb;
  box-shadow: 0 0 9px rgba(91, 223, 251, .66);
}

.tiger-channel-panel .tiger-skill-chips button:nth-child(3n+2)::before {
  background: #72e8aa;
  box-shadow: 0 0 9px rgba(114, 232, 170, .62);
}

.tiger-channel-panel .tiger-skill-chips button:nth-child(3n)::before {
  background: #f4bd58;
  box-shadow: 0 0 9px rgba(244, 189, 88, .62);
}

.tiger-channel-panel .tiger-skill-chips button:hover,
.tiger-channel-panel .tiger-skill-chips button:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(105, 226, 251, .48);
  background: linear-gradient(180deg, rgba(15, 76, 102, .92), rgba(7, 41, 61, .88));
  color: #f2fcff;
  box-shadow: 0 10px 26px rgba(18, 134, 170, .18), 0 0 20px rgba(58, 205, 239, .1);
}

.tiger-channel-panel .tiger-best-practice-head,
.tiger-channel-panel .tiger-practice-grid {
  width: min(980px, 100%);
}

.tiger-channel-panel .tiger-best-practice-head {
  align-items: center;
  gap: 22px;
  margin-top: 42px;
  padding: 0 2px 13px;
  border-bottom: 1px solid rgba(105, 216, 241, .12);
}

.tiger-channel-panel .tiger-practice-title {
  align-items: baseline;
  gap: 9px;
}

.tiger-channel-panel .tiger-best-practice-head h3 {
  position: relative;
  padding-left: 13px;
  color: #f0fbff;
  font-size: 18px;
  letter-spacing: .01em;
  text-shadow: 0 4px 18px rgba(0, 0, 0, .26);
}

.tiger-channel-panel .tiger-best-practice-head h3::before {
  content: "";
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, #78ebff, #2d83ff);
  box-shadow: 0 0 13px rgba(91, 220, 251, .54);
}

.tiger-channel-panel .tiger-practice-count {
  color: rgba(184, 215, 227, .56);
  font-size: 12px;
}

.tiger-channel-panel .tiger-practice-filters {
  gap: 7px;
}

.tiger-channel-panel .tiger-practice-filter {
  min-height: 34px;
  padding: 0 13px;
  border-color: rgba(104, 214, 240, .16);
  background: rgba(5, 34, 52, .72);
  color: rgba(202, 228, 237, .68);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
}

.tiger-channel-panel .tiger-practice-filter:hover,
.tiger-channel-panel .tiger-practice-filter:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(108, 225, 250, .4);
  background: rgba(11, 67, 91, .78);
  color: #ecfaff;
}

.tiger-channel-panel .tiger-practice-filter.is-active {
  border-color: rgba(118, 232, 255, .72);
  background: linear-gradient(135deg, #74e8ff, #42bce2);
  color: #03243a;
  box-shadow: 0 8px 22px rgba(47, 194, 229, .2), inset 0 1px 0 rgba(255, 255, 255, .4);
}

.tiger-channel-panel .tiger-practice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  padding-top: 14px;
}

.tiger-channel-panel .tiger-practice-card {
  --tiger-card-accent: 90, 221, 248;
  min-height: 134px;
  gap: 7px;
  padding: 17px 17px 16px 19px;
  border: 1px solid rgba(var(--tiger-card-accent), .19);
  border-radius: 16px;
  background:
    radial-gradient(circle at 92% 12%, rgba(var(--tiger-card-accent), .13), transparent 38%),
    linear-gradient(145deg, rgba(9, 45, 65, .9), rgba(4, 29, 47, .88));
  box-shadow: 0 12px 30px rgba(0, 8, 18, .18), inset 0 1px 0 rgba(255, 255, 255, .045);
  backdrop-filter: blur(14px);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.tiger-channel-panel .tiger-practice-card::before {
  content: "";
  position: absolute;
  top: 15px;
  bottom: 15px;
  left: 0;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: rgb(var(--tiger-card-accent));
  box-shadow: 0 0 14px rgba(var(--tiger-card-accent), .55);
}

.tiger-channel-panel .tiger-practice-card::after {
  content: "";
  position: absolute;
  right: -34px;
  bottom: -52px;
  width: 120px;
  height: 120px;
  border: 1px solid rgba(var(--tiger-card-accent), .1);
  border-radius: 50%;
  box-shadow: 0 0 0 16px rgba(var(--tiger-card-accent), .025), 0 0 0 34px rgba(var(--tiger-card-accent), .018);
  pointer-events: none;
}

.tiger-channel-panel .tiger-practice-card.accent-teal { --tiger-card-accent: 80, 226, 203; }
.tiger-channel-panel .tiger-practice-card.accent-blue { --tiger-card-accent: 86, 173, 255; }
.tiger-channel-panel .tiger-practice-card.accent-orange { --tiger-card-accent: 245, 185, 83; }
.tiger-channel-panel .tiger-practice-card.accent-green { --tiger-card-accent: 95, 225, 150; }
.tiger-channel-panel .tiger-practice-card.accent-purple { --tiger-card-accent: 183, 137, 255; }
.tiger-channel-panel .tiger-practice-card.accent-cyan { --tiger-card-accent: 83, 220, 247; }

.tiger-channel-panel .tiger-practice-card:hover,
.tiger-channel-panel .tiger-practice-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(var(--tiger-card-accent), .48);
  background:
    radial-gradient(circle at 92% 12%, rgba(var(--tiger-card-accent), .2), transparent 42%),
    linear-gradient(145deg, rgba(11, 58, 80, .95), rgba(5, 34, 54, .94));
  box-shadow: 0 18px 38px rgba(0, 8, 18, .28), 0 0 24px rgba(var(--tiger-card-accent), .1), inset 0 1px 0 rgba(255, 255, 255, .07);
}

.tiger-channel-panel .tiger-practice-card strong {
  position: relative;
  z-index: 1;
  color: #effbff;
  font-size: 15px;
  font-weight: 720;
  letter-spacing: .005em;
}

.tiger-channel-panel .tiger-practice-desc {
  position: relative;
  z-index: 1;
  color: rgba(195, 220, 230, .7);
  font-size: 12.5px;
  line-height: 1.58;
}

.tiger-channel-panel .tiger-practice-type {
  position: relative;
  z-index: 1;
  border: 1px solid rgba(var(--tiger-card-accent), .2);
  background: rgba(var(--tiger-card-accent), .1);
  color: rgb(var(--tiger-card-accent));
  font-size: 11px;
}

.tiger-channel-panel .tiger-run-mode-menu {
  border-color: rgba(112, 219, 244, .2);
  background: rgba(5, 30, 48, .97);
  box-shadow: 0 18px 40px rgba(0, 6, 16, .42);
  backdrop-filter: blur(18px);
}

.tiger-channel-panel .tiger-run-mode-menu button {
  color: rgba(222, 240, 247, .82);
}

.tiger-channel-panel .tiger-run-mode-menu button:hover {
  background: rgba(22, 103, 135, .34);
}

.tiger-channel-panel .tiger-run-mode-menu button .tiger-run-mode-text span {
  color: rgba(172, 205, 218, .62);
}

@media (max-width: 1180px) {
  .tiger-channel-panel .tiger-workbench-shell {
    grid-template-columns: 238px minmax(0, 1fr);
  }

  .tiger-channel-panel .tiger-hero-greeting {
    gap: 34px;
    padding-right: 32px;
    padding-left: 32px;
  }

  .tiger-channel-panel .tiger-practice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .tiger-channel-panel .tiger-workbench-shell {
    grid-template-columns: 1fr;
  }

  .tiger-channel-panel .tiger-task-sidebar {
    max-height: 278px;
    border-right: 0;
    border-bottom: 1px solid rgba(112, 222, 247, .18);
  }

  .tiger-channel-panel .tiger-workspace-main {
    padding-right: 18px;
    padding-left: 18px;
  }

  .tiger-channel-panel .tiger-task-home {
    padding-top: 24px;
  }

  .tiger-channel-panel .tiger-hero-greeting {
    min-height: 166px;
    gap: 22px;
    padding: 10px 22px;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 148px;
    height: 148px;
    flex-basis: 148px;
  }

  .tiger-channel-panel .tiger-command-center h2 {
    font-size: clamp(29px, 5vw, 36px);
  }

  .tiger-channel-panel .tiger-best-practice-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .tiger-channel-panel .tiger-practice-filters {
    justify-content: flex-start;
  }
}

@media (max-width: 620px) {
  .tiger-channel-panel .tiger-hero-greeting {
    min-height: 0;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 14px;
    padding: 16px 18px 20px;
    text-align: center;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 126px;
    height: 126px;
    flex-basis: 126px;
  }

  .tiger-channel-panel .tiger-hero-copy p {
    text-align: center;
  }

  .tiger-channel-panel .tiger-command-box {
    min-height: 136px;
    padding: 15px 14px 12px;
    border-radius: 18px;
  }

  .tiger-channel-panel .tiger-skill-chips {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 2px 1px 8px;
    scrollbar-width: none;
  }

  .tiger-channel-panel .tiger-skill-chips::-webkit-scrollbar {
    display: none;
  }

  .tiger-channel-panel .tiger-skill-chips button {
    flex: 0 0 auto;
  }

  .tiger-channel-panel .tiger-practice-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-channel-panel .tiger-hero-video,
  .tiger-channel-panel .tiger-hero-avatar-wrap::before,
  .tiger-channel-panel .tiger-hero-greeting::after {
    animation: none !important;
  }
}

/* ==================== 美猴王形象 · 无边框全息展示台 ==================== */
@keyframes tigerMascotFloatSoft {
  0%, 100% { transform: translate3d(0, 2px, 0) scale(1); }
  50% { transform: translate3d(0, -4px, 0) scale(1.01); }
}

@keyframes tigerHologramAura {
  0%, 100% { opacity: .52; transform: scale(.96) rotate(-1deg); }
  50% { opacity: .82; transform: scale(1.035) rotate(1deg); }
}

@keyframes tigerHologramPlatform {
  0%, 100% { opacity: .58; transform: perspective(90px) rotateX(66deg) scale(.94); }
  50% { opacity: .9; transform: perspective(90px) rotateX(66deg) scale(1.025); }
}

@keyframes tigerVideoProjection {
  0%, 100% { opacity: .1; transform: scale(.97); }
  50% { opacity: .2; transform: scale(1.02); }
}

.tiger-channel-panel .tiger-hero-greeting {
  min-height: 212px;
  overflow: visible;
  padding-top: 14px;
  padding-bottom: 14px;
}

.tiger-channel-panel .tiger-hero-greeting::before {
  border-radius: inherit;
}

.tiger-channel-panel .tiger-hero-greeting::after {
  clip-path: inset(0 round 26px);
}

.tiger-channel-panel .tiger-hero-avatar-wrap {
  width: 226px;
  height: 226px;
  flex: 0 0 226px;
  margin-top: -26px;
  margin-bottom: -8px;
  overflow: visible;
  isolation: isolate;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.tiger-channel-panel .tiger-hero-avatar-wrap::before {
  display: block;
  inset: -2% -8% -4%;
  z-index: 0;
  border: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 18% 30%, rgba(112, 232, 255, .9) 0 1.4px, transparent 2.5px),
    radial-gradient(circle at 83% 27%, rgba(250, 198, 92, .84) 0 1.6px, transparent 2.8px),
    radial-gradient(circle at 11% 57%, rgba(88, 214, 246, .68) 0 1.1px, transparent 2.3px),
    radial-gradient(circle at 91% 60%, rgba(250, 190, 72, .66) 0 1.2px, transparent 2.4px),
    radial-gradient(circle at 73% 10%, rgba(95, 225, 250, .58) 0 1px, transparent 2px),
    radial-gradient(ellipse at 50% 48%, rgba(71, 210, 242, .2), rgba(27, 132, 177, .07) 44%, transparent 72%);
  box-shadow: none;
  filter: drop-shadow(0 0 16px rgba(78, 212, 242, .18));
  animation: tigerHologramAura 5.6s ease-in-out infinite;
  pointer-events: none;
}

.tiger-channel-panel .tiger-hero-avatar-wrap::after {
  content: "";
  position: absolute;
  right: 12%;
  bottom: 8px;
  left: 12%;
  z-index: 1;
  display: block;
  height: 28px;
  border: 1px solid rgba(91, 224, 252, .55);
  border-radius: 50%;
  background:
    radial-gradient(ellipse, rgba(244, 187, 75, .2), rgba(69, 207, 239, .15) 42%, transparent 70%);
  box-shadow:
    0 0 8px rgba(86, 224, 252, .54),
    0 0 24px rgba(55, 191, 225, .3),
    inset 0 0 12px rgba(250, 195, 85, .26);
  filter: blur(.15px);
  transform-origin: center;
  animation: tigerHologramPlatform 4.8s ease-in-out infinite;
  pointer-events: none;
}

.tiger-channel-panel .tiger-hero-video {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  object-position: center bottom;
  mix-blend-mode: normal;
  filter:
    saturate(1.08)
    contrast(1.035)
    drop-shadow(0 14px 16px rgba(0, 4, 12, .3))
    drop-shadow(0 0 11px rgba(247, 184, 65, .08));
  animation: tigerMascotFloatSoft 5.8s ease-in-out infinite;
  transform-origin: 50% 88%;
}

.tiger-channel-panel .tiger-hero-copy {
  max-width: 500px;
  padding-left: clamp(4px, 1vw, 14px);
}

@media (max-width: 1180px) {
  .tiger-channel-panel .tiger-hero-greeting {
    min-height: 192px;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 202px;
    height: 202px;
    flex-basis: 202px;
    margin-top: -20px;
  }
}

@media (max-width: 820px) {
  .tiger-channel-panel .tiger-hero-greeting {
    min-height: 174px;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 174px;
    height: 174px;
    flex-basis: 174px;
    margin-top: -12px;
    margin-bottom: -4px;
  }
}

@media (max-width: 620px) {
  .tiger-channel-panel .tiger-hero-greeting {
    padding-top: 10px;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 158px;
    height: 158px;
    flex-basis: 158px;
    margin-top: -24px;
    margin-bottom: 0;
  }

  .tiger-channel-panel .tiger-hero-copy {
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-channel-panel .tiger-hero-video,
  .tiger-channel-panel .tiger-hero-avatar-wrap::before,
  .tiger-channel-panel .tiger-hero-avatar-wrap::after {
    animation: none !important;
  }
}

/* 完整人物层：原视频保留为柔和动态投影，透明立绘负责完整轮廓与眨眼。 */
.tiger-channel-panel .tiger-hero-greeting {
  min-height: 224px;
}

.tiger-channel-panel .tiger-hero-avatar-wrap {
  width: 220px;
  height: 254px;
  flex: 0 0 220px;
  margin-top: -34px;
  margin-bottom: -10px;
}

.tiger-channel-panel .tiger-hero-video {
  position: absolute;
  top: 7%;
  right: 4%;
  bottom: 12%;
  left: 4%;
  z-index: 0;
  width: 92%;
  height: 81%;
  opacity: .13;
  object-fit: cover;
  object-position: center 24%;
  filter: blur(8px) saturate(1.25) brightness(1.12) hue-rotate(4deg);
  mask-image: radial-gradient(ellipse at center, #000 28%, rgba(0, 0, 0, .62) 54%, transparent 76%);
  animation: tigerVideoProjection 6.4s ease-in-out infinite;
}

.tiger-channel-panel .tiger-hero-model-layer {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  object-position: center bottom;
  pointer-events: none;
  transform-origin: 50% 88%;
  filter:
    saturate(1.07)
    contrast(1.025)
    drop-shadow(0 14px 16px rgba(0, 3, 12, .34))
    drop-shadow(0 0 10px rgba(246, 186, 67, .1));
  will-change: transform, opacity;
}

.tiger-channel-panel .tiger-hero-avatar.tiger-hero-avatar-base.tiger-hero-model-layer {
  transform: none;
  animation: tigerMascotFloatSoft 5.8s ease-in-out infinite;
}

.tiger-channel-panel .tiger-hero-avatar.tiger-hero-avatar-blink.tiger-hero-model-layer {
  inset: 0;
  opacity: 0;
  clip-path: ellipse(34% 21% at 50% 24%);
  transform: none;
  animation: none;
}

.tiger-channel-panel .tiger-hero-avatar-wrap::after {
  right: 20%;
  bottom: 2px;
  left: 20%;
}

@media (max-width: 1180px) {
  .tiger-channel-panel .tiger-hero-greeting {
    min-height: 206px;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 196px;
    height: 226px;
    flex-basis: 196px;
    margin-top: -26px;
    margin-bottom: -8px;
  }
}

@media (max-width: 820px) {
  .tiger-channel-panel .tiger-hero-greeting {
    min-height: 188px;
  }

  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 170px;
    height: 198px;
    flex-basis: 170px;
    margin-top: -18px;
    margin-bottom: -6px;
  }
}

@media (max-width: 620px) {
  .tiger-channel-panel .tiger-hero-avatar-wrap {
    width: 150px;
    height: 176px;
    flex-basis: 150px;
    margin-top: -24px;
    margin-bottom: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tiger-channel-panel .tiger-hero-avatar.tiger-hero-model-layer {
    animation: none !important;
  }
}

/* ==================== 美猴王自然微表情 ==================== */
@keyframes tigerModelIdleNatural {
  0%, 100% { transform: translate3d(0, 1px, 0) rotate(-.16deg) scale(1); }
  38% { transform: translate3d(0, -2.5px, 0) rotate(.2deg) scale(1.004); }
  68% { transform: translate3d(.35px, -1.4px, 0) rotate(.08deg) scale(1.002); }
}

.tiger-channel-panel .tiger-hero-model-stack {
  position: absolute;
  inset: 0;
  z-index: 3;
  transform-origin: 50% 88%;
  animation: tigerModelIdleNatural 6.8s cubic-bezier(.45, .05, .55, .95) infinite;
  will-change: transform;
  pointer-events: none;
}

.tiger-channel-panel .tiger-hero-model-stack .tiger-hero-model-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none;
  animation: none !important;
  object-fit: contain;
  object-position: center bottom;
}

.tiger-channel-panel .tiger-hero-model-stack .tiger-hero-avatar-base {
  z-index: 1;
  opacity: 1;
}

.tiger-channel-panel .tiger-hero-model-stack .tiger-hero-avatar.tiger-hero-avatar-blink.tiger-hero-model-layer {
  z-index: 2;
  opacity: 0;
  clip-path: ellipse(31% 8.7% at 50% 23.8%);
  transition: opacity 92ms cubic-bezier(.33, 0, .25, 1);
  will-change: opacity;
}

.tiger-channel-panel .tiger-hero-model-stack.is-blinking .tiger-hero-avatar.tiger-hero-avatar-blink.tiger-hero-model-layer {
  opacity: 1;
  transition-duration: 68ms;
  transition-timing-function: cubic-bezier(.2, 0, .35, 1);
}

@media (prefers-reduced-motion: reduce) {
  .tiger-channel-panel .tiger-hero-model-stack {
    animation: none !important;
    transform: none !important;
  }

  .tiger-channel-panel .tiger-hero-model-stack .tiger-hero-avatar.tiger-hero-avatar-blink.tiger-hero-model-layer {
    opacity: 0 !important;
    transition: none !important;
  }
}
