/* ========================================
   固全建设OA系统 - 美观增强样式 v2.0
   日期: 2026-07-24
   说明: v1.0基础上全面扩充，覆盖所有页面和组件
         将此文件内容追加到 oa-style-enhance.css 末尾
         或单独引入，放在 v1 之后加载
   ======================================== */

/* ========================================
   目录:
   1. Select 下拉选择器
   2. DatePicker 日期选择器
   3. Radio / Checkbox / Switch
   4. Upload 上传组件
   5. InputNumber / TextArea / Search
   6. Descriptions 描述列表
   7. Tabs 标签页
   8. Collapse 折叠面板
   9. Tooltip / Popover / Popconfirm
   10. Statistic 统计数值
   11. Progress 进度条
   12. Avatar 头像 / Badge 徽标
   13. Tree 树形控件
   14. Empty 空状态
   15. Skeleton 骨架屏
   16. Result 结果页
   17. Calendar 日历
   18. Breadcrumb 面包屑
   19. Dropdown 下拉菜单
   20. Steps 步骤条(审批流程)
   21. Timeline 时间线(审批记录)
   22. Alert 警告提示
   23. Notification 通知框
   24. Drawer 抽屉
   25. 统计卡片/仪表盘
   26. 搜索筛选栏
   27. 页面头部区域
   28. 财务金额展示
   29. 审批流程展示
   30. 个人中心/设置页
   31. Transfer 穿梭框
   32. 表单标签增强
   33. 全局字体优化
   34. 打印优化
   ======================================== */


/* ========== 1. Select 下拉选择器 ========== */
.ant-select .ant-select-selector {
  border-radius: 8px !important;
  border-color: #e8eef7 !important;
  transition: all 0.2s ease !important;
}

.ant-select:hover .ant-select-selector,
.ant-select-focused .ant-select-selector {
  border-color: #4096ff !important;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.1) !important;
}

.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {
  border-color: #1677ff !important;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.1) !important;
}

/* 下拉面板 */
.ant-select-dropdown {
  border-radius: 10px !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08) !important;
  padding: 4px !important;
}

.ant-select-item {
  border-radius: 6px !important;
  transition: all 0.15s ease !important;
}

.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background: #f0f7ff !important;
}

.ant-select-item-option-selected {
  background: linear-gradient(135deg, #e8f0ff, #f0f7ff) !important;
  font-weight: 600 !important;
  color: #1677ff !important;
}

.ant-select-item-option-selected:hover {
  background: linear-gradient(135deg, #dce8ff, #e8f0ff) !important;
}

/* 多选标签 */
.ant-select-multiple .ant-select-selection-item {
  border-radius: 6px !important;
  background: #e8f0ff !important;
  border-color: #d6e4ff !important;
  color: #1677ff !important;
  font-size: 12px !important;
}

/* ========== 2. DatePicker 日期选择器 ========== */
.ant-picker {
  border-radius: 8px !important;
  border-color: #e8eef7 !important;
  transition: all 0.2s ease !important;
}

.ant-picker:hover,
.ant-picker-focused {
  border-color: #4096ff !important;
}

.ant-picker-focused {
  box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.1) !important;
}

/* 日历面板 */
.ant-picker-panel-container {
  border-radius: 12px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
}

.ant-picker-header {
  border-bottom: 1px solid #f0f0f0 !important;
  padding: 8px 0 !important;
}

.ant-picker-header button:hover {
  color: #1677ff !important;
}

.ant-picker-cell-selected .ant-picker-cell-inner,
.ant-picker-cell-selected:not(.ant-picker-cell-disabled) .ant-picker-cell-inner {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  border-radius: 6px !important;
}

.ant-picker-cell-in-view:hover .ant-picker-cell-inner:not(.ant-picker-cell-selected) {
  background: #f0f7ff !important;
  border-radius: 6px !important;
}

.ant-picker-today-btn {
  color: #1677ff !important;
}

/* 范围选择器连接线 */
.ant-picker-range .ant-picker-active-bar {
  background: linear-gradient(90deg, #1677ff, #4096ff) !important;
}

/* ========== 3. Radio / Checkbox / Switch ========== */

/* Radio */
.ant-radio-checked .ant-radio-inner {
  border-color: #1677ff !important;
}

.ant-radio-checked .ant-radio-inner::after {
  background-color: #1677ff !important;
}

.ant-radio-button-wrapper {
  border-radius: 0 !important;
  transition: all 0.2s ease !important;
}

.ant-radio-button-wrapper:hover {
  color: #1677ff !important;
}

.ant-radio-button-wrapper-checked {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  border-color: #1677ff !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(22, 119, 255, 0.2) !important;
}

/* Checkbox */
.ant-checkbox-checked .ant-checkbox-inner {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  border-color: #1677ff !important;
  border-radius: 4px !important;
}

.ant-checkbox-wrapper:hover .ant-checkbox-inner,
.ant-checkbox:hover .ant-checkbox-inner,
.ant-checkbox-input:focus + .ant-checkbox-inner {
  border-color: #4096ff !important;
}

/* Switch */
.ant-switch-checked {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
}

.ant-switch:not(.ant-switch-checked) {
  background: #d9d9d9 !important;
}

.ant-switch-checked .ant-switch-thumb {
  box-shadow: 0 2px 6px rgba(22, 119, 255, 0.3) !important;
}

/* ========== 4. Upload 上传组件 ========== */
.ant-upload.ant-upload-select,
.ant-upload-list-item-container {
  transition: all 0.2s ease !important;
}

/* 上传按钮（卡片样式） */
.ant-upload.ant-upload-drag {
  border: 2px dashed #d6e4ff !important;
  border-radius: 12px !important;
  background: #f8faff !important;
  transition: all 0.25s ease !important;
}

.ant-upload.ant-upload-drag:hover {
  border-color: #4096ff !important;
  background: #f0f7ff !important;
}

.ant-upload.ant-upload-drag .ant-upload-btn {
  padding: 20px !important;
}

.ant-upload-drag-container .ant-upload-drag-icon .anticon {
  color: #4096ff !important;
  font-size: 40px !important;
}

.ant-upload-drag-container .ant-upload-text {
  color: #1a1a2e !important;
  font-weight: 600 !important;
}

.ant-upload-drag-container .ant-upload-hint {
  color: #8c8c8c !important;
}

/* 上传文件列表项 */
.ant-upload-list-item {
  border-radius: 8px !important;
  transition: all 0.2s ease !important;
  padding: 6px 10px !important;
  margin-bottom: 6px !important;
}

.ant-upload-list-item:hover {
  background: #f8faff !important;
}

.ant-upload-list-item-info .anticon {
  color: #4096ff !important;
}

/* 图片上传卡片 */
.ant-upload-list-picture-card .ant-upload-list-item {
  border-radius: 8px !important;
  border: 1px solid #e8eef7 !important;
}

.ant-upload-list-picture-card .ant-upload-list-item:hover {
  border-color: #4096ff !important;
  box-shadow: 0 2px 12px rgba(22, 119, 255, 0.1) !important;
}

/* 上传+号按钮 */
.ant-upload-list-picture-card-container .ant-upload {
  border: 2px dashed #d6e4ff !important;
  border-radius: 8px !important;
  background: #f8faff !important;
  transition: all 0.2s ease !important;
}

.ant-upload-list-picture-card-container .ant-upload:hover {
  border-color: #4096ff !important;
  background: #f0f7ff !important;
}

/* ========== 5. InputNumber / TextArea / Search ========== */

/* InputNumber */
.ant-input-number {
  border-radius: 8px !important;
  border-color: #e8eef7 !important;
  transition: all 0.2s ease !important;
}

.ant-input-number:hover {
  border-color: #4096ff !important;
}

.ant-input-number-focused {
  border-color: #1677ff !important;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.1) !important;
}

.ant-input-number-handler:hover {
  background: #f0f7ff !important;
  color: #1677ff !important;
}

/* TextArea */
.ant-input {
  border-radius: 8px !important;
}

textarea.ant-input {
  border-radius: 8px !important;
  resize: vertical !important;
}

/* Search搜索框 */
.ant-input-search .ant-input-group-addon .ant-btn {
  border-radius: 0 8px 8px 0 !important;
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.2) !important;
}

.ant-input-search .ant-input-group-addon .ant-btn:hover {
  box-shadow: 0 4px 12px rgba(22, 119, 255, 0.3) !important;
}

.ant-input-search > .ant-input-group > .ant-input {
  border-radius: 8px 0 0 8px !important;
}

/* AutoComplete */
.ant-select-auto-complete .ant-select-selector {
  border-radius: 8px !important;
}

/* ========== 6. Descriptions 描述列表（详情页核心） ========== */
.ant-descriptions {
  border-radius: 10px !important;
  overflow: hidden;
}

.ant-descriptions-header {
  padding: 12px 16px 0 !important;
  margin-bottom: 0 !important;
}

.ant-descriptions-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  display: flex !important;
  align-items: center !important;
}

.ant-descriptions-title::before {
  content: '';
  width: 4px;
  height: 16px;
  background: linear-gradient(180deg, #1677ff, #4096ff);
  border-radius: 2px;
  display: inline-block;
  margin-right: 8px;
}

.ant-descriptions-bordered .ant-descriptions-view {
  border: 1px solid #eef2f7 !important;
  border-radius: 10px !important;
  overflow: hidden;
}

.ant-descriptions-bordered .ant-descriptions-item-label,
.ant-descriptions-bordered .ant-descriptions-item-content {
  padding: 12px 16px !important;
  border-color: #eef2f7 !important;
}

.ant-descriptions-bordered .ant-descriptions-item-label {
  background: #f8faff !important;
  font-weight: 600 !important;
  color: #595959 !important;
  width: 120px;
}

.ant-descriptions-bordered .ant-descriptions-item-content {
  background: #fff !important;
  color: #262626 !important;
}

.ant-descriptions-bordered .ant-descriptions-row {
  border-bottom: 1px solid #eef2f7 !important;
}

.ant-descriptions-bordered .ant-descriptions-row:last-child {
  border-bottom: none !important;
}

/* 非带边框模式 */
.ant-descriptions:not(.ant-descriptions-bordered) .ant-descriptions-item {
  padding-bottom: 12px !important;
}

.ant-descriptions-item-label {
  color: #8c8c8c !important;
  font-weight: 500 !important;
}

.ant-descriptions-item-content {
  color: #262626 !important;
}

/* ========== 7. Tabs 标签页 ========== */
.ant-tabs-tab {
  padding: 10px 4px !important;
  transition: all 0.2s ease !important;
  font-weight: 500 !important;
}

.ant-tabs-tab:hover {
  color: #4096ff !important;
}

.ant-tabs-tab-active .ant-tabs-tab-btn {
  font-weight: 600 !important;
  color: #1677ff !important;
}

.ant-tabs-ink-bar {
  background: linear-gradient(90deg, #1677ff, #4096ff) !important;
  height: 3px !important;
  border-radius: 2px !important;
}

/* 卡片式标签页 */
.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab {
  border-radius: 8px 8px 0 0 !important;
  border-color: #e8eef7 !important;
  background: #f8faff !important;
  transition: all 0.2s ease !important;
}

.ant-tabs-card > .ant-tabs-nav .ant-tabs-tab-active {
  background: #fff !important;
  border-bottom-color: #fff !important;
  color: #1677ff !important;
  font-weight: 600 !important;
}

/* 胶囊式标签页 */
.ant-tabs-ink-bar.ant-tabs-ink-bar-animated {
  transition: all 0.3s ease !important;
}

/* ========== 8. Collapse 折叠面板 ========== */
.ant-collapse {
  border-radius: 10px !important;
  border: 1px solid #e8eef7 !important;
  overflow: hidden;
}

.ant-collapse-item {
  border-bottom: 1px solid #f0f0f0 !important;
}

.ant-collapse-item:last-child {
  border-bottom: none !important;
}

.ant-collapse-header {
  padding: 12px 16px !important;
  transition: all 0.2s ease !important;
}

.ant-collapse-header:hover {
  background: #f8faff !important;
}

.ant-collapse-content > .ant-collapse-content-box {
  padding: 16px !important;
  background: #fcfcff !important;
}

.ant-collapse > .ant-collapse-item > .ant-collapse-header .ant-collapse-arrow {
  color: #4096ff !important;
}

/* ========== 9. Tooltip / Popover / Popconfirm ========== */
.ant-tooltip-inner {
  border-radius: 8px !important;
  background: rgba(30, 30, 50, 0.92) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
  font-size: 12px !important;
}

.ant-tooltip-arrow-content {
  background: rgba(30, 30, 50, 0.92) !important;
}

.ant-popover-inner {
  border-radius: 10px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1) !important;
}

.ant-popover-title {
  font-weight: 600 !important;
  color: #1a1a2e !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

.ant-popover-inner-content {
  padding: 12px 16px !important;
}

/* Popconfirm确认气泡 */
.ant-popconfirm {
  border-radius: 10px !important;
}

/* ========== 10. Statistic 统计数值（仪表盘核心） ========== */
.ant-statistic {
  padding: 4px 0 !important;
}

.ant-statistic-title {
  color: #8c8c8c !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  margin-bottom: 8px !important;
}

.ant-statistic-content {
  font-weight: 700 !important;
  font-size: 24px !important;
}

.ant-statistic-content-value {
  color: #1a1a2e !important;
}

/* ========== 11. Progress 进度条 ========== */
.ant-progress-bg {
  border-radius: 100px !important;
}

.ant-progress-show-info .ant-progress-outer {
  padding-right: 0 !important;
  margin-right: 0 !important;
}

.ant-progress-text {
  font-weight: 600 !important;
  font-size: 12px !important;
  color: #595959 !important;
  margin-left: 8px !important;
}

/* ========== 12. Avatar 头像 / Badge 徽标 ========== */
.ant-avatar {
  transition: all 0.2s ease !important;
}

.ant-avatar:hover {
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.15) !important;
}

.ant-badge-status-dot {
  width: 8px !important;
  height: 8px !important;
}

.ant-badge-count {
  border-radius: 10px !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  box-shadow: 0 2px 6px rgba(255, 77, 79, 0.3) !important;
}

/* ========== 13. Tree 树形控件 ========== */
.ant-tree {
  border-radius: 8px !important;
}

.ant-tree-treenode {
  padding: 2px 0 !important;
  transition: all 0.15s ease !important;
}

.ant-tree-treenode:hover {
  background: #f8faff !important;
  border-radius: 6px !important;
}

.ant-tree-node-selected {
  background: #e8f0ff !important;
  border-radius: 6px !important;
}

.ant-tree .ant-tree-switcher {
  color: #8c8c8c !important;
}

.ant-tree .ant-tree-switcher:hover {
  color: #1677ff !important;
}

/* ========== 14. Empty 空状态 ========== */
.ant-empty-description {
  color: #8c8c8c !important;
  font-size: 13px !important;
}

.ant-empty-img {
  margin-bottom: 8px !important;
}

/* 自定义空状态文字 */
.ant-empty-normal {
  padding: 32px 0 !important;
}

/* ========== 15. Skeleton 骨架屏 ========== */
.ant-skeleton-element .ant-skeleton-input {
  border-radius: 8px !important;
}

.ant-skeleton-active .ant-skeleton-paragraph > li,
.ant-skeleton-active .ant-skeleton-title,
.ant-skeleton-active .ant-skeleton-input {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 37%, #f0f0f0 63%) !important;
  background-size: 400% 100% !important;
}

/* ========== 16. Result 结果页 ========== */
.ant-result {
  padding: 40px 32px !important;
}

.ant-result-title {
  font-weight: 700 !important;
  color: #1a1a2e !important;
}

.ant-result-subtitle {
  color: #8c8c8c !important;
}

/* ========== 17. Calendar 日历 ========== */
.ant-picker-calendar {
  border-radius: 10px !important;
}

.ant-picker-calendar .ant-picker-cell .ant-picker-calendar-date {
  border-radius: 8px !important;
  border: 1px solid #f0f0f0 !important;
  transition: all 0.2s ease !important;
}

.ant-picker-calendar .ant-picker-cell .ant-picker-calendar-date:hover {
  border-color: #4096ff !important;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.08) !important;
}

.ant-picker-calendar .ant-picker-cell-selected .ant-picker-calendar-date {
  background: #e8f0ff !important;
  border-color: #1677ff !important;
}

/* ========== 18. Breadcrumb 面包屑 ========== */
.ant-breadcrumb {
  font-size: 13px !important;
  padding: 0 0 12px 0 !important;
}

.ant-breadcrumb-link {
  color: #8c8c8c !important;
  transition: color 0.2s ease !important;
}

.ant-breadcrumb-link:hover {
  color: #4096ff !important;
}

.ant-breadcrumb-separator {
  color: #c7c7c7 !important;
}

.ant-breadcrumb > span:last-child .ant-breadcrumb-link {
  color: #1a1a2e !important;
  font-weight: 600 !important;
}

/* ========== 19. Dropdown 下拉菜单 ========== */
.ant-dropdown-menu {
  border-radius: 10px !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08) !important;
  padding: 4px !important;
}

.ant-dropdown-menu-item {
  border-radius: 6px !important;
  transition: all 0.15s ease !important;
}

.ant-dropdown-menu-item:hover,
.ant-dropdown-menu-submenu-title:hover {
  background: #f0f7ff !important;
  color: #1677ff !important;
}

.ant-dropdown-menu-item-danger:hover {
  background: rgba(255, 77, 79, 0.06) !important;
  color: #ff4d4f !important;
}

/* ========== 20. Steps 步骤条（审批流程核心） ========== */
.ant-steps-item-title {
  font-weight: 600 !important;
  color: #595959 !important;
}

.ant-steps-item-process .ant-steps-item-icon {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  border-color: #1677ff !important;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.25) !important;
}

.ant-steps-item-finish .ant-steps-item-icon {
  border-color: #1677ff !important;
}

.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {
  color: #1677ff !important;
}

.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
  background-color: #4096ff !important;
}

.ant-steps-item-wait .ant-steps-item-icon {
  border-color: #d9d9d9 !important;
}

.ant-steps-item-wait .ant-steps-item-icon > .ant-steps-icon {
  color: #bfbfbf !important;
}

.ant-steps-item-error .ant-steps-item-icon {
  border-color: #ff4d4f !important;
  background: rgba(255, 77, 79, 0.06) !important;
}

.ant-steps-item-error .ant-steps-item-icon > .ant-steps-icon {
  color: #ff4d4f !important;
}

.ant-steps-item-description {
  color: #8c8c8c !important;
  font-size: 12px !important;
}

/* 点状步骤条 */
.ant-steps-dot .ant-steps-item-title {
  font-weight: 500 !important;
}

.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon .ant-steps-icon-dot {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
}

.ant-steps-dot .ant-steps-item-finish .ant-steps-item-icon .ant-steps-icon-dot {
  background: #4096ff !important;
}

/* ========== 21. Timeline 时间线（审批记录核心） ========== */
.ant-timeline-item-head {
  border-color: transparent !important;
  width: 10px !important;
  height: 10px !important;
}

.ant-timeline-item-head-blue {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
}

.ant-timeline-item-head-green {
  background: linear-gradient(135deg, #52c41a, #73d13d) !important;
}

.ant-timeline-item-head-red {
  background: linear-gradient(135deg, #ff4d4f, #ff7875) !important;
}

.ant-timeline-item-head-gray {
  background: #d9d9d9 !important;
}

.ant-timeline-item-content {
  padding-bottom: 16px !important;
}

.ant-timeline-item-label {
  color: #8c8c8c !important;
  font-size: 12px !important;
}

/* ========== 22. Alert 警告提示 ========== */
.ant-alert {
  border-radius: 10px !important;
  padding: 10px 16px !important;
  transition: all 0.2s ease !important;
}

.ant-alert-info {
  background: #e8f0ff !important;
  border: 1px solid #d6e4ff !important;
}

.ant-alert-info .ant-alert-icon {
  color: #1677ff !important;
}

.ant-alert-success {
  background: rgba(82, 196, 26, 0.06) !important;
  border: 1px solid rgba(82, 196, 26, 0.2) !important;
}

.ant-alert-success .ant-alert-icon {
  color: #52c41a !important;
}

.ant-alert-warning {
  background: rgba(250, 173, 20, 0.06) !important;
  border: 1px solid rgba(250, 173, 20, 0.2) !important;
}

.ant-alert-warning .ant-alert-icon {
  color: #faad14 !important;
}

.ant-alert-error {
  background: rgba(255, 77, 79, 0.06) !important;
  border: 1px solid rgba(255, 77, 79, 0.2) !important;
}

.ant-alert-error .ant-alert-icon {
  color: #ff4d4f !important;
}

.ant-alert-message {
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

.ant-alert-description {
  color: #595959 !important;
  font-size: 13px !important;
  margin-top: 4px !important;
}

/* ========== 23. Notification 通知框 ========== */
.ant-notification-notice {
  border-radius: 10px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
  border: none !important;
}

.ant-notification-notice-message {
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

.ant-notification-notice-description {
  color: #595959 !important;
  font-size: 13px !important;
}

/* ========== 24. Drawer 抽屉 ========== */
.ant-drawer-content {
  border-radius: 0 !important;
}

.ant-drawer-header {
  border-bottom: 1px solid #f0f0f0 !important;
  padding: 16px 24px !important;
}

.ant-drawer-title {
  font-weight: 700 !important;
  color: #1a1a2e !important;
  font-size: 16px !important;
}

.ant-drawer-body {
  padding: 20px 24px !important;
}

/* ========== 25. 统计卡片/仪表盘区域 ========== */

/* 统计卡片容器 */
.stat-card,
.dashboard-stat-card,
.stat-box {
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 12px rgba(22, 119, 255, 0.06) !important;
  padding: 20px !important;
  transition: all 0.25s ease !important;
  border: 1px solid #f0f0f0 !important;
}

.stat-card:hover,
.dashboard-stat-card:hover,
.stat-box:hover {
  box-shadow: 0 4px 20px rgba(22, 119, 255, 0.12) !important;
  transform: translateY(-2px);
}

/* 统计数字 */
.stat-value,
.stat-number,
.dashboard-number {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  line-height: 1.2 !important;
}

.stat-label,
.stat-title,
.dashboard-label {
  color: #8c8c8c !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* 统计卡片图标背景 */
.stat-icon-box,
.stat-icon {
  width: 48px !important;
  height: 48px !important;
  border-radius: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 趋势箭头 */
.trend-up {
  color: #52c41a !important;
  font-weight: 600 !important;
}

.trend-down {
  color: #ff4d4f !important;
  font-weight: 600 !important;
}

/* 图表容器 */
.chart-container,
.chart-box {
  background: #fff !important;
  border-radius: 12px !important;
  padding: 16px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}

/* 欢迎页面 */
.welcome-section,
.welcome-banner {
  background: linear-gradient(135deg, #e8f0ff 0%, #f0f7ff 50%, #fff 100%) !important;
  border-radius: 12px !important;
  padding: 24px !important;
  margin-bottom: 16px !important;
}

/* ========== 26. 搜索筛选栏 ========== */

/* 搜索表单容器 */
.search-form,
.filter-bar,
.toolbar,
.list-header {
  background: #fff !important;
  border-radius: 10px !important;
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.03) !important;
}

/* 搜索按钮组 */
.search-btn-group,
.filter-actions {
  display: flex !important;
  gap: 8px !important;
}

/* 默认按钮（非primary） */
.ant-btn-default {
  border-radius: 8px !important;
  border-color: #e8eef7 !important;
  transition: all 0.2s ease !important;
}

.ant-btn-default:hover {
  border-color: #4096ff !important;
  color: #1677ff !important;
  background: #f8faff !important;
}

/* 文字按钮 */
.ant-btn-link {
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}

.ant-btn-link:hover {
  background: rgba(22, 119, 255, 0.06) !important;
}

/* 危险按钮 */
.ant-btn-dangerous {
  border-radius: 8px !important;
  transition: all 0.2s ease !important;
}

.ant-btn-dangerous:hover {
  box-shadow: 0 2px 8px rgba(255, 77, 79, 0.2) !important;
}

/* ========== 27. 页面头部区域 ========== */
.page-header,
.page-title-bar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 16px !important;
}

.page-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  display: flex !important;
  align-items: center !important;
}

.page-title::before {
  content: '';
  width: 4px;
  height: 20px;
  background: linear-gradient(180deg, #1677ff, #4096ff);
  border-radius: 2px;
  margin-right: 10px;
  flex-shrink: 0;
}

.page-subtitle {
  color: #8c8c8c !important;
  font-size: 13px !important;
  margin-left: 14px !important;
}

/* 页面操作按钮区 */
.page-actions,
.header-actions {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
}

/* ========== 28. 财务金额展示 ========== */

/* 金额数字 */
.amount-positive,
.amount-income {
  color: #52c41a !important;
  font-weight: 700 !important;
  font-family: 'Segoe UI', 'Roboto', 'Helvetica Neue', sans-serif !important;
}

.amount-negative,
.amount-expense {
  color: #ff4d4f !important;
  font-weight: 700 !important;
  font-family: 'Segoe UI', 'Roboto', 'Helvetica Neue', sans-serif !important;
}

/* 财务概览卡片 */
.finance-summary {
  background: linear-gradient(135deg, #f8faff, #fff) !important;
  border-radius: 12px !important;
  padding: 20px !important;
  border: 1px solid #e8eef7 !important;
}

.finance-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 12px 16px !important;
  border-radius: 8px !important;
  transition: all 0.2s ease !important;
}

.finance-item:hover {
  background: #f8faff !important;
}

.finance-item-label {
  color: #8c8c8c !important;
  font-size: 13px !important;
}

.finance-item-value {
  font-size: 20px !important;
  font-weight: 700 !important;
}

/* 发票状态标签 */
.invoice-status-pending {
  background: rgba(250, 173, 20, 0.1) !important;
  color: #d48806 !important;
  border-radius: 6px !important;
  padding: 2px 10px !important;
  font-weight: 500 !important;
}

.invoice-status-paid {
  background: rgba(82, 196, 26, 0.1) !important;
  color: #52c41a !important;
  border-radius: 6px !important;
  padding: 2px 10px !important;
  font-weight: 500 !important;
}

.invoice-status-overdue {
  background: rgba(255, 77, 79, 0.1) !important;
  color: #ff4d4f !important;
  border-radius: 6px !important;
  padding: 2px 10px !important;
  font-weight: 500 !important;
}

/* ========== 29. 审批流程展示 ========== */

/* 审批记录卡片 */
.approval-record {
  border-left: 3px solid #1677ff !important;
  padding: 12px 16px !important;
  margin-bottom: 8px !important;
  border-radius: 0 8px 8px 0 !important;
  background: #f8faff !important;
  transition: all 0.2s ease !important;
}

.approval-record:hover {
  background: #f0f7ff !important;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.06) !important;
}

/* 通过的审批 */
.approval-record-approved {
  border-left-color: #52c41a !important;
  background: rgba(82, 196, 26, 0.03) !important;
}

/* 拒绝的审批 */
.approval-record-rejected {
  border-left-color: #ff4d4f !important;
  background: rgba(255, 77, 79, 0.03) !important;
}

/* 待审批 */
.approval-record-pending {
  border-left-color: #faad14 !important;
  background: rgba(250, 173, 20, 0.03) !important;
}

/* 审批人信息 */
.approver-info {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.approver-name {
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

.approver-time {
  color: #8c8c8c !important;
  font-size: 12px !important;
}

/* 审批意见 */
.approval-comment {
  color: #595959 !important;
  font-size: 13px !important;
  padding: 8px 12px !important;
  background: rgba(0, 0, 0, 0.02) !important;
  border-radius: 6px !important;
  margin-top: 8px !important;
}

/* 审批操作按钮区 */
.approval-actions {
  display: flex !important;
  gap: 12px !important;
  padding: 16px !important;
  border-top: 1px solid #f0f0f0 !important;
  margin-top: 16px !important;
}

/* ========== 30. 个人中心/设置页 ========== */

/* 个人信息卡片 */
.profile-card,
.user-profile {
  background: #fff !important;
  border-radius: 12px !important;
  padding: 24px !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04) !important;
}

/* 头像区域 */
.profile-avatar-section {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 24px !important;
  background: linear-gradient(135deg, #e8f0ff, #f0f7ff) !important;
  border-radius: 12px !important;
}

/* 设置列表项 */
.setting-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 16px 20px !important;
  border-bottom: 1px solid #f0f0f0 !important;
  transition: all 0.2s ease !important;
}

.setting-item:hover {
  background: #f8faff !important;
}

.setting-item:last-child {
  border-bottom: none !important;
}

.setting-label {
  font-weight: 500 !important;
  color: #1a1a2e !important;
}

.setting-desc {
  color: #8c8c8c !important;
  font-size: 12px !important;
  margin-top: 2px !important;
}

/* ========== 31. Transfer 穿梭框 ========== */
.ant-transfer-list {
  border-radius: 10px !important;
  border-color: #e8eef7 !important;
}

.ant-transfer-list-header {
  border-radius: 10px 10px 0 0 !important;
  background: #f8faff !important;
  border-bottom: 1px solid #e8eef7 !important;
}

.ant-transfer-list-content-item {
  border-radius: 6px !important;
  transition: all 0.15s ease !important;
  padding: 6px 12px !important;
}

.ant-transfer-list-content-item:hover {
  background: #f0f7ff !important;
}

.ant-transfer-operation .ant-btn {
  border-radius: 8px !important;
}

/* ========== 32. 表单标签增强 ========== */
.ant-form-item-label > label {
  color: #595959 !important;
  font-weight: 500 !important;
  font-size: 13px !important;
}

.ant-form-item-label > label::after {
  color: #c7c7c7 !important;
}

/* 必填标记 */
.ant-form-item-required::before {
  color: #ff4d4f !important;
  font-size: 12px !important;
}

/* 表单项间距 */
.ant-form-item {
  margin-bottom: 20px !important;
}

/* 表单验证错误状态 */
.ant-form-item-explain-error {
  color: #ff4d4f !important;
  font-size: 12px !important;
  padding-top: 4px !important;
}

.ant-input-status-error,
.ant-select-status-error .ant-select-selector {
  border-color: #ff4d4f !important;
}

.ant-input-status-error:focus,
.ant-select-status-error.ant-select-focused .ant-select-selector {
  box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.1) !important;
}

/* 表单成功状态 */
.ant-input-status-success {
  border-color: #52c41a !important;
}

/* ========== 33. 全局字体优化 ========== */
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
    'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial,
    sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  color: #333 !important;
  background: #f0f5ff !important;
}

/* 标题字体 */
h1, h2, h3, h4, h5, h6 {
  font-weight: 700 !important;
  color: #1a1a2e !important;
}

/* 正文文字 */
p, span, div, td, th, li {
  line-height: 1.6 !important;
}

/* 数字字体优化 */
.ant-statistic-content,
.amount-positive,
.amount-negative,
.text-amount,
.ant-table-tbody .text-amount,
.finance-item-value,
.stat-value,
.stat-number,
.dashboard-number {
  font-family: 'SF Mono', 'Segoe UI', 'Roboto Mono', 'Helvetica Neue', monospace,
    'PingFang SC', 'Microsoft YaHei' !important;
  letter-spacing: -0.02em !important;
}

/* 链接 */
a {
  transition: color 0.2s ease !important;
}

a:hover {
  color: #4096ff !important;
}

/* ========== 34. 打印优化 ========== */
@media print {
  .ant-layout-sider,
  .ant-layout-header,
  .ant-pagination,
  .ant-btn,
  .page-actions,
  .header-actions,
  .search-form,
  .filter-bar {
    display: none !important;
  }

  .ant-layout-content {
    padding: 0 !important;
  }

  .main-card,
  .ant-card {
    box-shadow: none !important;
    border: 1px solid #ddd !important;
    page-break-inside: avoid !important;
  }

  .ant-table {
    font-size: 12px !important;
  }

  body {
    background: #fff !important;
  }
}

/* ========== 35. 暗色覆盖/补充 ========== */

/* Card卡片内部extra区域 */
.ant-card-extra {
  font-size: 13px !important;
}

.ant-card-actions {
  border-top: 1px solid #f0f0f0 !important;
  background: #fafafa !important;
}

.ant-card-actions > li {
  border-right: 1px solid #f0f0f0 !important;
  transition: all 0.2s ease !important;
}

.ant-card-actions > li:hover {
  background: #f8faff !important;
  color: #1677ff !important;
}

/* Card body内边距统一 */
.ant-card-body {
  padding: 16px 20px !important;
}

/* Card head统一 */
.ant-card-head {
  border-bottom: 1px solid #f0f0f0 !important;
  min-height: 48px !important;
  padding: 0 20px !important;
}

.ant-card-head-title {
  font-weight: 700 !important;
  color: #1a1a2e !important;
  font-size: 15px !important;
  padding: 12px 0 !important;
}

/* 列表组件 */
.ant-list-item {
  padding: 12px 16px !important;
  border-bottom: 1px solid #f5f5f5 !important;
  transition: all 0.2s ease !important;
}

.ant-list-item:hover {
  background: #f8faff !important;
}

.ant-list-item-meta-title {
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

.ant-list-item-meta-description {
  color: #8c8c8c !important;
  font-size: 13px !important;
}

/* 分割线 */
.ant-divider {
  border-color: #f0f0f0 !important;
  margin: 16px 0 !important;
}

/* 菜单（非侧边栏的菜单，如下拉菜单等） */
.ant-menu-horizontal {
  border-bottom: 1px solid #e8eef7 !important;
}

.ant-menu-horizontal > .ant-menu-item-selected {
  color: #1677ff !important;
}

.ant-menu-horizontal > .ant-menu-item-selected::after {
  border-bottom-color: #1677ff !important;
}

/* 面包屑下方的页面分割线 */
.page-header + .ant-divider {
  margin-top: 0 !important;
}

/* Spin加载容器 */
.ant-spin-nested-loading {
  min-height: 100px;
}

/* 排序图标 */
.ant-table-column-sorter {
  color: #c7c7c7 !important;
}

.ant-table-column-sorter.active {
  color: #1677ff !important;
}

/* 展开行图标 */
.ant-table-row-expand-icon {
  border-radius: 4px !important;
  border-color: #d6e4ff !important;
  color: #1677ff !important;
  transition: all 0.2s ease !important;
}

.ant-table-row-expand-icon:hover {
  border-color: #4096ff !important;
  background: #f0f7ff !important;
}

/* 固定列阴影柔化 */
.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-cell-fix-left-last::after,
.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-cell-fix-right-first::after {
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.04) !important;
}

/* 表格空状态 */
.ant-table-placeholder {
  padding: 40px 16px !important;
}

.ant-table-placeholder:hover .ant-table-cell {
  background: #fff !important;
}

/* 总结行 */
.ant-table-summary {
  background: #f8faff !important;
  border-top: 2px solid #e8eef7 !important;
}

.ant-table-summary > tr > td {
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

/* ========== 36. 登录页增强 ========== */
.login-container,
.login-page,
.login-box {
  background: linear-gradient(135deg, #1a2744 0%, #1e3a5f 50%, #1677ff 100%) !important;
  min-height: 100vh;
}

.login-form-card,
.login-form {
  background: rgba(255, 255, 255, 0.98) !important;
  border-radius: 16px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2) !important;
  padding: 40px !important;
  backdrop-filter: blur(10px);
}

.login-title,
.login-logo-text {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  text-align: center !important;
  margin-bottom: 8px !important;
}

.login-subtitle {
  color: #8c8c8c !important;
  font-size: 14px !important;
  text-align: center !important;
  margin-bottom: 32px !important;
}

/* ========== 37. 工具类补充 ========== */

/* 文字省略 */
.text-ellipsis {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 行间距 */
.mb-0 { margin-bottom: 0 !important; }
.mb-8 { margin-bottom: 8px !important; }
.mb-16 { margin-bottom: 16px !important; }
.mt-8 { margin-top: 8px !important; }
.mt-16 { margin-top: 16px !important; }

/* flex工具 */
.flex { display: flex !important; }
.flex-center { display: flex !important; align-items: center !important; justify-content: center !important; }
.flex-between { display: flex !important; align-items: center !important; justify-content: space-between !important; }
.gap-8 { gap: 8px !important; }
.gap-12 { gap: 12px !important; }
.gap-16 { gap: 16px !important; }

/* 文字大小 */
.text-sm { font-size: 12px !important; }
.text-md { font-size: 14px !important; }
.text-lg { font-size: 16px !important; }
.text-xl { font-size: 18px !important; }

/* 文字颜色 */
.text-primary { color: #1677ff !important; }
.text-success { color: #52c41a !important; }
.text-warning { color: #faad14 !important; }
.text-danger { color: #ff4d4f !important; }
.text-muted { color: #8c8c8c !important; }
.text-dark { color: #1a1a2e !important; }

/* 圆角 */
.rounded-sm { border-radius: 6px !important; }
.rounded-md { border-radius: 8px !important; }
.rounded-lg { border-radius: 12px !important; }

/* 阴影 */
.shadow-sm { box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important; }
.shadow-md { box-shadow: 0 2px 12px rgba(22, 119, 255, 0.06) !important; }
.shadow-lg { box-shadow: 0 4px 20px rgba(22, 119, 255, 0.1) !important; }

/* ========== 38. 响应式补充 ========== */
@media (max-width: 768px) {
  /* 表单在移动端单列 */
  .ant-form-item {
    margin-bottom: 16px !important;
  }

  /* 统计卡片移动端 */
  .stat-card,
  .dashboard-stat-card {
    padding: 16px !important;
  }

  .stat-value,
  .stat-number,
  .dashboard-number {
    font-size: 22px !important;
  }

  /* 详情页移动端 */
  .ant-descriptions-bordered .ant-descriptions-item-label {
    width: 90px !important;
  }

  /* 弹窗移动端 */
  .ant-modal {
    max-width: calc(100vw - 16px) !important;
    margin: 8px auto !important;
  }

  /* 抽屉移动端 */
  .ant-drawer-content-wrapper {
    max-width: 100% !important;
  }

  /* 页面标题 */
  .page-title {
    font-size: 16px !important;
  }

  /* 步骤条移动端竖向 */
  .ant-steps-horizontal.ant-steps-label-horizontal {
    display: flex !important;
    overflow-x: auto !important;
  }
}

@media (max-width: 480px) {
  .ant-table-thead > tr > th {
    padding: 8px 6px !important;
    font-size: 11px !important;
  }

  .ant-table-tbody > tr > td {
    padding: 8px 6px !important;
    font-size: 11px !important;
  }

  .ant-btn {
    padding: 4px 10px !important;
    font-size: 12px !important;
  }

  .ant-input,
  .ant-select-selector,
  .ant-picker {
    height: 32px !important;
    font-size: 13px !important;
  }
}

/* ========== 39. 动画过渡补充 ========== */

/* 页面切换淡入 */
.ant-layout-content > div {
  animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 弹窗淡入增强 */
.ant-modal {
  animation: modalFadeIn 0.2s ease;
}

@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(8px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* 抽屉滑入 */
.ant-drawer-content-wrapper {
  animation: drawerSlideIn 0.25s ease;
}

@keyframes drawerSlideIn {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

/* 标签页切换 */
.ant-tabs-tabpane {
  animation: fadeIn 0.15s ease;
}

/* ========== 40. 全局滚动条(补充侧边栏) ========== */
.ant-layout-sider ::-webkit-scrollbar {
  width: 4px;
}

.ant-layout-sider ::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05);
}

.ant-layout-sider ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 2px;
}

.ant-layout-sider ::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.3);
}

/* ========== 41. 顶部导航栏(Header) ========== */
.ant-layout-header {
  background: #fff !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
  padding: 0 20px !important;
  height: 56px !important;
  line-height: 56px !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

/* 折叠按钮 */
.ant-layout-header .ant-btn {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ant-layout-header .ant-btn:hover {
  background: #f8faff !important;
  color: #1677ff !important;
}

/* 顶栏用户信息 */
.header-user-info {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  padding: 0 8px !important;
  border-radius: 8px !important;
  transition: all 0.2s ease !important;
}

.header-user-info:hover {
  background: #f8faff !important;
}

/* ========== 42. 颜色变体补充 ========== */

/* 自定义状态标签 */
.status-active,
.status-online {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: #52c41a !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

.status-active::before,
.status-online::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #52c41a;
  box-shadow: 0 0 0 3px rgba(82, 196, 26, 0.15);
}

.status-inactive,
.status-offline {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: #8c8c8c !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

.status-inactive::before,
.status-offline::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d9d9d9;
}

.status-warning {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: #faad14 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

.status-warning::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #faad14;
  box-shadow: 0 0 0 3px rgba(250, 173, 20, 0.15);
}

/* ========== 43. 通用卡片网格 ========== */
.card-grid,
.info-grid,
.detail-grid {
  display: grid !important;
  gap: 12px !important;
}

.card-grid-2 { grid-template-columns: repeat(2, 1fr) !important; }
.card-grid-3 { grid-template-columns: repeat(3, 1fr) !important; }
.card-grid-4 { grid-template-columns: repeat(4, 1fr) !important; }

@media (max-width: 768px) {
  .card-grid-2,
  .card-grid-3,
  .card-grid-4 {
    grid-template-columns: 1fr !important;
  }
}

/* ========== 44. 表格操作列按钮 ========== */
.ant-table-tbody .ant-btn-link {
  padding: 0 6px !important;
  font-size: 13px !important;
}

.ant-table-tbody .ant-btn-link + .ant-btn-link {
  border-left: 1px solid #f0f0f0 !important;
  border-radius: 0 !important;
}

/* ========== 45. 暗色主题的表格斑马纹(可选) ========== */
.ant-table-tbody > tr:nth-child(even) > td {
  background: #fcfcfd !important;
}

.ant-table-tbody > tr:nth-child(even):hover > td {
  background: #f0f7ff !important;
}

/* ========== END ========== */
