/* ========================================
   固全建设OA系统 - 美观增强样式 v3.0
   日期: 2026-07-24
   说明: v1+v2遗漏组件全面补齐
         放在 v2 之后加载
   ======================================== */

/* ========================================
   目录:
   1. Typography 排版(Title/Paragraph/Text/Link)
   2. Space 间距组件
   3. Row/Col 栅格布局
   4. Image 图片预览组件
   5. Cascader 级联选择器
   6. Slider 滑动输入条
   7. Card 变体(small/inner/borderless/cover/meta/loading)
   8. Table 变体(small/middle/filter/selected/sticky/bordered)
   9. Button 变体(sm/lg/dashed/text/icon-only/round/circle)
   10. Modal confirm 确认框
   11. Tag 变体(closable/checkable/preset/ribbon)
   12. Steps 竖向步骤条
   13. Tabs 位置变体(left/right/bottom)
   14. Drawer 变体(placement/extra/footer)
   15. 全局选中文字颜色
   16. 全局 placeholder 颜色
   17. 全局 disabled 禁用状态
   18. 全局 focus-visible 聚焦样式
   19. Spin 遮罩层
   20. 404/500 错误页
   21. PDF/文件预览区域
   22. Divider 带文字变体
   23. Form inline 行内表单
   24. 表格筛选下拉面板
   25. 输入计数器/密码强度
   26. Badge ribbon 缎带
   27. Skeleton 变体(avatar/button/image)
   28. Progress 圆形变体
   29. Tree 目录树变体
   30. Statistic Countdown 倒计时
   31. Calendar 全屏日历
   32. Float Button 浮动按钮
   33. 附件预览卡片
   34. 文件类型图标颜色
   35. 密码输入框/验证码
   36. 表格行展开内容
   37. Select clear/suffix图标
   38. Input prefix/suffix图标
   39. Tag 预设颜色变体
   40. Dropdown 按钮变体
   41. Collapse borderless变体
   42. Tabs line变体
   43. Card Meta
   44. 全局过渡动画优化
   45. 补充响应式
   ======================================== */


/* ========== 1. Typography 排版 ========== */
.ant-typography {
  color: #262626 !important;
}

h1.ant-typography,
.ant-typography h1 {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  margin-bottom: 16px !important;
}

h2.ant-typography,
.ant-typography h2 {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  margin-bottom: 12px !important;
}

h3.ant-typography,
.ant-typography h3 {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #1a1a2e !important;
  margin-bottom: 10px !important;
}

h4.ant-typography,
.ant-typography h4 {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #1a1a2e !important;
  margin-bottom: 8px !important;
}

h5.ant-typography,
.ant-typography h5 {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

.ant-typography paragragh {
  margin-bottom: 12px !important;
  line-height: 1.7 !important;
}

/* 可复制文字 */
.ant-typography-copy {
  color: #1677ff !important;
  transition: all 0.2s ease !important;
}

.ant-typography-copy:hover {
  color: #4096ff !important;
}

/* 可编辑文字 */
.ant-typography-edit {
  color: #1677ff !important;
}

/* 省略号展开 */
.ant-typography-expand {
  color: #1677ff !important;
}

/* ========== 2. Space 间距组件 ========== */
.ant-space {
  gap: 8px !important;
}

.ant-space-vertical {
  gap: 8px !important;
}

.ant-space-align-center {
  align-items: center !important;
}

.ant-space-align-start {
  align-items: flex-start !important;
}

.ant-space-align-end {
  align-items: flex-end !important;
}

.ant-space-item {
  transition: all 0.2s ease !important;
}

/* ========== 3. Row/Col 栅格布局 ========== */
.ant-row {
  margin-left: -6px !important;
  margin-right: -6px !important;
}

.ant-col {
  padding-left: 6px !important;
  padding-right: 6px !important;
}

/* ========== 4. Image 图片预览 ========== */
.ant-image {
  border-radius: 8px !important;
  overflow: hidden;
  display: inline-block !important;
  transition: all 0.2s ease !important;
}

.ant-image:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1) !important;
}

.ant-image-img {
  border-radius: 8px !important;
  transition: all 0.25s ease !important;
}

.ant-image:hover .ant-image-img {
  transform: scale(1.02);
}

/* 图片预览遮罩 */
.ant-image-mask {
  border-radius: 8px !important;
  background: rgba(0, 0, 0, 0.35) !important;
  opacity: 0;
  transition: opacity 0.2s ease !important;
}

.ant-image:hover .ant-image-mask {
  opacity: 1;
}

.ant-image-mask-info {
  color: #fff !important;
  font-size: 13px !important;
}

.ant-image-mask-info .anticon {
  margin-right: 4px !important;
}

/* 图片预览大图浮层 */
.ant-image-preview {
  z-index: 1050 !important;
}

.ant-image-preview-img {
  border-radius: 4px !important;
}

.ant-image-preview-operations {
  background: rgba(0, 0, 0, 0.5) !important;
  backdrop-filter: blur(8px);
}

/* ========== 5. Cascader 级联选择器 ========== */
.ant-cascader .ant-select-selector {
  border-radius: 8px !important;
  border-color: #e8eef7 !important;
  transition: all 0.2s ease !important;
}

.ant-cascader:hover .ant-select-selector {
  border-color: #4096ff !important;
}

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

/* 级联面板 */
.ant-cascader-menus {
  border-radius: 10px !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1) !important;
  padding: 4px !important;
}

.ant-cascader-menu {
  border-right: 1px solid #f0f0f0 !important;
  padding: 4px !important;
}

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

.ant-cascader-menu-item:hover {
  background: #f0f7ff !important;
}

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

.ant-cascader-menu-item-selected {
  background: #e8f0ff !important;
  color: #1677ff !important;
  font-weight: 600 !important;
}

/* ========== 6. Slider 滑动输入条 ========== */
.ant-slider-track {
  background: linear-gradient(90deg, #1677ff, #4096ff) !important;
  border-radius: 100px !important;
}

.ant-slider:hover .ant-slider-track {
  background: linear-gradient(90deg, #4096ff, #69b1ff) !important;
}

.ant-slider-handle {
  border-color: #1677ff !important;
  box-shadow: 0 2px 6px rgba(22, 119, 255, 0.2) !important;
  transition: all 0.2s ease !important;
}

.ant-slider-handle:hover {
  border-color: #4096ff !important;
  box-shadow: 0 0 0 5px rgba(22, 119, 255, 0.12) !important;
}

.ant-slider-handle-dragging {
  box-shadow: 0 0 0 8px rgba(22, 119, 255, 0.16) !important;
}

.ant-slider-rail {
  background: #f0f0f0 !important;
  border-radius: 100px !important;
}

/* ========== 7. Card 变体 ========== */

/* 小卡片 */
.ant-card-size-small .ant-card-head {
  min-height: 36px !important;
  padding: 0 12px !important;
}

.ant-card-size-small .ant-card-head-title {
  font-size: 14px !important;
  padding: 8px 0 !important;
}

.ant-card-size-small .ant-card-body {
  padding: 12px !important;
}

/* 内部卡片 */
.ant-card-type-inner .ant-card-head {
  background: #fafafa !important;
  padding: 0 12px !important;
}

.ant-card-type-inner .ant-card-head-title {
  font-size: 14px !important;
}

/* 无边框卡片 */
.ant-card-borderless {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
  border: none !important;
}

.ant-card-borderless .ant-card-body {
  padding: 20px !important;
}

/* 卡片封面图片 */
.ant-card-cover {
  border-radius: 12px 12px 0 0 !important;
  overflow: hidden;
}

.ant-card-cover img {
  transition: transform 0.3s ease !important;
}

.ant-card-hoverable:hover .ant-card-cover img {
  transform: scale(1.03);
}

/* 悬浮卡片 */
.ant-card-hoverable {
  transition: all 0.3s ease !important;
}

.ant-card-hoverable:hover {
  box-shadow: 0 8px 24px rgba(22, 119, 255, 0.12) !important;
  transform: translateY(-2px);
}

/* 加载中卡片 */
.ant-card-loading .ant-card-body {
  padding: 16px 20px !important;
}

/* ========== 8. Table 变体 ========== */

/* 紧凑型表格 */
.ant-table-small .ant-table-thead > tr > th {
  padding: 8px 8px !important;
  font-size: 13px !important;
}

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

/* 中型表格 */
.ant-table-middle .ant-table-thead > tr > th {
  padding: 10px 12px !important;
}

.ant-table-middle .ant-table-tbody > tr > td {
  padding: 10px 12px !important;
}

/* 带边框表格增强 */
.ant-table-bordered > .ant-table-container {
  border-radius: 10px !important;
  overflow: hidden;
}

.ant-table-bordered .ant-table-thead > tr > th {
  border-right: 1px solid #e8eef7 !important;
}

.ant-table-bordered .ant-table-tbody > tr > td {
  border-right: 1px solid #f0f0f0 !important;
}

.ant-table-bordered .ant-table-tbody > tr > td:last-child {
  border-right: none !important;
}

.ant-table-bordered .ant-table-thead > tr > th:last-child {
  border-right: none !important;
}

/* 行选中状态 */
.ant-table-tbody > tr.ant-table-row-selected > td {
  background: #e8f0ff !important;
}

.ant-table-tbody > tr.ant-table-row-selected:hover > td {
  background: #d6e4ff !important;
}

/* 固定表头 */
.ant-table-sticky {
  border-radius: 10px !important;
  overflow: hidden;
}

.ant-table-sticky-header {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
}

/* 表格底部 */
.ant-table-footer {
  background: #f8faff !important;
  border-top: 2px solid #e8eef7 !important;
  padding: 10px 16px !important;
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

/* 表格标题栏 */
.ant-table-title {
  background: #f8faff !important;
  border-bottom: 1px solid #e8eef7 !important;
  padding: 12px 16px !important;
  font-weight: 600 !important;
  color: #1a1a2e !important;
}

/* 表格列拖拽手柄 */
.ant-table-drag-handle {
  color: #bfbfbf !important;
  transition: color 0.2s ease !important;
  cursor: move !important;
}

.ant-table-drag-handle:hover {
  color: #1677ff !important;
}

/* ========== 9. Button 变体 ========== */

/* 小按钮 */
.ant-btn-sm {
  border-radius: 6px !important;
  font-size: 12px !important;
  padding: 0 8px !important;
}

/* 大按钮 */
.ant-btn-lg {
  border-radius: 10px !important;
  font-size: 16px !important;
  padding: 0 20px !important;
}

/* 虚线按钮 */
.ant-btn-dashed {
  border-radius: 8px !important;
  border-style: dashed !important;
  border-color: #d6e4ff !important;
  color: #1677ff !important;
  transition: all 0.2s ease !important;
}

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

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

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

.ant-btn-text:active {
  background: #f0f7ff !important;
}

/* 填充按钮(非primary实心) */
.ant-btn-filled {
  border-radius: 8px !important;
}

/* 纯图标按钮 */
.ant-btn-icon-only {
  border-radius: 8px !important;
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.ant-btn-icon-only.ant-btn-sm {
  width: 24px !important;
  height: 24px !important;
}

.ant-btn-icon-only.ant-btn-lg {
  width: 40px !important;
  height: 40px !important;
}

/* 圆形按钮 */
.ant-btn-circle {
  border-radius: 50% !important;
}

.ant-btn-circle.ant-btn-sm {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
}

.ant-btn-circle.ant-btn-lg {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
}

/* 圆角按钮 */
.ant-btn-round {
  border-radius: 100px !important;
}

/* 按钮组 */
.ant-btn-group .ant-btn {
  border-radius: 0 !important;
}

.ant-btn-group .ant-btn:first-child {
  border-radius: 8px 0 0 8px !important;
}

.ant-btn-group .ant-btn:last-child {
  border-radius: 0 8px 8px 0 !important;
}

.ant-btn-group .ant-btn:only-child {
  border-radius: 8px !important;
}

/* loading按钮 */
.ant-btn-loading {
  opacity: 0.8 !important;
}

/* 禁用按钮 */
.ant-btn[disabled],
.ant-btn.ant-btn-disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  background: #f5f5f5 !important;
  color: #bfbfbf !important;
  border-color: #d9d9d9 !important;
  box-shadow: none !important;
}

/* ========== 10. Modal confirm 确认框 ========== */
.ant-modal-confirm .ant-modal-content {
  border-radius: 12px !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

.ant-modal-confirm .ant-modal-body {
  padding: 24px !important;
}

.ant-modal-confirm-title {
  font-weight: 700 !important;
  color: #1a1a2e !important;
  font-size: 16px !important;
  margin-bottom: 8px !important;
}

.ant-modal-confirm-content {
  color: #595959 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

.ant-modal-confirm-body > .anticon {
  font-size: 22px !important;
  margin-top: 2px !important;
}

.ant-modal-confirm-success .anticon {
  color: #52c41a !important;
}

.ant-modal-confirm-warning .anticon {
  color: #faad14 !important;
}

.ant-modal-confirm-error .anticon {
  color: #ff4d4f !important;
}

.ant-modal-confirm-info .anticon {
  color: #1677ff !important;
}

.ant-modal-confirm-confirm .anticon {
  color: #faad14 !important;
}

.ant-modal-confirm-btns {
  margin-top: 20px !important;
}

/* ========== 11. Tag 变体 ========== */

/* 可关闭标签 */
.ant-tag-close-icon {
  margin-left: 4px !important;
  color: inherit !important;
  opacity: 0.6 !important;
  transition: all 0.2s ease !important;
}

.ant-tag-close-icon:hover {
  opacity: 1 !important;
}

/* CheckableTag 可选标签 */
.ant-tag-checkable {
  border-radius: 6px !important;
  padding: 2px 10px !important;
  transition: all 0.2s ease !important;
  background: #f5f5f5 !important;
  color: #595959 !important;
  border: none !important;
}

.ant-tag-checkable:hover {
  background: #e8eef7 !important;
  color: #1677ff !important;
}

.ant-tag-checkable-checked {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  color: #fff !important;
}

/* 预设颜色变体 */
.ant-tag-success {
  background: rgba(82, 196, 26, 0.1) !important;
  color: #389e0d !important;
  border: none !important;
  border-radius: 6px !important;
}

.ant-tag-error {
  background: rgba(255, 77, 79, 0.1) !important;
  color: #cf1322 !important;
  border: none !important;
  border-radius: 6px !important;
}

.ant-tag-processing {
  background: rgba(22, 119, 255, 0.1) !important;
  color: #0958d9 !important;
  border: none !important;
  border-radius: 6px !important;
}

.ant-tag-warning {
  background: rgba(250, 173, 20, 0.1) !important;
  color: #d48806 !important;
  border: none !important;
  border-radius: 6px !important;
}

.ant-tag-default {
  background: #f5f5f5 !important;
  color: #595959 !important;
  border: none !important;
  border-radius: 6px !important;
}

/* 颜色变体补充 */
.ant-tag-magenta {
  background: rgba(235, 47, 150, 0.1) !important;
  color: #c41d7f !important;
  border: none !important;
}

.ant-tag-volcano {
  background: rgba(250, 84, 28, 0.1) !important;
  color: #d4380d !important;
  border: none !important;
}

.ant-tag-lime {
  background: rgba(163, 230, 53, 0.15) !important;
  color: #7cb305 !important;
  border: none !important;
}

.ant-tag-geekblue {
  background: rgba(47, 84, 235, 0.1) !important;
  color: #2f54eb !important;
  border: none !important;
}

/* ========== 12. Steps 竖向步骤条 ========== */
.ant-steps-vertical .ant-steps-item {
  padding-bottom: 20px !important;
}

.ant-steps-vertical .ant-steps-item-tail {
  margin-left: 22px !important;
  padding: 12px 0 4px !important;
}

.ant-steps-vertical .ant-steps-item-content {
  min-height: 48px !important;
}

/* ========== 13. Tabs 位置变体 ========== */

/* 左侧Tabs */
.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab,
.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab {
  padding: 8px 16px !important;
  text-align: left !important;
}

.ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-active,
.ant-tabs-right > .ant-tabs-nav .ant-tabs-tab-active {
  font-weight: 600 !important;
}

.ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar,
.ant-tabs-right > .ant-tabs-nav .ant-tabs-ink-bar {
  width: 3px !important;
  border-radius: 2px !important;
}

/* 底部Tabs */
.ant-tabs-bottom > .ant-tabs-nav {
  border-top: 1px solid #e8eef7 !important;
  border-bottom: none !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* line变体 */
.ant-tabs-line > .ant-tabs-nav .ant-tabs-nav-wrap::after {
  background: #e8eef7 !important;
}

/* ========== 14. Drawer 变体 ========== */

/* 抽屉额外区域 */
.ant-drawer-extra {
  color: #595959 !important;
  font-size: 14px !important;
}

/* 抽屉底部 */
.ant-drawer-footer {
  border-top: 1px solid #f0f0f0 !important;
  padding: 12px 24px !important;
  background: #fafafa !important;
}

/* 抽屉关闭按钮 */
.ant-drawer-close {
  color: #8c8c8c !important;
  transition: all 0.2s ease !important;
}

.ant-drawer-close:hover {
  color: #1677ff !important;
  background: #f0f7ff !important;
  border-radius: 6px !important;
}

/* ========== 15. 全局选中文字颜色 ========== */
::selection {
  background: rgba(22, 119, 255, 0.15) !important;
  color: #1677ff !important;
}

::-moz-selection {
  background: rgba(22, 119, 255, 0.15) !important;
  color: #1677ff !important;
}

/* ========== 16. 全局 placeholder 颜色 ========== */
.ant-input::placeholder,
.ant-input-number-input::placeholder,
textarea.ant-input::placeholder,
.ant-picker input::placeholder,
.ant-select-selection-placeholder {
  color: #bfbfbf !important;
  opacity: 1 !important;
}

/* ========== 17. 全局 disabled 禁用状态 ========== */
.ant-input[disabled],
.ant-input-number-disabled,
.ant-select-disabled .ant-select-selector,
.ant-picker-disabled,
.ant-radio-disabled + span,
.ant-checkbox-disabled + span,
.ant-switch-disabled,
.ant-btn[disabled] {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  background: #f5f5f5 !important;
  color: #bfbfbf !important;
}

/* ========== 18. 全局 focus-visible 聚焦样式 ========== */
*:focus-visible {
  outline: 2px solid rgba(22, 119, 255, 0.3) !important;
  outline-offset: 1px !important;
}

.ant-btn:focus-visible {
  outline: 2px solid rgba(22, 119, 255, 0.4) !important;
  outline-offset: 2px !important;
  border-radius: 8px !important;
}

/* ========== 19. Spin 遮罩层 ========== */
.ant-spin-nested-loading > div > .ant-spin {
  max-height: none !important;
}

.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
  top: 50% !important;
  position: absolute !important;
}

.ant-spin-blur {
  opacity: 0.4 !important;
  filter: blur(0.5px);
  pointer-events: none !important;
  user-select: none !important;
}

/* 大尺寸Spin */
.ant-spin-lg .ant-spin-dot {
  font-size: 32px !important;
}

/* ========== 20. 404/500 错误页 ========== */
.ant-result-error .ant-result-icon > .anticon {
  font-size: 72px !important;
  color: #ff4d4f !important;
}

.ant-result-success .ant-result-icon > .anticon {
  font-size: 72px !important;
  color: #52c41a !important;
}

.ant-result-warning .ant-result-icon > .anticon {
  font-size: 72px !important;
  color: #faad14 !important;
}

.ant-result-info .ant-result-icon > .anticon {
  font-size: 72px !important;
  color: #1677ff !important;
}

/* 404专用 */
.error-page,
.page-404,
.page-500 {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 400px !important;
  padding: 40px !important;
}

.error-page-title {
  font-size: 80px !important;
  font-weight: 800 !important;
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* ========== 21. PDF/文件预览区域 ========== */
.file-preview-container,
.pdf-preview-wrapper,
.document-preview {
  border-radius: 10px !important;
  border: 1px solid #e8eef7 !important;
  overflow: hidden !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}

.file-preview-container iframe,
.pdf-preview-wrapper iframe,
.document-preview iframe,
.file-preview-container embed,
.pdf-preview-wrapper embed {
  border: none !important;
  border-radius: 10px !important;
}

/* 文件预览工具栏 */
.file-preview-toolbar {
  background: #f8faff !important;
  border-bottom: 1px solid #e8eef7 !important;
  padding: 8px 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

/* ========== 22. Divider 带文字变体 ========== */
.ant-divider-with-text {
  font-weight: 600 !important;
  color: #1a1a2e !important;
  font-size: 14px !important;
}

.ant-divider-with-text::before,
.ant-divider-with-text::after {
  border-top-color: #e8eef7 !important;
}

.ant-divider-with-text-left::before {
  border-top-color: transparent !important;
}

.ant-divider-with-text-right::after {
  border-top-color: transparent !important;
}

/* 竖向分割线 */
.ant-divider-vertical {
  height: 1em !important;
  margin: 0 8px !important;
}

/* ========== 23. Form inline 行内表单 ========== */
.ant-form-inline .ant-form-item {
  margin-right: 16px !important;
  margin-bottom: 12px !important;
}

.ant-form-inline .ant-form-item:last-child {
  margin-right: 0 !important;
}

/* 垂直表单标签 */
.ant-form-vertical .ant-form-item-label {
  padding-bottom: 6px !important;
}

.ant-form-vertical .ant-form-item-label > label {
  font-size: 13px !important;
}

/* ========== 24. 表格筛选下拉面板 ========== */
.ant-table-filter-dropdown {
  border-radius: 10px !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1) !important;
  padding: 8px !important;
  min-width: 120px !important;
}

.ant-table-filter-dropdown .ant-checkbox-wrapper {
  padding: 4px 8px !important;
  border-radius: 6px !important;
  transition: all 0.15s ease !important;
  width: 100% !important;
}

.ant-table-filter-dropdown .ant-checkbox-wrapper:hover {
  background: #f0f7ff !important;
}

.ant-table-filter-dropdown-btns {
  border-top: 1px solid #f0f0f0 !important;
  padding-top: 8px !important;
  margin-top: 8px !important;
}

/* 筛选搜索框 */
.ant-table-filter-dropdown .ant-input {
  margin-bottom: 8px !important;
}

/* 列设置弹出 */
.ant-table-column-setting {
  padding: 8px !important;
}

.ant-table-column-setting-list {
  max-height: 300px !important;
  overflow-y: auto !important;
}

/* ========== 25. 输入计数器/密码强度 ========== */

/* 输入计数器 */
.ant-input-show-count::after {
  color: #bfbfbf !important;
  font-size: 12px !important;
}

.ant-input-show-count {
  padding-bottom: 16px !important;
}

/* 密码输入框 */
.ant-input-password .ant-input-suffix {
  color: #8c8c8c !important;
  transition: color 0.2s ease !important;
}

.ant-input-password .ant-input-suffix:hover {
  color: #1677ff !important;
}

/* 密码强度条 */
.password-strength-bar {
  border-radius: 100px !important;
  height: 4px !important;
  margin-top: 6px !important;
  transition: all 0.3s ease !important;
}

.password-strength-weak {
  background: #ff4d4f !important;
}

.password-strength-medium {
  background: #faad14 !important;
}

.password-strength-strong {
  background: #52c41a !important;
}

/* ========== 26. Badge ribbon 缎带 ========== */
.ant-ribbon {
  border-radius: 4px !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
}

.ant-ribbon-corner {
  color: transparent !important;
}

/* ========== 27. Skeleton 变体 ========== */

/* 头像骨架屏 */
.ant-skeleton-avatar {
  border-radius: 50% !important;
}

/* 按钮骨架屏 */
.ant-skeleton-button {
  border-radius: 8px !important;
}

/* 图片骨架屏 */
.ant-skeleton-image {
  border-radius: 8px !important;
  background: #f0f0f0 !important;
}

.ant-skeleton-image svg {
  color: #d9d9d9 !important;
}

/* ========== 28. Progress 圆形变体 ========== */
.ant-progress-circle .ant-progress-circle-trail {
  stroke: #f0f0f0 !important;
}

.ant-progress-circle .ant-progress-circle-path {
  stroke: url(#progressGradient) !important;
  transition: stroke-dashoffset 0.3s ease !important;
}

.ant-progress-success > .ant-progress-outer > .ant-progress-inner > .ant-progress-bg {
  background: linear-gradient(90deg, #52c41a, #73d13d) !important;
}

.ant-progress-status-exception .ant-progress-bg {
  background: linear-gradient(90deg, #ff4d4f, #ff7875) !important;
}

.ant-progress-status-active .ant-progress-bg::before {
  background: rgba(255, 255, 255, 0.3) !important;
}

/* ========== 29. Tree 目录树变体 ========== */

/* 目录树连线 */
.ant-tree-show-line .ant-tree-treenode-switcher-leaf-line::before {
  border-right-color: #d9d9d9 !important;
}

.ant-tree-show-line .ant-tree-treenode-switcher-leaf-line::after {
  border-bottom-color: #d9d9d9 !important;
}

/* 可拖拽树节点 */
.ant-tree-treenode-draggable {
  transition: all 0.15s ease !important;
}

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

/* 树节点拖拽指示线 */
.ant-tree-drop-indicator {
  background: #1677ff !important;
  height: 2px !important;
  border-radius: 1px !important;
}

/* 虚拟滚动树 */
.ant-tree .ant-tree-list-holder {
  scrollbar-width: thin !important;
}

/* ========== 30. Statistic Countdown 倒计时 ========== */
.ant-statistic-content-countdown {
  font-family: 'SF Mono', 'Roboto Mono', monospace !important;
  font-weight: 700 !important;
}

/* ========== 31. Calendar 全屏日历 ========== */
.ant-picker-calendar-full .ant-picker-panel {
  border-radius: 10px !important;
  overflow: hidden;
  border: 1px solid #e8eef7 !important;
}

.ant-picker-calendar-full .ant-picker-calendar-date {
  border: 1px solid #f0f0f0 !important;
  border-radius: 8px !important;
  margin: 2px !important;
  transition: all 0.2s ease !important;
  min-height: 80px !important;
}

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

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

/* 日历事件标记 */
.ant-picker-calendar-full .ant-picker-calendar-date-content {
  height: auto !important;
  overflow-y: auto !important;
}

.calendar-event-tag {
  border-radius: 4px !important;
  padding: 1px 6px !important;
  font-size: 11px !important;
  margin-bottom: 2px !important;
  display: block !important;
}

/* ========== 32. Float Button 浮动按钮 ========== */
.ant-float-btn {
  border-radius: 50% !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
  transition: all 0.3s ease !important;
}

.ant-float-btn:hover {
  box-shadow: 0 6px 20px rgba(22, 119, 255, 0.2) !important;
  transform: scale(1.05);
}

.ant-float-btn-primary {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
}

.ant-float-btn-group {
  gap: 8px !important;
}

/* ========== 33. 附件预览卡片 ========== */
.attachment-card,
.file-item,
.attachment-item {
  border-radius: 8px !important;
  border: 1px solid #e8eef7 !important;
  padding: 10px 14px !important;
  transition: all 0.2s ease !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.attachment-card:hover,
.file-item:hover,
.attachment-item:hover {
  border-color: #4096ff !important;
  background: #f8faff !important;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.08) !important;
}

.attachment-name,
.file-name {
  flex: 1 !important;
  color: #262626 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

.attachment-size,
.file-size {
  color: #8c8c8c !important;
  font-size: 12px !important;
}

.attachment-actions,
.file-actions {
  display: flex !important;
  gap: 4px !important;
}

/* ========== 34. 文件类型图标颜色 ========== */
.file-icon-pdf {
  color: #ff4d4f !important;
}

.file-icon-word,
.file-icon-doc,
.file-icon-docx {
  color: #2f54eb !important;
}

.file-icon-excel,
.file-icon-xls,
.file-icon-xlsx {
  color: #52c41a !important;
}

.file-icon-ppt,
.file-icon-pptx {
  color: #fa8c16 !important;
}

.file-icon-image,
.file-icon-img,
.file-icon-jpg,
.file-icon-png {
  color: #13c2c2 !important;
}

.file-icon-zip,
.file-icon-rar {
  color: #722ed1 !important;
}

.file-icon-txt {
  color: #8c8c8c !important;
}

.file-icon-default {
  color: #bfbfbf !important;
}

/* ========== 35. 密码输入框/验证码 ========== */

/* 验证码输入 */
.verification-code-input,
.captcha-input {
  border-radius: 8px !important;
  letter-spacing: 4px !important;
  font-weight: 600 !important;
}

/* 验证码图片 */
.captcha-image,
.verification-image {
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border: 1px solid #e8eef7 !important;
}

.captcha-image:hover {
  border-color: #4096ff !important;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.1) !important;
}

/* ========== 36. 表格行展开内容 ========== */
.ant-table-expanded-row > td {
  background: #fafcff !important;
  padding: 16px !important;
}

.ant-table-expanded-row > td .ant-card {
  border-radius: 8px !important;
  box-shadow: none !important;
  border: 1px solid #e8eef7 !important;
}

/* 展开行缩进 */
.ant-table-row-indent {
  height: 1px !important;
}

/* ========== 37. Select clear/suffix图标 ========== */
.ant-select .ant-select-clear {
  background: #fff !important;
  border-radius: 50% !important;
  color: #bfbfbf !important;
  transition: all 0.2s ease !important;
  font-size: 12px !important;
}

.ant-select .ant-select-clear:hover {
  background: #f0f0f0 !important;
  color: #595959 !important;
}

.ant-select .ant-select-arrow {
  color: #bfbfbf !important;
  transition: color 0.2s ease !important;
}

.ant-select:hover .ant-select-arrow {
  color: #8c8c8c !important;
}

.ant-select-focused .ant-select-arrow {
  color: #1677ff !important;
}

/* 多选标签关闭按钮 */
.ant-select-multiple .ant-select-selection-item-remove {
  color: inherit !important;
  opacity: 0.5 !important;
  transition: opacity 0.2s ease !important;
}

.ant-select-multiple .ant-select-selection-item-remove:hover {
  opacity: 1 !important;
}

/* ========== 38. Input prefix/suffix图标 ========== */
.ant-input-prefix,
.ant-input-suffix {
  color: #bfbfbf !important;
  transition: color 0.2s ease !important;
}

.ant-input-affix-wrapper:hover .ant-input-prefix {
  color: #8c8c8c !important;
}

.ant-input-affix-wrapper-focused .ant-input-prefix {
  color: #1677ff !important;
}

/* ========== 39. Tag 预设颜色变体补充 ========== */

/* 色板 */
.ant-tag-pink {
  background: rgba(235, 47, 150, 0.1) !important;
  color: #eb2f96 !important;
  border: none !important;
}

.ant-tag-red {
  background: rgba(255, 77, 79, 0.1) !important;
  color: #ff4d4f !important;
  border: none !important;
}

.ant-tag-orange {
  background: rgba(250, 140, 22, 0.1) !important;
  color: #fa8c16 !important;
  border: none !important;
}

.ant-tag-yellow {
  background: rgba(250, 204, 21, 0.12) !important;
  color: #d4b106 !important;
  border: none !important;
}

.ant-tag-green {
  background: rgba(82, 196, 26, 0.1) !important;
  color: #52c41a !important;
  border: none !important;
}

.ant-tag-cyan {
  background: rgba(19, 194, 194, 0.1) !important;
  color: #13c2c2 !important;
  border: none !important;
}

.ant-tag-blue {
  background: rgba(22, 119, 255, 0.1) !important;
  color: #1677ff !important;
  border: none !important;
}

.ant-tag-purple {
  background: rgba(114, 46, 209, 0.1) !important;
  color: #722ed1 !important;
  border: none !important;
}

.ant-tag-geekblue {
  background: rgba(47, 84, 235, 0.1) !important;
  color: #2f54eb !important;
  border: none !important;
}

/* ========== 40. Dropdown 按钮变体 ========== */
.ant-dropdown-button .ant-btn:first-child {
  border-radius: 8px 0 0 8px !important;
}

.ant-dropdown-button .ant-btn:last-child {
  border-radius: 0 8px 8px 0 !important;
}

/* 分割线按钮 */
.ant-dropdown-button .ant-btn:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
}

/* ========== 41. Collapse borderless变体 ========== */
.ant-collapse-borderless {
  background: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
}

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

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

/* ghost变体 */
.ant-collapse-ghost {
  background: transparent !important;
}

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

.ant-collapse-ghost .ant-collapse-header {
  padding: 8px 0 !important;
}

/* ========== 42. Tabs line变体补充 ========== */
.ant-tabs-top > .ant-tabs-nav::before {
  border-bottom-color: #e8eef7 !important;
}

.ant-tabs-bottom > .ant-tabs-nav::before {
  border-top-color: #e8eef7 !important;
}

/* ========== 43. Card Meta ========== */
.ant-card-meta {
  padding: 0 !important;
}

.ant-card-meta-title {
  font-weight: 600 !important;
  color: #1a1a2e !important;
  font-size: 15px !important;
  margin-bottom: 4px !important;
}

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

.ant-card-meta-avatar {
  padding-right: 12px !important;
}

/* ========== 44. 全局过渡动画优化 ========== */

/* 全局统一过渡时间 */
.ant-input,
.ant-input-number,
.ant-select-selector,
.ant-picker,
.ant-input-affix-wrapper {
  transition: all 0.2s ease !important;
}

/* 卡片hover全局过渡 */
.ant-card {
  transition: all 0.3s ease !important;
}

/* 表格行hover过渡 */
.ant-table-tbody > tr > td {
  transition: background 0.2s ease !important;
}

/* 标签页切换动画 */
.ant-tabs-content-holder {
  transition: opacity 0.15s ease !important;
}

/* 侧边栏收起/展开动画 */
.ant-layout-sider {
  transition: all 0.2s ease !important;
}

/* ========== 45. 补充响应式 ========== */
@media (max-width: 1200px) {
  .ant-row {
    margin-left: -4px !important;
    margin-right: -4px !important;
  }

  .ant-col {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}

@media (max-width: 768px) {
  /* 表单标签移动端上方 */
  .ant-form-inline .ant-form-item {
    width: 100% !important;
    margin-right: 0 !important;
  }

  /* Tabs移动端滚动 */
  .ant-tabs-nav {
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  .ant-tabs-nav::-webkit-scrollbar {
    display: none !important;
  }

  /* Steps移动端竖向 */
  .ant-steps-horizontal {
    overflow-x: auto !important;
  }

  /* Drawer移动端全宽 */
  .ant-drawer-content-wrapper {
    width: 100% !important;
  }

  /* 统计数字移动端缩小 */
  .ant-statistic-content {
    font-size: 20px !important;
  }

  /* Modal移动端 */
  .ant-modal {
    top: 8px !important;
    padding-bottom: 0 !important;
  }

  .ant-modal .ant-modal-body {
    max-height: calc(100vh - 120px) !important;
    overflow-y: auto !important;
  }

  /* Descriptions移动端竖排 */
  .ant-descriptions-bordered .ant-descriptions-item-label {
    width: 100px !important;
    font-size: 12px !important;
  }

  /* 金额展示 */
  .finance-item-value {
    font-size: 16px !important;
  }

  /* 浮动按钮移动端 */
  .ant-float-btn {
    width: 40px !important;
    height: 40px !important;
  }
}

@media (max-width: 480px) {
  /* 表格移动端极小屏 */
  .ant-table-small .ant-table-thead > tr > th {
    padding: 6px 4px !important;
    font-size: 11px !important;
  }

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

  /* 按钮移动端 */
  .ant-btn {
    padding: 4px 8px !important;
    font-size: 12px !important;
  }

  .ant-btn-lg {
    padding: 6px 12px !important;
    font-size: 14px !important;
  }

  /* 卡片间距 */
  .ant-card-body {
    padding: 12px !important;
  }

  /* 分页器 */
  .ant-pagination-item,
  .ant-pagination-prev .ant-pagination-item-link,
  .ant-pagination-next .ant-pagination-item-link {
    min-width: 28px !important;
    height: 28px !important;
    line-height: 26px !important;
  }

  /* 步骤条图标 */
  .ant-steps-item-icon {
    width: 24px !important;
    height: 24px !important;
    line-height: 24px !important;
    font-size: 12px !important;
  }
}

/* ========== 46. 补充: 水印/全局遮罩 ========== */
.ant-watermark {
  z-index: 1 !important;
  pointer-events: none !important;
}

/* ========== 47. 补充: App容器 ========== */
.ant-app {
  height: 100% !important;
}

/* ========== 48. 补充: 消息提示图标 ========== */
.ant-message-notice-content .anticon {
  margin-right: 8px !important;
  font-size: 16px !important;
}

.ant-message-success .anticon {
  color: #52c41a !important;
}

.ant-message-error .anticon {
  color: #ff4d4f !important;
}

.ant-message-warning .anticon {
  color: #faad14 !important;
}

.ant-message-info .anticon,
.ant-message-loading .anticon {
  color: #1677ff !important;
}

/* ========== 49. 补充: 卡片loading遮罩 ========== */
.ant-card-loading-content {
  padding: 16px 20px !important;
}

/* ========== 50. 补充: 表格虚拟滚动 ========== */
.ant-table-tbody-virtual-holder {
  scrollbar-width: thin !important;
}

.ant-table-tbody-virtual-holder::-webkit-scrollbar {
  width: 6px !important;
}

.ant-table-tbody-virtual-holder::-webkit-scrollbar-thumb {
  background: #c7c7c7 !important;
  border-radius: 3px !important;
}

.ant-table-tbody-virtual-holder::-webkit-scrollbar-thumb:hover {
  background: #4096ff !important;
}

/* ========== 51. 补充: Select分组 ========== */
.ant-select-item-group {
  color: #8c8c8c !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 4px 12px !important;
}

/* ========== 52. 补充: DatePicker底部 ========== */
.ant-picker-footer {
  border-top: 1px solid #f0f0f0 !important;
  padding: 8px !important;
}

.ant-picker-now-btn {
  color: #1677ff !important;
  font-weight: 500 !important;
  transition: color 0.2s ease !important;
}

.ant-picker-now-btn:hover {
  color: #4096ff !important;
}

/* ========== 53. 补充: 全局链接 ========== */
.ant-typography a,
a {
  color: #1677ff !important;
  transition: color 0.2s ease !important;
  text-decoration: none !important;
}

.ant-typography a:hover,
a:hover {
  color: #4096ff !important;
}

/* ========== 54. 补充: 金额输入框 ========== */
.ant-input-number-input {
  font-weight: 600 !important;
}

.ant-input-number-affix-wrapper {
  border-radius: 8px !important;
}

/* ========== 55. 补充: 表格空数据图标 ========== */
.ant-table-placeholder .ant-empty-image {
  height: 60px !important;
  opacity: 0.6;
}

/* ========== 56. 补充: Modal最大高度 ========== */
.ant-modal-body {
  max-height: 60vh !important;
  overflow-y: auto !important;
}

.ant-modal-body::-webkit-scrollbar {
  width: 6px !important;
}

.ant-modal-body::-webkit-scrollbar-thumb {
  background: #d9d9d9 !important;
  border-radius: 3px !important;
}

.ant-modal-body::-webkit-scrollbar-thumb:hover {
  background: #bfbfbf !important;
}

/* ========== 57. 补充: 全局滚动条Firefox ========== */
* {
  scrollbar-width: thin !important;
  scrollbar-color: #c7c7c7 transparent !important;
}

/* ========== 58. 补充: 颜色面板(颜色选择器) ========== */
.ant-color-picker {
  border-radius: 8px !important;
}

/* ========== 59. 补充: Segmented 分段控制器 ========== */
.ant-segmented {
  border-radius: 8px !important;
  background: #f5f5f5 !important;
  padding: 2px !important;
}

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

.ant-segmented-item:hover {
  color: #1677ff !important;
}

.ant-segmented-item-selected {
  background: #fff !important;
  color: #1677ff !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06) !important;
}

/* ========== 60. 补充: Mentions 提及组件 ========== */
.ant-mentions {
  border-radius: 8px !important;
  border-color: #e8eef7 !important;
  transition: all 0.2s ease !important;
}

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

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

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

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

.ant-mentions-dropdown-menu-item:hover {
  background: #f0f7ff !important;
}

.ant-mentions-dropdown-menu-item-active {
  background: #e8f0ff !important;
  color: #1677ff !important;
  font-weight: 600 !important;
}

/* ========== 61. 补充: Rate 评分 ========== */
.ant-rate-star {
  transition: all 0.2s ease !important;
  margin-right: 4px !important;
}

.ant-rate-star-first,
.ant-rate-star-second {
  color: #fadb14 !important;
}

.ant-rate-star-full .ant-rate-star-first,
.ant-rate-star-full .ant-rate-star-second {
  color: #fadb14 !important;
}

.ant-rate-star:hover {
  transform: scale(1.1);
}

.ant-rate-star:not(.ant-rate-star-disabled):hover .ant-rate-star-first,
.ant-rate-star:not(.ant-rate-star-disabled):hover .ant-rate-star-second {
  color: #ffc53d !important;
}

/* 禁用评分 */
.ant-rate-star-disabled .ant-rate-star-first,
.ant-rate-star-star-disabled .ant-rate-star-second {
  color: #f0f0f0 !important;
}

/* ========== 62. 补充: TimePicker 时间选择器 ========== */
.ant-picker.ant-picker-time {
  border-radius: 8px !important;
}

/* 时间选择面板 */
.ant-picker-time-panel {
  border-radius: 10px !important;
}

.ant-picker-time-panel-cell-inner {
  border-radius: 6px !important;
  transition: all 0.15s ease !important;
}

.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner {
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
  color: #fff !important;
}

.ant-picker-time-panel-cell-inner:hover {
  background: #f0f7ff !important;
}

/* ========== 63. 补充: Carousel 走马灯 ========== */
.ant-carousel {
  border-radius: 12px !important;
  overflow: hidden;
}

.ant-carousel .slick-slider {
  border-radius: 12px !important;
  overflow: hidden;
}

.ant-carousel .slick-dots {
  bottom: 12px !important;
}

.ant-carousel .slick-dots li button {
  border-radius: 100px !important;
  height: 4px !important;
  background: rgba(255, 255, 255, 0.5) !important;
  transition: all 0.2s ease !important;
}

.ant-carousel .slick-dots li.slick-active button {
  background: #fff !important;
  width: 24px !important;
}

/* 前进/后退箭头 */
.ant-carousel .slick-prev,
.ant-carousel .slick-next {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(0, 0, 0, 0.3) !important;
  backdrop-filter: blur(4px);
  transition: all 0.2s ease !important;
}

.ant-carousel .slick-prev:hover,
.ant-carousel .slick-next:hover {
  background: rgba(22, 119, 255, 0.6) !important;
}

.ant-carousel .slick-prev::before,
.ant-carousel .slick-next::before {
  font-size: 16px !important;
}

/* ========== 64. 补充: TreeSelect 树选择器 ========== */
.ant-select-tree {
  border-radius: 8px !important;
}

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

.ant-select-tree .ant-select-tree-treenode:hover {
  background: #f8faff !important;
}

.ant-select-tree .ant-select-tree-node-selected {
  background: #e8f0ff !important;
  color: #1677ff !important;
  font-weight: 600 !important;
}

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

/* 树选择搜索框 */
.ant-select-tree .ant-select-tree-search__field {
  border-radius: 6px !important;
  margin-bottom: 4px !important;
}

/* ========== 65. 补充: QRCode 二维码 ========== */
.ant-qrcode {
  border-radius: 8px !important;
  padding: 8px !important;
  background: #fff !important;
  border: 1px solid #e8eef7 !important;
  transition: all 0.2s ease !important;
}

.ant-qrcode:hover {
  border-color: #4096ff !important;
  box-shadow: 0 4px 12px rgba(22, 119, 255, 0.1) !important;
}

/* 二维码下载按钮 */
.ant-qrcode > canvas {
  border-radius: 4px !important;
}

/* ========== 66. 补充: Tour 漫游引导 ========== */
.ant-tour {
  border-radius: 12px !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

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

.ant-tour-description {
  color: #595959 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

.ant-tour-close {
  color: #8c8c8c !important;
  transition: all 0.2s ease !important;
}

.ant-tour-close:hover {
  color: #1677ff !important;
}

.ant-tour-footer {
  border-top: 1px solid #f0f0f0 !important;
  padding-top: 12px !important;
}

/* 高亮遮罩 */
.ant-tour-mask {
  border-radius: 8px !important;
  box-shadow: 0 0 0 4px rgba(22, 119, 255, 0.2) !important;
}

/* ========== 67. 补充: Flex 弹性布局 ========== */
.ant-flex {
  gap: 8px !important;
}

.ant-flex-center {
  align-items: center !important;
  justify-content: center !important;
}

.ant-flex-start {
  align-items: flex-start !important;
}

.ant-flex-end {
  align-items: flex-end !important;
}

.ant-flex-between {
  justify-content: space-between !important;
}

/* ========== 68. 补充: 全局文本选区(输入框内) ========== */
.ant-input::selection,
.ant-input-number-input::selection,
textarea.ant-input::selection {
  background: rgba(22, 119, 255, 0.2) !important;
  color: #fff !important;
}

/* ========== 69. 补充: 表格拖拽排序 ========== */
tr.ant-table-row-dragging {
  background: #e8f0ff !important;
  box-shadow: 0 4px 16px rgba(22, 119, 255, 0.15) !important;
}

tr.ant-table-row-dragging > td {
  background: #e8f0ff !important;
}

/* 拖拽占位行 */
tr.ant-table-row-dragging > td::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: rgba(22, 119, 255, 0.05);
  border-radius: 8px;
  pointer-events: none;
}

/* ========== 70. 补充: 输入框密码可见切换 ========== */
.ant-input-password-icon {
  color: #bfbfbf !important;
  transition: color 0.2s ease !important;
  cursor: pointer !important;
}

.ant-input-password-icon:hover {
  color: #1677ff !important;
}

.ant-input-password-icon-active {
  color: #1677ff !important;
}

/* ========== 71. 补充: 全局a标签防下划线 ========== */
a,
a:visited,
a:active {
  text-decoration: none !important;
}

/* ========== 72. 补充: 全局img防溢出(不影响固定尺寸) ========== */
img {
  max-width: 100%;
}

/* ========== 73. 补充: Antd ConfigProvider弹层 ========== */
.ant-config-provider {
  height: 100% !important;
}

/* ========== 74. 补充: BackTop 回到顶部 ========== */
.ant-back-top {
  border-radius: 50% !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;
  transition: all 0.3s ease !important;
}

.ant-back-top:hover {
  box-shadow: 0 6px 20px rgba(22, 119, 255, 0.2) !important;
  transform: scale(1.05);
}

.ant-back-top-content {
  border-radius: 50% !important;
  background: linear-gradient(135deg, #1677ff, #4096ff) !important;
}

/* ========== 75. 补充: 全局禁用用户选择(非输入框) ========== */
.ant-btn,
.ant-tag,
.ant-badge,
.ant-divider,
.ant-breadcrumb,
.ant-tabs-tab,
.ant-steps-item-title,
.ant-radio-button-wrapper,
.ant-checkbox-wrapper {
  user-select: none !important;
}

/* 输入框允许选择 */
.ant-input,
textarea.ant-input,
.ant-input-number-input,
.ant-mentions,
.ant-input-affix-wrapper input {
  user-select: text !important;
}

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