/* 通用容器样式 */
.page-container {
  padding: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 卡片样式 */
.filter-card {
  margin-bottom: 24px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}

.data-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03),
              0 2px 4px rgba(0, 0, 0, 0.03),
              0 4px 8px rgba(0, 0, 0, 0.03);
  margin-bottom: 24px;
  padding: 24px;
}

.data-card .ant-card-body {
  overflow-x: auto;
}

/* 表单样式 */
.ant-form-item-label {
  font-weight: 500;
}

.ant-input-number {
  width: 100%;
}

.ant-select {
  width: 100%;
}

.ant-card-head-title {
  font-size: 16px;
  font-weight: 600;
}

.ant-form-item {
  margin-bottom: 16px;
}

/* 表格样式 */
.data-table {
  overflow: auto;
}

.data-table .ant-table-thead > tr > th {
  background: #fafafa;
  font-weight: 600;
  white-space: normal;
  min-width: 100px;
}

.data-table .ant-table-tbody > tr > td {
  white-space: normal;
  min-width: 100px;
}

/* 筛选面板样式 */
.filter-panel {
  background: #fafafa;
  border-radius: 4px;
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #f0f0f0;
}

/* 图标样式 */
.action-icon {
  transition: all 0.3s;
  font-size: 20px;
  cursor: pointer;
}

.action-icon:hover {
  transform: scale(1.1);
}

/* Dark mode action icons */
.dark .action-icon {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

/* Only apply gray color to text buttons in specific cases */
.dark .ant-btn-text:not(.ant-btn-dangerous):not(.ant-btn-primary):not(.action-button) .anticon {
  color: rgba(255, 255, 255, 0.65);
  color: var(--dark-text-secondary, rgba(255, 255, 255, 0.65));
}

.dark .ant-btn-text:not(.ant-btn-dangerous):not(.ant-btn-primary):not(.action-button):hover .anticon {
  color: #40a9ff;
  color: var(--dark-primary-hover, #40a9ff);
}

/* Keep colored icons for action buttons */
.dark .ant-btn.action-button .anticon {
  color: inherit;
}

.dark .ant-btn-primary .anticon {
  color: #fff;
}

.dark .ant-btn-dangerous .anticon {
  color: #ff4d4f;
  color: var(--dark-error, #ff4d4f);
}

.dark .ant-btn-dangerous:hover .anticon {
  color: #ff7875;
  color: var(--dark-error-hover, #ff7875);
}

/* Keep dropdown menu item icons colored */
.dark .ant-dropdown-menu-item .anticon {
  color: inherit;
}

/* Action button colors */
.dark .anticon-edit {
  color: #1890ff;
  color: var(--dark-primary, #1890ff);
}

.dark .anticon-copy {
  color: #13c2c2;
  color: var(--dark-info, #13c2c2);
}

.dark .anticon-stop {
  color: #ff4d4f;
  color: var(--dark-error, #ff4d4f);
}

/* Add specific colors for action buttons */
.dark .ant-btn-link .anticon-edit {
  color: #1890ff !important;
  color: var(--dark-primary, #1890ff) !important;
}

.dark .ant-btn-link .anticon-copy {
  color: #13c2c2 !important;
  color: var(--dark-info, #13c2c2) !important;
}

.dark .ant-btn-link .anticon-stop {
  color: #ff4d4f !important;
  color: var(--dark-error, #ff4d4f) !important;
}

.dark .ant-btn-link:hover .anticon-edit {
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-btn-link:hover .anticon-copy {
  color: #36cfc9 !important;
}

.dark .ant-btn-link:hover .anticon-stop {
  color: #ff7875 !important;
  color: var(--dark-error-hover, #ff7875) !important;
}

/* Light mode action button colors */
.anticon-edit {
  color: #1890ff;
  color: var(--light-primary, #1890ff);
}

.anticon-copy {
  color: #13c2c2;
  color: var(--light-info, #13c2c2);
}

.anticon-stop {
  color: #ff4d4f;
  color: var(--light-error, #ff4d4f);
}

.ant-btn-link .anticon-edit {
  color: #1890ff !important;
  color: var(--light-primary, #1890ff) !important;
}

.ant-btn-link .anticon-copy {
  color: #13c2c2 !important;
  color: var(--light-info, #13c2c2) !important;
}

.ant-btn-link .anticon-stop {
  color: #ff4d4f !important;
  color: var(--light-error, #ff4d4f) !important;
}

.ant-btn-link:hover .anticon-edit {
  color: #40a9ff !important;
  color: var(--light-primary-hover, #40a9ff) !important;
}

.ant-btn-link:hover .anticon-copy {
  color: #36cfc9 !important;
}

.ant-btn-link:hover .anticon-stop {
  color: #ff7875 !important;
  color: var(--light-error-hover, #ff7875) !important;
}

/* 返回顶部按钮 */
.back-to-top-container {
  position: fixed;
  right: 50px;
  bottom: 50px;
  z-index: 1000;
  transition: all 0.3s;
  opacity: 1;
  visibility: visible;
  cursor: pointer;
}

.back-to-top-inner {
  height: 44px;
  width: 44px;
  line-height: 44px;
  border-radius: 50%;
  background-color: #fff;
  text-align: center;
  font-size: 20px;
  transition: all 0.3s;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.back-to-top-inner:hover {
  background-color: #fafafa;
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.back-to-top-icon {
  font-size: 24px;
  color: #1890ff;
}

/* 移动端响应式样式 */
@media screen and (max-width: 768px) {
  .page-container {
    padding: 12px;
  }

  .ant-card {
    margin-bottom: 12px;
  }

  .ant-card-head {
    min-height: 40px;
    padding: 0 12px;
  }

  .ant-card-body {
    padding: 12px;
  }

  .filter-panel {
    padding: 12px;
  }

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

  .ant-table-cell {
    padding: 8px 4px !important;
  }

  .ant-input-number {
    font-size: 12px;
  }

  .ant-pagination {
    text-align: center;
    margin-top: 12px;
  }
  
  /* 移动端表格样式优化 */
  .data-table .ant-table-thead > tr > th {
    white-space: nowrap;
    min-width: 80px !important;
    padding: 8px 6px !important;
    font-size: 12px;
  }
  
  .data-table .ant-table-tbody > tr > td {
    white-space: nowrap;
    min-width: 80px !important;
    padding: 6px 4px !important;
    font-size: 12px;
  }
  
  .data-table .ant-tag {
    margin-right: 0;
    padding: 0 4px;
    font-size: 11px;
  }
  
  /* 提高移动端表格的可读性 */
  .data-table .ant-table-tbody > tr:nth-child(odd) {
    background-color: rgba(0, 0, 0, 0.02);
  }
  
  .dark .data-table .ant-table-tbody > tr:nth-child(odd) {
    background-color: rgba(255, 255, 255, 0.02);
  }
  
  /* 确保移动端操作按钮有足够的点击区域 */
  .data-table .ant-btn {
    min-width: 28px;
    min-height: 28px;
    padding: 0 4px;
  }
  
  /* 为移动端的下拉菜单添加更大的点击区域 */
  .ant-dropdown-menu-item {
    padding: 10px 12px;
  }
  
  /* 移动端抽屉优化 */
  .ant-drawer-content-wrapper {
    width: 100% !important;
  }
}

/* 自定义滚动条样式 */
.data-card::-webkit-scrollbar,
.data-card .ant-card-body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  background-color: transparent;
}

.data-card::-webkit-scrollbar-thumb,
.data-card .ant-card-body::-webkit-scrollbar-thumb {
  background-color: #e6e6e6;
  border-radius: 4px;
}

.data-card::-webkit-scrollbar-thumb:hover,
.data-card .ant-card-body::-webkit-scrollbar-thumb:hover {
  background-color: #bfbfbf;
}

/* Firefox 滚动条样式 */
.data-card,
.data-card .ant-card-body {
  scrollbar-width: thin;
  scrollbar-color: #e6e6e6 transparent;
}

/* 深色模式样式 */
.dark {
  background-color: #0a0a0a;
  background-color: var(--dark-body-bg, #0a0a0a);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
  --dark-component-background: #1f1f1f;
  --dark-card-head-background: #303030;
  --dark-text-color: rgba(255, 255, 255, 0.85);
  --dark-hover-color: #177ddc;
}

.dark .ant-card {
  background-color: #1f1f1f;
  background-color: var(--dark-card-bg, #1f1f1f);
  border-color: #303030;
  border-color: var(--dark-border, #303030);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  box-shadow: var(--dark-shadow, 0 1px 2px rgba(0, 0, 0, 0.3));
}

.dark .ant-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  box-shadow: var(--dark-shadow-secondary, 0 4px 12px rgba(0, 0, 0, 0.5));
}

.dark .ant-table {
  background-color: #1f1f1f;
  background-color: var(--dark-table-bg, #1f1f1f);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-table-thead > tr > th {
  background-color: #262626 !important;
  background-color: var(--dark-table-header-bg, #262626) !important;
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
  border-bottom: 1px solid #303030;
  border-bottom: 1px solid var(--dark-border, #303030);
}

.dark .ant-table-tbody > tr > td {
  border-bottom: 1px solid #303030;
  border-bottom: 1px solid var(--dark-border, #303030);
}

.dark .ant-table-tbody > tr:hover > td {
  background-color: #1a1a1a !important; /* 深色模式下悬停行 */
}

.dark .ant-input {
  background-color: #141414;
  background-color: var(--dark-component-bg, #141414);
  border-color: #434343;
  border-color: var(--dark-border-secondary, #434343);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-input:hover {
  border-color: #1890ff;
  border-color: var(--dark-primary, #1890ff);
}

.dark .ant-input:focus {
  border-color: #40a9ff;
  border-color: var(--dark-primary-hover, #40a9ff);
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.15);
  box-shadow: 0 0 0 2px var(--dark-primary-bg, rgba(24, 144, 255, 0.15));
}

.dark .ant-btn {
  border-color: #434343;
  border-color: var(--dark-border-secondary, #434343);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-btn:hover {
  border-color: #1890ff;
  border-color: var(--dark-primary, #1890ff);
  color: #1890ff;
  color: var(--dark-primary, #1890ff);
  background-color: rgba(255, 255, 255, 0.08);
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08));
}

.dark .ant-btn-primary {
  background-color: #1890ff;
  background-color: var(--dark-primary, #1890ff);
  border-color: #1890ff;
  border-color: var(--dark-primary, #1890ff);
  color: #fff;
}

.dark .ant-btn-primary:hover {
  background-color: #40a9ff;
  background-color: var(--dark-primary-hover, #40a9ff);
  border-color: #40a9ff;
  border-color: var(--dark-primary-hover, #40a9ff);
}

.dark .ant-modal-content,
.dark .ant-modal-header {
  background-color: #1f1f1f;
  background-color: var(--dark-component-background, #1f1f1f);
  border-color: #303030;
  border-color: var(--dark-border, #303030);
}

.dark .ant-modal-title {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-select-selector {
  background-color: #141414 !important;
  background-color: var(--dark-select-bg, #141414) !important;
  border-color: #434343 !important;
  border-color: var(--dark-border-secondary, #434343) !important;
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-select-selector:hover {
  border-color: #1890ff !important;
  border-color: var(--dark-primary, #1890ff) !important;
}

.dark .ant-select-focused .ant-select-selector {
  border-color: #40a9ff !important;
  border-color: var(--dark-primary-hover, #40a9ff) !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.15) !important;
  box-shadow: 0 0 0 2px var(--dark-primary-bg, rgba(24, 144, 255, 0.15)) !important;
}

.dark .ant-select-dropdown {
  background-color: #1f1f1f;
  background-color: var(--dark-popup-bg, #1f1f1f);
  border: 1px solid #303030;
  border: 1px solid var(--dark-border, #303030);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  box-shadow: var(--dark-shadow-secondary, 0 4px 12px rgba(0, 0, 0, 0.5));
}

.dark .ant-select-item {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .ant-select-item-option-selected {
  background-color: rgba(24, 144, 255, 0.15);
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15));
}

.dark .ant-select-item-option-active {
  background-color: rgba(255, 255, 255, 0.08);
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08));
}

.dark .ant-tag {
  border-color: #303030;
  border-color: var(--dark-border, #303030);
}

.dark .ant-tag-green {
  color: #73d13d;
  color: var(--dark-success-hover, #73d13d);
  background: rgba(82, 196, 26, 0.15);
  background: var(--dark-success-bg, rgba(82, 196, 26, 0.15));
  border-color: rgba(82, 196, 26, 0.15);
  border-color: var(--dark-success-bg, rgba(82, 196, 26, 0.15));
}

.dark .ant-tag-red {
  color: #ff7875;
  color: var(--dark-error-hover, #ff7875);
  background: rgba(255, 77, 79, 0.15);
  background: var(--dark-error-bg, rgba(255, 77, 79, 0.15));
  border-color: rgba(255, 77, 79, 0.15);
  border-color: var(--dark-error-bg, rgba(255, 77, 79, 0.15));
}

.dark .ant-tag-blue {
  color: #40a9ff;
  color: var(--dark-primary-hover, #40a9ff);
  background: rgba(24, 144, 255, 0.15);
  background: var(--dark-primary-bg, rgba(24, 144, 255, 0.15));
  border-color: rgba(24, 144, 255, 0.15);
  border-color: var(--dark-primary-bg, rgba(24, 144, 255, 0.15));
}

.dark .ant-tag-orange {
  color: #ffc53d;
  color: var(--dark-warning-hover, #ffc53d);
  background: rgba(250, 173, 20, 0.15);
  background: var(--dark-warning-bg, rgba(250, 173, 20, 0.15));
  border-color: rgba(250, 173, 20, 0.15);
  border-color: var(--dark-warning-bg, rgba(250, 173, 20, 0.15));
}

/* 滚动条样式 */
.dark ::-webkit-scrollbar-track {
  background: #141414;
  background: var(--dark-component-bg, #141414);
}

.dark ::-webkit-scrollbar-thumb {
  background: #434343;
  background: var(--dark-border-secondary, #434343);
}

.dark ::-webkit-scrollbar-thumb:hover {
  background: #595959;
  background: var(--dark-border-hover, #595959);
}

/* 移动端卡片样式 */
.dark .company-mobile-card {
  background-color: #1f1f1f !important;
  background-color: var(--dark-card-bg, #1f1f1f) !important;
  border: 1px solid #303030 !important;
  border: 1px solid var(--dark-border, #303030) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
  box-shadow: var(--dark-shadow, 0 1px 2px rgba(0, 0, 0, 0.3)) !important;
}

.dark .company-mobile-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
  box-shadow: var(--dark-shadow-secondary, 0 4px 12px rgba(0, 0, 0, 0.5)) !important;
}

.dark .mobile-card-header {
  position: relative;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid var(--dark-divider, rgba(255, 255, 255, 0.08));
  background-color: #1f1f1f;
  background-color: var(--dark-card-bg, #1f1f1f);
  cursor: pointer;
  display: flex;
  align-items: center;
}

.dark .company-id {
  color: rgba(255, 255, 255, 0.65);
  color: var(--dark-text-secondary, rgba(255, 255, 255, 0.65));
}

.dark .company-name {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

/* 确保卡片头部只有一个箭头图标 */
.dark .mobile-card-header > .anticon,
.dark .mobile-card-header > .ant-dropdown-trigger > .anticon {
  display: none !important; /* 隐藏可能存在的多余图标 */
}

/* 调整展开按钮样式和位置 */
.dark .mobile-card-header .mobile-expand-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.05);
  border-radius: 4px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  overflow: hidden;
}

/* 确保图标本身不重叠 */
.dark .mobile-card-header .mobile-expand-btn .anticon,
.dark .mobile-card-header .mobile-expand-btn > span {
  font-size: 14px; 
  color: rgba(255, 255, 255, 0.65);
  display: flex !important;
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 移除所有可能造成重叠的伪元素 */
.dark .mobile-card-header::after,
.dark .mobile-card-header::before,
.dark .mobile-expand-btn::after,
.dark .mobile-expand-btn::before {
  display: none !important;
  content: none !important;
}

.dark .mobile-card-content,
.dark .mobile-card-content-inner {
  background-color: #1f1f1f;
  background-color: var(--dark-card-bg, #1f1f1f);
  border-top-color: rgba(255, 255, 255, 0.08);
  border-top-color: var(--dark-divider, rgba(255, 255, 255, 0.08));
}

.dark .mobile-card-label {
  color: rgba(255, 255, 255, 0.65);
  color: var(--dark-text-secondary, rgba(255, 255, 255, 0.65));
}

.dark .mobile-card-value {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .company-mobile-card .ant-list-item-action {
  background-color: #1f1f1f !important;
  background-color: var(--dark-card-bg, #1f1f1f) !important;
  border-top-color: rgba(255, 255, 255, 0.08) !important;
  border-top-color: var(--dark-divider, rgba(255, 255, 255, 0.08)) !important;
}

/* Pin Column Button Styles */
.pinned-column-btn {
  color: #1890ff !important;
}

.pinned-column-btn:hover {
  color: #40a9ff !important;
}

.pinned-column-btn .anticon {
  color: inherit !important;
}

/* Dark mode support */
.dark .pinned-column-btn {
  color: #1890ff !important;
}

.dark .pinned-column-btn:hover {
  color: #40a9ff !important;
  background: rgba(24, 144, 255, 0.1);
}

/* Add styles for non-pinned buttons in dark mode */
.dark .ant-btn-text .anticon {
  color: rgba(255, 255, 255, 0.65) !important;
}

.dark .ant-btn-text:hover .anticon {
  color: #1890ff !important;
}

.dark .ant-dropdown-menu-item .ant-btn-text .anticon {
  color: rgba(255, 255, 255, 0.65) !important;
}

.dark .ant-dropdown-menu-item .ant-btn-text:hover .anticon {
  color: #1890ff !important;
}

/* Ensure icon color in dark mode */
.dark .ant-dropdown-menu-item .pinned-column-btn .anticon {
  color: #1890ff !important;
}

.dark .ant-dropdown-menu-item .pinned-column-btn:hover .anticon {
  color: #40a9ff !important;
}

.ant-dropdown-menu {
  background-color: #fff;
  border-radius: 4px;
  box-shadow: 0 3px 6px -4px rgba(0,0,0,0.12), 0 6px 16px 0 rgba(0,0,0,0.08), 0 9px 28px 8px rgba(0,0,0,0.05);
}

/* Dark mode dropdown styles */
.dark .ant-dropdown-menu {
  background-color: #1f1f1f;
  border: 1px solid #303030;
}

/* Ensure dropdown stays above table */
.ant-table-cell-fix-left,
.ant-table-cell-fix-right {
  z-index: 1;
}

.ant-dropdown-open {
  z-index: 1200 !important;
}

/* Fix sticky header z-index */
.ant-table-header {
  z-index: 2;
}

.ant-table-sticky-holder {
  z-index: 2;
}

/* Ensure dropdown menu items are visible */
.ant-dropdown-menu-item {
  position: relative;
  z-index: 1;
}

/* Fix table cell overlay */
.ant-table-cell-fix-left::after,
.ant-table-cell-fix-right::after {
  z-index: 1;
}

/* Ensure dropdown trigger button stays above table */
.ant-dropdown-trigger {
  position: relative;
  z-index: 3;
}

/* Theme Switch Button Styles */
.theme-switch {
  transition: all 0.3s;
}

.theme-switch .anticon {
  color: rgba(0, 0, 0, 0.65);
  transition: all 0.3s;
}

.theme-switch:hover .anticon {
  color: #1890ff;
}

/* Dark mode theme switch */
.dark .theme-switch .anticon {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .theme-switch:hover .anticon {
  color: #1890ff !important;
  text-shadow: 0 0 8px rgba(24, 144, 255, 0.3);
}

.dark .theme-switch:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: #1890ff;
}

/* Responsive styles */
@media screen and (max-width: 576px) {
  .company-mobile-card {
    margin-bottom: 12px !important;
  }
  
  .mobile-card-header {
    padding: 12px 16px;
  }
  
  .company-name {
    font-size: 15px;
  }
  
  .mobile-card-content-inner {
    padding: 16px;
  }
  
  .mobile-card-label {
    min-width: 100px;
    font-size: 13px;
  }
  
  .mobile-card-value {
    font-size: 13px;
  }
}

/* 移动端表格滚动优化 */
.mobile-table-container {
  position: relative;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* 提高iOS触摸滚动体验 */
  scrollbar-width: thin; /* Firefox */
  border: none !important;
}

.mobile-table-container .ant-table {
  border: none !important;
}

.mobile-table-container .ant-table-container {
  border: none !important;
  box-shadow: none !important;
}

.mobile-table-container .ant-table-content {
  overflow: visible !important;
}

.mobile-table-container::-webkit-scrollbar {
  height: 4px; /* 水平滚动条高度 */
}

.mobile-table-container .ant-table-cell-scrollbar {
  box-shadow: none !important; 
  display: none !important;
}

/* 移动端表格行设计优化 */
@media screen and (max-width: 576px) {
  /* 完全移除表格边框问题 */
  .mobile-enhanced-table .ant-table,
  .mobile-enhanced-table .ant-table-container,
  .mobile-enhanced-table .ant-table-content,
  .mobile-enhanced-table .ant-table-body {
    border: none !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
  }
  
  /* 强制移除表格边框线条 */
  .mobile-enhanced-table .ant-table-thead > tr > th,
  .mobile-enhanced-table .ant-table-tbody > tr > td,
  .mobile-enhanced-table .ant-table-thead > tr,
  .mobile-enhanced-table .ant-table-tbody > tr {
    border: none !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    border-bottom: none !important;
  }
  
  /* 完全隐藏表头 */
  .mobile-enhanced-table .ant-table-thead {
    display: none !important;
  }
  
  /* 禁用表格的水平滚动功能 */
  .mobile-enhanced-table .ant-table-container {
    overflow-x: hidden !important;
  }
  
  /* 彻底移除表格边框和分隔线 */
  .mobile-enhanced-table table {
    border-collapse: separate;
    border-spacing: 0 4px; /* 减少表格行之间的空间 */
    border: none !important;
  }
  
  /* 修复边框线显示问题 */
  .mobile-enhanced-table .ant-table-cell::before,
  .mobile-enhanced-table .ant-table-cell::after {
    display: none !important;
    content: none !important;
  }
  
  /* 解决滚动时白线条问题 */
  .mobile-enhanced-table .ant-table {
    background: transparent !important;
  }
  
  .mobile-enhanced-table .ant-table-container {
    background: transparent !important;
  }
  
  /* 移除表格固定列功能 */
  .mobile-enhanced-table .ant-table-cell-fix-left,
  .mobile-enhanced-table .ant-table-cell-fix-right {
    position: static !important;
    z-index: auto !important;
  }
  
  .mobile-enhanced-table .ant-table-cell-fix-left::after,
  .mobile-enhanced-table .ant-table-cell-fix-right::after {
    display: none !important;
    content: none !important;
  }
  
  /* 去除表头在滚动时可能造成的线条问题 */
  .mobile-enhanced-table .ant-table-header {
    display: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  
  /* 完全替换表格布局 - 将所有表格元素转换为div布局 */
  .mobile-enhanced-table .ant-table,
  .mobile-enhanced-table .ant-table-container,
  .mobile-enhanced-table .ant-table-content,
  .mobile-enhanced-table .ant-table-body {
    display: block !important;
    width: 100% !important;
  }
  
  /* 覆盖原生表格的所有布局特性 */
  .mobile-enhanced-table .ant-table-tbody {
    display: block !important;
  }
  
  /* 优化表格行的样式 - 使用完全自定义的卡片式设计 */
  .mobile-enhanced-table .ant-table-tbody > tr {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 1px;
    gap: 1px; /* 减少卡片内部元素间距 */
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    margin-bottom: 6px; /* 减少卡片间的间距 */
    padding: 6px 8px 4px 8px; /* 减少卡片内边距 */
    background-color: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    /* 确保每行是独立的，不受表格原有布局影响 */
    float: none;
    clear: both;
    width: 100% !important;
  }
  
  /* 行悬停效果 */
  .mobile-enhanced-table .ant-table-tbody > tr:hover {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    transform: translateY(-1px);
  }
  
  /* 行在暗黑模式下的样式 */
  .dark .mobile-enhanced-table .ant-table-tbody > tr {
    border-color: #303030;
    background-color: #1f1f1f;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  }
  
  /* 修复样式继承问题 */
  .mobile-enhanced-table tr,
  .mobile-enhanced-table td {
    background: transparent !important;
  }
  
  /* 表格单元格基本样式 */
  .mobile-enhanced-table .ant-table-tbody > tr > td {
    display: flex;
    padding: 4px 6px !important; /* 减少单元格内边距 */
    align-items: center;
    width: 100% !important;
    max-width: 100% !important;
    border: none !important;
    margin-bottom: 1px; /* 减少单元格之间的间距 */
    min-height: 28px; /* 确保最小高度，保持整齐 */
    font-size: 12px; /* 减小普通文本字体大小 */
    line-height: 1.4; /* 减小行高 */
  }
  
  .mobile-enhanced-table .ant-table-tbody > tr > td::before {
    content: attr(data-label);
    font-weight: 600;
    font-size: 12px; /* 减小标签字体大小 */
    min-width: 95px; /* 减小标签宽度 */
    max-width: 95px;
    color: rgba(0, 0, 0, 0.5);
    margin-right: 8px; /* 减少标签和内容之间的间距 */
  }
  
  .dark .mobile-enhanced-table .ant-table-tbody > tr > td::before {
    color: rgba(255, 255, 255, 0.5);
  }
  
  /* 优化重要数据展示 */
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="PROMID"],
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="Name"],
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="Affiliate Code"] {
    font-weight: 500;
    font-size: 13px; /* 保持重要数据字体稍大 */
  }
  
  /* PROMID字段的特殊布局 - 将折叠按钮放在右侧 */
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="PROMID"] {
    position: relative !important;
    padding-right: 40px !important; /* 为折叠按钮留出空间 */
    margin-top: 0 !important;
    padding-top: 4px !important;
    border-bottom: none !important;
    min-height: 32px !important; /* 确保高度足够放置折叠按钮 */
    display: flex !important;
    align-items: center !important;
    font-weight: 500 !important;
    font-size: 13px !important; /* 保持重要数据字体稍大 */
  }
  
  /* PROMID值的容器样式，确保有足够空间 */
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="PROMID"] .cell-content {
    flex: 1 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: calc(100% - 30px) !important; /* 为折叠按钮预留空间 */
  }
  
  /* 折叠按钮样式和位置调整 */
  .mobile-enhanced-table .collapse-btn {
    position: absolute !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 28px !important;
    height: 28px !important;
    background: transparent !important;
    border: none !important;
    color: rgba(0, 0, 0, 0.5) !important;
    z-index: 5 !important;
    cursor: pointer !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transition: all 0.3s ease !important;
  }
  
  /* 优化折叠按钮位置 - 确保它附在PROMID单元格上 */
  .mobile-enhanced-table .ant-table-tbody > tr:first-child .collapse-btn {
    top: calc(50% + 2px) !important; /* 微调第一行的按钮位置 */
  }
  
  /* 在行悬停时增强折叠按钮颜色变化 */
  .mobile-enhanced-table .ant-table-tbody > tr:hover .collapse-btn {
    color: rgba(0, 0, 0, 0.7) !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
  }
  
  /* 折叠按钮暗黑模式样式 */
  .dark .mobile-enhanced-table .collapse-btn {
    color: rgba(255, 255, 255, 0.65) !important;
  }
  
  /* 折叠按钮暗黑模式下的悬停效果 */
  .dark .mobile-enhanced-table .ant-table-tbody > tr:hover .collapse-btn {
    color: rgba(255, 255, 255, 0.85) !important;
  }
  
  /* 折叠按钮悬停效果 */
  .mobile-enhanced-table .collapse-btn:hover {
    color: #1890ff !important;
    background-color: rgba(24, 144, 255, 0.1) !important;
    border-radius: 4px !important;
  }
  
  /* 折叠按钮聚焦效果 */
  .mobile-enhanced-table .collapse-btn:focus {
    outline: none !important;
  }
  
  /* 操作按钮区域布局 - 保持在右上角 */
  .mobile-enhanced-table .action-buttons-container {
    position: absolute !important;
    top: 6px !important;
    right: 8px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    background: transparent !important;
    border: none !important;
    z-index: 10 !important;
  }
  
  /* 让所有操作按钮更紧凑 */
  .mobile-enhanced-table .action-buttons-container .ant-btn {
    margin: 0 2px !important;
    padding: 1px 4px !important;
    font-size: 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 28px !important;
    height: 28px !important;
    opacity: 0.8 !important;
    transition: opacity 0.3s ease !important;
  }
  
  /* 操作按钮悬停效果 */
  .mobile-enhanced-table .action-buttons-container .ant-btn:hover {
    opacity: 1 !important;
  }
  
  /* 确保操作按钮在较小的屏幕上有足够的可见度 */
  @media screen and (max-width: 320px) {
    .mobile-enhanced-table .action-buttons-container {
      top: 4px !important;
      right: 6px !important;
      gap: 2px !important;
    }
    
    .mobile-enhanced-table .action-buttons-container .ant-btn {
      font-size: 14px !important;
      min-width: 24px !important;
      height: 24px !important;
      padding: 0 !important;
    }
  }
  
  /* 优化标签的显示 */
  .mobile-enhanced-table .ant-tag {
    margin: 0 2px 2px 0;
    padding: 0 4px;
    font-size: 11px;
    line-height: 18px;
  }
  
  /* 删除表格的所有滚动功能 */
  .mobile-enhanced-table .ant-table-body {
    overflow: visible !important;
    width: 100% !important;
  }
  
  /* 确保卡片布局不受表格宽度限制 */
  .mobile-enhanced-table .ant-table-wrapper,
  .mobile-enhanced-table .ant-spin-nested-loading,
  .mobile-enhanced-table .ant-spin-container {
    width: 100% !important;
    overflow: visible !important;
  }
  
  /* 收起状态的详情区域 */
  .mobile-enhanced-table .card-details-collapsed {
    display: none;
  }
  
  /* 展开状态的详情区域 */
  .mobile-enhanced-table .card-details-expanded {
    display: block;
    padding-top: 3px;
    margin-top: 3px;
    border-top: 1px dashed rgba(0, 0, 0, 0.1);
  }

  .dark .mobile-enhanced-table .card-details-expanded {
    border-top: 1px dashed rgba(255, 255, 255, 0.1);
  }
  
  /* 调整Name字段，使其与PROMID形成视觉上的组合 */
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="Name"] {
    padding-top: 2px !important;
    margin-top: -2px;
  }
  
  /* 调整Affiliate Code字段，使其更加突出 */
  .mobile-enhanced-table .ant-table-tbody > tr > td[data-label="Affiliate Code"] {
    padding-top: 3px !important;
  }
}

/* 响应式表格标签优化 */
@media screen and (max-width: 768px) {
  /* 增强移动端的固定列 */
  .data-table .ant-table-cell-fix-left-last::after,
  .data-table .ant-table-cell-fix-right-first::after {
    display: none !important; /* 移除移动端的固定列阴影，避免视觉干扰 */
  }
  
  /* 移除所有可能导致滚动问题的边框和阴影 */
  .data-table .ant-table-cell-fix-left,
  .data-table .ant-table-cell-fix-right {
    position: static !important;
    z-index: auto !important;
  }
  
  .data-table .ant-table-sticky-scroll {
    display: none !important;
  }
  
  /* 确保在移动端完全禁用任何水平滚动 */
  .data-table {
    overflow-x: hidden !important;
  }
  
  /* 移除表格横向滚动条 */
  .data-table .ant-table-body {
    overflow-x: visible !important;
  }
}

/* Company Mobile Card View Styles */
.company-mobile-list {
  margin-top: 16px;
  padding: 0 4px;
}

.company-mobile-card {
  margin-bottom: 16px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  border: none !important;
  background-color: #fff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
}

.company-mobile-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.12) !important;
  transform: translateY(-2px);
}

.mobile-card-header {
  position: relative;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(0,0,0,0.04);
  background-color: #f7f8fa;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.mobile-card-title {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.company-id {
  font-size: 12px;
  color: #909399;
  line-height: 1.2;
  margin-bottom: 4px;
  font-weight: 500;
}

.company-name-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.company-name {
  font-size: 16px;
  font-weight: 600;
  color: #303133;
  line-height: 1.4;
  flex: 1 1;
}

/* 确保卡片头部只有一个箭头图标 */
.mobile-card-header > .anticon,
.mobile-card-header > .ant-dropdown-trigger > .anticon {
  display: none !important; /* 隐藏可能存在的多余图标 */
}

/* 调整展开按钮样式和位置 */
.mobile-card-header .mobile-expand-btn {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  overflow: hidden;
}

/* 确保图标本身不重叠 */
.mobile-card-header .mobile-expand-btn .anticon,
.mobile-card-header .mobile-expand-btn > span {
  font-size: 14px; 
  color: rgba(0, 0, 0, 0.65);
  display: flex !important;
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 移除所有可能造成重叠的伪元素 */
.mobile-card-header::after,
.mobile-card-header::before,
.mobile-expand-btn::after,
.mobile-expand-btn::before {
  display: none !important;
  content: none !important;
}

/* 深色模式样式 */
.dark .mobile-card-header .mobile-expand-btn {
  background: rgba(255, 255, 255, 0.05);
}

.dark .mobile-card-header .mobile-expand-btn .anticon {
  color: rgba(255, 255, 255, 0.65);
}

.mobile-card-content {
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  background-color: #fff;
}

.mobile-card-content.expanded {
  padding: 0;
  max-height: 1000px;
}

.mobile-card-content-inner {
  padding: 14px 16px;
  background-color: #fff;
  border-top: 1px solid rgba(0,0,0,0.04);
}

.mobile-card-item {
  display: flex;
  margin-bottom: 8px;
  align-items: flex-start;
  position: relative;
  padding: 2px 0;
}

.mobile-card-item:last-child {
  margin-bottom: 0;
}

.mobile-card-label {
  min-width: 96px;
  font-weight: 500;
  color: #606266;
  font-size: 13px;
  padding-right: 10px;
  position: relative;
}

.mobile-card-label::after {
  content: ':';
  position: absolute;
  right: 2px;
  color: #909399;
}

.mobile-card-value {
  flex: 1 1;
  color: #303133;
  font-size: 13px;
  word-break: break-word;
}

.company-mobile-card .ant-list-item-action {
  margin: 0 !important;
  padding: 12px 16px !important;
  background-color: #f9fafc !important;
  border-top: 1px solid rgba(0,0,0,0.04) !important;
  justify-content: flex-end !important;
}

.company-mobile-card .ant-btn-link {
  padding: 4px 8px;
  border-radius: 6px;
  background-color: rgba(24,144,255,0.06);
  transition: all 0.3s ease;
  color: #1890ff;
}

.company-mobile-card .ant-btn-link:hover {
  background-color: rgba(24, 144, 255, 0.12);
}

.company-mobile-card .ant-btn-link.ant-btn-dangerous:hover {
  background-color: rgba(255, 77, 79, 0.12);
}

/* Status tag styling */
.mobile-card-value .ant-tag {
  margin: 0;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
  font-size: 12px;
  line-height: 18px;
  border: none;
}

/* Currency tag styling */
.mobile-card-value .ant-tag-green {
  background-color: rgba(82, 196, 26, 0.1);
  color: #52c41a;
}

.mobile-card-value .ant-tag-red {
  background-color: rgba(245, 34, 45, 0.1);
  color: #f5222d;
}

.mobile-card-value .ant-tag-blue {
  background-color: rgba(24, 144, 255, 0.1);
  color: #1890ff;
}

.mobile-card-value .ant-tag-orange {
  background-color: rgba(250, 173, 20, 0.1);
  color: #faad14;
}

.mobile-card-value .ant-tag-purple {
  background-color: rgba(114, 46, 209, 0.1);
  color: #722ed1;
}

.mobile-card-value .ant-tag-cyan {
  background-color: rgba(19, 194, 194, 0.1);
  color: #13c2c2;
}

.mobile-card-value .ant-tag-magenta {
  background-color: rgba(235, 47, 150, 0.1);
  color: #eb2f96;
}

/* Add loading state for mobile cards */
.company-mobile-list-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 32px;
  background-color: rgba(255,255,255,0.8);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.company-mobile-list-loading .ant-spin {
  color: #1890ff;
}

.company-mobile-list-loading .ant-spin-text {
  margin-top: 12px;
  color: #606266;
  font-size: 14px;
}

.dark .company-mobile-list-loading {
  background-color: rgba(0,0,0,0.2);
}

.dark .company-mobile-list-loading .ant-spin-text {
  color: #b3b3b3;
}

/* Enhance pagination on mobile */
.company-mobile-list .ant-pagination {
  margin: 20px 0 12px;
  text-align: center;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.company-mobile-list .ant-pagination-item {
  border-radius: 6px;
  margin: 0 4px;
  border: none;
  background-color: rgba(0,0,0,0.02);
  transition: all 0.3s ease;
}

.company-mobile-list .ant-pagination-item a {
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #606266;
}

.company-mobile-list .ant-pagination-item-active {
  background-color: #1890ff;
  font-weight: 600;
}

.company-mobile-list .ant-pagination-item-active a {
  color: white;
}

.company-mobile-list .ant-pagination-prev,
.company-mobile-list .ant-pagination-next {
  margin: 0 4px;
}

.company-mobile-list .ant-pagination-prev button,
.company-mobile-list .ant-pagination-next button {
  border: none;
  background-color: rgba(0,0,0,0.02);
  border-radius: 6px;
  transition: all 0.3s ease;
}

.company-mobile-list .ant-pagination-prev:hover button,
.company-mobile-list .ant-pagination-next:hover button,
.company-mobile-list .ant-pagination-item:hover {
  background-color: rgba(0,0,0,0.06);
}

.company-mobile-list .ant-pagination-options {
  margin-left: 8px;
}

.company-mobile-list .ant-pagination-options-size-changer .ant-select-selector {
  border-radius: 6px;
  background-color: rgba(0,0,0,0.02);
  border: none;
}

/* Pagination dark mode */
.dark .company-mobile-list .ant-pagination-item {
  background-color: rgba(255,255,255,0.08);
}

.dark .company-mobile-list .ant-pagination-item a {
  color: #d9d9d9;
}

.dark .company-mobile-list .ant-pagination-item-active {
  background-color: #1890ff;
}

.dark .company-mobile-list .ant-pagination-prev button,
.dark .company-mobile-list .ant-pagination-next button {
  background-color: rgba(255,255,255,0.08);
  color: #d9d9d9;
}

.dark .company-mobile-list .ant-pagination-prev:hover button,
.dark .company-mobile-list .ant-pagination-next:hover button,
.dark .company-mobile-list .ant-pagination-item:hover {
  background-color: rgba(255,255,255,0.12);
}

.dark .company-mobile-list .ant-pagination-options-size-changer .ant-select-selector {
  background-color: rgba(255,255,255,0.08);
  color: #d9d9d9;
}

/* Ensure mobile list doesn't get scrollbar issues */
.mobile-table-container {
  overflow-x: visible !important;
}

/* Mobile friendly modal styles */
.company-mobile-card .mobile-card-content-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-column-gap: 12px;
  column-gap: 12px;
  grid-row-gap: 6px;
  row-gap: 6px;
}

.company-mobile-card .mobile-card-item {
  margin-bottom: 0;
}

/* Mobile company card: remove trailing colon on labels and refine spacing */
.company-mobile-card .mobile-card-label::after {
  display: none !important;
  content: none !important;
}
.company-mobile-card .mobile-card-label {
  min-width: auto;
  padding-right: 8px;
  color: #8c8c8c;
}

@media screen and (max-width: 375px) {
  .company-mobile-card .mobile-card-content-inner {
    column-gap: 10px;
    row-gap: 6px;
  }
}

.mobile-friendly-modal .ant-modal-content {
  border-radius: 8px;
  overflow: visible; /* Allow popups like DatePicker to escape without clipping */
}

.mobile-friendly-modal .ant-modal-header {
  padding: 12px 16px;
}

.mobile-friendly-modal .ant-modal-body {
  padding: 16px;
  max-height: calc(100vh - 150px);
  overflow-y: auto;
  overflow-x: visible; /* avoid horizontal clipping of popups */
}

.mobile-friendly-modal .ant-form-item {
  margin-bottom: 12px;
}

.mobile-friendly-modal .ant-form-item-label {
  padding-bottom: 4px;
}

.mobile-friendly-modal .ant-form-item-label > label {
  font-size: 14px;
}

.mobile-friendly-modal .ant-input,
.mobile-friendly-modal .ant-select-selector,
.mobile-friendly-modal .ant-picker {
  height: 36px !important;
}

.mobile-friendly-modal .ant-input-affix-wrapper {
  padding: 0 11px;
}

.mobile-friendly-modal .ant-select-selector .ant-select-selection-search-input {
  height: 34px !important;
}

.mobile-friendly-modal .ant-btn {
  height: 36px;
  padding: 4px 16px;
}

/* Dark mode for mobile friendly modal */
.dark .mobile-friendly-modal .ant-modal-content {
  background-color: #1f1f1f;
}

.dark .mobile-friendly-modal .ant-modal-header {
  background-color: #1f1f1f;
  border-bottom: 1px solid #303030;
}

.dark .mobile-friendly-modal .ant-modal-title {
  color: rgba(255, 255, 255, 0.85);
}

/* Mobile pagination styles */
.company-mobile-list .ant-pagination-item a {
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (max-width: 576px) {
  .company-mobile-list .ant-pagination-item,
  .company-mobile-list .ant-pagination-prev,
  .company-mobile-list .ant-pagination-next {
    min-width: 28px;
    height: 28px;
    line-height: 26px;
    margin: 0 2px;
  }
  
  .company-mobile-list .ant-pagination-options {
    margin-left: 4px;
  }
  
  .company-mobile-list .ant-pagination-options-size-changer {
    margin-right: 0;
  }
  
  .company-mobile-list .ant-select-selector {
    height: 28px !important;
  }
  
  .company-mobile-list .ant-select-selection-item {
    line-height: 26px !important;
  }
}

.dark .mobile-card-content-inner {
  border-top-color: rgba(255,255,255,0.05);
}

@media screen and (max-width: 576px) {
  .company-mobile-card {
    margin-bottom: 12px !important;
  }

  .mobile-card-header {
    padding: 12px 16px;
  }

  .company-name {
    font-size: 15px;
  }

  .mobile-card-content-inner {
    padding: 16px;
  }

  .mobile-card-label {
    min-width: 100px;
    font-size: 13px;
  }

  .mobile-card-value {
    font-size: 13px;
  }
}

/* Dark mode styles */
.dark .company-mobile-card {
  border: none !important;
  background-color: #1f1f1f !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}

.dark .company-mobile-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
}

.dark .mobile-card-header {
  border-bottom-color: rgba(255,255,255,0.05);
  background-color: #1f1f1f;
}

.dark .company-id {
  color: #a6a6a6;
}

.dark .company-name {
  color: #e6e6e6;
}

.dark .mobile-expand-btn {
  background-color: rgba(255, 255, 255, 0.08);
  color: #a6a6a6;
}

.dark .mobile-expand-btn:hover {
  background-color: rgba(255, 255, 255, 0.15);
  color: #40a9ff;
}

.dark .mobile-card-content {
  background-color: #1f1f1f;
}

.dark .mobile-card-content-inner {
  background-color: #1f1f1f;
  border-top-color: rgba(255,255,255,0.05);
}

.dark .mobile-card-label {
  color: #b3b3b3;
}

.dark .mobile-card-value {
  color: #e6e6e6;
}

.dark .company-mobile-card .ant-list-item-action {
  background-color: #141414 !important;
  border-top-color: rgba(255,255,255,0.05) !important;
}

.dark .company-mobile-card .ant-btn-link:hover {
  background-color: rgba(24, 144, 255, 0.1);
}

.dark .company-mobile-card .ant-btn-link.ant-btn-dangerous:hover {
  background-color: rgba(255, 77, 79, 0.1);
}

/* Dark mode tag styling */
.dark .mobile-card-value .ant-tag-green {
  background-color: rgba(82, 196, 26, 0.15);
  color: #73d13d;
}

.dark .mobile-card-value .ant-tag-red {
  background-color: rgba(245, 34, 45, 0.15);
  color: #ff4d4f;
}

.dark .mobile-card-value .ant-tag-blue {
  background-color: rgba(24, 144, 255, 0.15);
  color: #40a9ff;
}

.dark .mobile-card-value .ant-tag-orange {
  background-color: rgba(250, 173, 20, 0.15);
  color: #ffc53d;
}

.dark .mobile-card-value .ant-tag-purple {
  background-color: rgba(114, 46, 209, 0.15);
  color: #9254de;
}

.dark .mobile-card-value .ant-tag-cyan {
  background-color: rgba(19, 194, 194, 0.15);
  color: #36cfc9;
}

/* Dark mode menu and selection styles */
.dark .ant-menu-item-selected {
  background-color: rgba(24, 144, 255, 0.15) !important;
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15)) !important;
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-menu-submenu-title:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background-color: rgba(24, 144, 255, 0.15) !important;
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15)) !important;
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
}

.dark .ant-table-row-selected > td {
  background-color: rgba(24, 144, 255, 0.15) !important;
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15)) !important;
}

.dark .ant-table-row:hover > td {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
}

.dark .ant-checkbox-wrapper:hover .ant-checkbox-inner,
.dark .ant-checkbox:hover .ant-checkbox-inner,
.dark .ant-checkbox-input:focus + .ant-checkbox-inner {
  border-color: #40a9ff !important;
  border-color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-checkbox-checked .ant-checkbox-inner {
  background-color: #1890ff !important;
  background-color: var(--dark-primary, #1890ff) !important;
  border-color: #1890ff !important;
  border-color: var(--dark-primary, #1890ff) !important;
}

.dark .ant-checkbox-checked:hover .ant-checkbox-inner {
  background-color: #40a9ff !important;
  background-color: var(--dark-primary-hover, #40a9ff) !important;
  border-color: #40a9ff !important;
  border-color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-radio-wrapper:hover .ant-radio,
.dark .ant-radio:hover .ant-radio-inner,
.dark .ant-radio-input:focus + .ant-radio-inner {
  border-color: #40a9ff !important;
  border-color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-radio-checked .ant-radio-inner {
  background-color: #1890ff !important;
  background-color: var(--dark-primary, #1890ff) !important;
  border-color: #1890ff !important;
  border-color: var(--dark-primary, #1890ff) !important;
}

.dark .ant-radio-checked:hover .ant-radio-inner {
  background-color: #40a9ff !important;
  background-color: var(--dark-primary-hover, #40a9ff) !important;
  border-color: #40a9ff !important;
  border-color: var(--dark-primary-hover, #40a9ff) !important;
}

/* Dropdown menu styles for dark mode */
.dark .ant-dropdown-menu-item-selected {
  background-color: rgba(24, 144, 255, 0.15) !important;
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15)) !important;
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-dropdown-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
}

/* Tree select styles for dark mode */
.dark .ant-tree-select-dropdown .ant-select-tree-node-selected {
  background-color: rgba(24, 144, 255, 0.15) !important;
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15)) !important;
}

.dark .ant-tree-select-dropdown .ant-select-tree-node-content-wrapper:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
}

/* Transfer list styles for dark mode */
.dark .ant-transfer-list-content-item-checked {
  background-color: rgba(24, 144, 255, 0.15) !important;
  background-color: var(--dark-item-selected-bg, rgba(24, 144, 255, 0.15)) !important;
}

.dark .ant-transfer-list-content-item:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  background-color: var(--dark-item-hover-bg, rgba(255, 255, 255, 0.08)) !important;
}

/* Tabs styles for dark mode */
.dark .ant-tabs-tab.ant-tabs-tab-active {
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-tabs-tab:hover {
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-tabs-ink-bar {
  background: #1890ff !important;
  background: var(--dark-primary, #1890ff) !important;
}

/* Steps styles for dark mode */
.dark .ant-steps-item-process .ant-steps-item-icon {
  background-color: #1890ff !important;
  background-color: var(--dark-primary, #1890ff) !important;
  border-color: #1890ff !important;
  border-color: var(--dark-primary, #1890ff) !important;
}

.dark .ant-steps-item-finish .ant-steps-item-icon {
  background-color: transparent !important;
  border-color: #1890ff !important;
  border-color: var(--dark-primary, #1890ff) !important;
}

.dark .ant-steps-item-finish .ant-steps-icon {
  color: #1890ff !important;
  color: var(--dark-primary, #1890ff) !important;
}

/* Timeline styles for dark mode */
.dark .ant-timeline-item-head-blue {
  color: #1890ff !important;
  color: var(--dark-primary, #1890ff) !important;
  border-color: #1890ff !important;
  border-color: var(--dark-primary, #1890ff) !important;
}

/* Tag styles for dark mode */
.dark .ant-tag-checkable:not(.ant-tag-checkable-checked):hover {
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

.dark .ant-tag-checkable-checked {
  background-color: #1890ff !important;
  background-color: var(--dark-primary, #1890ff) !important;
}

/* Ensure text contrast in selected items */
.dark .ant-select-item-option-selected:not(.ant-select-item-option-disabled),
.dark .ant-menu-item-selected,
.dark .ant-dropdown-menu-item-selected {
  color: #40a9ff !important;
  color: var(--dark-primary-hover, #40a9ff) !important;
}

/* Add active state styles */
.dark .ant-menu-item:active,
.dark .ant-select-item-option:active,
.dark .ant-dropdown-menu-item:active {
  background-color: rgba(255, 255, 255, 0.12) !important;
  background-color: var(--dark-item-active-bg, rgba(255, 255, 255, 0.12)) !important;
}

/* Fix for textarea character count overlapping with border */
.remark-textarea-with-count .ant-input-textarea-show-count::after {
  position: absolute;
  bottom: 8px !important;
  right: 8px !important;
  color: rgba(0, 0, 0, 0.45);
  white-space: nowrap;
  pointer-events: none;
  background-color: #fff !important;
  padding: 0 4px !important;
  font-size: 12px;
  z-index: 2 !important;
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
  line-height: 18px;
  margin-bottom: 2px;
}

/* Dark mode fix for textarea character count */
.dark .remark-textarea-with-count .ant-input-textarea-show-count::after {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.45);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1);
}

/* Container for textarea to properly handle the character count display */
.remark-textarea-container {
  position: relative;
  padding-bottom: 10px;
  margin-bottom: 0;
}

/* Ensure the character count appears within the container */
.remark-textarea-container .ant-input-textarea-show-count::after {
  position: absolute;
  bottom: 0 !important;
  right: 0 !important;
  font-size: 12px;
  padding: 0 8px !important;
  background: transparent !important; 
  box-shadow: none !important;
  z-index: 10 !important;
}

/* Ensure textarea has proper padding for the character count */
.remark-textarea-with-count .ant-input {
  padding-bottom: 24px !important;
}

/* Adjust textarea wrapper position */
.remark-textarea-with-count .ant-input-textarea {
  position: relative !important;
}

/* Resize observer should not interfere with the counter */
.remark-textarea-with-count .ant-input-textarea-show-count .resize-observer {
  position: absolute;
  z-index: 1;
}

/* Card header style for dark mode */
.dark .ant-card-head {
  background-color: #1f1f1f !important;
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

.dark .ant-card-head-title {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Card body style for dark mode */
.dark .ant-card-body {
  background-color: #141414 !important;
}

/* Define --card-head-background CSS variable for both light and dark modes */
:root {
  --card-background: #fff;
  --card-head-background: #f0f2f5;
  --text-color: rgba(0, 0, 0, 0.85);
  --hover-color: #e6f7ff;
}

.dark {
  --dark-component-background: #1f1f1f;
  --dark-card-head-background: #303030;
  --dark-text-color: rgba(255, 255, 255, 0.85);
  --dark-hover-color: #177ddc;
  color: var(--dark-text-color);
}

/* Ensure proper contrast for disabled items */
.dark .ant-menu-item-disabled,
.dark .ant-select-item-option-disabled,
.dark .ant-dropdown-menu-item-disabled {
  color: rgba(255, 255, 255, 0.45) !important;
  color: var(--dark-text-disabled, rgba(255, 255, 255, 0.45)) !important;
  background: none !important;
  cursor: not-allowed;
}

/* Add transition effects */
.dark .ant-menu-item,
.dark .ant-select-item-option,
.dark .ant-dropdown-menu-item,
.dark .ant-checkbox-inner,
.dark .ant-radio-inner {
  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
}

/* 分组相关样式 */
.grouped-data-container {
  margin-top: 12px;
}

.group-container {
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  margin-bottom: 16px;
  background-color: #fff;
  background-color: var(--card-background, #fff);
}

.group-header {
  transition: background-color 0.3s;
  background-color: #f0f2f5;
  background-color: var(--card-head-background, #f0f2f5);
  color: rgba(0, 0, 0, 0.85);
  color: var(--text-color, rgba(0, 0, 0, 0.85));
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
}

.group-header:hover {
  background-color: #e6f7ff;
  background-color: var(--hover-color, #e6f7ff);
}

/* 深色模式分组样式 */
.dark .group-container {
  background-color: #1f1f1f;
  background-color: var(--dark-component-background, #1f1f1f);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.dark .group-header {
  background-color: #303030;
  background-color: var(--dark-card-head-background, #303030);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85));
}

.dark .group-header:hover {
  background-color: #177ddc;
  background-color: var(--dark-hover-color, #177ddc);
}

.mobile-group-container {
  margin-bottom: 12px;
  border-radius: 4px;
  overflow: hidden;
}

.mobile-group-header {
  transition: background-color 0.3s;
  background-color: #f0f2f5;
  background-color: var(--card-head-background, #f0f2f5);
  color: rgba(0, 0, 0, 0.85);
  color: var(--text-color, rgba(0, 0, 0, 0.85));
  padding: 12px;
  border-radius: 4px;
  cursor: pointer;
}

.mobile-group-header:hover {
  background-color: #e6f7ff;
  background-color: var(--hover-color, #e6f7ff);
}

/* 深色模式移动端分组样式 */
.dark .mobile-group-container {
  background-color: #1f1f1f;
  background-color: var(--dark-component-background, #1f1f1f);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.dark .mobile-group-header {
  background-color: #303030;
  background-color: var(--dark-card-head-background, #303030);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85));
}

.dark .mobile-group-header:hover {
  background-color: #177ddc;
  background-color: var(--dark-hover-color, #177ddc);
}

/* 分组统计标签 */
.group-summary-tag {
  margin-right: 8px;
}

.group-summary-value {
  font-weight: 600;
}

/* 响应式调整 */
@media (max-width: 768px) {
  .grouped-data-container {
    margin-top: 8px;
  }
  
  .group-container {
    margin-bottom: 12px;
  }
}

/* 修复表格在分组容器中的样式 */
.group-container .ant-table-wrapper {
  border-radius: 0 0 4px 4px;
}

.mobile-group-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.mobile-group-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* 修复深色模式下文本颜色 */
.dark {
  --dark-component-background: #1f1f1f;
  --dark-card-head-background: #303030;
  --dark-text-color: rgba(255, 255, 255, 0.85);
  --dark-hover-color: #177ddc;
  color: var(--dark-text-color);
}

/* 确保标签文本在深色模式下可见 */
.dark .ant-typography {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85));
}

.dark label, 
.dark .ant-form-item-label > label,
.dark .form-label,
.dark .field-label {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85));
}

/* 修复grouping标签文本 */
.dark .grouping-label {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85));
}

/* 修复Grouping文本样式 */
.grouping-label-container {
  white-space: nowrap;
  margin-right: 12px;
  display: inline-flex;
  align-items: center;
  height: 32px;
}

.grouping-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 32px;
  display: inline-block;
  vertical-align: middle;
}

.dark .grouping-label {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85));
}

/* 列选择下拉菜单样式修复 */
.column-selector-dropdown .ant-dropdown-menu-item {
  padding: 8px 12px;
  clear: both;
  display: flex;
  align-items: center;
}

.column-selector-dropdown .ant-dropdown-menu-item .ant-checkbox-wrapper {
  flex: 1 1;
  display: flex;
  align-items: center;
}

.column-selector-dropdown .ant-dropdown-menu-item .ant-checkbox {
  margin-right: 8px;
  top: 0;
}

.column-selector-dropdown .ant-dropdown-menu-item .pinned-column-btn {
  margin-left: 8px;
}

.dark .column-selector-dropdown .ant-dropdown-menu-item {
  color: rgba(255, 255, 255, 0.85);
}

.dark .column-selector-dropdown .ant-dropdown-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.column-selector-dropdown .ant-checkbox-wrapper span:last-child {
  flex: 1 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
} 

@media screen and (max-width: 768px) {
  .ant-modal {
    top: 20px !important;
    margin-bottom: 20px !important;
    max-width: 95% !important;
  }
  
  /* 让内容层不裁剪弹层（如 DatePicker），滚动交给 body */
  .ant-modal-content {
    max-height: none;
    overflow: visible;
  }
  
  .ant-modal-body {
    max-height: calc(100vh - 180px);
    overflow-y: auto;
    padding: 12px;
  }
  
  .ant-form-item {
    margin-bottom: 12px;
  }
}

/* Ensure modal footer buttons are properly spaced on mobile */
@media screen and (max-width: 576px) {
  .ant-modal-footer {
    padding: 10px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
  }
  
  .ant-modal-footer .ant-btn {
    margin-left: 0;
    flex: 1 1;
    padding: 4px 8px;
    height: auto;
    min-height: 32px;
  }
}

/* 添加全局表格行样式 */
.ant-table-tbody > tr {
  background-color: #ffffff !important; /* 确保亮色模式下行背景为白色 */
}

.ant-table-tbody > tr:nth-child(even) {
  background-color: #fafafa !important; /* 亮色模式下交替行使用浅灰色 */
}

/* 深色模式下表格行样式 */
.dark .ant-table-tbody > tr {
  background-color: #1f1f1f !important; /* 深色模式下行背景为深色 */
}

.dark .ant-table-tbody > tr:nth-child(even) {
  background-color: #141414 !important; /* 深色模式下交替行更深 */
}

/* 确保悬停样式正确 */
.ant-table-tbody > tr:hover > td {
  background-color: #f0f2f5 !important; /* 亮色模式下悬停行 */
}

.dark .ant-table-tbody > tr:hover > td {
  background-color: #1a1a1a !important; /* 深色模式下悬停行 */
}

/* 预算管理表格专用样式 */
.budget-management-table .light-row-odd {
  background-color: #ffffff !important;
}

.budget-management-table .light-row-even {
  background-color: #fafafa !important;
}

.budget-management-table .dark-row-odd {
  background-color: #1f1f1f !important;
}

.budget-management-table .dark-row-even {
  background-color: #141414 !important;
}

/* 确保悬停状态样式正确 */
.budget-management-table tr.light-row-odd:hover > td,
.budget-management-table tr.light-row-even:hover > td {
  background-color: #f0f2f5 !important;
}

.budget-management-table tr.dark-row-odd:hover > td,
.budget-management-table tr.dark-row-even:hover > td {
  background-color: #1a1a1a !important;
}

/* Fix for frozen column text overlap issues */
.budget-management-table .ant-table-cell-fix-left,
.budget-management-table .ant-table-cell-fix-right {
  background-color: inherit !important;
  z-index: 2 !important;
}

.budget-management-table .light-row-odd .ant-table-cell-fix-left,
.budget-management-table .light-row-odd .ant-table-cell-fix-right {
  background-color: #ffffff !important;
}

.budget-management-table .light-row-even .ant-table-cell-fix-left,
.budget-management-table .light-row-even .ant-table-cell-fix-right {
  background-color: #f8f8f8 !important;
}

.budget-management-table .dark-row-odd .ant-table-cell-fix-left,
.budget-management-table .dark-row-odd .ant-table-cell-fix-right {
  background-color: #141414 !important;
}

.budget-management-table .dark-row-even .ant-table-cell-fix-left,
.budget-management-table .dark-row-even .ant-table-cell-fix-right {
  background-color: #1f1f1f !important;
}

/* Critical fix: ensure hover states apply to fixed columns too */
.budget-management-table tr.light-row-odd:hover .ant-table-cell-fix-left,
.budget-management-table tr.light-row-even:hover .ant-table-cell-fix-left,
.budget-management-table tr.light-row-odd:hover .ant-table-cell-fix-right,
.budget-management-table tr.light-row-even:hover .ant-table-cell-fix-right {
  background-color: #f0f2f5 !important;
}

.budget-management-table tr.dark-row-odd:hover .ant-table-cell-fix-left,
.budget-management-table tr.dark-row-even:hover .ant-table-cell-fix-left,
.budget-management-table tr.dark-row-odd:hover .ant-table-cell-fix-right,
.budget-management-table tr.dark-row-even:hover .ant-table-cell-fix-right {
  background-color: #1a1a1a !important;
}

/* Fix for group header text color in light mode */
.group-header,
.mobile-group-header {
  color: rgba(0, 0, 0, 0.85) !important;
  color: var(--text-color, rgba(0, 0, 0, 0.85)) !important;
}

.dark .group-header,
.dark .mobile-group-header {
  color: rgba(255, 255, 255, 0.85) !important;
  color: var(--dark-text-color, rgba(255, 255, 255, 0.85)) !important;
}

/* Improve the shadow appearance of fixed columns */
.budget-management-table .ant-table-cell-fix-left-last::after {
  box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.08) !important;
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 30px;
  pointer-events: none;
}

.budget-management-table .ant-table-cell-fix-right-first::after {
  box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.08) !important;
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 30px;
  pointer-events: none;
}

.dark .budget-management-table .ant-table-cell-fix-left-last::after {
  box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.3) !important;
}

.dark .budget-management-table .ant-table-cell-fix-right-first::after {
  box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.3) !important;
}

/* 修复表头固定列的重叠问题 */
.budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-left,
.budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-right {
  background-color: #fafafa !important;
  z-index: 3 !important;
}

.dark .budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-left,
.dark .budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-right {
  background-color: #262626 !important;
  z-index: 3 !important;
}

/* 确保表头边框样式一致，防止重叠时边框问题 */
.budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-left::before,
.budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-right::before {
  background-color: transparent !important;
}

/* 设置表头固定列的阴影更明显 */
.budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-left-last::after {
  box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15) !important;
}

.budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-right-first::after {
  box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15) !important;
}

/* 深色模式下表头固定列的阴影 */
.dark .budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-left-last::after {
  box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.4) !important;
}

.dark .budget-management-table .ant-table-thead > tr > th.ant-table-cell-fix-right-first::after {
  box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.4) !important;
}

/* 提高表头和表格主体的z-index区分，防止滚动时重叠 */
.budget-management-table .ant-table-header {
  z-index: 4 !important;
}

.budget-management-table .ant-table-body {
  z-index: 1 !important;
}

/* Fix for frozen column background color matching issues */
.budget-management-table .ant-table-cell-fix-left,
.budget-management-table .ant-table-cell-fix-right {
  background-color: transparent !important; /* 从inherit改为transparent，让单元格使用行的背景色 */
}

/* 确保行的背景色被正确应用到所有单元格，包括固定列 */
.budget-management-table .light-row-odd td {
  background-color: #ffffff !important;
}

.budget-management-table .light-row-even td {
  background-color: #fafafa !important;
}

.budget-management-table .dark-row-odd td {
  background-color: #1f1f1f !important;
}

.budget-management-table .dark-row-even td {
  background-color: #141414 !important;
}

/* 覆盖固定列的背景色，使其与行保持一致 */
.budget-management-table .light-row-odd td.ant-table-cell-fix-left,
.budget-management-table .light-row-odd td.ant-table-cell-fix-right {
  background-color: #ffffff !important;
}

.budget-management-table .light-row-even td.ant-table-cell-fix-left,
.budget-management-table .light-row-even td.ant-table-cell-fix-right {
  background-color: #fafafa !important;
}

.budget-management-table .dark-row-odd td.ant-table-cell-fix-left,
.budget-management-table .dark-row-odd td.ant-table-cell-fix-right {
  background-color: #1f1f1f !important;
}

.budget-management-table .dark-row-even td.ant-table-cell-fix-left,
.budget-management-table .dark-row-even td.ant-table-cell-fix-right {
  background-color: #141414 !important;
}

/* 确保悬停状态下固定列的背景色与行一致 */
.budget-management-table tr.light-row-odd:hover td,
.budget-management-table tr.light-row-even:hover td {
  background-color: #f0f2f5 !important;
}

.budget-management-table tr.dark-row-odd:hover td,
.budget-management-table tr.dark-row-even:hover td {
  background-color: #1a1a1a !important;
}

/* Dark drawer styles */
.dark .dark-drawer .ant-drawer-content {
  background-color: #1f1f1f;
  background-color: var(--dark-component-background, #1f1f1f);
}

.dark .dark-drawer .ant-drawer-header {
  background-color: #303030;
  background-color: var(--dark-card-head-background, #303030);
  border-bottom-color: #303030;
  border-bottom-color: var(--dark-border, #303030);
}

.dark .dark-drawer .ant-drawer-title {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .dark-drawer .ant-drawer-close {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .dark-drawer .ant-drawer-close:hover {
  color: #177ddc;
  color: var(--dark-hover-color, #177ddc);
}

.dark .dark-drawer .ant-drawer-body {
  background-color: #1f1f1f;
  background-color: var(--dark-component-background, #1f1f1f);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .dark-drawer .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .dark-drawer .ant-input,
.dark .dark-drawer .ant-input-number,
.dark .dark-drawer .ant-select-selector,
.dark .dark-drawer .ant-picker {
  background-color: #141414;
  background-color: var(--dark-component-bg, #141414);
  border-color: #434343;
  border-color: var(--dark-border-secondary, #434343);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-text, rgba(255, 255, 255, 0.85));
}

.dark .dark-drawer .ant-input:focus,
.dark .dark-drawer .ant-input-number:focus,
.dark .dark-drawer .ant-select-focused .ant-select-selector,
.dark .dark-drawer .ant-picker-focused {
  border-color: #40a9ff;
  border-color: var(--dark-primary-hover, #40a9ff);
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.15);
  box-shadow: 0 0 0 2px var(--dark-primary-bg, rgba(24, 144, 255, 0.15));
}

.dark .dark-drawer .ant-alert {
  background-color: #1f1f1f;
  background-color: var(--dark-component-background, #1f1f1f);
  border-color: #303030;
  border-color: var(--dark-border, #303030);
}

/* SchedulerManagement 移动端样式 */
.scheduler-management {
  padding: 0;
}

.scheduler-mobile-list {
  background: transparent;
  padding: 0;
}

.scheduler-mobile-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid #f0f0f0;
}

.scheduler-mobile-card .mobile-card-header {
  padding: 16px;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #f0f0f0;
  background-color: #fafafa;
  position: relative;
}

.scheduler-mobile-card .mobile-card-header:hover {
  background-color: #f5f5f5;
}

.scheduler-mobile-card .mobile-card-header::after {
  content: '';
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #999;
  transition: transform 0.3s ease;
}

.scheduler-mobile-card .mobile-card-header.expanded::after {
  transform: translateY(-50%) rotate(180deg);
}

.scheduler-mobile-card .mobile-card-title {
  flex: 1 1;
  min-width: 0;
}

/* 新增：配置标题行布局 */
.scheduler-mobile-card .config-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
  gap: 12px;
}

.scheduler-mobile-card .config-name {
  font-weight: 600;
  font-size: 14px;
  color: #262626;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1 1;
  min-width: 0;
}

.scheduler-mobile-card .config-status-toggle {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.scheduler-mobile-card .config-description {
  font-size: 12px;
  color: #8c8c8c;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.scheduler-mobile-card .log-execution-id {
  font-weight: 600;
  font-size: 14px;
  color: #262626;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.scheduler-mobile-card .log-config-name {
  font-size: 12px;
  color: #8c8c8c;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.scheduler-mobile-card .mobile-card-content {
  border-top: 1px solid #f0f0f0;
  padding: 0;
  display: none;
  overflow: hidden;
  transition: all 0.3s ease;
}

.scheduler-mobile-card .mobile-card-content.expanded {
  display: block;
  padding: 16px;
}

.scheduler-mobile-card .mobile-card-content-inner {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.scheduler-mobile-card .mobile-card-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid #f5f5f5 !important;
  margin-bottom: 0 !important;
  position: relative !important;
}

.scheduler-mobile-card .mobile-card-item:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
}

.scheduler-mobile-card .mobile-card-label {
  font-weight: 500 !important;
  font-size: 13px !important;
  color: #595959 !important;
  min-width: 80px !important;
  margin-bottom: 0 !important;
  padding-right: 12px !important;
  position: relative !important;
}

.scheduler-mobile-card .mobile-card-label::after {
  content: ':' !important;
  position: absolute !important;
  right: 4px !important;
  color: #909399 !important;
}

.scheduler-mobile-card .mobile-card-value {
  font-size: 13px !important;
  color: #262626 !important;
  text-align: right !important;
  flex: 1 1 !important;
  margin-left: 12px !important;
  word-break: break-word !important;
}

.scheduler-mobile-card .mobile-card-actions {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #f0f0f0;
}

/* 移动端统计卡片美化 */
.mobile-stats-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  border-radius: 12px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid #e8e8e8 !important;
  transition: all 0.3s ease;
  overflow: hidden;
}

.mobile-stats-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
  transform: translateY(-2px);
}

.mobile-stats-card .ant-card-body {
  padding: 20px 16px !important;
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
}

.mobile-stats-card .ant-statistic-title {
  font-size: 13px !important;
  margin-bottom: 8px !important;
  color: #666 !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.mobile-stats-card .ant-statistic-content {
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.mobile-stats-card .ant-statistic-content-value {
  color: #1890ff !important;
  font-size: 24px !important;
  font-weight: 700 !important;
}

.mobile-stats-card .ant-statistic-content-prefix {
  margin-right: 6px !important;
  font-size: 20px !important;
}

/* 暗黑模式支持 */
.dark .scheduler-mobile-card {
  background: #1f1f1f;
  border-color: #303030;
}

.dark .scheduler-mobile-card .mobile-card-header {
  background-color: #262626;
  border-bottom-color: #303030;
}

.dark .scheduler-mobile-card .mobile-card-header:hover {
  background-color: #2a2a2a;
}

.dark .scheduler-mobile-card .mobile-card-header::after {
  border-top-color: #8c8c8c;
}

.dark .scheduler-mobile-card .config-name,
.dark .scheduler-mobile-card .log-execution-id {
  color: #f0f0f0;
}

.dark .scheduler-mobile-card .config-description,
.dark .scheduler-mobile-card .log-config-name {
  color: #a6a6a6;
}

.dark .scheduler-mobile-card .mobile-card-content {
  border-top-color: #303030;
}

.dark .scheduler-mobile-card .mobile-card-item {
  border-bottom-color: #303030;
}

.dark .scheduler-mobile-card .mobile-card-label {
  color: #a6a6a6;
}

.dark .scheduler-mobile-card .mobile-card-value {
  color: #f0f0f0;
}

.dark .scheduler-mobile-card .mobile-card-actions {
  border-top-color: #303030;
}

/* 暗黑模式统计卡片 */
.dark .mobile-stats-card {
  background: #1f1f1f !important;
  border-color: #303030 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

.dark .mobile-stats-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
}

.dark .mobile-stats-card .ant-card-body {
  background: linear-gradient(135deg, #262626 0%, #1f1f1f 100%) !important;
}

.dark .mobile-stats-card .ant-statistic-title {
  color: #a6a6a6 !important;
}

.dark .mobile-stats-card .ant-statistic-content-value {
  color: #40a9ff !important;
}

/* 极小屏幕优化 */
@media screen and (max-width: 375px) {
  .scheduler-mobile-card .mobile-card-header {
    padding: 12px;
  }
  
  .scheduler-mobile-card .mobile-card-content {
    padding: 12px;
  }
  
  .scheduler-mobile-card .mobile-card-item {
    padding: 6px 0;
  }
  
  .scheduler-mobile-card .mobile-card-label {
    font-size: 12px;
    min-width: 70px;
  }
  
  .scheduler-mobile-card .mobile-card-value {
    font-size: 12px;
  }
  
  .scheduler-mobile-card .mobile-card-actions .ant-btn {
    font-size: 11px;
    padding: 4px 8px;
  }
  
  /* 极小屏幕下的标题行布局优化 */
  .scheduler-mobile-card .config-header-row {
    gap: 8px;
  }
  
  .scheduler-mobile-card .config-name {
    font-size: 13px;
  }
  
  .scheduler-mobile-card .config-description {
    font-size: 11px;
  }
  
  .mobile-stats-card .ant-card-body {
    padding: 16px 12px !important;
  }
  
  .mobile-stats-card .ant-statistic-title {
    font-size: 12px !important;
  }
  
  .mobile-stats-card .ant-statistic-content {
    font-size: 20px !important;
  }
  
  .mobile-stats-card .ant-statistic-content-value {
    font-size: 20px !important;
  }
}

/* 移动端表格优化 */
@media screen and (max-width: 768px) {
  .scheduler-management .ant-table {
    font-size: 12px;
  }
  
  .scheduler-management .ant-table-cell {
    padding: 8px 4px;
  }
  
  .scheduler-management .ant-table-thead > tr > th {
    padding: 8px 4px;
    font-size: 12px;
    font-weight: 600;
  }
  
  .scheduler-management .ant-table-tbody > tr > td {
    padding: 8px 4px;
    font-size: 12px;
  }
  
  .scheduler-management .ant-tag {
    font-size: 10px;
    padding: 2px 6px;
  }
  
  .scheduler-management .ant-btn {
    font-size: 11px;
    padding: 4px 8px;
  }
}

/* SchedulerManagement 移动端样式 - 强制左右布局 */
.scheduler-management .scheduler-mobile-card .mobile-card-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid #f5f5f5 !important;
  margin-bottom: 0 !important;
  position: relative !important;
  flex-direction: row !important;
}

.scheduler-management .scheduler-mobile-card .mobile-card-item:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
}

.scheduler-management .scheduler-mobile-card .mobile-card-label {
  font-weight: 500 !important;
  font-size: 13px !important;
  color: #595959 !important;
  min-width: 80px !important;
  margin-bottom: 0 !important;
  padding-right: 12px !important;
  position: relative !important;
  flex-shrink: 0 !important;
}

.scheduler-management .scheduler-mobile-card .mobile-card-label::after {
  content: ':' !important;
  position: absolute !important;
  right: 4px !important;
  color: #909399 !important;
}

.scheduler-management .scheduler-mobile-card .mobile-card-value {
  font-size: 13px !important;
  color: #262626 !important;
  text-align: right !important;
  flex: 1 1 !important;
  margin-bottom: 0 !important;
  word-break: break-word !important;
}

/* 暗黑模式支持 - 强制左右布局 */
.dark .scheduler-management .scheduler-mobile-card .mobile-card-item {
  border-bottom-color: #303030 !important;
}

.dark .scheduler-management .scheduler-mobile-card .mobile-card-label {
  color: #a6a6a6 !important;
}

.dark .scheduler-management .scheduler-mobile-card .mobile-card-label::after {
  color: #8c8c8c !important;
}

.dark .scheduler-management .scheduler-mobile-card .mobile-card-value {
  color: #f0f0f0 !important;
}

/* 日志详情模态框样式 */
.log-details-modal .ant-modal-content {
  border-radius: 12px;
  overflow: hidden;
}

.log-details-modal .ant-modal-header {
  background: linear-gradient(135deg, #1890ff 0%, #096dd9 100%);
  border-bottom: none;
  padding: 20px 24px;
}

.log-details-modal .ant-modal-title {
  color: white;
  font-weight: 600;
  font-size: 16px;
}

.log-details-modal .ant-modal-close {
  color: white;
}

.log-details-modal .ant-modal-close:hover {
  color: #f0f0f0;
}

.log-details-modal .ant-modal-body {
  padding: 24px;
}

/* 桌面端显示Descriptions，移动端隐藏 */
.desktop-log-details {
  display: block;
}

.mobile-log-details {
  display: none;
}

/* 移动端日志详情样式 */
.mobile-log-details {
  background: #fafafa;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}

.mobile-log-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 12px 0;
  border-bottom: 1px solid #f0f0f0;
  position: relative;
}

.mobile-log-item:last-child {
  border-bottom: none;
}

.mobile-log-label {
  font-weight: 600;
  font-size: 14px;
  color: #595959;
  min-width: 120px;
  flex-shrink: 0;
  margin-right: 16px;
}

.mobile-log-value {
  flex: 1 1;
  font-size: 14px;
  color: #262626;
  text-align: right;
  word-break: break-word;
  line-height: 1.4;
}

/* 移动端响应式 */
@media screen and (max-width: 768px) {
  .log-details-modal .ant-modal {
    margin: 16px;
    max-width: calc(100vw - 32px);
  }
  
  .log-details-modal .ant-modal-content {
    border-radius: 8px;
  }
  
  .log-details-modal .ant-modal-body {
    padding: 16px;
  }
  
  /* 移动端隐藏桌面端布局，显示移动端布局 */
  .desktop-log-details {
    display: none;
  }
  
  .mobile-log-details {
    display: block;
  }
  
  .mobile-log-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  
  .mobile-log-label {
    min-width: auto;
    margin-right: 0;
    font-size: 13px;
  }
  
  .mobile-log-value {
    text-align: left;
    font-size: 13px;
    width: 100%;
  }
}

/* 极小屏幕优化 */
@media screen and (max-width: 375px) {
  .log-details-modal .ant-modal-body {
    padding: 12px;
  }
  
  .mobile-log-details {
    padding: 12px;
  }
  
  .mobile-log-item {
    padding: 8px 0;
  }
  
  .mobile-log-label {
    font-size: 12px;
  }
  
  .mobile-log-value {
    font-size: 12px;
  }
}

/* 深色模式支持 */
.dark .log-details-modal .ant-modal-content {
  background: #1f1f1f;
  border-color: #303030;
}

.dark .log-details-modal .ant-modal-header {
  background: linear-gradient(135deg, #177ddc 0%, #0958b5 100%);
}

.dark .mobile-log-details {
  background: #262626;
}

.dark .mobile-log-item {
  border-bottom-color: #303030;
}

.dark .mobile-log-label {
  color: #a6a6a6;
}

.dark .mobile-log-value {
  color: #f0f0f0;
}

/* SchedulerManagement Drawer 样式 */
.scheduler-management .mobile-friendly-drawer .ant-drawer-content {
  background-color: #ffffff;
  background-color: var(--drawer-bg, #ffffff);
}

.scheduler-management .mobile-friendly-drawer .ant-drawer-header {
  background-color: #fafafa;
  background-color: var(--drawer-header-bg, #fafafa);
  border-bottom-color: #f0f0f0;
  border-bottom-color: var(--drawer-border, #f0f0f0);
}

.scheduler-management .mobile-friendly-drawer .ant-drawer-title {
  color: rgba(0, 0, 0, 0.85);
  color: var(--drawer-title-color, rgba(0, 0, 0, 0.85));
  font-size: 16px;
  font-weight: 600;
}

.scheduler-management .mobile-friendly-drawer .ant-drawer-close {
  color: rgba(0, 0, 0, 0.45);
  color: var(--drawer-close-color, rgba(0, 0, 0, 0.45));
}

.scheduler-management .mobile-friendly-drawer .ant-drawer-close:hover {
  color: rgba(0, 0, 0, 0.75);
  color: var(--drawer-close-hover-color, rgba(0, 0, 0, 0.75));
}

.scheduler-management .mobile-friendly-drawer .ant-drawer-body {
  background-color: #ffffff;
  background-color: var(--drawer-body-bg, #ffffff);
  color: rgba(0, 0, 0, 0.85);
  color: var(--drawer-body-color, rgba(0, 0, 0, 0.85));
  padding: 24px;
}

.scheduler-management .mobile-friendly-drawer .ant-form-item-label > label {
  color: rgba(0, 0, 0, 0.85);
  color: var(--drawer-label-color, rgba(0, 0, 0, 0.85));
  font-weight: 500;
}

.scheduler-management .mobile-friendly-drawer .ant-input,
.scheduler-management .mobile-friendly-drawer .ant-input-number,
.scheduler-management .mobile-friendly-drawer .ant-select-selector,
.scheduler-management .mobile-friendly-drawer .ant-picker {
  background-color: #ffffff;
  background-color: var(--drawer-input-bg, #ffffff);
  border-color: #d9d9d9;
  border-color: var(--drawer-input-border, #d9d9d9);
  color: rgba(0, 0, 0, 0.85);
  color: var(--drawer-input-color, rgba(0, 0, 0, 0.85));
}

.scheduler-management .mobile-friendly-drawer .ant-input:focus,
.scheduler-management .mobile-friendly-drawer .ant-input-number:focus,
.scheduler-management .mobile-friendly-drawer .ant-select-focused .ant-select-selector,
.scheduler-management .mobile-friendly-drawer .ant-picker-focused {
  border-color: #1890ff;
  border-color: var(--drawer-input-focus-border, #1890ff);
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  box-shadow: 0 0 0 2px var(--drawer-input-focus-shadow, rgba(24, 144, 255, 0.2));
}

.scheduler-management .mobile-friendly-drawer .ant-switch {
  background-color: rgba(0, 0, 0, 0.25);
  background-color: var(--drawer-switch-bg, rgba(0, 0, 0, 0.25));
}

.scheduler-management .mobile-friendly-drawer .ant-switch-checked {
  background-color: #1890ff;
  background-color: var(--drawer-switch-checked-bg, #1890ff);
}

.scheduler-management .mobile-friendly-drawer .ant-btn {
  border-color: #d9d9d9;
  border-color: var(--drawer-btn-border, #d9d9d9);
  color: rgba(0, 0, 0, 0.85);
  color: var(--drawer-btn-color, rgba(0, 0, 0, 0.85));
}

.scheduler-management .mobile-friendly-drawer .ant-btn-primary {
  background-color: #1890ff;
  background-color: var(--drawer-btn-primary-bg, #1890ff);
  border-color: #1890ff;
  border-color: var(--drawer-btn-primary-border, #1890ff);
  color: #ffffff;
  color: var(--drawer-btn-primary-color, #ffffff);
}

.scheduler-management .mobile-friendly-drawer .ant-btn-primary:hover {
  background-color: #40a9ff;
  background-color: var(--drawer-btn-primary-hover-bg, #40a9ff);
  border-color: #40a9ff;
  border-color: var(--drawer-btn-primary-hover-border, #40a9ff);
}

/* 暗色主题 Drawer 样式 */
.scheduler-management .dark-theme-drawer .ant-drawer-content {
  background-color: #1f1f1f;
  background-color: var(--dark-drawer-bg, #1f1f1f);
}

.scheduler-management .dark-theme-drawer .ant-drawer-header {
  background-color: #303030;
  background-color: var(--dark-drawer-header-bg, #303030);
  border-bottom-color: #303030;
  border-bottom-color: var(--dark-drawer-border, #303030);
}

.scheduler-management .dark-theme-drawer .ant-drawer-title {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-drawer-title-color, rgba(255, 255, 255, 0.85));
}

.scheduler-management .dark-theme-drawer .ant-drawer-close {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-drawer-close-color, rgba(255, 255, 255, 0.85));
}

.scheduler-management .dark-theme-drawer .ant-drawer-close:hover {
  color: #177ddc;
  color: var(--dark-drawer-close-hover-color, #177ddc);
}

.scheduler-management .dark-theme-drawer .ant-drawer-body {
  background-color: #1f1f1f;
  background-color: var(--dark-drawer-body-bg, #1f1f1f);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-drawer-body-color, rgba(255, 255, 255, 0.85));
}

.scheduler-management .dark-theme-drawer .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-drawer-label-color, rgba(255, 255, 255, 0.85));
}

.scheduler-management .dark-theme-drawer .ant-input,
.scheduler-management .dark-theme-drawer .ant-input-number,
.scheduler-management .dark-theme-drawer .ant-select-selector,
.scheduler-management .dark-theme-drawer .ant-picker {
  background-color: #141414;
  background-color: var(--dark-drawer-input-bg, #141414);
  border-color: #434343;
  border-color: var(--dark-drawer-input-border, #434343);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-drawer-input-color, rgba(255, 255, 255, 0.85));
}

.scheduler-management .dark-theme-drawer .ant-input:focus,
.scheduler-management .dark-theme-drawer .ant-input-number:focus,
.scheduler-management .dark-theme-drawer .ant-select-focused .ant-select-selector,
.scheduler-management .dark-theme-drawer .ant-picker-focused {
  border-color: #40a9ff;
  border-color: var(--dark-drawer-input-focus-border, #40a9ff);
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.15);
  box-shadow: 0 0 0 2px var(--dark-drawer-input-focus-shadow, rgba(24, 144, 255, 0.15));
}

.scheduler-management .dark-theme-drawer .ant-switch {
  background-color: rgba(255, 255, 255, 0.25);
  background-color: var(--dark-drawer-switch-bg, rgba(255, 255, 255, 0.25));
}

.scheduler-management .dark-theme-drawer .ant-switch-checked {
  background-color: #177ddc;
  background-color: var(--dark-drawer-switch-checked-bg, #177ddc);
}

.scheduler-management .dark-theme-drawer .ant-btn {
  border-color: #434343;
  border-color: var(--dark-drawer-btn-border, #434343);
  color: rgba(255, 255, 255, 0.85);
  color: var(--dark-drawer-btn-color, rgba(255, 255, 255, 0.85));
}

.scheduler-management .dark-theme-drawer .ant-btn-primary {
  background-color: #177ddc;
  background-color: var(--dark-drawer-btn-primary-bg, #177ddc);
  border-color: #177ddc;
  border-color: var(--dark-drawer-btn-primary-border, #177ddc);
  color: #ffffff;
  color: var(--dark-drawer-btn-primary-color, #ffffff);
}

.scheduler-management .dark-theme-drawer .ant-btn-primary:hover {
  background-color: #40a9ff;
  background-color: var(--dark-drawer-btn-primary-hover-bg, #40a9ff);
  border-color: #40a9ff;
  border-color: var(--dark-drawer-btn-primary-hover-border, #40a9ff);
}

/* 移动端优化 */
@media screen and (max-width: 768px) {
  .scheduler-management .mobile-friendly-drawer .ant-drawer-body {
    padding: 16px;
  }
  
  .scheduler-management .mobile-friendly-drawer .ant-form-item {
    margin-bottom: 16px;
  }
  
  .scheduler-management .mobile-friendly-drawer .ant-row {
    margin-bottom: 8px;
  }
  
  .scheduler-management .mobile-friendly-drawer .ant-col {
    margin-bottom: 8px;
  }
}

@media screen and (max-width: 576px) {
  .scheduler-management .mobile-friendly-drawer .ant-drawer-body {
    padding: 12px;
  }
  
  .scheduler-management .mobile-friendly-drawer .ant-form-item {
    margin-bottom: 12px;
  }
  
  .scheduler-management .mobile-friendly-drawer .ant-drawer-title {
    font-size: 14px;
  }
  
  .scheduler-management .mobile-friendly-drawer .ant-form-item-label > label {
    font-size: 13px;
  }
}

/* Customer Quality Details Modal Dark Mode Styles */
.dark .customer-quality-details-modal .ant-modal-content {
  background-color: #1f1f1f !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-modal-header {
  background-color: #1f1f1f !important;
  border-bottom: 1px solid #303030 !important;
}

.dark .customer-quality-details-modal .ant-modal-title {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-modal-body {
  background-color: #1f1f1f !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Descriptions component in dark mode */
.dark .customer-quality-details-modal .ant-descriptions-bordered .ant-descriptions-item-label {
  background-color: #2a2a2a !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-descriptions-bordered .ant-descriptions-item-content {
  background-color: #1f1f1f !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-descriptions-bordered .ant-descriptions-view {
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-descriptions-bordered .ant-descriptions-row > td {
  border-color: #303030 !important;
}

/* Typography components in dark mode */
.dark .customer-quality-details-modal .ant-typography {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-typography.ant-typography-caption {
  color: rgba(255, 255, 255, 0.65) !important;
}

/* Card components in dark mode */
.dark .customer-quality-details-modal .ant-card {
  background-color: #1f1f1f !important;
  border-color: #303030 !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-card-head {
  background-color: #2a2a2a !important;
  border-bottom: 1px solid #303030 !important;
}

.dark .customer-quality-details-modal .ant-card-head-title {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-card-body {
  background-color: #1f1f1f !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Alert components in dark mode */
.dark .customer-quality-details-modal .ant-alert {
  background-color: #2a2a2a !important;
  border-color: #303030 !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-alert-message {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-alert-description {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-alert-info {
  background-color: rgba(24, 144, 255, 0.15) !important;
  border-color: rgba(24, 144, 255, 0.3) !important;
}

.dark .customer-quality-details-modal .ant-alert-warning {
  background-color: rgba(250, 173, 20, 0.15) !important;
  border-color: rgba(250, 173, 20, 0.3) !important;
}

/* Text and content styling */
.dark .customer-quality-details-modal div {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal span {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-typography-title {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-typography-text {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Progress and other components */
.dark .customer-quality-details-modal .ant-progress-text {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Collapse components in dark mode */
.dark .customer-quality-details-modal .ant-collapse {
  background-color: #1f1f1f !important;
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-collapse-item {
  background-color: #1f1f1f !important;
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-collapse-header {
  background-color: #2a2a2a !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-collapse-header:hover {
  background-color: #3a3a3a !important;
}

.dark .customer-quality-details-modal .ant-collapse-content {
  background-color: #1f1f1f !important;
  border-color: #303030 !important;
}

.dark .customer-quality-details-modal .ant-collapse-content-box {
  background-color: #1f1f1f !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Collapse content text styling in dark mode */
.dark .customer-quality-details-modal .ant-collapse-content .ant-typography {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-collapse-content div {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-collapse-content span {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Specific styling for calculation content */
.dark .customer-quality-details-modal .ant-collapse-content .ant-typography-text {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .customer-quality-details-modal .ant-collapse-content code {
  background-color: #2a2a2a !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border: 1px solid #303030 !important;
}
/* 重置基础样式 */
body {
  margin: 0;
  transition: all 0.3s;
}

/* 主导航样式 */
.header-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  width: 100%;
  height: 64px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  transition: all 0.3s ease;
  position: relative;
}

.theme-switch {
  margin-left: 16px;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, 0.15);
}

.main-header {
  padding: 0;
  position: sticky;
  top: 0;
  z-index: 100;
  background: transparent;
  height: 64px;
  line-height: 64px;
}

/* 侧边栏导航样式 */
.main-navigation-sider {
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  position: relative;
  z-index: 101;
  height: 100vh;
  position: fixed;
  left: 0;
  overflow: auto;
  background-color: #fff;
}

.main-navigation-sider .ant-layout-sider-children {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.logo {
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  color: #1890ff;
  font-size: 18px;
  font-weight: 600;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  background-color: #fff;
}

.app-title {
  margin-left: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sider-footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 16px;
  display: flex;
  justify-content: center;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.toggle-menu-button {
  font-size: 18px;
  cursor: pointer;
  transition: color 0.3s;
  margin-right: 16px;
}

.toggle-menu-button:hover {
  color: #1890ff;
}

.header-title {
  font-size: 18px;
  font-weight: 500;
}

.main-content {
  padding: 24px;
  margin: 0 24px 24px;
  background: #fff;
  border-radius: 4px;
  min-height: calc(100vh - 112px);
  transition: all 0.3s;
}

.main-navigation {
  flex: 1 1;
  border: none;
  background: transparent;
  overflow-y: auto;
  overflow-x: hidden;
}

.main-navigation .ant-menu-item {
  padding: 0 24px;
  font-size: 14px;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  overflow: visible;
  margin: 4px 0;
  height: auto !important;
  min-height: 40px;
  line-height: 1.5 !important;
  padding-top: 8px;
  padding-bottom: 8px;
  white-space: normal;
  word-break: break-word;
}

.main-navigation .ant-menu-item:hover {
  color: #1890ff;
  background: rgba(24,144,255,0.1);
}

.main-navigation .ant-menu-item-selected {
  font-weight: 500;
  color: #1890ff !important;
  background-color: #e6f7ff !important;
}

.main-navigation .ant-menu-item a {
  color: inherit;
  text-decoration: none;
  white-space: normal;
  word-break: break-word;
  line-height: 1.5;
}

/* 分组菜单样式 */
.ant-menu-item-group-title {
  color: #1890ff;
  font-weight: 500;
  padding: 8px 24px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.8;
  background: rgba(24,144,255,0.05);
}

.ant-menu-item-group .ant-menu-item {
  padding-left: 40px;
  position: relative;
  margin: 4px 0;
}

.ant-menu-item-group .ant-menu-item::before {
  content: '';
  position: absolute;
  left: 24px;
  top: 50%;
  width: 4px;
  height: 4px;
  background: currentColor;
  border-radius: 50%;
  opacity: 0.5;
  transform: translateY(-50%);
}

/* 移动端适配 */
@media screen and (max-width: 768px) {
  .header-container {
    padding: 0 12px;
  }

  .main-navigation-sider {
    position: fixed;
    left: 0;
    z-index: 999;
  }

  .main-content {
    padding: 16px;
    margin: 0 12px 12px;
    min-height: calc(100vh - 88px);
  }

  .ant-layout {
    margin-left: 0 !important;
  }

  .ant-layout-has-sider {
    flex-direction: column;
  }

  .ant-menu-item {
    padding: 0 16px !important;
    font-size: 14px;
  }

  .logo {
    height: 50px;
  }

  .header-title {
    font-size: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
  }

  .toggle-menu-button {
    font-size: 16px;
  }
  
  /* 修复移动端子菜单样式 */
  .ant-menu-sub .ant-menu-item {
    padding-left: 32px !important;
  }
  
  .ant-menu-submenu-title {
    font-size: 14px !important;
  }
}

/* 添加移动端侧边栏样式 */
@media screen and (max-width: 768px) {
  .main-navigation-sider {
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    width: 250px !important;
  }

  .main-navigation-sider.visible {
    transform: translateX(0);
  }
  
  .mobile-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 998;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  
  .mobile-backdrop.visible {
    display: block;
    opacity: 1;
  }
}

/* 添加过渡动画 */
.main-navigation .ant-menu-item::after {
  transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}

/* 选中项底部边框动画 */
.main-navigation .ant-menu-item-selected::after {
  border-bottom: 2px solid #1890ff;
  transform: scaleX(1);
}

/* 主题切换动画 */
body {
  transition: all 0.3s ease-in-out;
}

.dark {
  transition: all 0.3s ease-in-out;
  background: #141414;
  color: rgba(255, 255, 255, 0.85);
}

.dark .header-container {
  background: #1f1f1f;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

.dark .main-content {
  background: #1f1f1f;
}

.dark .logo {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background-color: #1f1f1f;
}

.dark .sider-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.dark .toggle-menu-button {
  color: rgba(255, 255, 255, 0.85);
}

.dark .toggle-menu-button:hover {
  color: #1890ff;
}

.dark .ant-menu {
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid #303030;
}

.dark .ant-menu-item-group-title {
  color: #1890ff;
  background: rgba(24,144,255,0.1);
}

.dark .ant-menu-item:hover {
  background: rgba(255, 255, 255, 0.08) !important;
}

.dark .ant-menu-item-selected {
  background: rgba(24,144,255,0.2) !important;
}

.dark .theme-switch {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.15);
}

.dark .ant-layout {
  background: #141414;
}

.dark .ant-layout-content {
  background: #141414;
}

.dark .ant-card {
  background: #1f1f1f;
  border-color: #303030;
}

.dark .ant-table {
  background: #1f1f1f;
  color: rgba(255, 255, 255, 0.85);
}

.dark .ant-table-thead > tr > th {
  background: #1f1f1f;
  color: rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid #303030;
}

.dark .ant-table-tbody > tr > td {
  border-bottom: 1px solid #303030;
}

.dark .ant-input {
  background: #141414;
  border-color: #434343;
  color: rgba(255, 255, 255, 0.85);
}

.dark .ant-btn {
  border-color: #434343;
}

.dark .ant-select-selector {
  background: #141414 !important;
  border-color: #434343 !important;
  color: rgba(255, 255, 255, 0.85);
}

.dark .ant-modal-content,
.dark .ant-modal-header {
  background: #1f1f1f;
  border-color: #303030;
}

.dark .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85);
}

/* 主题切换按钮动画 */
.theme-switch, .theme-switch:hover {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.theme-switch .anticon {
  color: rgba(0, 0, 0, 0.65);
}

.theme-switch:hover .anticon {
  color: #1890ff;
  text-shadow: 0 0 8px rgba(24, 144, 255, 0.3);
}

/* 导航菜单样式优化 */
.main-navigation .ant-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  overflow: visible;
}

.main-navigation .ant-menu-item .anticon,
.main-navigation .ant-menu-submenu-title .anticon {
  min-width: 14px;
  font-size: 16px;
  transition: color 0.3s;
}

.main-navigation .ant-menu-item:hover .anticon,
.main-navigation .ant-menu-submenu-title:hover .anticon {
  color: #1890ff;
}

.main-navigation .ant-menu-item-selected .anticon,
.main-navigation .ant-menu-submenu-selected .anticon {
  color: #1890ff;
}

/* 深色模式下的导航图标 */
.dark .main-navigation .ant-menu-item .anticon,
.dark .main-navigation .ant-menu-submenu-title .anticon {
  color: rgba(255, 255, 255, 0.65);
}

.dark .main-navigation .ant-menu-item:hover .anticon,
.dark .main-navigation .ant-menu-submenu-title:hover .anticon {
  color: #1890ff;
}

.dark .main-navigation .ant-menu-item-selected .anticon,
.dark .main-navigation .ant-menu-submenu-selected .anticon {
  color: #1890ff;
}

/* 深色模式下的顶部导航栏其他图标 */
.dark .header-container .anticon {
  color: rgba(255, 255, 255, 0.85);
}

.dark .header-container .ant-btn .anticon,
.dark .header-container .ant-dropdown-trigger .anticon {
  color: rgba(255, 255, 255, 0.85);
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.2));
}

.dark .header-container .ant-btn:hover .anticon,
.dark .header-container .ant-dropdown-trigger:hover .anticon {
  color: #1890ff;
  text-shadow: 0 0 8px rgba(24, 144, 255, 0.6);
  filter: drop-shadow(0 0 2px rgba(24, 144, 255, 0.4));
}

/* 下拉菜单样式 */
.ant-dropdown-menu {
  padding: 4px 0;
  border-radius: 4px;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
}

.ant-dropdown-menu-item {
  padding: 8px 12px;
  margin: 2px 8px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: normal;
  word-break: break-word;
  min-width: 200px;
}

.ant-dropdown-menu-item .anticon {
  font-size: 16px;
  color: rgba(0, 0, 0, 0.65);
}

.ant-dropdown-menu-item:hover {
  background-color: rgba(24, 144, 255, 0.1);
}

.ant-dropdown-menu-item:hover .anticon {
  color: #1890ff;
}

.ant-dropdown-menu-item a {
  color: rgba(0, 0, 0, 0.85);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: normal;
  word-break: break-word;
}

.ant-dropdown-menu-item:hover a {
  color: #1890ff;
}

/* 暗色模式下的下拉菜单样式 */
.dark-dropdown-menu .ant-dropdown-menu {
  background-color: #1f1f1f;
  border: 1px solid #303030;
}

.dark-dropdown-menu .ant-dropdown-menu-item {
  color: rgba(255, 255, 255, 0.85);
}

.dark-dropdown-menu .ant-dropdown-menu-item .anticon {
  color: rgba(255, 255, 255, 0.65);
}

.dark-dropdown-menu .ant-dropdown-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.dark-dropdown-menu .ant-dropdown-menu-item:hover .anticon {
  color: #1890ff;
}

.dark-dropdown-menu .ant-dropdown-menu-item a {
  color: rgba(255, 255, 255, 0.85);
}

.dark-dropdown-menu .ant-dropdown-menu-item:hover a {
  color: #1890ff;
}

/* 下拉菜单动画效果增强 */
.ant-dropdown {
  animation: fadeInRight 0.2s ease-in-out;
  z-index: 1050;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
}

.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active,
.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active {
  animation-duration: 0.2s !important;
  opacity: 0 !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
}

/* 确保下拉菜单在悬停离开时关闭 */
.custom-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.custom-dropdown-menu.closed {
  opacity: 0;
  visibility: hidden;
}

/* Master Settings 和 Access Settings 下拉菜单特定样式 */
.master-settings-dropdown .ant-dropdown-menu,
.access-settings-dropdown .ant-dropdown-menu {
  min-width: 220px;
  border-radius: 6px;
  overflow: hidden;
}

/* 修复下拉菜单点击后不消失的问题 */
.ant-dropdown-menu-item a {
  display: block;
  width: 100%;
}

/* 更平滑的下拉菜单过渡动画 */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(-10px);
  }
}

.custom-dropdown-menu.ant-dropdown-hidden {
  animation: fadeOutRight 0.2s ease-in-out forwards;
}

/* 确保下拉菜单项正确触发点击事件 */
.ant-dropdown-menu-item a {
  color: rgba(0, 0, 0, 0.85);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: normal;
  word-break: break-word;
  width: 100%;
  height: 100%;
  padding: 8px 0;
}

/* 顶部导航栏优化 */
.header-container::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.06), transparent);
}

.dark .header-container::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
}

/* 移动端适配优化 */
@media screen and (max-width: 768px) {
  .ant-dropdown-menu {
    min-width: 180px;
    padding: 6px;
  }
  
  .ant-dropdown-menu-item {
    padding: 8px 12px;
    font-size: 14px;
  }
  
  .header-container {
    padding: 0 16px;
  }
}

/* 表格操作列悬停效果 */
.dark .ant-table-row:hover .ant-btn-link .anticon {
  opacity: 1;
  filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.2));
}

/* 过滤器面板样式 */
.filter-panel {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 16px;
  margin-top: 16px;
  transition: all 0.3s ease;
  border: 1px solid rgba(0,0,0,0.06);
}

/* 深色模式下的过滤器面板 */
.dark .filter-panel {
  background: #1f1f1f !important;
  border: 1px solid #303030 !important;
  color: rgba(255, 255, 255, 0.85);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* 深色模式下的过滤器组件 */
.dark .filter-panel .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85);
}

.dark .filter-panel .ant-input,
.dark .filter-panel .ant-select-selector,
.dark .filter-panel .ant-picker,
.dark .filter-panel .ant-input-number,
.dark .filter-panel .ant-cascader-picker {
  background: #141414 !important;
  border-color: #434343 !important;
  color: rgba(255, 255, 255, 0.85);
}

.dark .filter-panel .ant-select-selection-placeholder,
.dark .filter-panel .ant-picker-input > input::placeholder,
.dark .filter-panel .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.45);
}

.dark .filter-panel .ant-select-arrow,
.dark .filter-panel .ant-picker-suffix {
  color: rgba(255, 255, 255, 0.45);
}

.dark .filter-panel .ant-btn {
  border-color: #434343;
}

.dark .filter-panel .ant-btn-primary {
  background: #1890ff;
  border-color: #1890ff;
}

.dark .filter-panel .ant-btn-default {
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
}

.dark .filter-panel .ant-btn-default:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: #1890ff;
  color: #1890ff;
}

/* 确保深色模式下的过滤器面板内所有组件都有正确的样式 */
.dark .filter-panel .ant-checkbox-wrapper,
.dark .filter-panel .ant-radio-wrapper {
  color: rgba(255, 255, 255, 0.85);
}

.dark .filter-panel .ant-checkbox-inner,
.dark .filter-panel .ant-radio-inner {
  background-color: #141414;
  border-color: #434343;
}

.dark .filter-panel .ant-checkbox-checked .ant-checkbox-inner,
.dark .filter-panel .ant-radio-checked .ant-radio-inner {
  background-color: #1890ff;
  border-color: #1890ff;
}

/* 移动端适配 */
@media screen and (max-width: 768px) {
  .filter-panel {
    padding: 12px;
    margin-top: 12px;
  }
}

/* 隐藏表格排序提示文字 */
.ant-table-column-sorter-inner {
  display: flex;
  align-items: center;
}

.ant-table-column-sorter-inner .ant-table-column-sorter-up,
.ant-table-column-sorter-inner .ant-table-column-sorter-down {
  font-size: 11px;
}

/* 隐藏排序提示文字 */
.ant-table-column-title:hover::after,
.ant-table-column-sorter:hover::after,
.ant-table-filter-trigger:hover::after {
  display: none !important;
}

/* 隐藏排序文字提示 */
.ant-tooltip-inner {
  display: none !important;
}

/* 确保排序图标仍然可见 */
.ant-table-column-sorter {
  margin-left: 4px;
}

/* 增强排序图标的可见性 */
.ant-table-column-sorter-up.active,
.ant-table-column-sorter-down.active {
  color: #1890ff;
}

/* 深色模式下的排序图标 */
.dark .ant-table-column-sorter-up.active,
.dark .ant-table-column-sorter-down.active {
  color: #1890ff;
  text-shadow: 0 0 6px rgba(24, 144, 255, 0.5);
}

/* 深色模式下的确认对话框 */
.dark .ant-modal-confirm .ant-modal-content,
.dark .ant-modal-confirm .ant-modal-header {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark .ant-modal-confirm .ant-modal-body {
  background-color: #1f1f1f;
  color: rgba(255, 255, 255, 0.85);
}

.dark .ant-modal-confirm-title,
.dark .ant-modal-confirm-content {
  color: rgba(255, 255, 255, 0.85);
}

.dark .ant-modal-confirm-btns .ant-btn {
  background-color: transparent;
  border-color: #434343;
  color: rgba(255, 255, 255, 0.85);
}

.dark .ant-modal-confirm-btns .ant-btn-primary {
  background-color: #1890ff;
  border-color: #1890ff;
  color: #fff;
}

.dark .ant-modal-confirm-btns .ant-btn-dangerous {
  color: #ff4d4f;
  border-color: #ff4d4f;
}

.dark .ant-modal-confirm-btns .ant-btn-dangerous:hover {
  background-color: rgba(255, 77, 79, 0.1);
}

.dark .ant-modal-confirm-btns .ant-btn:hover {
  background-color: rgba(255, 255, 255, 0.08);
  border-color: #1890ff;
  color: #1890ff;
}

.dark .ant-modal-confirm-btns .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  color: #fff;
}

/* 自定义滚动条样式 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 4px;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}

/* 深色模式下的滚动条 */
.dark ::-webkit-scrollbar-track {
  background: #2a2a2a;
}

.dark ::-webkit-scrollbar-thumb {
  background: #454545;
}

.dark ::-webkit-scrollbar-thumb:hover {
  background: #575757;
}

/* 表格内部滚动条 */
.ant-table-body::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.dark .ant-table-body::-webkit-scrollbar-track {
  background: #1f1f1f;
}

.dark .ant-table-body::-webkit-scrollbar-thumb {
  background: #454545;
}

/* 下拉菜单滚动条 */
.ant-select-dropdown::-webkit-scrollbar,
.ant-dropdown-menu::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.dark .ant-select-dropdown::-webkit-scrollbar-track,
.dark .ant-dropdown-menu::-webkit-scrollbar-track {
  background: #1f1f1f;
}

.dark .ant-select-dropdown::-webkit-scrollbar-thumb,
.dark .ant-dropdown-menu::-webkit-scrollbar-thumb {
  background: #454545;
}

/* 确保深色模式下的确认图标颜色正确 */
.dark .ant-modal-confirm .anticon {
  color: #1890ff;
}

.dark .ant-modal-confirm-warning .anticon,
.dark .ant-modal-confirm-confirm .anticon {
  color: #faad14;
}

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

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

/* 确保深色模式下的模态框遮罩层颜色正确 */
.dark .ant-modal-mask {
  background-color: rgba(0, 0, 0, 0.65);
}

/* 确保深色模式下的模态框关闭按钮颜色正确 */
.dark .ant-modal-close {
  color: rgba(255, 255, 255, 0.45);
}

.dark .ant-modal-close:hover {
  color: rgba(255, 255, 255, 0.75);
}

/* 子菜单样式 */
.ant-menu-submenu-title {
  padding: 0 16px !important;
  height: 40px !important;
  line-height: 40px !important;
  margin: 4px 0 !important;
}

.ant-menu-submenu-arrow {
  color: rgba(0, 0, 0, 0.45);
}

.ant-menu-submenu-open .ant-menu-submenu-arrow {
  color: #1890ff;
}

.ant-menu-submenu-selected .ant-menu-submenu-title {
  color: #1890ff;
  font-weight: 500;
}

.ant-menu-sub {
  background-color: #fafafa !important;
}

.ant-menu-sub .ant-menu-item {
  padding-left: 48px !important;
  height: auto !important;
  min-height: 40px !important;
  line-height: 1.5 !important;
  margin: 4px 0 !important;
  font-size: 14px !important;
  white-space: normal !important;
  word-break: break-word !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

.ant-menu-sub .ant-menu-item-selected {
  background-color: #e6f7ff !important;
}

.ant-menu-item-only-child {
  white-space: normal !important;
  word-break: break-word !important;
  height: auto !important;
  min-height: 40px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  line-height: 1.5 !important;
}

.dark .main-navigation-sider {
  background-color: #1f1f1f;
}

.dark .logo {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background-color: #1f1f1f;
}

.dark .ant-menu-submenu-arrow {
  color: rgba(255, 255, 255, 0.45) !important;
}

.dark .ant-menu-submenu-open .ant-menu-submenu-arrow {
  color: #1890ff !important;
}

.dark .ant-menu-sub {
  background-color: #141414 !important;
}

/* 修复菜单项文字样式 */
.main-navigation .ant-menu-title-content {
  white-space: normal;
  word-break: break-word;
  line-height: 1.5;
}

/* 修复子菜单样式 */
.ant-menu-inline .ant-menu-sub {
  background-color: #fafafa !important;
}

.dark .ant-menu-inline .ant-menu-sub {
  background-color: #141414 !important;
}

/* 折叠状态下的菜单样式 */
.collapsed-menu {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 0;
  flex: 1 1;
  overflow-y: auto;
}

.collapsed-menu-item {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 8px auto;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s;
}

.collapsed-menu-item .anticon {
  font-size: 24px;
  color: rgba(0, 0, 0, 0.65);
}

.collapsed-menu-item:hover {
  background-color: rgba(24, 144, 255, 0.1);
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.15);
}

.collapsed-menu-item:hover .anticon {
  color: #1890ff;
}

.collapsed-menu-item-selected {
  background-color: #e6f7ff;
}

.collapsed-menu-item-selected .anticon {
  color: #1890ff;
}

/* 暗色模式下的折叠菜单样式 */
.dark .collapsed-menu-item .anticon {
  color: rgba(255, 255, 255, 0.65);
}

.dark .collapsed-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.25);
}

.dark .collapsed-menu-item-selected {
  background-color: #111b26;
}

/* 优化菜单过渡效果 */
.ant-menu-inline.ant-menu-sub {
  transition: height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), 
              opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1),
              transform 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
}

/* 修复子菜单点击穿透问题 */
.ant-menu .ant-menu-item,
.ant-menu .ant-menu-submenu-title {
  position: relative;
  z-index: 1;
}

.ant-menu .ant-menu-item a {
  position: relative;
  z-index: 1;
}

/* 确保下拉菜单关闭行为正常 */
.ant-dropdown-hidden {
  display: none !important;
}

/* 优化下拉菜单的关闭动画 */
.ant-dropdown-menu {
  transition: transform 0.2s ease, opacity 0.2s ease;
  max-height: 80vh;
  overflow-y: auto;
}

/* 修复链接点击区域 */
.ant-dropdown-menu-item > a {
  display: block;
  margin: -5px -12px;
  padding: 5px 12px;
  color: rgba(0, 0, 0, 0.85);
  transition: all 0.3s;
}

/* 确保暗黑模式下的菜单样式一致性 */
.dark .ant-menu-submenu-popup,
.dark .ant-menu-submenu-title,
.dark .ant-menu-submenu-arrow {
  background-color: #1f1f1f;
  color: rgba(255, 255, 255, 0.85);
}

/* 用户按钮样式 */
.user-profile-button {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  position: relative;
  overflow: hidden;
}

.user-profile-button:hover {
  background: #e6f4ff !important;
  border-color: #69b1ff !important;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.15) !important;
}

.user-profile-button:active {
  transform: translateY(0);
  background: #dcefff !important;
  border-color: #40a9ff !important;
}

.user-profile-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at center, rgba(24, 144, 255, 0.1) 0%, transparent 70%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.user-profile-button:hover::before {
  opacity: 1;
}

/* 暗色模式下的用户按钮 */
.dark .user-profile-button {
  background: rgba(24, 144, 255, 0.1) !important;
  border-color: rgba(24, 144, 255, 0.3) !important;
  color: #1890ff !important;
}

.dark .user-profile-button:hover {
  background: rgba(24, 144, 255, 0.2) !important;
  border-color: #1890ff !important;
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2) !important;
}

.dark .user-profile-button:active {
  background: rgba(24, 144, 255, 0.25) !important;
  border-color: #40a9ff !important;
}

/* 用户下拉菜单样式 */
.user-profile-dropdown {
  min-width: 200px !important;
  border-radius: 8px !important;
  padding: 8px !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
  transform-origin: top right !important;
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  transition: opacity 0.2s ease, visibility 0.2s ease !important;
  z-index: 1050 !important;
}

/* 解决Safari浏览器中的菜单闪动问题 */
.ant-dropdown {
  position: fixed !important;
  animation: none !important;
  transform: none !important;
  transition: opacity 0.2s ease !important;
  -webkit-transform: none !important;
  -webkit-transition: opacity 0.2s ease !important;
}

.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-bottomRight,
.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-bottomRight {
  animation: none !important;
  opacity: 1 !important;
  transition: opacity 0.2s !important;
  -webkit-animation: none !important;
  -webkit-transition: opacity 0.2s !important;
}

.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-bottomRight {
  animation: none !important;
  opacity: 0 !important;
  transition: opacity 0.2s !important;
  -webkit-animation: none !important;
  -webkit-transition: opacity 0.2s !important;
}

.ant-dropdown-placement-bottomRight {
  right: 16px !important;
  left: auto !important;
}

.user-profile-dropdown .ant-dropdown-menu-item {
  padding: 8px 16px;
  transition: all 0.3s ease;
  border-radius: 4px;
  margin: 2px 4px;
}

.user-profile-dropdown .ant-dropdown-menu-item:hover {
  background-color: rgba(24, 144, 255, 0.1);
}

.user-profile-dropdown .ant-dropdown-menu-item-danger:hover {
  background-color: rgba(245, 34, 45, 0.1);
}

.user-profile-dropdown .ant-dropdown-menu-item .anticon {
  font-size: 16px;
  margin-right: 10px;
  width: 16px;
  text-align: center;
}

/* 用户下拉菜单暗色模式 */
.dark .user-profile-dropdown, .dark-dropdown {
  background-color: #1f1f1f !important;
  border: 1px solid #303030 !important;
  box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.8) !important;
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
}

.dark .user-profile-dropdown > div:first-child, .dark-dropdown > div:first-child {
  background-color: #1f1f1f !important;
}

.dark .user-profile-dropdown > div:first-child div:first-child, .dark-dropdown > div:first-child div:first-child {
  background-color: #1f1f1f !important;
}

.dark .user-profile-dropdown > div:first-child div:last-child, .dark-dropdown > div:first-child div:last-child {
  background-color: #1f1f1f !important;
}

.dark .user-profile-dropdown .ant-dropdown-menu-item, .dark-dropdown .ant-dropdown-menu-item {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .user-profile-dropdown .ant-dropdown-menu-item:hover, .dark-dropdown .ant-dropdown-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

.dark .user-profile-dropdown .ant-dropdown-menu-item-danger, .dark-dropdown .ant-dropdown-menu-item-danger {
  color: #ff7875 !important;
}

.dark .user-profile-dropdown .ant-dropdown-menu-item-danger:hover, .dark-dropdown .ant-dropdown-menu-item-danger:hover {
  background-color: rgba(255, 77, 79, 0.15) !important;
}

/* 用户头像容器样式 */
.user-avatar-container {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  padding: 4px 12px 4px 4px;
  border-radius: 24px;
  z-index: 1000;
  height: 48px;
  display: flex;
  align-items: center;
}

/* 箭头样式 */
.ant-dropdown-arrow {
  transition: all 0.2s !important;
  transform-origin: center center !important;
}

.dark .ant-dropdown-arrow {
  background-color: #1f1f1f !important;
  border-color: #303030 !important;
  box-shadow: none !important;
}

/* 修复下拉菜单箭头样式 */
.user-profile-dropdown .ant-dropdown-arrow, .dark-dropdown .ant-dropdown-arrow {
  right: 25px !important;
  top: -6px !important;
  border-top-color: transparent !important;
  border-left-color: transparent !important;
}

/* 修正当点击下拉菜单时图标旋转效果 */
.anticon-down {
  transition: transform 0.3s ease !important;
}

/* 确保菜单定位在屏幕边界内 */
@media screen and (max-width: 768px) {
  .user-profile-dropdown {
    right: 8px !important;
    max-width: calc(100vw - 32px) !important;
    width: auto !important;
  }

  .user-profile-dropdown .ant-dropdown-arrow, .dark-dropdown .ant-dropdown-arrow {
    right: 20px !important;
  }
}

/* 确保暗黑模式下的菜单图标颜色正确 */
.dark .ant-dropdown-menu-item .anticon {
  color: rgba(255, 255, 255, 0.65) !important;
}

.dark .ant-dropdown-menu-item:hover .anticon {
  color: #1890ff !important;
}

.dark .ant-dropdown-menu-item-danger .anticon {
  color: #ff7875 !important;
}

/* 优化菜单切换效果 */
.user-profile-dropdown.ant-dropdown-hidden {
  display: none !important;
}

/* 修复下拉菜单中的Switch组件样式 */
.user-profile-dropdown .ant-switch {
  min-width: 40px !important;
}

.dark .user-profile-dropdown .ant-switch {
  background-color: rgba(0, 0, 0, 0.25) !important;
}

.dark .user-profile-dropdown .ant-switch-checked {
  background-color: #1890ff !important;
}

/* Enhanced Theme Mode Switch */
.theme-mode-switch {
  height: 24px !important;
  min-width: 48px !important;
  border-radius: 12px !important;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.theme-mode-switch .ant-switch-handle {
  width: 20px !important;
  height: 20px !important;
  top: 2px !important;
  left: 2px !important;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

.theme-mode-switch.ant-switch-checked .ant-switch-handle {
  inset-inline-start: calc(100% - 22px) !important;
}

.theme-mode-switch .ant-switch-inner {
  display: flex !important;
  align-items: center !important;
}

.theme-mode-switch .ant-switch-inner .ant-switch-inner-checked,
.theme-mode-switch .ant-switch-inner .ant-switch-inner-unchecked {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-inline-start: 4px !important;
  margin-inline-end: 4px !important;
}

.theme-mode-switch.ant-switch-checked {
  background-image: linear-gradient(to right, #0062da, #1890ff) !important;
}

.theme-mode-switch:not(.ant-switch-checked) {
  background-image: linear-gradient(to right, #d9d9d9, #f0f0f0) !important;
}

.theme-mode-switch:hover {
  transform: scale(1.05);
}

.dark .theme-mode-switch.ant-switch-checked {
  box-shadow: 0 0 10px rgba(24, 144, 255, 0.7) !important;
}

.dark .theme-mode-switch:not(.ant-switch-checked) {
  background-color: rgba(0, 0, 0, 0.25) !important;
  background-image: linear-gradient(to right, #303030, #141414) !important;
}

/* Theme icon styles */
.theme-mode-switch .ant-switch-inner-checked .anticon-moon {
  color: #fafafa !important;
  font-size: 12px !important;
  margin-right: 4px !important;
  animation: rotateIcon 0.5s ease-in-out;
}

.theme-mode-switch .ant-switch-inner-unchecked .anticon-sun {
  color: #faad14 !important;
  font-size: 12px !important;
  margin-left: 4px !important;
  animation: rotateIcon 0.5s ease-in-out;
}

/* Animations for theme switch */
@keyframes rotateIcon {
  0% {
    transform: rotate(0deg) scale(0.5);
    opacity: 0.3;
  }
  100% {
    transform: rotate(360deg) scale(1);
    opacity: 1;
  }
}

/* Dark mode toggle menu item hover effect */
.user-profile-dropdown .ant-dropdown-menu-item[class*="theme-toggle"]:hover {
  background: rgba(24, 144, 255, 0.08) !important;
}

.dark .user-profile-dropdown .ant-dropdown-menu-item[class*="theme-toggle"]:hover {
  background: rgba(24, 144, 255, 0.15) !important;
}

/* Divider styles for dark mode toggle */
.user-profile-dropdown .ant-dropdown-menu-item-divider {
  margin: 6px 0;
  background-color: rgba(0, 0, 0, 0.06);
}

.dark .user-profile-dropdown .ant-dropdown-menu-item-divider {
  background-color: rgba(255, 255, 255, 0.12);
}

/* Mobile Navigation Styles */
@media screen and (max-width: 991px) {
  .main-navigation-sider {
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out !important;
  }

  .main-navigation-sider.mobile-visible {
    transform: translateX(0);
    box-shadow: 4px 0 8px rgba(0, 0, 0, 0.15);
  }

  .mobile-backdrop {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.45);
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  .mobile-backdrop.visible {
    display: block;
    opacity: 1;
  }

  .ant-menu-inline .ant-menu-item, 
  .ant-menu-inline .ant-menu-submenu-title {
    padding-left: 24px !important;
  }

  .ant-menu-sub.ant-menu-inline {
    padding-left: 12px !important;
  }
}

/* Dark Mode Mobile Styles */
.dark .mobile-backdrop {
  background-color: rgba(0, 0, 0, 0.65);
}

.dark .main-navigation-sider.mobile-visible {
  box-shadow: 4px 0 8px rgba(0, 0, 0, 0.35);
}

/* Timezone Selector Styles */
.timezone-selector {
  width: 100%;
}

.timezone-selector-compact {
  min-width: 120px;
  max-width: 100%;
}

.timezone-selector-compact .ant-select {
  min-width: 120px;
  width: 100%;
}

.timezone-selector-compact .ant-select-selection-item {
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
  padding-right: 12px;
}

.dark .timezone-selector-compact .ant-select-selection-item {
  color: rgba(255, 255, 255, 0.85);
}

.timezone-selector-compact .ant-select-dropdown,
.timezone-selector .ant-select-dropdown {
  max-height: 400px;
  overflow-y: auto;
}

.timezone-selector-compact .ant-select-item-option-content,
.timezone-selector .ant-select-item-option-content {
  white-space: normal;
  word-break: break-word;
}

.timezone-selector-compact .ant-select-item-option-active:not(.ant-select-item-option-selected),
.timezone-selector .ant-select-item-option-active:not(.ant-select-item-option-selected) {
  background-color: rgba(24, 144, 255, 0.08);
}

.dark .timezone-selector-compact .ant-select-item-option-active:not(.ant-select-item-option-selected),
.dark .timezone-selector .ant-select-item-option-active:not(.ant-select-item-option-selected) {
  background-color: rgba(24, 144, 255, 0.15);
}

.timezone-selector-compact .ant-select-item-option-selected,
.timezone-selector .ant-select-item-option-selected {
  background-color: rgba(24, 144, 255, 0.12);
  font-weight: 500;
}

.dark .timezone-selector-compact .ant-select-item-option-selected,
.dark .timezone-selector .ant-select-item-option-selected {
  background-color: rgba(24, 144, 255, 0.25);
}

/* Add these new styles for better display in the user dropdown */
.user-profile-dropdown .timezone-selector-compact {
  width: 100%;
}

.user-profile-dropdown .timezone-selector-compact .ant-select {
  width: 100%;
}

.user-profile-dropdown .timezone-selector-compact .ant-select-selection-item {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Media query for mobile view */
@media screen and (max-width: 576px) {
  .user-profile-dropdown .timezone-selector-compact .ant-select-selection-item {
    max-width: 120px;
  }
} 
:root {
  /* Light theme variables */
  --light-body-bg: #f0f2f5;
  --light-component-bg: #ffffff;
  --light-popup-bg: #ffffff;
  --light-modal-bg: #ffffff;
  --light-card-bg: #ffffff;
  --light-table-bg: #ffffff;
  --light-table-header-bg: #fafafa;
  --light-table-hover-bg: #fafafa;
  --light-select-bg: #ffffff;
  --light-tooltip-bg: #ffffff;
  
  --light-border: #f0f0f0;
  --light-border-secondary: #d9d9d9;
  --light-border-hover: #40a9ff;
  --light-divider: rgba(0, 0, 0, 0.06);
  
  --light-text: rgba(0, 0, 0, 0.85);
  --light-text-secondary: rgba(0, 0, 0, 0.65);
  --light-text-disabled: rgba(0, 0, 0, 0.45);
  --light-text-placeholder: rgba(0, 0, 0, 0.25);
  --light-icon: rgba(0, 0, 0, 0.45);
  --light-icon-hover: rgba(0, 0, 0, 0.85);
  
  --light-primary: #1890ff;
  --light-primary-hover: #40a9ff;
  --light-primary-active: #096dd9;
  --light-primary-bg: rgba(24, 144, 255, 0.1);
  
  --light-success: #52c41a;
  --light-success-hover: #73d13d;
  --light-success-bg: rgba(82, 196, 26, 0.1);
  
  --light-warning: #faad14;
  --light-warning-hover: #ffc53d;
  --light-warning-bg: rgba(250, 173, 20, 0.1);
  
  --light-error: #ff4d4f;
  --light-error-hover: #ff7875;
  --light-error-bg: rgba(255, 77, 79, 0.1);
  
  --light-info: #13c2c2;
  --light-info-hover: #36cfc9;
  --light-info-bg: rgba(19, 194, 194, 0.1);
  
  --light-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  --light-shadow-secondary: 0 3px 6px rgba(0, 0, 0, 0.12);
  
  --light-item-hover-bg: rgba(0, 0, 0, 0.04);
  --light-item-active-bg: rgba(0, 0, 0, 0.08);
  --light-item-selected-bg: rgba(24, 144, 255, 0.1);
}

/* Dark theme variables */
.dark {
  --dark-body-bg: #0a0a0a;
  --dark-component-bg: #141414;
  --dark-popup-bg: #1f1f1f;
  --dark-modal-bg: #1f1f1f;
  --dark-card-bg: #1f1f1f;
  --dark-table-bg: #1f1f1f;
  --dark-table-header-bg: #262626;
  --dark-table-hover-bg: #1a1a1a;
  --dark-select-bg: #141414;
  --dark-tooltip-bg: #434343;
  
  --dark-border: #303030;
  --dark-border-secondary: #434343;
  --dark-border-hover: #434343;
  --dark-divider: rgba(255, 255, 255, 0.08);
  
  --dark-text: rgba(255, 255, 255, 0.85);
  --dark-text-secondary: rgba(255, 255, 255, 0.65);
  --dark-text-disabled: rgba(255, 255, 255, 0.45);
  --dark-text-placeholder: rgba(255, 255, 255, 0.30);
  --dark-icon: rgba(255, 255, 255, 0.65);
  --dark-icon-hover: rgba(255, 255, 255, 0.85);
  
  --dark-primary: #1890ff;
  --dark-primary-hover: #40a9ff;
  --dark-primary-active: #096dd9;
  --dark-primary-bg: rgba(24, 144, 255, 0.15);
  
  --dark-success: #52c41a;
  --dark-success-hover: #73d13d;
  --dark-success-bg: rgba(82, 196, 26, 0.15);
  
  --dark-warning: #faad14;
  --dark-warning-hover: #ffc53d;
  --dark-warning-bg: rgba(250, 173, 20, 0.15);
  
  --dark-error: #ff4d4f;
  --dark-error-hover: #ff7875;
  --dark-error-bg: rgba(255, 77, 79, 0.15);
  
  --dark-info: #13c2c2;
  --dark-info-hover: #36cfc9;
  --dark-info-bg: rgba(19, 194, 194, 0.15);
  
  --dark-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  --dark-shadow-secondary: 0 4px 12px rgba(0, 0, 0, 0.5);
  
  --dark-item-hover-bg: rgba(255, 255, 255, 0.08);
  --dark-item-active-bg: rgba(255, 255, 255, 0.12);
  --dark-item-selected-bg: rgba(24, 144, 255, 0.15);
  
  --dark-disabled: rgba(255, 255, 255, 0.30);
  --dark-disabled-bg: rgba(255, 255, 255, 0.08);
  --dark-disabled-border: #434343;
} 
.login-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
  padding: 20px;
}

.login-row {
  width: 100%;
}

.login-card {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.login-header {
  padding: 10px 0;
  text-align: center;
  background-color: #1890ff;
  color: white;
  background-image: linear-gradient(135deg, #1890ff 0%, #36a9e1 100%);
}

.login-logo {
  display: flex;
  justify-content: center;
  align-items: center;
}

.logo-text {
  color: white !important;
  margin: 0 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.login-form {
  margin-top: 20px;
}

.login-form-button {
  height: 45px;
  font-size: 16px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.login-alert {
  margin-bottom: 20px;
  border-radius: 8px !important;
  border: 1px solid #ffccc7;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(255, 77, 79, 0.1);
}

.login-alert::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background-color: #ff4d4f;
}

.login-alert .ant-alert-icon {
  color: #ff4d4f;
  font-size: 18px;
}

.login-alert .ant-alert-message {
  font-size: 16px;
  font-weight: 500;
  color: #333;
}

.login-alert .ant-alert-description {
  font-size: 14px;
  margin-top: 6px;
  color: rgba(0, 0, 0, 0.65);
}

.error-description p {
  margin-bottom: 8px;
}

.error-description ul {
  margin-top: 4px;
  margin-bottom: 0;
  padding-left: 18px;
}

.error-description li {
  margin-bottom: 4px;
  position: relative;
  color: rgba(0, 0, 0, 0.65);
  font-size: 13px;
  line-height: 1.5;
}

.error-description li::before {
  content: '•';
  position: absolute;
  left: -12px;
  color: #ff7875;
}

.login-footer {
  margin-top: 30px;
  text-align: center;
}

.remember-forgot-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.site-form-item-icon {
  color: rgba(0, 0, 0, 0.45);
}

.dark-icon {
  color: rgba(255, 255, 255, 0.45);
}

.form-actions {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}

.submit-button {
  min-width: 120px;
}

/* 链接样式 */
.dark-link {
  color: #1890ff !important;
  text-decoration: none;
  transition: color 0.3s;
}

.dark-link:hover {
  color: #40a9ff !important;
  text-decoration: underline;
}

/* 表单输入框暗色样式 */
.dark-input {
  background-color: #1f1f1f !important;
  border-color: #434343 !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark-input input {
  background-color: #1f1f1f !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark-input .ant-input-password-icon {
  color: rgba(255, 255, 255, 0.45);
}

/* Alert 在暗黑模式下的样式 */
.dark-alert {
  background-color: rgba(255, 77, 79, 0.1) !important;
  border-color: #a61d24 !important;
  box-shadow: 0 2px 8px rgba(255, 77, 79, 0.2) !important;
}

.dark-alert::before {
  background-color: #ff7875;
}

.dark-alert .ant-alert-icon {
  color: #ff7875 !important;
}

.dark-alert .ant-alert-message {
  color: #ff7875 !important;
  font-weight: 500;
}

.dark-alert .ant-alert-description {
  color: rgba(255, 255, 255, 0.75) !important;
}

.dark-alert .error-description p {
  color: rgba(255, 255, 255, 0.75) !important;
}

.dark-alert .error-description li {
  color: rgba(255, 255, 255, 0.65) !important;
}

.dark-alert .error-description li::before {
  color: #ff7875;
}

.dark-secondary-text {
  color: rgba(255, 255, 255, 0.45) !important;
}

/* Checkbox 暗黑样式 */
.dark-checkbox .ant-checkbox-inner {
  background-color: #1f1f1f !important;
  border-color: #434343 !important;
}

.dark-checkbox .ant-checkbox-checked .ant-checkbox-inner {
  background-color: #1890ff !important;
  border-color: #1890ff !important;
}

/* 按钮暗黑模式效果增强 */
.dark-button {
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.5);
}

.dark-button:hover {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6);
}

/* 响应式调整 */
@media screen and (max-width: 576px) {
  .login-header {
    padding: 30px 0;
  }
  
  .login-card .ant-card-body {
    padding: 20px 15px;
  }
  
  .login-form-button {
    height: 40px;
  }
}

/* 暗黑模式 */
.dark .login-container {
  background: linear-gradient(135deg, #1f1f1f 0%, #121212 100%);
}

.dark .login-card {
  background-color: #1f1f1f;
  border: 1px solid #303030;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.dark .login-card .ant-card-body {
  background-color: #1f1f1f;
  color: #f0f0f0;
}

.dark .login-form .ant-form-item-label > label {
  color: #f0f0f0;
}

.dark .login-form .ant-input,
.dark .login-form .ant-input-password {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .login-form .ant-input-password .ant-input {
  background-color: transparent;
}

.dark .login-form .ant-checkbox-wrapper {
  color: #f0f0f0;
}

.dark .login-form .ant-btn-default {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .login-form .ant-btn-default:hover {
  background-color: #303030;
  border-color: #404040;
}

.dark .login-footer .ant-typography-secondary {
  color: rgba(255, 255, 255, 0.45);
}

/* 添加加载动画 */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes pulse {
  0% {
    opacity: 0.8;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.8;
  }
}

@keyframes shimmer {
  0% {
    background-position: -100% 0;
  }
  100% {
    background-position: 100% 0;
  }
}

.login-loading-overlay {
  transition: all 0.3s ease;
}

/* 针对支持backdrop-filter的浏览器添加毛玻璃效果 */
@supports ((-webkit-backdrop-filter: blur(4px)) or (backdrop-filter: blur(4px))) {
  .login-loading-overlay {
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
    background-color: rgba(255, 255, 255, 0.7) !important;
  }
  
  .dark .login-loading-overlay {
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
    background-color: rgba(0, 0, 0, 0.6) !important;
  }
}

/* 自定义Spin组件样式 */
.login-loading-overlay .ant-spin {
  opacity: 0.9;
}

.login-loading-overlay .ant-spin-dot-item {
  background-color: #1890ff;
}

.dark .login-loading-overlay .ant-spin-dot-item {
  background-color: #1890ff;
}

/* 提高加载动画的视觉效果 */
.login-loading-overlay .anticon-loading {
  font-size: 32px !important;
  filter: drop-shadow(0 0 8px rgba(24, 144, 255, 0.5));
}

.dark .login-loading-overlay .anticon-loading {
  filter: drop-shadow(0 0 8px rgba(24, 144, 255, 0.8));
}

/* 登录按钮增强动效 */
.login-form-button {
  position: relative;
  overflow: hidden;
}

.login-form-button:hover:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 100%;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.1) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  animation: shimmer 1.5s infinite;
}

/* 针对登录提示框的样式增强 */
.login-note {
  transition: all 0.3s ease;
}

.login-note:hover {
  border-color: rgba(24, 144, 255, 0.2);
} 
.register-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
  padding: 20px;
}

.register-row {
  width: 100%;
}

.register-card {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  overflow: hidden;
}

.register-header {
  padding: 30px 0;
  text-align: center;
  background-color: #1890ff;
  color: white;
  background-image: linear-gradient(135deg, #1890ff 0%, #36a9e1 100%);
}

.register-logo {
  display: flex;
  justify-content: center;
  align-items: center;
}

.logo-text {
  color: white !important;
  margin: 0 !important;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.register-subtitle {
  margin-top: 10px;
}

.subtitle-text {
  color: white !important;
  font-size: 16px;
  opacity: 0.9;
}

.register-form {
  margin-top: 20px;
}

.register-form-button {
  height: 45px;
  font-size: 16px;
  font-weight: 500;
}

.register-alert {
  margin-bottom: 20px;
}

.register-footer {
  margin-top: 20px;
  text-align: center;
}

.site-form-item-icon {
  color: rgba(0, 0, 0, 0.45);
}

/* 响应式调整 */
@media screen and (max-width: 576px) {
  .register-header {
    padding: 25px 0;
  }
  
  .register-card .ant-card-body {
    padding: 20px 15px;
  }
  
  .register-form-button {
    height: 40px;
  }
}

@media screen and (max-width: 768px) {
  .register-form .ant-form-item {
    margin-bottom: 16px;
  }
}

/* 暗黑模式 */
.dark .register-container {
  background: linear-gradient(135deg, #1f1f1f 0%, #121212 100%);
}

.dark .register-card {
  background-color: #1f1f1f;
  border: 1px solid #303030;
}

.dark .register-card .ant-card-body {
  background-color: #1f1f1f;
  color: #f0f0f0;
}

.dark .register-form .ant-form-item-label > label {
  color: #f0f0f0;
}

.dark .register-form .ant-input,
.dark .register-form .ant-input-password {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .register-form .ant-input-password .ant-input {
  background-color: transparent;
}

.dark .register-form .ant-checkbox-wrapper {
  color: #f0f0f0;
}

.dark .register-form .ant-btn-default {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .register-form .ant-btn-default:hover {
  background-color: #303030;
  border-color: #404040;
}

.dark .register-footer .ant-typography-secondary {
  color: rgba(255, 255, 255, 0.45);
}

.dark .register-form .ant-divider {
  border-color: #303030;
}

.dark .register-form .ant-divider-inner-text {
  color: #f0f0f0;
}

.dark .register-form a {
  color: #177ddc;
}

.dark .register-form a:hover {
  color: #40a9ff;
}

/* 密码提示样式 */
.ant-tooltip-inner {
  max-width: 300px;
}

.dark .ant-tooltip-inner {
  background-color: #1f1f1f;
  border: 1px solid #303030;
}

.dark .ant-tooltip-arrow-content {
  background-color: #1f1f1f;
} 
.no-access-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 24px;
  background-color: #f0f2f5;
}

body.dark .no-access-container {
  background-color: #141414;
}

.no-access-card {
  width: 100%;
  max-width: 700px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  overflow: hidden;
  padding: 24px;
}

.no-access-card.dark {
  background-color: #1f1f1f;
  border-color: #303030;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.no-access-content {
  margin: 16px 0 32px;
  text-align: left;
}

.contact-card {
  margin: 24px 0;
  background-color: #f9f9f9;
  border-radius: 4px;
}

.contact-card.dark {
  background-color: #141414;
  border-color: #303030;
}

.no-access-actions {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}

/* Responsive styles */
@media (max-width: 768px) {
  .no-access-container {
    padding: 16px;
  }
  
  .no-access-card {
    padding: 16px;
  }
  
  .no-access-actions {
    flex-direction: column;
    align-items: center;
  }
  
  .no-access-actions .ant-space {
    display: flex;
    flex-direction: column;
    width: 100%;
  }
  
  .no-access-actions .ant-space .ant-btn {
    width: 100%;
    margin-bottom: 12px;
  }
} 
.user-management-container {
  padding: 20px;
}

.user-management-card {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.ant-form-item-label {
  font-weight: 500;
}

/* Create New User Button */
.create-user-btn {
  border-radius: 4px;
  transition: all 0.3s ease;
}

.create-user-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.4) !important;
}

.dark .create-user-btn:hover {
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.25) !important;
}

/* 用户表单样式 */
.user-form {
  max-height: 70vh;
  overflow-y: auto;
  padding-right: 12px;
}

.user-form::-webkit-scrollbar {
  width: 6px;
}

.user-form::-webkit-scrollbar-track {
  background: #f0f0f0;
  border-radius: 3px;
}

.user-form::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 3px;
}

.user-form::-webkit-scrollbar-thumb:hover {
  background: #aaa;
}

.user-form .ant-divider {
  margin: 12px 0 16px;
  font-weight: 500;
}

.user-form .ant-divider-inner-text {
  font-size: 15px;
  color: #555;
}

/* Forms fields styling */
.user-form .ant-form-item {
  margin-bottom: 20px;
  transition: all 0.3s ease;
}

.user-form .ant-input:hover,
.user-form .ant-input:focus,
.user-form .ant-input-password:hover,
.user-form .ant-input-password:focus,
.user-form .ant-select-selector:hover,
.user-form .ant-select:focus .ant-select-selector {
  border-color: #1890ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

.user-form .ant-form-item-has-error .ant-input:focus,
.user-form .ant-form-item-has-error .ant-input-password:focus {
  box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.2) !important;
}

/* 暗色模式样式 */
.dark .user-form::-webkit-scrollbar-track {
  background: #303030;
}

.dark .user-form::-webkit-scrollbar-thumb {
  background: #555;
}

.dark .user-form::-webkit-scrollbar-thumb:hover {
  background: #777;
}

.dark .user-form .ant-divider {
  color: #ccc;
  border-color: #444;
}

.dark .user-form .ant-divider-inner-text {
  color: #ccc;
}

/* Dark mode form fields */
.dark .user-form .ant-input:hover,
.dark .user-form .ant-input:focus,
.dark .user-form .ant-input-password:hover,
.dark .user-form .ant-input-password:focus,
.dark .user-form .ant-select-selector:hover,
.dark .user-form .ant-select:focus .ant-select-selector {
  border-color: #1890ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

.dark .user-form .ant-input-affix-wrapper-focused {
  border-color: #1890ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

/* 响应式设计 */
@media (max-width: 768px) {
  .card-header {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .card-header .ant-space {
    margin-top: 16px;
    width: 100%;
  }
  
  .mobile-card-header {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .mobile-card-header .ant-space {
    width: 100%;
  }
  
  .mobile-card-header .ant-input-affix-wrapper {
    margin-bottom: 12px;
  }
  
  .user-management-container {
    padding: 10px;
  }
  
  .user-form {
    max-height: 70vh;
    padding-right: 0;
  }
  
  .mobile-user-form .ant-form-item {
    margin-bottom: 12px;
  }
  
  .mobile-user-form .ant-divider {
    margin: 8px 0 12px;
  }
  
  .mobile-user-form .ant-form-item-label {
    padding-bottom: 4px;
  }
  
  .mobile-user-form .ant-form-item-label > label {
    font-size: 14px;
  }
  
  .user-modal .ant-modal-body {
    padding: 16px 12px;
  }
  
  .user-modal .ant-modal-footer {
    padding: 10px 16px;
  }
  
  .user-modal .ant-modal-header {
    padding: 14px 16px;
  }
  
  .user-modal .ant-form-item {
    margin-bottom: 12px;
  }
  
  .user-modal .ant-divider {
    margin: 8px 0 12px;
  }
  
  /* Mobile table styles */
  .ant-table-tbody > tr > td {
    padding: 12px 8px;
  }
  
  .ant-table-thead > tr > th {
    padding: 10px 8px;
    font-size: 13px;
  }
  
  /* Improve mobile action buttons */
  .ant-table-tbody .ant-btn-link {
    padding: 4px 6px;
    height: auto;
    min-width: 28px;
  }
  
  /* Mobile drawer specific */
  .user-drawer.ant-drawer-bottom .ant-drawer-content-wrapper {
    border-radius: 16px 16px 0 0;
    overflow: hidden;
  }
  
  .user-drawer.ant-drawer-bottom .ant-drawer-header {
    border-radius: 16px 16px 0 0;
    border-bottom: 1px solid #f0f0f0;
    padding: 12px 16px;
  }
  
  .dark .user-drawer.ant-drawer-bottom .ant-drawer-header {
    border-bottom: 1px solid #303030;
  }
  
  .user-drawer.ant-drawer-bottom .ant-drawer-body {
    padding: 16px 16px 80px;
  }
  
  .user-drawer.ant-drawer-bottom .ant-drawer-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: inherit;
    border-top: 1px solid #f0f0f0;
    padding: 10px 16px;
    text-align: right;
    z-index: 10;
  }
  
  .dark .user-drawer.ant-drawer-bottom .ant-drawer-footer {
    border-top: 1px solid #303030;
  }
}

/* Mobile table cell enhancements */
@media (max-width: 768px) {
  .ant-table-row .ant-tag {
    margin: 2px 4px 2px 0;
    font-size: 12px;
    padding: 0 6px;
    line-height: 20px;
    height: 22px;
  }
  
  .ant-table-row .ant-space {
    gap: 4px !important;
  }
  
  /* Better touch targets */
  .ant-table-row .ant-btn {
    min-height: 32px;
    min-width: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  
  /* Improve drawer scrolling */
  .user-drawer .ant-drawer-body {
    -webkit-overflow-scrolling: touch;
  }
  
  /* Optimize bottom drawer for mobile */
  .user-drawer.ant-drawer-bottom .ant-drawer-content-wrapper {
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
  }
  
  /* Improve mobile switch display */
  .mobile-user-form .ant-form-item-control-input-content {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }
  
  .mobile-user-form .ant-form-item-control-input-content > span:not(.ant-switch) {
    margin-left: 8px;
    flex: 1 1;
    min-width: 0;
  }
}

/* Floating Action Button for mobile */
.mobile-fab-button {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 999;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #1890ff;
  border: none;
  color: white;
  font-size: 24px;
  transition: all 0.3s;
}

.mobile-fab-button:hover {
  background-color: #40a9ff;
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.dark .mobile-fab-button {
  background-color: #177ddc;
}

.dark .mobile-fab-button:hover {
  background-color: #40a9ff;
}

/* Ensure mobile form labels are clear */
@media (max-width: 768px) {
  .user-form .ant-form-item-label > label {
    font-weight: 500;
    font-size: 14px;
  }
  
  .user-form .ant-form-item-required::before {
    line-height: 14px;
  }
  
  /* Fix drawer header and footer in dark mode */
  .dark .user-drawer.ant-drawer-bottom .ant-drawer-header,
  .dark .user-drawer.ant-drawer-bottom .ant-drawer-footer {
    background-color: #1f1f1f;
  }
}

/* Improve mobile form spacing */
.mobile-user-form .ant-row {
  margin-right: -8px !important;
  margin-left: -8px !important;
}

.mobile-user-form .ant-col {
  padding-right: 8px !important;
  padding-left: 8px !important;
}

/* Better tap targets for mobile */
@media (max-width: 768px) {
  .ant-form-item-control-input {
    min-height: 36px;
  }
  
  .ant-select-selector {
    min-height: 36px;
  }
  
  .ant-input, 
  .ant-input-affix-wrapper,
  .ant-input-password,
  .ant-select-selection-search-input {
    min-height: 36px;
  }
  
  .ant-drawer-close {
    padding: 12px;
    margin: -12px;
  }
}

/* 弹窗样式 */
.user-modal .ant-modal-content {
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.user-modal .ant-modal-header {
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}

.user-modal .ant-modal-title {
  font-size: 18px;
  font-weight: 500;
}

.user-modal .ant-modal-footer {
  border-top: 1px solid #f0f0f0;
  padding: 12px 24px;
}

/* Enhance modal buttons */
.user-modal .ant-btn {
  height: 36px;
  padding: 0 16px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
}

.user-modal .ant-btn-primary {
  background: #1890ff;
  border-color: #1890ff;
}

.user-modal .ant-btn-primary:hover {
  background: #40a9ff;
  border-color: #40a9ff;
  transform: translateY(-1px);
}

/* 暗色模式弹窗样式 */
.dark-modal .ant-modal-content {
  background-color: #1f1f1f;
  border: 1px solid #303030;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.dark-modal .ant-modal-header {
  background-color: #1f1f1f;
  border-bottom: 1px solid #303030;
}

.dark-modal .ant-modal-title {
  color: #e0e0e0;
}

.dark-modal .ant-modal-footer {
  border-top: 1px solid #303030;
  background-color: #1f1f1f;
}

.dark-modal .ant-modal-close {
  color: rgba(255, 255, 255, 0.6);
}

.dark-modal .ant-modal-close:hover {
  color: rgba(255, 255, 255, 0.9);
}

/* Dark mode form elements inside modal */
.dark-modal .ant-select-dropdown {
  background-color: #1f1f1f !important;
  border: 1px solid #303030 !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
}

.dark-modal .ant-select-item {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark-modal .ant-select-item-option-selected {
  background-color: rgba(24, 144, 255, 0.2) !important;
}

.dark-modal .ant-select-item-option-active {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

/* Input autofill styles for dark mode */
.dark .user-form input:-webkit-autofill,
.dark .user-form input:-webkit-autofill:hover,
.dark .user-form input:-webkit-autofill:focus {
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85);
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
  box-shadow: 0 0 0px 1000px #141414 inset;
}

/* Prefix icon color adjustments */
.dark .user-form .ant-input-affix-wrapper .ant-input-prefix {
  color: rgba(255, 255, 255, 0.45);
}

.dark .user-form .ant-input-affix-wrapper:hover .ant-input-prefix {
  color: rgba(255, 255, 255, 0.65);
}

.dark .user-form .ant-input-affix-wrapper-focused .ant-input-prefix {
  color: #1890ff;
}

/* Improved form validation feedback in dark mode */
.dark .user-form .ant-form-item-has-error .ant-input,
.dark .user-form .ant-form-item-has-error .ant-input-affix-wrapper,
.dark .user-form .ant-form-item-has-error .ant-input:hover,
.dark .user-form .ant-form-item-has-error .ant-input-affix-wrapper:hover {
  background-color: rgba(255, 77, 79, 0.1);
  border-color: #ff7875;
}

.dark .user-form .ant-form-item-has-success.ant-form-item-has-feedback .ant-input,
.dark .user-form .ant-form-item-has-success.ant-form-item-has-feedback .ant-input-affix-wrapper,
.dark .user-form .ant-form-item-has-success.ant-form-item-has-feedback .ant-input:hover,
.dark .user-form .ant-form-item-has-success.ant-form-item-has-feedback .ant-input-affix-wrapper:hover {
  background-color: rgba(82, 196, 26, 0.1);
  border-color: #73d13d;
}

/* Enhanced Switch */
.user-form .ant-switch {
  background-color: rgba(0, 0, 0, 0.25);
}

.user-form .ant-switch-checked {
  background-color: #1890ff;
}

.dark .user-form .ant-switch {
  background-color: rgba(255, 255, 255, 0.15);
}

.dark .user-form .ant-switch-checked {
  background-color: #1890ff;
}

/* 用户抽屉样式 */
.user-drawer .ant-drawer-content {
  border-radius: 0;
  overflow: hidden;
  transition: all 0.3s ease;
}

.user-drawer .ant-drawer-header {
  background-color: #f7f7f7;
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}

.user-drawer .ant-drawer-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.85);
}

.user-drawer .ant-drawer-body {
  padding: 24px;
}

.user-drawer .ant-drawer-footer {
  border-top: 1px solid #f0f0f0;
  padding: 12px 24px;
}

.user-drawer .ant-btn-primary {
  background-color: #1890ff;
  border-color: #1890ff;
  box-shadow: 0 2px 6px rgba(24, 144, 255, 0.2);
  height: auto;
  padding: 6px 16px;
  transition: all 0.3s ease;
}

.user-drawer .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
}

/* 暗黑模式下的抽屉样式 */
.dark-drawer.user-drawer .ant-drawer-content {
  background-color: #1f1f1f;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.dark-drawer.user-drawer .ant-drawer-header {
  background-color: #141414;
  border-bottom: 1px solid #303030;
}

.dark-drawer.user-drawer .ant-drawer-title {
  color: rgba(255, 255, 255, 0.85);
}

.dark-drawer.user-drawer .ant-drawer-close {
  color: rgba(255, 255, 255, 0.45);
}

.dark-drawer.user-drawer .ant-drawer-close:hover {
  color: rgba(255, 255, 255, 0.85);
  transition: color 0.3s ease;
}

.dark-drawer.user-drawer .ant-drawer-footer {
  border-top: 1px solid #303030;
}

.dark-drawer.user-drawer .ant-btn {
  background-color: transparent;
  border-color: #434343;
  color: rgba(255, 255, 255, 0.85);
  transition: all 0.3s ease;
}

.dark-drawer.user-drawer .ant-btn:hover {
  border-color: #177ddc;
  color: #177ddc;
}

.dark-drawer.user-drawer .ant-btn-primary {
  background-color: #177ddc;
  border-color: #177ddc;
  color: #fff;
  box-shadow: 0 2px 6px rgba(23, 125, 220, 0.2);
}

.dark-drawer.user-drawer .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  box-shadow: 0 4px 12px rgba(23, 125, 220, 0.3);
}

.dark-drawer.user-drawer .ant-alert {
  background-color: #111b26;
  border-color: #153450;
}

.dark-drawer.user-drawer .ant-alert-message {
  color: rgba(255, 255, 255, 0.85);
}

.dark-drawer.user-drawer .ant-alert-description {
  color: rgba(255, 255, 255, 0.65);
}

/* 响应式样式 */
@media screen and (max-width: 768px) {
  .user-drawer {
    max-width: 100%;
  }
  
  .user-drawer .ant-drawer-content-wrapper {
    width: 100% !important;
  }
  
  .user-drawer .ant-drawer-body {
    padding: 16px;
  }
  
  .user-drawer .ant-alert {
    margin-bottom: 12px;
    padding: 8px 12px;
  }
}

/* 暗色模式下输入框悬停和聚焦样式优化 */
.dark .user-form .ant-input:hover,
.dark .user-form .ant-input:focus,
.dark .user-form .ant-input-focused,
.dark .user-form .ant-input-affix-wrapper:hover,
.dark .user-form .ant-input-affix-wrapper:focus,
.dark .user-form .ant-input-affix-wrapper-focused {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #1890ff !important;
}

.dark .user-form .ant-input-affix-wrapper-focused .ant-input,
.dark .user-form .ant-input-affix-wrapper:focus .ant-input,
.dark .user-form .ant-input-affix-wrapper:hover .ant-input {
  background-color: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 修复Select下拉框在暗色模式下的悬停样式 */
.dark .user-form .ant-select:not(.ant-select-disabled):hover .ant-select-selector {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #1890ff !important;
}

.dark .user-form .ant-select-focused:not(.ant-select-disabled).ant-select .ant-select-selector {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 修复Input.Password在暗色模式下的特殊问题 */
.dark .user-form .ant-input-password-input {
  background-color: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .user-form .ant-input-password-input:hover,
.dark .user-form .ant-input-password-input:focus {
  background-color: transparent !important;
}

/* 修复自动填充样式 */
.dark .user-form input:-webkit-autofill,
.dark .user-form input:-webkit-autofill:hover, 
.dark .user-form input:-webkit-autofill:focus,
.dark .user-form input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 30px #141414 inset !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

/* 抽屉中表单元素的暗色模式样式 */
.dark-drawer.user-drawer .ant-input,
.dark-drawer.user-drawer .ant-input-affix-wrapper,
.dark-drawer.user-drawer .ant-select-selector,
.dark-drawer.user-drawer .ant-input-password {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #303030;
}

.dark-drawer.user-drawer .ant-input:hover,
.dark-drawer.user-drawer .ant-input:focus,
.dark-drawer.user-drawer .ant-input-affix-wrapper:hover,
.dark-drawer.user-drawer .ant-input-affix-wrapper:focus,
.dark-drawer.user-drawer .ant-input-affix-wrapper-focused,
.dark-drawer.user-drawer .ant-select-selector:hover,
.dark-drawer.user-drawer .ant-select-focused .ant-select-selector {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #1890ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

/* 确保抽屉中的输入框文本在暗色模式下清晰可见 */
.dark-drawer.user-drawer .ant-input::placeholder,
.dark-drawer.user-drawer .ant-input-affix-wrapper .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.45) !important;
}

/* 修复抽屉中Input.Password在暗色模式下的问题 */
.dark-drawer.user-drawer .ant-input-password .ant-input {
  background-color: transparent !important;
}

/* 改进抽屉中表单项标签在暗色模式下的可见性 */
.dark-drawer.user-drawer .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 修复抽屉中下拉菜单的样式 */
.dark-drawer.user-drawer .ant-select-dropdown {
  background-color: #1f1f1f !important;
  border-color: #303030 !important;
}

.dark-drawer.user-drawer .ant-select-item {
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark-drawer.user-drawer .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

.dark-drawer.user-drawer .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background-color: rgba(24, 144, 255, 0.2) !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 全面的暗色模式表单元素样式修复 */
.dark-drawer .ant-input,
.dark-drawer .ant-input-affix-wrapper,
.dark-drawer .ant-input-number,
.dark-drawer .ant-select-selector,
.dark-drawer .ant-input-textarea {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  border-color: #303030 !important;
}

.dark-drawer .ant-input:hover,
.dark-drawer .ant-input-affix-wrapper:hover,
.dark-drawer .ant-input-number:hover,
.dark-drawer .ant-select-selector:hover,
.dark-drawer .ant-input-textarea:hover {
  background-color: #141414 !important;
  border-color: #1890ff !important;
}

.dark-drawer .ant-input:focus,
.dark-drawer .ant-input-focused,
.dark-drawer .ant-input-affix-wrapper:focus,
.dark-drawer .ant-input-affix-wrapper-focused,
.dark-drawer .ant-input-number:focus,
.dark-drawer .ant-input-number-focused,
.dark-drawer .ant-select-focused .ant-select-selector,
.dark-drawer .ant-input-textarea:focus {
  background-color: #141414 !important;
  border-color: #1890ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

.dark-drawer .ant-input-affix-wrapper .ant-input,
.dark-drawer .ant-input-affix-wrapper-focused .ant-input,
.dark-drawer .ant-input-affix-wrapper:focus .ant-input,
.dark-drawer .ant-input-affix-wrapper:hover .ant-input {
  background-color: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 特别修复密码输入框 */
.dark-drawer .ant-input-password .ant-input {
  background-color: transparent !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark-drawer .ant-select-selection-item {
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 修复下拉菜单 */
body .ant-select-dropdown.dark-dropdown {
  background-color: #1f1f1f !important;
  border: 1px solid #303030 !important;
}

body .ant-select-dropdown.dark-dropdown .ant-select-item {
  color: rgba(255, 255, 255, 0.85) !important;
}

body .ant-select-dropdown.dark-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background-color: rgba(255, 255, 255, 0.08) !important;
}

body .ant-select-dropdown.dark-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background-color: rgba(24, 144, 255, 0.2) !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 防止默认样式覆盖我们的暗色模式样式 */
.dark-drawer .ant-form-item .ant-input[disabled],
.dark-drawer .ant-form-item .ant-input-affix-wrapper[disabled] {
  background-color: rgba(0, 0, 0, 0.1) !important;
  color: rgba(255, 255, 255, 0.3) !important;
}

/* 修复抽屉中表单元素在各种状态下的一致性 */
.dark-drawer .ant-form-item-has-error .ant-input,
.dark-drawer .ant-form-item-has-error .ant-input-affix-wrapper,
.dark-drawer .ant-form-item-has-error .ant-input-affix-wrapper-focused {
  background-color: rgba(255, 77, 79, 0.1) !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark-drawer .ant-form-item-has-error .ant-input:hover,
.dark-drawer .ant-form-item-has-error .ant-input-affix-wrapper:hover {
  border-color: #ff4d4f !important;
}

.dark-drawer .ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector {
  background-color: rgba(255, 77, 79, 0.1) !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 额外修复自动填充状态 */
.dark-drawer input:-webkit-autofill,
.dark-drawer input:-webkit-autofill:hover,
.dark-drawer input:-webkit-autofill:focus,
.dark-drawer input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 30px #141414 inset !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

/* 确保无论如何表单悬停时保持暗色背景 */
.dark-drawer [class*="ant-input"]:hover,
.dark-drawer [class*="ant-input"]:focus,
.dark-drawer [class*="ant-input-affix-wrapper"]:hover,
.dark-drawer [class*="ant-input-affix-wrapper"]:focus {
  background-color: #141414 !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* 修复不同浏览器的一致性 */
@-moz-document url-prefix() {
  .dark-drawer .ant-input,
  .dark-drawer .ant-input-affix-wrapper,
  .dark-drawer .ant-select-selector {
    background-color: #141414 !important;
    color: rgba(255, 255, 255, 0.85) !important;
  }
}

/* 为所有可能的输入状态提供足够的对比度 */
.dark-drawer [class*="ant-input"]::placeholder {
  color: rgba(255, 255, 255, 0.35) !important;
} 
.role-management-container {
  padding: 20px;
}

.role-management-card {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.permission-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.permissions-checkbox-group {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.permission-category {
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
  transition: all 0.3s ease;
  scroll-margin-top: 10px;
  position: relative;
}

.permission-category:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: #d9d9d9;
}

.category-title {
  font-weight: 500;
  margin-bottom: 12px;
  font-size: 15px;
  color: #1890ff;
  border-bottom: 1px solid #f0f0f0;
  padding-bottom: 8px;
  display: flex;
  align-items: center;
  position: sticky;
  top: 0;
  background-color: #fff;
  z-index: 10;
  padding-top: 8px;
  margin-top: -8px;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  transition: all 0.2s ease;
}

.permission-category:first-child .category-title {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

.current-category-indicator {
  display: none;
}

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

.category-permissions {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-gap: 12px;
  gap: 12px;
}

.permission-item {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 190px;
}

/* 抽屉样式 */
.role-drawer .ant-drawer-body {
  padding: 24px;
}

.role-drawer .ant-drawer-header-title {
  flex-direction: row-reverse;
}

.role-drawer .ant-drawer-title {
  flex: 1 1;
}

.role-drawer .ant-form-item-label > label {
  font-weight: 500;
}

.role-drawer .ant-checkbox-wrapper {
  margin-left: 0;
  width: 100%;
  display: flex;
  align-items: flex-start;
}

.role-drawer .ant-checkbox {
  margin-top: 3px;
}

.role-drawer .permissions-container {
  max-height: calc(100vh - 380px);
  overflow-y: auto;
  padding: 2px;
  border: 1px solid #f0f0f0;
  border-radius: 4px;
  position: relative;
  scrollbar-width: thin;
}

.role-drawer .permissions-container::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.role-drawer .permissions-container::-webkit-scrollbar-track {
  background: #f0f0f0;
  border-radius: 3px;
}

.role-drawer .permissions-container::-webkit-scrollbar-thumb {
  background: #d9d9d9;
  border-radius: 3px;
}

.role-drawer .permissions-container::-webkit-scrollbar-thumb:hover {
  background: #bfbfbf;
}

.role-drawer .permissions-container::before,
.role-drawer .permissions-container::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 20px;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.role-drawer .permissions-container::before {
  top: 0;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

.role-drawer .permissions-container::after {
  bottom: 0;
  background: linear-gradient(to top, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

.role-drawer .permissions-container.scrolled-top::before {
  opacity: 0;
}

.role-drawer .permissions-container.scrolled-bottom::after {
  opacity: 0;
}

.role-drawer .permissions-container:not(.scrolled-top)::before,
.role-drawer .permissions-container:not(.scrolled-bottom)::after {
  opacity: 1;
}

.category-title.sticky-active {
  color: #1890ff;
  background-color: rgba(255, 255, 255, 0.98);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

/* 响应式设计 */
@media (max-width: 768px) {
  .card-header {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .card-header .ant-space {
    margin-top: 16px;
    width: 100%;
  }
  
  .card-header .ant-space .ant-input-affix-wrapper {
    width: 100%;
  }
  
  .role-management-container {
    padding: 10px;
  }
  
  .category-permissions {
    grid-template-columns: 1fr;
  }
  
  .role-drawer .permissions-container {
    max-height: calc(100vh - 320px);
  }
  
  .role-drawer .ant-drawer-content-wrapper {
    width: 100% !important;
  }
}

/* 暗黑模式 */
.dark .role-management-card {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark .card-header h4 {
  color: #f0f0f0;
}

.dark .permission-category {
  background-color: #141414;
  border-color: #303030;
}

.dark .permission-category:hover {
  border-color: #434343;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.dark .category-title {
  color: #177ddc;
  border-color: #303030;
  background-color: #141414;
}

.dark .role-drawer .ant-drawer-content {
  background-color: #141414;
}

.dark .role-drawer .ant-drawer-header {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark .role-drawer .ant-drawer-title {
  color: #f0f0f0;
}

.dark .role-drawer .ant-drawer-body {
  color: rgba(255, 255, 255, 0.85);
}

.dark .role-drawer .ant-form-item-label > label {
  color: rgba(255, 255, 255, 0.85);
}

.dark .role-drawer .ant-checkbox-wrapper {
  color: rgba(255, 255, 255, 0.85);
}

.dark .role-drawer .permissions-container::-webkit-scrollbar-thumb {
  background: #303030;
}

.dark .role-drawer .permissions-container::-webkit-scrollbar-thumb:hover {
  background: #434343;
}

.dark .role-drawer .ant-input,
.dark .role-drawer .ant-input-textarea,
.dark .role-drawer .ant-input-textarea textarea {
  background-color: #1f1f1f;
  border-color: #303030;
  color: rgba(255, 255, 255, 0.85);
}

.dark .role-drawer .ant-input:hover,
.dark .role-drawer .ant-input:focus,
.dark .role-drawer .ant-input-focused {
  border-color: #177ddc;
}

.dark .role-drawer .ant-drawer-footer {
  border-top-color: #303030;
  background-color: #1f1f1f;
}

.dark .role-drawer .ant-divider {
  border-color: #303030;
}

.dark .role-drawer .ant-checkbox-inner {
  background-color: #1f1f1f;
  border-color: #434343;
}

.dark .role-drawer .permissions-container {
  border-color: #303030;
}

.dark .role-drawer .permissions-container::before {
  background: linear-gradient(to bottom, rgba(20, 20, 20, 1), rgba(20, 20, 20, 0));
}

.dark .role-drawer .permissions-container::after {
  background: linear-gradient(to top, rgba(20, 20, 20, 1), rgba(20, 20, 20, 0));
}

.dark .category-title.sticky-active {
  color: #40a9ff;
  background-color: rgba(20, 20, 20, 0.98);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* 内联类别指示器样式 */
.current-section-inline {
  display: flex;
  align-items: center;
  animation: fadeIn 0.3s ease;
  margin-left: 8px;
  white-space: nowrap;
  background-color: rgba(24, 144, 255, 0.1);
  padding: 2px 8px;
  border-radius: 12px;
  transition: all 0.3s ease;
}

/* 暗黑模式样式更新 */
.dark .current-section-inline {
  background-color: rgba(64, 169, 255, 0.1);
}

.dark .current-section-inline span {
  color: #40a9ff !important;
}

.permission-count {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
}

.permission-badge .ant-badge-count {
  box-shadow: none !important;
}

.permission-text {
  cursor: help;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
  display: inline-block;
  border-bottom: 1px dotted #d9d9d9;
}

.dark .permission-text {
  border-bottom-color: #434343;
}

.loading-indicator {
  cursor: help;
}

.dark .permission-badge .ant-badge-count {
  background-color: #1f1f1f !important;
  border: 1px solid #434343;
  color: rgba(255, 255, 255, 0.85) !important;
}

.dark .permission-badge .ant-badge-count[style*="background-color: rgb(24, 144, 255)"] {
  background-color: #177ddc !important;
  border: none;
}

.permission-count-selected {
  color: #1890ff;
  font-weight: 500;
  margin-right: 1px;
}

.dark .permission-count {
  color: rgba(255, 255, 255, 0.65);
}

.dark .permission-count-selected {
  color: #1890ff;
}

.permission-help-text {
  margin-top: 8px;
  font-size: 13px;
  color: #8c8c8c;
  font-style: italic;
}

.dark .permission-help-text {
  color: rgba(255, 255, 255, 0.45);
}

.clone-button {
  color: #52c41a;
  transition: all 0.3s;
}

.clone-button:hover {
  color: #73d13d;
}

.dark .clone-button {
  color: #49aa19;
}

.dark .clone-button:hover {
  color: #6abe39;
}

/* 移动版UI优化样式 */
.mobile-role-list {
  margin-top: 16px;
}

.loading-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
}

.role-list-item {
  padding: 0 !important;
  margin-bottom: 16px;
}

.role-card {
  width: 100%;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  overflow: hidden;
}

.role-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.role-card-header {
  padding: 12px 16px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 1px solid #f5f5f5;
}

.role-info {
  flex: 1 1;
  min-width: 0;
}

.role-name-row {
  display: flex;
  align-items: center;
  margin-bottom: 6px;
}

.role-name {
  font-weight: 500;
  font-size: 16px;
  margin-right: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.role-description {
  margin-top: 4px;
  max-width: 100%;
}

.role-meta {
  margin-left: 16px;
  display: flex;
  align-items: center;
}

.role-permissions-collapse {
  border-bottom: 1px solid #f5f5f5;
}

.permissions-collapse-header {
  font-size: 14px;
  color: rgba(0, 0, 0, 0.65);
  display: flex;
  align-items: center;
}

.role-card-actions {
  padding: 12px 16px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.role-card-actions .ant-btn {
  flex: 1 1;
  min-width: 0;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.mobile-drawer .ant-drawer-content-wrapper {
  width: 100% !important;
}

.mobile-drawer .ant-drawer-header {
  padding: 12px 16px;
}

.mobile-drawer .ant-drawer-body {
  padding: 16px;
}

.mobile-drawer .ant-drawer-footer {
  padding: 10px 16px;
}

.mobile-drawer .permissions-container {
  max-height: calc(100vh - 300px);
}

.mobile-status-tag {
  margin-left: 8px;
}

.role-name-cell {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.action-buttons {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
}

.action-button {
  padding: 4px 8px;
  font-size: 16px;
}

.mobile-drawer .category-permissions {
  grid-template-columns: 1fr;
}

.category-permissions.mobile-grid {
  grid-template-columns: 1fr;
}

.mobile-drawer .ant-form-item {
  margin-bottom: 16px;
}

.mobile-drawer .ant-form-item-label > label {
  height: auto;
  margin-bottom: 4px;
}

/* 确保权限标签在移动设备上可完整显示 */
@media (max-width: 576px) {
  .permission-tags .ant-tag {
    margin-bottom: 8px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  
  .permissions-checkbox-group .permission-item {
    max-width: 100%;
  }
  
  .role-card-actions {
    flex-direction: column;
  }
  
  .role-card-actions .ant-btn {
    width: 100%;
  }
  
  .permissions-container {
    max-height: calc(100vh - 280px);
  }
  
  .role-drawer .ant-drawer-body {
    padding: 16px 12px;
  }
  
  .permission-category {
    padding: 12px;
  }
  
  .category-title {
    font-size: 14px;
  }
  
  .permission-count {
    font-size: 12px;
  }
  
  .role-management-container {
    padding: 8px;
  }
  
  .role-management-card .ant-card-body {
    padding: 16px 12px;
  }
  
  /* 移动设备上的分页样式优化 */
  .mobile-enhanced-table .ant-pagination {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }
  
  .mobile-enhanced-table .ant-pagination-item {
    margin-bottom: 8px;
  }
  
  .mobile-enhanced-table .ant-pagination-total-text {
    width: 100%;
    text-align: center;
    margin-bottom: 8px;
  }
}

/* 暗黑模式下的移动设备样式 */
.dark .role-card {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark .role-card-header {
  border-bottom-color: #303030;
}

.dark .role-permissions-collapse {
  border-bottom-color: #303030;
}

.dark .permissions-collapse-header {
  color: rgba(255, 255, 255, 0.65);
}

.dark .role-name {
  color: rgba(255, 255, 255, 0.85);
}

/* 确保移动设备上的表单项间距适中 */
@media (max-width: 768px) {
  .role-drawer .ant-form-item {
    margin-bottom: 16px;
  }
  
  .role-drawer .ant-form-item-label {
    padding-bottom: 4px;
  }
  
  .card-header {
    margin-bottom: 16px;
  }
}

/* SuperAdmin角色特殊样式 */
.role-card[data-role="SuperAdmin"],
.ant-table-row[data-role="SuperAdmin"] {
  position: relative;
}

.role-card[data-role="SuperAdmin"] .role-name,
.ant-table-row[data-role="SuperAdmin"] .role-name,
.super-admin-name {
  color: #1890ff;
  font-weight: 600;
}

.role-card[data-role="SuperAdmin"]::before {
  content: '⚙️';
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 16px;
  opacity: 0.5;
}

.dark .role-card[data-role="SuperAdmin"] .role-name,
.dark .ant-table-row[data-role="SuperAdmin"] .role-name {
  color: #40a9ff;
}

@media (max-width: 576px) {
  .permission-tags .ant-tag {
    margin-bottom: 8px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  
  /* 其他已有样式... */
}

/* SuperAdmin角色系统徽章样式 */
.super-admin-badge.ant-badge .ant-badge-count {
  box-shadow: none;
  text-transform: uppercase;
  font-weight: 600;
  padding: 0 6px;
  font-size: 10px;
  height: 18px;
  line-height: 18px;
  margin-left: 4px;
}

.dark .super-admin-badge.ant-badge .ant-badge-count {
  background-color: #177ddc !important;
}

@media (max-width: 576px) {
  .super-admin-badge.ant-badge .ant-badge-count {
    font-size: 9px;
    padding: 0 4px;
    height: 16px;
    line-height: 16px;
  }
  
  .permission-tags .ant-tag {
    margin-bottom: 8px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  
  /* 其他已有样式... */
}

/* 部分加载状态样式 */
.partially-loaded-row {
  background-color: rgba(250, 250, 250, 0.5);
  transition: background-color 0.3s ease;
}

.partially-loaded-row:hover {
  background-color: rgba(240, 240, 240, 0.7) !important;
}

.dark .partially-loaded-row {
  background-color: rgba(40, 40, 40, 0.5);
}

.dark .partially-loaded-row:hover {
  background-color: rgba(50, 50, 50, 0.7) !important;
}

/* 脉冲动画效果 */
@keyframes pulse-loading {
  0% {
    box-shadow: 0 0 0 0 rgba(24, 144, 255, 0.1);
  }
  70% {
    box-shadow: 0 0 0 5px rgba(24, 144, 255, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(24, 144, 255, 0);
  }
}

.partially-loaded-row td {
  position: relative;
}

.partially-loaded-row td:first-child::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 70%;
  background-color: #1890ff;
  border-radius: 2px;
  animation: pulse-loading 2s infinite;
}

.dark .partially-loaded-row td:first-child::before {
  background-color: #177ddc;
}

/* 提高表格响应速度的样式 */
.ant-table-tbody > tr > td {
  transition: background-color 0.2s ease;
}

/* 表格加载优化 */
.ant-table-container {
  will-change: transform;
}

/* 移动优化 */
@media (max-width: 768px) {
  .role-list-item.partially-loaded {
    position: relative;
  }
  
  .role-list-item.partially-loaded::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background-color: #1890ff;
    animation: pulse-loading 2s infinite;
    z-index: 2;
  }
}

.permissions-text {
  font-size: 12px;
  color: #8c8c8c;
  white-space: nowrap;
}

.dark .permissions-text {
  color: rgba(255, 255, 255, 0.45);
} 
.loading-container {
  text-align: center;
  padding: 50px 0;
}

.access-card {
  height: 100%;
  transition: all 0.3s;
}

.access-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transform: translateY(-5px);
}

.card-container {
  margin-top: 16px;
}

.card-description {
  height: 40px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  color: rgba(0, 0, 0, 0.65);
  margin-bottom: 16px;
}

.transfer-container {
  padding: 16px 0;
}

.transfer-item {
  display: flex;
  flex-direction: column;
  padding: 6px 0;
}

.transfer-item-title {
  font-weight: 500;
}

.transfer-item-description {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.45);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.refresh-button {
  transition: all 0.3s;
}

.refresh-button:hover {
  color: #40a9ff;
}

/* 调整Tabs组件中tabBar部分的样式 */
.ant-tabs-nav-operations {
  margin-left: 8px;
}

/* 暗黑模式样式 */
.dark .refresh-button {
  color: #177ddc;
}

.dark .refresh-button:hover {
  color: #40a9ff;
}

/* 暗黑模式样式 */
.dark .access-card {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark .access-card .ant-card-head {
  background-color: #262626;
  border-color: #303030;
}

.dark .card-description {
  color: rgba(255, 255, 255, 0.65);
}

.dark .transfer-item-description {
  color: rgba(255, 255, 255, 0.45);
}

.dark .ant-transfer-list {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark .ant-transfer-list-header {
  background-color: #262626;
  border-color: #303030;
}

.dark .ant-transfer-list-content-item {
  color: rgba(255, 255, 255, 0.85);
  border-color: #303030;
}

.dark .ant-transfer-list-content-item:hover {
  background-color: #303030;
}

.dark .ant-transfer-list-content-item-checked {
  background-color: #111b26;
}

/* 响应式样式 */
@media screen and (max-width: 768px) {
  /* Transfer组件样式 */
  .ant-transfer {
    flex-direction: column;
    align-items: center;
  }
  
  .ant-transfer-list {
    width: 100% !important;
    margin-bottom: 16px;
    height: auto !important;
    min-height: 250px;
    max-height: 300px;
  }
  
  .ant-transfer-operation {
    margin: 8px 0;
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .ant-transfer-operation .ant-btn {
    margin: 0 8px;
    min-width: 100px;
    height: 36px;
  }
  
  .ant-transfer-list-header {
    padding: 8px 12px;
    font-size: 14px;
  }

  .ant-transfer-list-content-item {
    padding: 8px 12px;
  }

  .transfer-item {
    padding: 4px 0;
  }

  .transfer-item-title {
    font-size: 14px;
    max-width: 100%;
    white-space: normal;
    line-height: 1.4;
  }

  .transfer-item-description {
    margin-top: 3px;
  }
  
  .ant-modal {
    max-width: 95%;
  }

  /* 抽屉组件特定样式 */
  .company-access-drawer .ant-drawer-content-wrapper {
    width: 100% !important;
  }

  .company-access-drawer .ant-drawer-header-title {
    flex-direction: row;
    align-items: center;
  }

  .company-access-drawer .ant-drawer-title {
    font-size: 15px;
    line-height: 1.4;
    padding-right: 24px;
  }

  .company-access-drawer .ant-drawer-body {
    padding: 12px;
  }

  .company-access-drawer .ant-drawer-footer {
    padding: 8px 12px;
  }

  .company-access-drawer .ant-drawer-footer .ant-btn {
    font-size: 14px;
    height: 32px;
    padding: 4px 15px;
  }

  /* Alert样式优化 */
  .company-access-drawer .ant-alert {
    padding: 8px 12px;
    font-size: 13px;
    margin-bottom: 12px;
  }

  .company-access-drawer .ant-alert-message {
    font-size: 14px;
    margin-bottom: 2px;
  }

  .company-access-drawer .ant-alert-description {
    font-size: 12px;
    line-height: 1.4;
  }

  /* 优化Transfer组件的分页器 */
  .ant-transfer-list .ant-pagination {
    padding: 8px 0;
    text-align: center;
  }

  .ant-transfer-list .ant-pagination-item {
    margin: 0 2px;
    min-width: 28px;
    height: 28px;
    line-height: 26px;
  }

  .ant-transfer-list .ant-pagination-item a {
    padding: 0;
  }

  /* 搜索框优化 */
  .ant-transfer-list-search {
    padding: 4px 8px;
  }

  .ant-transfer-list-search-action {
    right: 8px;
  }

  .ant-transfer-list-body-search-wrapper {
    padding: 8px;
  }
} 

/* 公司访问模态框样式 */
.company-access-modal .ant-modal-content {
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

.company-access-modal .ant-modal-header {
  background-color: #f7f7f7;
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}

.company-access-modal .ant-modal-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.85);
}

.company-access-modal .ant-modal-body {
  padding: 24px;
}

.company-access-modal .ant-modal-footer {
  border-top: 1px solid #f0f0f0;
  padding: 12px 24px;
}

.company-access-modal .ant-btn-primary {
  background-color: #1890ff;
  border-color: #1890ff;
  box-shadow: 0 2px 6px rgba(24, 144, 255, 0.2);
  height: auto;
  padding: 6px 16px;
}

.company-access-modal .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
}

.company-access-modal .ant-transfer {
  margin-top: 16px;
}

.company-access-modal .ant-transfer-list {
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  border: 1px solid #f0f0f0;
}

.company-access-modal .ant-transfer-list-header {
  background-color: #fafafa;
  border-bottom: 1px solid #f0f0f0;
  padding: 12px 16px;
}

.company-access-modal .ant-transfer-list-body {
  padding: 8px 0;
}

.company-access-modal .ant-transfer-list-content-item {
  padding: 8px 12px;
  transition: all 0.3s;
}

.company-access-modal .ant-transfer-list-content-item:hover {
  background-color: rgba(24, 144, 255, 0.1);
}

.company-access-modal .ant-transfer-list-content-item-checked {
  background-color: rgba(24, 144, 255, 0.15);
}

.company-access-modal .ant-transfer-operation {
  padding: 0 12px;
}

.company-access-modal .ant-transfer-operation button {
  margin-bottom: 8px;
}

.company-access-modal .ant-alert {
  border-radius: 4px;
  margin-bottom: 16px;
}

/* 暗黑模式下的模态框样式 */
.dark-modal.company-access-modal .ant-modal-content {
  background-color: #1f1f1f;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.dark-modal.company-access-modal .ant-modal-header {
  background-color: #141414;
  border-bottom: 1px solid #303030;
}

.dark-modal.company-access-modal .ant-modal-title {
  color: rgba(255, 255, 255, 0.85);
}

.dark-modal.company-access-modal .ant-modal-close {
  color: rgba(255, 255, 255, 0.45);
}

.dark-modal.company-access-modal .ant-modal-close:hover {
  color: rgba(255, 255, 255, 0.85);
}

.dark-modal.company-access-modal .ant-modal-footer {
  border-top: 1px solid #303030;
}

.dark-modal.company-access-modal .ant-btn {
  background-color: transparent;
  border-color: #434343;
  color: rgba(255, 255, 255, 0.85);
}

.dark-modal.company-access-modal .ant-btn-primary {
  background-color: #177ddc;
  border-color: #177ddc;
  color: #fff;
  box-shadow: 0 2px 6px rgba(23, 125, 220, 0.2);
}

.dark-modal.company-access-modal .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  box-shadow: 0 4px 12px rgba(23, 125, 220, 0.3);
}

.dark-modal.company-access-modal .ant-alert {
  background-color: #111b26;
  border: 1px solid #153450;
}

.dark-modal.company-access-modal .ant-alert-message {
  color: rgba(255, 255, 255, 0.85);
}

.dark-modal.company-access-modal .ant-alert-description {
  color: rgba(255, 255, 255, 0.65);
}

.dark-modal.company-access-modal .ant-transfer-list {
  background-color: #141414;
  border-color: #303030;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.dark-modal.company-access-modal .ant-transfer-list-header {
  background-color: #1f1f1f;
  border-bottom: 1px solid #303030;
}

.dark-modal.company-access-modal .ant-transfer-list-header-title {
  color: rgba(255, 255, 255, 0.85);
}

.dark-modal.company-access-modal .ant-transfer-list-content-item {
  color: rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid #303030;
}

.dark-modal.company-access-modal .ant-transfer-list-content-item:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.dark-modal.company-access-modal .ant-transfer-list-content-item-checked {
  background-color: rgba(23, 125, 220, 0.15);
}

.dark-modal.company-access-modal .ant-checkbox-checked .ant-checkbox-inner {
  background-color: #177ddc;
  border-color: #177ddc;
}

/* 响应式模态框调整 */
@media screen and (max-width: 768px) {
  .company-access-modal {
    margin: 0 8px;
  }
  
  .company-access-modal .ant-modal-body {
    padding: 16px;
  }
  
  .company-access-modal .ant-transfer-list-header {
    padding: 8px 12px;
  }
  
  .company-access-modal .ant-transfer-list-content-item {
    padding: 6px 8px;
    font-size: 13px;
  }
  
  .company-access-modal .ant-alert {
    font-size: 13px;
    padding: 8px 12px;
  }
} 

/* 公司访问抽屉样式 */
.company-access-drawer .ant-drawer-content {
  border-radius: 0;
  overflow: hidden;
  transition: all 0.3s ease;
}

.company-access-drawer .ant-drawer-header {
  background-color: #f7f7f7;
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}

.company-access-drawer .ant-drawer-title {
  font-size: 16px;
  font-weight: 600;
  color: rgba(0, 0, 0, 0.85);
}

.company-access-drawer .ant-drawer-body {
  padding: 24px;
}

.company-access-drawer .ant-drawer-footer {
  border-top: 1px solid #f0f0f0;
  padding: 12px 24px;
}

.company-access-drawer .ant-btn-primary {
  background-color: #1890ff;
  border-color: #1890ff;
  box-shadow: 0 2px 6px rgba(24, 144, 255, 0.2);
  height: auto;
  padding: 6px 16px;
  transition: all 0.3s ease;
}

.company-access-drawer .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
}

.company-access-drawer .ant-transfer {
  margin-top: 16px;
}

.company-access-drawer .ant-transfer-list {
  border-radius: 4px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  border: 1px solid #f0f0f0;
  transition: all 0.3s ease;
}

.company-access-drawer .ant-transfer-list-header {
  background-color: #fafafa;
  border-bottom: 1px solid #f0f0f0;
  padding: 12px 16px;
}

.company-access-drawer .ant-transfer-list-body {
  padding: 8px 0;
}

.company-access-drawer .ant-transfer-list-content-item {
  padding: 8px 12px;
  transition: all 0.3s ease;
}

.company-access-drawer .ant-transfer-list-content-item:hover {
  background-color: rgba(24, 144, 255, 0.1);
}

.company-access-drawer .ant-transfer-list-content-item-checked {
  background-color: rgba(24, 144, 255, 0.15);
}

.company-access-drawer .ant-transfer-operation {
  padding: 0 12px;
}

.company-access-drawer .ant-transfer-operation button {
  margin-bottom: 8px;
  transition: all 0.3s ease;
}

.company-access-drawer .ant-alert {
  border-radius: 4px;
  margin-bottom: 16px;
  transition: all 0.3s ease;
}

/* 暗黑模式下的抽屉样式 */
.dark-drawer.company-access-drawer .ant-drawer-content {
  background-color: #1f1f1f;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.dark-drawer.company-access-drawer .ant-drawer-header {
  background-color: #141414;
  border-bottom: 1px solid #303030;
}

.dark-drawer.company-access-drawer .ant-drawer-title {
  color: rgba(255, 255, 255, 0.85);
}

.dark-drawer.company-access-drawer .ant-drawer-close {
  color: rgba(255, 255, 255, 0.45);
}

.dark-drawer.company-access-drawer .ant-drawer-close:hover {
  color: rgba(255, 255, 255, 0.85);
  transition: color 0.3s ease;
}

.dark-drawer.company-access-drawer .ant-drawer-footer {
  border-top: 1px solid #303030;
}

.dark-drawer.company-access-drawer .ant-btn {
  background-color: transparent;
  border-color: #434343;
  color: rgba(255, 255, 255, 0.85);
  transition: all 0.3s ease;
}

.dark-drawer.company-access-drawer .ant-btn:hover {
  border-color: #177ddc;
  color: #177ddc;
}

.dark-drawer.company-access-drawer .ant-btn-primary {
  background-color: #177ddc;
  border-color: #177ddc;
  color: #fff;
  box-shadow: 0 2px 6px rgba(23, 125, 220, 0.2);
}

.dark-drawer.company-access-drawer .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
  box-shadow: 0 4px 12px rgba(23, 125, 220, 0.3);
}

.dark-drawer.company-access-drawer .ant-alert {
  background-color: #111b26;
  border-color: #153450;
}

.dark-drawer.company-access-drawer .ant-alert-message {
  color: rgba(255, 255, 255, 0.85);
}

.dark-drawer.company-access-drawer .ant-alert-description {
  color: rgba(255, 255, 255, 0.65);
}

.dark-drawer.company-access-drawer .ant-transfer-list {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark-drawer.company-access-drawer .ant-transfer-list-header {
  background-color: #141414;
  border-color: #303030;
}

.dark-drawer.company-access-drawer .ant-transfer-list-header-title {
  color: rgba(255, 255, 255, 0.85);
}

.dark-drawer.company-access-drawer .ant-transfer-list-content-item {
  color: rgba(255, 255, 255, 0.85);
  border-color: #303030;
}

.dark-drawer.company-access-drawer .ant-transfer-list-content-item:hover {
  background-color: #303030;
}

.dark-drawer.company-access-drawer .ant-transfer-list-content-item-checked {
  background-color: #111b26;
}

.dark-drawer.company-access-drawer .ant-checkbox-checked .ant-checkbox-inner {
  background-color: #177ddc;
  border-color: #177ddc;
}

/* 响应式样式 */
@media screen and (max-width: 768px) {
  .company-access-drawer {
    max-width: 100%;
  }
  
  .company-access-drawer .ant-drawer-content-wrapper {
    width: 100% !important;
  }
  
  .company-access-drawer .ant-drawer-body {
    padding: 16px;
  }
  
  .company-access-drawer .ant-transfer-list {
    width: 100% !important;
    margin-bottom: 16px;
  }
  
  .company-access-drawer .ant-transfer {
    flex-direction: column;
  }
  
  .company-access-drawer .ant-transfer-operation {
    margin: 8px 0;
  }
  
  .company-access-drawer .ant-alert {
    margin-bottom: 12px;
    padding: 8px 12px;
  }
}

/* 调整页面容器样式 */
.company-access-management-container {
  width: 100%;
  padding: 16px;
  transition: all 0.3s ease;
}

/* 暗色模式下的表格和标签页调整 */
.dark-tabs .ant-tabs-tab {
  color: rgba(255, 255, 255, 0.65);
}

.dark-tabs .ant-tabs-tab:hover {
  color: #177ddc;
}

.dark-tabs .ant-tabs-tab.ant-tabs-tab-active {
  color: #177ddc;
}

.dark-tabs .ant-tabs-tab-btn {
  color: inherit;
}

.dark-tabs .ant-tabs-ink-bar {
  background-color: #177ddc;
}

.dark-card {
  background-color: #141414;
  border-color: #303030;
}

.dark-card .ant-card-head {
  background-color: #1f1f1f;
  border-color: #303030;
}

.dark-card .ant-card-head-title {
  color: rgba(255, 255, 255, 0.85);
}

.dark-card .ant-card-body {
  background-color: #141414;
  color: rgba(255, 255, 255, 0.65);
}

.search-bar {
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}

/* 抽屉打开和关闭的动画效果 */
.ant-drawer {
  transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

.ant-drawer.ant-drawer-open {
  transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.3s cubic-bezier(0.23, 1, 0.32, 1);
}

/* Transfer组件内条目样式优化 */
.transfer-item {
  border-radius: 2px;
  transition: all 0.3s ease;
}

.transfer-item-title {
  display: flex;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.transfer-item-description {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
} 
.profile-edit-container {
  padding: 24px;
  min-height: calc(100vh - 112px);
}

.profile-edit-card {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  transition: all 0.3s ease;
}

.profile-edit-card .ant-card-head {
  padding: 16px 24px;
  border-bottom: 1px solid #f0f0f0;
}

.profile-edit-card .ant-card-head-title h3 {
  margin: 0;
  color: #1890ff;
}

.profile-edit-card .ant-card-body {
  padding: 24px;
}

.profile-alert {
  margin-bottom: 24px;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.avatar-upload-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 24px;
  gap: 16px;
}

.profile-avatar {
  border: 2px solid #1890ff;
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.profile-avatar:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 16px rgba(24, 144, 255, 0.25);
}

.user-card {
  transition: all 0.3s ease;
}

.upload-button {
  border-radius: 20px;
  background: #f0f7ff;
  border-color: #1890ff;
  color: #1890ff;
  transition: all 0.3s ease;
}

.upload-button:hover {
  background: #e6f7ff;
  box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
  transform: translateY(-1px);
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

/* 按钮样式 */
.save-button {
  transition: all 0.3s ease !important;
}

.save-button:not(:disabled):hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.35) !important;
}

.save-button:not(:disabled):active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(24, 144, 255, 0.2) !important;
}

.cancel-button {
  transition: all 0.3s ease !important;
}

.cancel-button:hover {
  background-color: #f5f5f5 !important;
  border-color: #d9d9d9 !important;
}

.cancel-button:active {
  background-color: #e6e6e6 !important;
}

/* 表单元素样式 */
.ant-input, .ant-input-affix-wrapper {
  transition: all 0.3s ease !important;
}

.ant-input:hover, .ant-input-affix-wrapper:hover {
  border-color: #40a9ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.1) !important;
}

.ant-input:focus, .ant-input-affix-wrapper-focused {
  border-color: #1890ff !important;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2) !important;
}

.ant-input-disabled, .ant-input-affix-wrapper-disabled {
  cursor: not-allowed !important;
}

/* 响应式调整 */
@media screen and (max-width: 576px) {
  .profile-edit-container {
    padding: 16px;
  }
  
  .profile-edit-card .ant-card-body {
    padding: 16px;
  }
  
  .profile-avatar {
    width: 80px !important;
    height: 80px !important;
    line-height: 80px !important;
    font-size: 36px !important;
  }
  
  .form-actions {
    justify-content: center;
  }
  
  .save-button, .cancel-button {
    height: 40px !important;
  }
  
  .ant-row {
    margin-bottom: 8px !important;
  }
}

/* 暗黑模式 */
.dark .profile-edit-card {
  background-color: #1f1f1f;
  border: 1px solid #303030;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.dark .profile-edit-card .ant-card-head {
  border-bottom: 1px solid #303030;
  background-color: rgba(255, 255, 255, 0.02);
}

.dark .profile-edit-card .ant-card-head-title h3 {
  color: #1890ff;
}

.dark .profile-edit-card .ant-form-item-label > label {
  color: #f0f0f0;
}

.dark .profile-edit-card .ant-input,
.dark .profile-edit-card .ant-input-password {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .profile-edit-card .ant-input:disabled,
.dark .profile-edit-card .ant-input[disabled] {
  background-color: #3a3a3a;
  color: rgba(255, 255, 255, 0.3);
}

.dark .profile-edit-card .ant-input-password .ant-input {
  background-color: transparent;
}

.dark .profile-edit-card .ant-checkbox-wrapper {
  color: #f0f0f0;
}

.dark .profile-edit-card .ant-btn-default {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .profile-edit-card .ant-btn-default:hover {
  background-color: #303030;
  border-color: #404040;
}

.dark .profile-edit-card .ant-divider {
  border-top-color: #303030;
  color: rgba(255, 255, 255, 0.85);
}

.dark .upload-button {
  background: rgba(24, 144, 255, 0.1);
  border-color: #1890ff;
  color: #1890ff;
}

.dark .upload-button:hover {
  background: rgba(24, 144, 255, 0.2);
  border-color: #40a9ff;
}

.dark .profile-avatar {
  border: 2px solid #1890ff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.dark .user-card {
  background-color: rgba(255, 255, 255, 0.04) !important;
  box-shadow: none !important;
}

.dark .save-button:not(:disabled):hover {
  box-shadow: 0 4px 12px rgba(24, 144, 255, 0.25) !important;
}

.dark .cancel-button:hover {
  background-color: rgba(255, 255, 255, 0.08) !important;
  border-color: #404040 !important;
}

/* 模态框暗黑模式 */
.dark .profile-edit-modal .ant-modal-content {
  background-color: #1f1f1f;
  border: 1px solid #303030;
}

.dark .profile-edit-modal .ant-modal-header {
  background-color: #1f1f1f;
  border-bottom: 1px solid #303030;
}

.dark .profile-edit-modal .ant-modal-title {
  color: #f0f0f0;
}

.dark .profile-edit-modal .ant-modal-close {
  color: #f0f0f0;
}

.dark .profile-edit-modal .ant-modal-close:hover {
  color: #1890ff;
}

.dark .profile-edit-modal .ant-form-item-label > label {
  color: #f0f0f0;
}

.dark .profile-edit-modal .ant-input,
.dark .profile-edit-modal .ant-input-password {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .profile-edit-modal .ant-input:disabled,
.dark .profile-edit-modal .ant-input[disabled] {
  background-color: #3a3a3a;
  color: rgba(255, 255, 255, 0.3);
}

.dark .profile-edit-modal .ant-input-password .ant-input {
  background-color: transparent;
}

.dark .profile-edit-modal .site-form-item-icon {
  color: #1890ff;
}

.dark .profile-edit-modal .ant-btn-default {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .profile-edit-modal .ant-btn-default:hover {
  background-color: #303030;
  border-color: #1890ff;
  color: #1890ff;
}

.dark .profile-edit-modal .ant-btn-primary {
  background-color: #1890ff;
  border-color: #1890ff;
}

.dark .profile-edit-modal .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
}

.dark .profile-edit-modal .ant-divider {
  border-top-color: #303030;
  color: rgba(255, 255, 255, 0.85);
}

.dark-form .ant-form-item-explain-error {
  color: #ff7875;
}

.dark-form .ant-form-item-has-error .ant-input,
.dark-form .ant-form-item-has-error .ant-input-affix-wrapper {
  background-color: #2a2a2a;
  border-color: #ff7875;
}

.dark-form .ant-form-item-has-error .ant-input:hover,
.dark-form .ant-form-item-has-error .ant-input-affix-wrapper:hover {
  border-color: #ff7875;
}

/* 为 Tooltip 和 Popover 添加深色模式 */
.dark-popover .ant-popover-inner {
  background-color: #1f1f1f;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.48), 0 6px 16px 0 rgba(0, 0, 0, 0.32), 0 9px 28px 8px rgba(0, 0, 0, 0.2);
}

.dark-popover .ant-popover-arrow-content {
  background-color: #1f1f1f;
}

.dark-popover .ant-popover-inner-content {
  color: rgba(255, 255, 255, 0.85);
}

.dark-popover .ant-popover-title {
  color: rgba(255, 255, 255, 0.85);
  border-bottom: 1px solid #303030;
}

/* 改进表单布局 */
.profile-edit-card .ant-form-item {
  margin-bottom: 20px;
}

.profile-edit-card .ant-divider-inner-text {
  font-weight: 500;
}

.profile-edit-modal .ant-form-item {
  margin-bottom: 20px;
}

.profile-edit-modal .ant-divider-inner-text {
  font-weight: 500;
}

/* 抽屉 (Drawer) 样式 */
.profile-edit-drawer .ant-drawer-header {
  border-bottom: 1px solid #f0f0f0;
  padding: 16px 24px;
}

.profile-edit-drawer .ant-drawer-title {
  font-size: 18px;
  color: #1890ff;
}

.profile-edit-drawer .ant-drawer-body {
  padding: 20px;
  overflow-y: auto;
}

.profile-edit-drawer .ant-drawer-close {
  padding: 12px;
  font-size: 16px;
}

.profile-edit-drawer .ant-drawer-close:hover {
  background-color: rgba(0, 0, 0, 0.04);
  border-radius: 50%;
}

/* 抽屉暗黑模式 */
.dark .profile-edit-drawer .ant-drawer-header {
  background-color: #1f1f1f;
  border-bottom: 1px solid #303030;
}

.dark .profile-edit-drawer .ant-drawer-content {
  background-color: #1f1f1f;
}

.dark .profile-edit-drawer .ant-drawer-title {
  color: #1890ff;
}

.dark .profile-edit-drawer .ant-drawer-close {
  color: #ffffff;
}

.dark .profile-edit-drawer .ant-drawer-close:hover {
  background-color: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.dark .profile-edit-drawer .ant-drawer-wrapper-body {
  background-color: #1f1f1f;
  color: #ffffff;
}

/* 抽屉响应式调整 */
@media screen and (max-width: 576px) {
  .profile-edit-drawer .ant-drawer-body {
    padding: 16px;
  }
  
  .profile-edit-drawer .ant-drawer-header {
    padding: 12px 16px;
  }
  
  .profile-edit-drawer .avatar-upload-container {
    margin-bottom: 16px;
  }
}

/* 动画与过渡效果 */
.profile-edit-drawer .ant-form-item {
  transition: all 0.3s ease;
}

.profile-edit-drawer .avatar-upload-container {
  transform: translateY(0);
  transition: transform 0.3s ease;
}

.profile-edit-drawer .ant-drawer-content-wrapper {
  transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1) !important;
}

.profile-edit-drawer .ant-form-item:hover {
  transform: translateY(-2px);
}

/* 用户个人资料下拉菜单样式 */
.user-profile-dropdown {
  padding: 8px 0;
  border-radius: 8px;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}

.user-profile-dropdown .ant-dropdown-menu-item {
  padding: 10px 16px;
  transition: all 0.2s ease;
}

.user-profile-dropdown .ant-dropdown-menu-item:hover {
  background-color: rgba(24, 144, 255, 0.1);
}

.user-profile-dropdown .ant-dropdown-menu-item-icon {
  margin-right: 10px;
  font-size: 16px;
}

/* 暗黑模式下的下拉菜单 */
.dark .user-profile-dropdown .ant-dropdown-menu {
  background-color: #1f1f1f;
  border: 1px solid #303030;
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.48), 0 6px 16px 0 rgba(0, 0, 0, 0.32);
}

.dark .user-profile-dropdown .ant-dropdown-menu-item {
  color: #f0f0f0;
}

.dark .user-profile-dropdown .ant-dropdown-menu-item:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.dark .user-profile-dropdown .ant-dropdown-menu-item-icon {
  color: #1890ff;
}

.user-avatar-container {
  cursor: pointer;
  transition: transform 0.2s ease;
  display: flex;
  align-items: center;
}

.user-avatar-container:hover {
  transform: scale(1.05);
} 
/* 模态框基础样式 */
.change-password-modal .ant-modal-content {
  border-radius: 8px;
  overflow: hidden;
}

.change-password-modal .ant-modal-header {
  padding: 16px 24px;
}

.change-password-modal .ant-modal-body {
  padding: 24px;
}

.change-password-modal .ant-form-item-label > label {
  font-weight: 500;
}

.change-password-modal .site-form-item-icon {
  color: rgba(0, 0, 0, 0.45);
}

/* 响应式调整 */
@media screen and (max-width: 576px) {
  .change-password-modal .ant-modal-body {
    padding: 16px;
  }
  
  .change-password-modal .ant-btn {
    padding: 4px 15px;
    height: 32px;
  }
}

/* 暗黑模式样式 */
.dark .change-password-modal .ant-modal-content {
  background-color: #1f1f1f;
  border: 1px solid #303030;
}

.dark .change-password-modal .ant-modal-header {
  background-color: #1f1f1f;
  border-bottom: 1px solid #303030;
}

.dark .change-password-modal .ant-modal-title {
  color: #f0f0f0;
}

.dark .change-password-modal .ant-modal-close {
  color: #f0f0f0;
}

.dark .change-password-modal .ant-modal-close:hover {
  color: #1890ff;
}

.dark .change-password-modal .ant-form-item-label > label {
  color: #f0f0f0;
}

.dark .change-password-modal .ant-input-affix-wrapper,
.dark .change-password-modal .ant-input-password {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .change-password-modal .ant-input {
  background-color: transparent;
  color: #f0f0f0;
}

.dark .change-password-modal .site-form-item-icon {
  color: #1890ff;
}

.dark .change-password-modal .ant-btn-default {
  background-color: #2a2a2a;
  border-color: #303030;
  color: #f0f0f0;
}

.dark .change-password-modal .ant-btn-default:hover {
  background-color: #303030;
  border-color: #1890ff;
  color: #1890ff;
}

.dark .change-password-modal .ant-btn-primary {
  background-color: #1890ff;
  border-color: #1890ff;
}

.dark .change-password-modal .ant-btn-primary:hover {
  background-color: #40a9ff;
  border-color: #40a9ff;
}

.dark-form .ant-form-item-explain-error {
  color: #ff7875;
}

.dark-form .ant-form-item-has-error .ant-input-affix-wrapper {
  background-color: #2a2a2a;
  border-color: #ff7875;
}

.dark-form .ant-form-item-has-error .ant-input-affix-wrapper:hover {
  border-color: #ff7875;
}

.dark .change-password-modal .ant-input-password-icon {
  color: rgba(255, 255, 255, 0.45);
}

.dark .change-password-modal .ant-input-password-icon:hover {
  color: rgba(255, 255, 255, 0.85);
} 
/* Dashboard.css - Styles for the executive dashboard */

.dashboard-container {
  padding: 0 0 20px 0;
}

.dashboard-container .ant-tabs-nav {
  margin-bottom: 16px;
}

.dashboard-container .stat-card {
  transition: all 0.3s;
  height: 100%;
}

.dashboard-container .stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Stats Cards */
.dashboard-container .ant-statistic-title {
  font-size: 14px;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-container .ant-statistic-content {
  font-size: 22px;
  display: flex;
  align-items: center;
}

.dashboard-container .ant-statistic-content-prefix {
  margin-right: 8px;
}

/* 预算利用率卡片的全局样式 */
.budget-utilization-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.budget-utilization-card .ant-card-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

/* Detail Tables */
.dashboard-details .ant-table-small .ant-table-thead > tr > th {
  font-weight: 600;
  background-color: #f5f5f5;
}

.dashboard-details .ant-card-bordered {
  border-radius: 4px;
}

.dashboard-details .ant-card-head {
  min-height: 40px;
  padding: 0 12px;
}

.dashboard-details .ant-card-head-title {
  padding: 10px 0;
  font-size: 14px;
}

.dashboard-details .ant-tag {
  margin-right: 0;
}

/* Exchange Rates list */
.dashboard-details .ant-list-item {
  padding: 8px 16px;
}

/* Progress bars */
.dashboard-details .ant-progress {
  margin-right: 0;
}

/* Mobile and responsive styles */
@media (max-width: 576px) {
  /* Mobile Stats Card Grid布局 */
  .mobile-stats-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    grid-gap: 8px !important;
    width: 100% !important;
  }

  .mobile-stats-grid .ant-col {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .mobile-stats-grid .ant-card {
    margin-bottom: 0 !important;
    height: 100% !important;
    width: 100% !important;
  }

  .mobile-stats-card .ant-card-body {
    padding: 12px 16px !important;
  }

  .mobile-stats-card .ant-statistic-title {
    font-size: 12px !important;
    margin-bottom: 4px !important;
  }

  .mobile-stats-card .ant-statistic-content {
    font-size: 16px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .mobile-stats-card .ant-statistic-content-value {
    font-size: 16px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Budget Utilization 卡片在移动端的样式 */
  .budget-utilization-col {
    display: flex !important;
    justify-content: center !important;
    grid-column: span 2 !important;
    width: 100% !important;
  }

  .budget-utilization-card {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Responsive adjustments for tablets and desktop */
@media (min-width: 577px) and (max-width: 768px) {
  /* 平板设备特定样式 */
  .mobile-stats-grid {
    display: flex !important;
    flex-wrap: wrap !important;
  }
  
  .mobile-stats-grid .ant-col {
    padding: 0 8px !important;
  }
  
  /* 平板设备上的预算利用率卡片 */
  .budget-utilization-col {
    display: flex !important;
    justify-content: flex-start !important;
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
    margin-top: 8px !important;
  }

  .budget-utilization-card {
    width: 100% !important;
  }
}

@media (min-width: 769px) {
  /* 覆盖移动端样式，确保非移动设备使用默认的Ant Design布局 */
  .mobile-stats-grid {
    display: flex !important;
    flex-wrap: wrap !important;
  }
  
  .mobile-stats-grid .ant-col {
    /* 使用默认的Ant Design Col样式 */
    padding: 0 8px !important;
  }
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .dashboard-container .ant-card-body {
    padding: 12px;
  }
  
  .dashboard-container .ant-statistic-title {
    font-size: 12px;
  }
  
  .dashboard-container .ant-statistic-content {
    font-size: 18px;
  }
  
  .dashboard-details .ant-table {
    font-size: 12px;
  }
  
  .dashboard-details .ant-table-thead > tr > th, 
  .dashboard-details .ant-table-tbody > tr > td {
    padding: 8px 4px;
  }
}

/* For very small mobile screens */
@media (max-width: 375px) {
  .mobile-stats-card .ant-card-body {
    padding: 8px 12px !important;
  }
  
  .mobile-stats-card .ant-statistic-title {
    font-size: 11px !important;
    margin-bottom: 2px !important;
  }
  
  .mobile-stats-card .ant-statistic-content {
    font-size: 14px !important;
  }
  
  .mobile-stats-card .ant-statistic-content-value {
    font-size: 14px !important;
  }
  
  .mobile-stats-card .ant-statistic-content-prefix {
    margin-right: 4px !important;
    font-size: 14px !important;
  }
  
  /* Tighter grid on very small screens */
  .mobile-stats-grid {
    grid-gap: 6px !important;
  }
  
  .dashboard-container .ant-card-head-title {
    font-size: 14px;
  }
  
  .dashboard-container .ant-card-extra {
    padding: 0;
    margin-left: 8px;
  }
}

/* Dark mode adjustments */
.dark .dashboard-details .ant-table-small .ant-table-thead > tr > th {
  background-color: #1f1f1f;
  color: rgba(255, 255, 255, 0.85);
}

.dark .dashboard-container .stat-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
} 

.table-row-light {
  background: #fafafa !important;
}
.table-row-dark {
  background: #f5f5f5 !important;
}
.ant-table-tbody > tr:hover > td {
  background: #e6f7ff !important;
  transition: background 0.2s;
}

.dashboard-container .ant-card {
  transition: box-shadow 0.2s, transform 0.2s;
}
.dashboard-container .ant-card:hover {
  box-shadow: 0 12px 32px rgba(24,144,255,0.16) !important;
  transform: translateY(-2px) scale(1.01);
}

.dashboard-btn-group-mobile {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px;
}
.dashboard-btn-group-mobile .ant-btn {
  width: 100% !important;
  max-width: 320px;
}

/* 美化滚动条样式 */
.dashboard-container .ant-card-body,
.dashboard-container .ant-table-body {
  scrollbar-width: thin;
  scrollbar-color: #1890ff #f0f0f0;
}
.dashboard-container .ant-card-body::-webkit-scrollbar,
.dashboard-container .ant-table-body::-webkit-scrollbar {
  width: 6px;
}
.dashboard-container .ant-card-body::-webkit-scrollbar-track,
.dashboard-container .ant-table-body::-webkit-scrollbar-track {
  background: #f0f0f0;
  border-radius: 3px;
}
.dashboard-container .ant-card-body::-webkit-scrollbar-thumb,
.dashboard-container .ant-table-body::-webkit-scrollbar-thumb {
  background: #1890ff;
  border-radius: 3px;
}
.dashboard-container .ant-card-body::-webkit-scrollbar-thumb:hover,
.dashboard-container .ant-table-body::-webkit-scrollbar-thumb:hover {
  background: #40a9ff;
}
.timezone-container {
  padding: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

.timezone-card {
  margin-bottom: 24px;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03),
              0 2px 4px rgba(0, 0, 0, 0.03),
              0 4px 8px rgba(0, 0, 0, 0.03);
}

.timezone-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.timezone-header .ant-typography {
  margin-bottom: 0;
}

.timezone-form-container {
  margin-top: 24px;
}

.timezone-current {
  display: flex;
  flex-direction: column;
  padding: 16px;
  background-color: #f7f7f7;
  border-radius: 8px;
  margin-bottom: 24px;
}

.timezone-current-row {
  display: flex;
  margin-bottom: 8px;
}

.timezone-current-label {
  min-width: 120px;
  font-weight: 500;
}

.timezone-current-value {
  flex: 1 1;
}

.timezone-select {
  width: 100%;
}

.timezone-actions {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
}

.timezone-actions button {
  margin-left: 8px;
}

.timezone-table {
  margin-top: 24px;
}

.timezone-tag {
  min-width: 80px;
  text-align: center;
}

.timezone-filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.timezone-filter-item {
  margin-right: 12px;
  margin-bottom: 8px;
}

.timezone-filter-label {
  margin-right: 8px;
  font-weight: 500;
}

.timezone-clock {
  font-size: 28px;
  font-weight: 500;
  text-align: center;
  margin: 8px 0;
}

.timezone-date {
  font-size: 16px;
  text-align: center;
  margin-bottom: 16px;
  color: rgba(0, 0, 0, 0.65);
}

/* Dark mode styles */
.dark .timezone-card {
  background-color: var(--dark-card-bg);
  border-color: var(--dark-border);
}

.dark .timezone-current {
  background-color: rgba(255, 255, 255, 0.04);
}

.dark .timezone-current-label {
  color: var(--dark-text-secondary);
}

.dark .timezone-current-value {
  color: var(--dark-text);
}

.dark .timezone-date {
  color: var(--dark-text-secondary);
}

/* Mobile styles */
@media screen and (max-width: 768px) {
  .timezone-container {
    padding: 16px;
  }
  
  .timezone-header {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .timezone-header .ant-typography {
    margin-bottom: 16px;
  }
  
  .timezone-current-row {
    flex-direction: column;
  }
  
  .timezone-current-label {
    min-width: auto;
    margin-bottom: 4px;
  }
  
  .timezone-filter-row {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .timezone-filter-item {
    margin-bottom: 12px;
  }
  
  .timezone-actions {
    justify-content: space-between;
  }
  
  .timezone-actions button {
    margin-left: 0;
  }
}

/* Mobile card styles */
.timezone-mobile-list {
  margin-top: 16px;
}

.timezone-mobile-card {
  margin-bottom: 16px !important;
  border-radius: 12px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
  overflow: hidden !important;
}

.company-mobile-card-actions {
  margin: 0 !important;
  padding: 10px 18px !important;
  background-color: #f9fafc !important;
  border-top: 1px solid rgba(0,0,0,0.04) !important;
  display: flex;
  justify-content: flex-end !important;
}

.company-mobile-card-actions .ant-btn {
  padding: 8px 12px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.company-mobile-card-actions .ant-btn .anticon {
  font-size: 18px;
}

.dark .company-mobile-card-actions {
  background-color: rgba(0,0,0,0.02) !important;
  border-top: 1px solid rgba(255,255,255,0.05) !important;
}

/* 为移动端卡片标题添加提示样式，表明可以点击展开 */
.mobile-card-header {
  position: relative;
}

.mobile-card-header::after {
  content: '';
  position: absolute;
  right: 16px;
  top: 50%;
  width: 12px;
  height: 12px;
  border-right: 2px solid rgba(0,0,0,0.3);
  border-bottom: 2px solid rgba(0,0,0,0.3);
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.3s ease;
}

/* 展开时改变箭头方向 */
.timezone-mobile-card.expanded .mobile-card-header::after {
  transform: translateY(-50%) rotate(-135deg);
}

.dark .mobile-card-header::after {
  border-right: 2px solid rgba(255,255,255,0.3);
  border-bottom: 2px solid rgba(255,255,255,0.3);
}

/* Animation for clock */
@keyframes clockFade {
  0% {
    opacity: 0.5;
  }
  100% {
    opacity: 1;
  }
}

.timezone-clock {
  animation: clockFade 1s infinite alternate;
}

/* User TimeZone Preferences Section */
.user-timezone-preference {
  margin-top: 24px;
  padding: 16px;
  border-radius: 8px;
  background-color: #f9f9f9;
  border: 1px solid #f0f0f0;
}

.dark .user-timezone-preference {
  background-color: rgba(255, 255, 255, 0.02);
  border-color: var(--dark-border);
}

.timezone-preference-title {
  font-weight: 500;
  margin-bottom: 16px;
}

.timezone-empty-state {
  text-align: center;
  padding: 24px;
  color: rgba(0, 0, 0, 0.45);
}

.dark .timezone-empty-state {
  color: var(--dark-text-disabled);
} 
/* 时区选择器样式 */
.timezone-dropdown {
  z-index: 1100 !important; /* 确保下拉菜单在其他元素之上 */
}

.ant-select-dropdown.timezone-dropdown {
  position: fixed !important; /* 覆盖任何相对定位 */
}

/* 暗黑模式下拉菜单样式 */
.dark-dropdown.timezone-dropdown .ant-select-item {
  color: rgba(255, 255, 255, 0.85);
}

.dark-dropdown.timezone-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background-color: rgba(24, 144, 255, 0.15);
}

.dark-dropdown.timezone-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background-color: rgba(24, 144, 255, 0.1);
}

/* 让搜索框样式与主题匹配 */
.dark-dropdown.timezone-dropdown .ant-select-item-empty .ant-select-item-option-content {
  color: rgba(255, 255, 255, 0.65);
}

/* 确保下拉菜单不被父容器的overflow:hidden截断 */
.timezone-selector-compact .ant-select-dropdown {
  position: fixed;
  left: auto;
  top: auto;
} 
