* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body, #app {
  width: 100%;
  height: 100%;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #303133;
  background-color: #f0f2f5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  transition: background-color 0.3s ease, color 0.3s ease;
}

html::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
html::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 4px;
  border: 2px solid transparent;
  background-clip: padding-box;
  transition: background 0.3s ease;
}
html::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.25);
  background-clip: padding-box;
}
html::-webkit-scrollbar-thumb:active {
  background: rgba(0, 0, 0, 0.4);
  background-clip: padding-box;
}
html::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 4px;
}
html:hover::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
  background-clip: padding-box;
}
html::-webkit-scrollbar-corner {
  background: transparent;
}
html {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

a {
  text-decoration: none;
  color: inherit;
}

ul, ol {
  list-style: none;
}

.page-container {
  padding: 20px;
  height: 100%;
  overflow-y: auto;
}
.page-container::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.page-container::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 3px;
  border: 1px solid transparent;
  background-clip: padding-box;
  transition: background 0.3s ease;
}
.page-container::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.3);
  background-clip: padding-box;
}
.page-container::-webkit-scrollbar-thumb:active {
  background: rgba(0, 0, 0, 0.45);
  background-clip: padding-box;
}
.page-container::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 3px;
}
.page-container:hover::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}
.page-container::-webkit-scrollbar-corner {
  background: transparent;
}
.page-container {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
@media (max-width: 768px) {
  .page-container {
    padding: 12px;
  }
}
@media (max-width: 576px) {
  .page-container {
    padding: 8px;
  }
}

.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  padding: 16px 20px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
  border-left: 4px solid #409eff;
  flex-wrap: wrap;
  gap: 12px;
  position: relative;
  overflow: hidden;
}
.page-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(64, 158, 255, 0.02) 0%, transparent 50%);
  pointer-events: none;
}
@media (max-width: 768px) {
  .page-header {
    margin-bottom: 16px;
    padding: 12px 16px;
    gap: 8px;
  }
}
@media (max-width: 576px) {
  .page-header {
    margin-bottom: 12px;
    padding: 10px 12px;
  }
}
.page-header .page-title {
  font-size: 22px;
  font-weight: 700;
  color: #303133;
  line-height: 1.4;
  letter-spacing: 0.5px;
  margin: 0;
  position: relative;
  z-index: 1;
  transition: color 0.3s ease;
}
@media (max-width: 768px) {
  .page-header .page-title {
    font-size: 20px;
    letter-spacing: 0.3px;
  }
}
@media (max-width: 576px) {
  .page-header .page-title {
    font-size: 18px;
    letter-spacing: 0;
  }
}
.page-header .page-subtitle {
  font-size: 14px;
  font-weight: 400;
  color: #909399;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .page-header .page-subtitle {
    font-size: 13px;
  }
}
@media (max-width: 576px) {
  .page-header .page-subtitle {
    font-size: 12px;
    margin-left: 6px;
  }
}
.page-header .page-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 1;
}
@media (max-width: 576px) {
  .page-header .page-actions {
    gap: 6px;
  }
}

.card-box {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
  padding: 20px;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .card-box {
    padding: 14px;
    margin-bottom: 12px;
  }
}
@media (max-width: 576px) {
  .card-box {
    padding: 10px;
    margin-bottom: 8px;
  }
}

.section-title {
  font-size: 17px;
  font-weight: 600;
  color: #303133;
  margin-bottom: 18px;
  padding-left: 12px;
  padding-bottom: 8px;
  border-left: 3px solid #409eff;
  border-bottom: 1px solid #e4e7ed;
  line-height: 1.4;
  letter-spacing: 0.3px;
  position: relative;
}
.section-title::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 60px;
  height: 1px;
  background: #409eff;
  opacity: 0.3;
}
@media (max-width: 768px) {
  .section-title {
    font-size: 16px;
    margin-bottom: 14px;
    padding-left: 10px;
    padding-bottom: 6px;
  }
}
@media (max-width: 576px) {
  .section-title {
    font-size: 15px;
    margin-bottom: 12px;
    padding-left: 8px;
    padding-bottom: 4px;
  }
}

.dark {
  --el-bg-color: #141414;
  --el-bg-color-page: #0a0a0a;
  --el-bg-color-overlay: #1d1e1f;
  --el-text-color-primary: #e5eaf3;
  --el-text-color-regular: #cfd3dc;
  --el-text-color-secondary: #a3a6ad;
  --el-text-color-placeholder: #8d9095;
  --el-border-color: #4c4d4f;
  --el-border-color-light: #414243;
  --el-border-color-lighter: #363637;
  --el-border-color-extra-light: #2b2b2c;
  --el-fill-color: #303032;
  --el-fill-color-light: #262727;
  --el-fill-color-lighter: #1d1e1f;
  --el-fill-color-extra-light: #191a1a;
  --el-fill-color-dark: #18181a;
  --el-fill-color-darker: #141414;
  --el-mask-color: rgba(0, 0, 0, 0.8);
  --el-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  --el-box-shadow-light: 0 2px 8px rgba(0, 0, 0, 0.4);
  --el-box-shadow-lighter: 0 1px 4px rgba(0, 0, 0, 0.3);
  --el-box-shadow-dark: 0 8px 24px rgba(0, 0, 0, 0.6);
}
.dark html, .dark body, .dark #app {
  background-color: #0a0a0a;
  color: #e5eaf3;
}
.dark .page-container {
  background: #0a0a0a;
}
.dark .page-header {
  background: #1d1e1f;
  border-left-color: var(--el-color-primary);
}
.dark .page-header::before {
  background: linear-gradient(90deg, rgba(64, 158, 255, 0.05) 0%, transparent 50%);
}
.dark .page-header .page-title {
  color: #e5eaf3;
}
.dark .page-header .page-subtitle {
  color: #a3a6ad;
}
.dark .card-box {
  background: #1d1e1f;
  border-color: #363637;
}
.dark .section-title {
  color: #e5eaf3;
  border-left-color: var(--el-color-primary);
  border-bottom-color: #363637;
}
.dark .section-title::after {
  background: var(--el-color-primary);
}
.dark .el-table {
  --el-table-bg-color: #1d1e1f;
  --el-table-tr-bg-color: #1d1e1f;
  --el-table-header-bg-color: #262727;
  --el-table-row-hover-bg-color: #262727;
  --el-table-border-color: #363637;
  --el-table-text-color: #cfd3dc;
  --el-table-header-text-color: #e5eaf3;
}
.dark .el-table th.el-table__cell {
  background: #262727;
}
.dark .el-dialog {
  --el-dialog-bg-color: #1d1e1f;
  --el-dialog-title-font-size: 18px;
}
.dark .el-dialog .el-dialog__header {
  border-bottom: 1px solid #363637;
}
.dark .el-dialog .el-dialog__title {
  color: #e5eaf3;
}
.dark .el-drawer {
  --el-drawer-bg-color: #1d1e1f;
}
.dark .el-drawer .el-drawer__header {
  color: #e5eaf3;
  border-bottom: 1px solid #363637;
}
.dark .el-menu {
  --el-menu-bg-color: #1d1e1f;
  --el-menu-text-color: #cfd3dc;
  --el-menu-hover-bg-color: #262727;
  --el-menu-active-color: var(--el-color-primary);
}
.dark .el-input {
  --el-input-bg-color: #1d1e1f;
  --el-input-border-color: #414243;
  --el-input-text-color: #e5eaf3;
  --el-input-placeholder-color: #8d9095;
  --el-input-hover-border-color: var(--el-color-primary);
  --el-input-focus-border-color: var(--el-color-primary);
}
.dark .el-select {
  --el-select-input-color: #e5eaf3;
}
.dark .el-form-item {
  --el-form-label-color: #cfd3dc;
}
.dark .el-pagination {
  --el-pagination-bg-color: #1d1e1f;
  --el-pagination-text-color: #cfd3dc;
  --el-pagination-button-bg-color: #262727;
  --el-pagination-hover-color: var(--el-color-primary);
}
.dark .el-tabs {
  --el-tabs-header-height: 44px;
}
.dark .el-tabs .el-tabs__header {
  border-bottom-color: #363637;
}
.dark .el-tabs .el-tabs__item {
  color: #a3a6ad;
}
.dark .el-tabs .el-tabs__item:hover {
  color: var(--el-color-primary);
}
.dark .el-tabs .el-tabs__item.is-active {
  color: var(--el-color-primary);
}
.dark .el-tabs.el-tabs--card .el-tabs__item:hover {
  background: rgba(64, 158, 255, 0.1);
  border-color: #363637;
}
.dark .el-tabs.el-tabs--card .el-tabs__item.is-active {
  background: #1d1e1f;
  border-color: #363637 #363637 transparent #363637;
}
.dark .el-divider {
  --el-border-color: #363637;
}
.dark .el-empty {
  --el-empty-fill-color-0: #262727;
  --el-empty-fill-color-1: #303032;
  --el-empty-fill-color-2: #363637;
  --el-empty-fill-color-3: #3c3c3e;
  --el-empty-fill-color-4: #424244;
  --el-empty-fill-color-5: #48484a;
  --el-empty-fill-color-6: #4e4e50;
  --el-empty-fill-color-7: #545456;
  --el-empty-fill-color-8: #5a5a5c;
  --el-empty-fill-color-9: #606062;
}
.dark .el-switch.is-checked .el-switch__core {
  background: linear-gradient(135deg, var(--el-color-primary) 0%, #6c5ce7 100%);
}
.dark .el-slider {
  --el-slider-main-bg-color: var(--el-color-primary);
  --el-slider-runway-bg-color: #363637;
}
.dark .el-progress {
  --el-progress-default-color: var(--el-color-primary);
}
.dark .el-badge {
  --el-badge-bg-color: var(--el-color-primary);
}
.dark .el-avatar {
  --el-avatar-bg-color: #363637;
}
.dark .el-descriptions {
  --el-descriptions-item-bordered-label-background: #262727;
}
.dark .el-timeline .el-timeline-item__tail {
  border-left-color: #363637;
}
.dark .el-timeline .el-timeline-item__node {
  background: #363637;
}
.dark .el-timeline .el-timeline-item__node--primary {
  background: var(--el-color-primary);
}
.dark .el-steps {
  --el-text-color-primary: #e5eaf3;
  --el-text-color-secondary: #a3a6ad;
}
.dark .el-steps .el-step__head {
  color: #a3a6ad;
}
.dark .el-steps .el-step__head.is-process {
  color: var(--el-color-primary);
}
.dark .el-steps .el-step__head.is-finish {
  color: #67c23a;
}
.dark .el-steps .el-step__line {
  background: #363637;
}
.dark .el-select .el-select__wrapper {
  background: #1d1e1f;
  border-color: #414243;
  box-shadow: none;
}
.dark .el-select .el-select__wrapper:hover {
  border-color: var(--el-color-primary);
}
.dark .el-select .el-select__wrapper.is-focused {
  border-color: var(--el-color-primary);
  box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);
}
.dark .el-select .el-select__placeholder {
  color: #8d9095;
}
.dark .el-select .el-select__selected-item {
  color: #e5eaf3;
}
.dark .el-date-editor {
  background: #1d1e1f;
  border-color: #414243;
  box-shadow: none;
}
.dark .el-date-editor:hover {
  border-color: var(--el-color-primary);
}
.dark .el-date-editor.is-active {
  border-color: var(--el-color-primary);
  box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);
}
.dark .el-date-editor .el-range-input {
  background: transparent;
  color: #e5eaf3;
}
.dark .el-date-editor .el-range-input::placeholder {
  color: #8d9095;
}
.dark .el-date-editor .el-range-separator {
  color: #a3a6ad;
}
.dark .el-button.el-button--default {
  background: #262727;
  border-color: #414243;
  color: #cfd3dc;
}
.dark .el-button.el-button--default:hover, .dark .el-button.el-button--default:focus {
  background: #303032;
  border-color: var(--el-color-primary);
  color: var(--el-color-primary);
}
.dark .el-button.el-button--default:active {
  background: #363637;
}
.dark .el-table .el-table__row--striped {
  background: #222324 !important;
}
.dark .el-table .el-table__body tr.hover-row {
  background: #262727 !important;
}
.dark .el-table td.el-table__cell,
.dark .el-table th.el-table__cell {
  border-bottom-color: #363637;
}
.dark .el-table .el-table__inner-wrapper::before {
  background-color: #363637;
}
.dark .el-picker__popper {
  background: #1d1e1f;
  border-color: #363637;
}
.dark .el-select-dropdown {
  background: #1d1e1f;
  border-color: #363637;
}
.dark .el-select-dropdown .el-select-dropdown__item {
  color: #cfd3dc;
}
.dark .el-select-dropdown .el-select-dropdown__item:hover {
  background: rgba(255, 255, 255, 0.05);
}
.dark .el-select-dropdown .el-select-dropdown__item.is-selected {
  color: var(--el-color-primary);
  background: rgba(64, 158, 255, 0.1);
}
.dark .el-date-picker {
  background: #1d1e1f;
}
.dark .el-date-picker .el-date-picker__header-label {
  color: #e5eaf3;
}
.dark .el-date-picker .el-picker-panel__icon-btn {
  color: #a3a6ad;
}
.dark .el-date-picker .el-picker-panel__icon-btn:hover {
  color: var(--el-color-primary);
}
.dark .el-date-picker .el-date-table th {
  color: #a3a6ad;
}
.dark .el-date-picker .el-date-table td.available .el-date-table-cell__text {
  color: #cfd3dc;
}
.dark .el-date-picker .el-date-table td.available:hover .el-date-table-cell__text {
  background: rgba(255, 255, 255, 0.05);
}
.dark .el-date-picker .el-date-table td.current .el-date-table-cell__text {
  background: var(--el-color-primary);
  color: #fff;
}
.dark .el-date-picker .el-date-table td.today .el-date-table-cell__text {
  color: var(--el-color-primary);
}
.dark .filter-row {
  background: transparent;
}
.dark .pagination-row {
  background: transparent;
}

@media (max-width: 768px) {
  .el-row {
    margin-left: -8px !important;
    margin-right: -8px !important;
  }
  .el-row > .el-col {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}
@media (max-width: 576px) {
  .el-row {
    margin-left: -4px !important;
    margin-right: -4px !important;
  }
  .el-row > .el-col {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}

@media (max-width: 768px) {
  .el-dialog {
    width: 90% !important;
    max-width: 520px;
  }
}
@media (max-width: 576px) {
  .el-dialog {
    width: 95% !important;
    margin: 10px auto !important;
  }
}

@media (max-width: 768px) {
  .el-table {
    font-size: 13px;
  }
}
@media (max-width: 576px) {
  .el-table {
    font-size: 12px;
  }
}

@media (max-width: 768px) {
  .el-pagination {
    flex-wrap: wrap;
    justify-content: center;
  }
  .el-pagination .el-pagination__sizes,
  .el-pagination .el-pagination__jump {
    display: none;
  }
}

.el-tabs {
  --el-tabs-header-height: 44px;
}
.el-tabs .el-tabs__header {
  margin-bottom: 16px;
  border-bottom: 1px solid #e4e7ed;
}
.el-tabs .el-tabs__nav-wrap::after {
  display: none;
}
.el-tabs .el-tabs__nav-scroll {
  padding: 0 4px;
}
.el-tabs .el-tabs__item {
  height: 44px;
  line-height: 44px;
  padding: 0 20px;
  font-size: 14px;
  font-weight: 500;
  color: #909399;
  transition: all 0.25s ease;
  position: relative;
}
.el-tabs .el-tabs__item:hover {
  color: #409eff;
}
.el-tabs .el-tabs__item.is-active {
  color: #409eff;
  font-weight: 600;
}
.el-tabs .el-tabs__item.is-disabled {
  color: #c0c4cc;
  cursor: not-allowed;
  opacity: 0.6;
}
.el-tabs .el-tabs__active-bar {
  height: 3px;
  background: linear-gradient(135deg, #409eff 0%, #6c5ce7 100%);
  border-radius: 2px 2px 0 0;
}
.el-tabs.el-tabs--card .el-tabs__header {
  border-bottom: none;
  margin-bottom: 0;
}
.el-tabs.el-tabs--card .el-tabs__nav {
  border: none;
  gap: 4px;
}
.el-tabs.el-tabs--card .el-tabs__item {
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
  background: transparent;
  margin: 0;
}
.el-tabs.el-tabs--card .el-tabs__item:hover {
  background: rgba(64, 158, 255, 0.06);
  border-color: #e4e7ed;
}
.el-tabs.el-tabs--card .el-tabs__item.is-active {
  background: #ffffff;
  border-color: #e4e7ed #e4e7ed transparent #e4e7ed;
  box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.04);
}
.el-tabs.el-tabs--border-card {
  border-radius: 8px;
  overflow: hidden;
}
.el-tabs.el-tabs--border-card > .el-tabs__header {
  background: #f0f2f5;
  border-bottom: 1px solid #e4e7ed;
}
.el-tabs.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
  background: #ffffff;
}

.el-radio-group .el-radio-button .el-radio-button__inner {
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 500;
  border-radius: 0;
  transition: all 0.25s ease;
}
.el-radio-group .el-radio-button:first-child .el-radio-button__inner {
  border-radius: 4px 0 0 4px;
}
.el-radio-group .el-radio-button:last-child .el-radio-button__inner {
  border-radius: 0 4px 4px 0;
}
.el-radio-group .el-radio-button.is-active .el-radio-button__inner {
  background: linear-gradient(135deg, #409eff 0%, #6c5ce7 100%);
  border-color: #409eff;
  box-shadow: none;
}

.el-button {
  --el-button-font-weight: 500;
  --el-button-border-radius: 4px;
  font-weight: 500;
  transition: all 0.25s ease;
}
.el-button + .el-button {
  margin-left: 8px;
}
.el-button:focus {
  outline: none;
}
.el-button.el-button--default:hover, .el-button.el-button--default:focus {
  color: #409eff;
  border-color: #409eff;
  background: rgba(64, 158, 255, 0.06);
}
.el-button.el-button--default:active {
  background: rgba(64, 158, 255, 0.1);
}
.el-button.el-button--primary {
  background: linear-gradient(135deg, #409eff 0%, #6c5ce7 100%);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(64, 158, 255, 0.25);
}
.el-button.el-button--primary:hover, .el-button.el-button--primary:focus {
  background: linear-gradient(135deg, #5aa5ff 0%, #7d6eeb 100%);
  box-shadow: 0 4px 12px rgba(64, 158, 255, 0.35);
}
.el-button.el-button--primary:active {
  background: linear-gradient(135deg, #3385e6 0%, #5a4bd1 100%);
}
.el-button.el-button--primary.is-disabled, .el-button.el-button--primary.is-disabled:hover {
  background: linear-gradient(135deg, #a0cfff 0%, #b8b0e8 100%);
  box-shadow: none;
  opacity: 0.6;
}
.el-button.el-button--success {
  background: linear-gradient(135deg, #67c23a 0%, #85ce61 100%);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(103, 194, 58, 0.25);
}
.el-button.el-button--success:hover, .el-button.el-button--success:focus {
  background: linear-gradient(135deg, #7dd04d 0%, #9ad66f 100%);
  box-shadow: 0 4px 12px rgba(103, 194, 58, 0.35);
}
.el-button.el-button--warning {
  background: linear-gradient(135deg, #e6a23c 0%, #f0c060 100%);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(230, 162, 60, 0.25);
}
.el-button.el-button--warning:hover, .el-button.el-button--warning:focus {
  background: linear-gradient(135deg, #edb04e 0%, #f5ca72 100%);
  box-shadow: 0 4px 12px rgba(230, 162, 60, 0.35);
}
.el-button.el-button--danger {
  background: linear-gradient(135deg, #f56c6c 0%, #f89898 100%);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(245, 108, 108, 0.25);
}
.el-button.el-button--danger:hover, .el-button.el-button--danger:focus {
  background: linear-gradient(135deg, #f78989 0%, #faa7a7 100%);
  box-shadow: 0 4px 12px rgba(245, 108, 108, 0.35);
}
.el-button.el-button--info {
  background: linear-gradient(135deg, #909399 0%, #a6a9ad 100%);
  border-color: transparent;
  box-shadow: 0 2px 6px rgba(144, 147, 153, 0.2);
}
.el-button.el-button--info:hover, .el-button.el-button--info:focus {
  background: linear-gradient(135deg, #a0a3a8 0%, #b5b8bc 100%);
  box-shadow: 0 4px 12px rgba(144, 147, 153, 0.3);
}
.el-button.is-plain.el-button--primary {
  background: rgba(64, 158, 255, 0.08);
  border-color: rgba(64, 158, 255, 0.4);
  color: #409eff;
  box-shadow: none;
}
.el-button.is-plain.el-button--primary:hover, .el-button.is-plain.el-button--primary:focus {
  background: rgba(64, 158, 255, 0.15);
  border-color: #409eff;
}
.el-button.is-plain.el-button--success {
  background: rgba(103, 194, 58, 0.08);
  border-color: rgba(103, 194, 58, 0.4);
  color: #67c23a;
  box-shadow: none;
}
.el-button.is-plain.el-button--success:hover, .el-button.is-plain.el-button--success:focus {
  background: rgba(103, 194, 58, 0.15);
  border-color: #67c23a;
}
.el-button.is-plain.el-button--warning {
  background: rgba(230, 162, 60, 0.08);
  border-color: rgba(230, 162, 60, 0.4);
  color: #e6a23c;
  box-shadow: none;
}
.el-button.is-plain.el-button--warning:hover, .el-button.is-plain.el-button--warning:focus {
  background: rgba(230, 162, 60, 0.15);
  border-color: #e6a23c;
}
.el-button.is-plain.el-button--danger {
  background: rgba(245, 108, 108, 0.08);
  border-color: rgba(245, 108, 108, 0.4);
  color: #f56c6c;
  box-shadow: none;
}
.el-button.is-plain.el-button--danger:hover, .el-button.is-plain.el-button--danger:focus {
  background: rgba(245, 108, 108, 0.15);
  border-color: #f56c6c;
}
.el-button.is-text, .el-button.el-button--text {
  padding-left: 4px;
  padding-right: 4px;
}
.el-button.is-text:hover, .el-button.is-text:focus, .el-button.el-button--text:hover, .el-button.el-button--text:focus {
  background: rgba(64, 158, 255, 0.08);
}
.el-button.is-text.el-button--primary, .el-button.el-button--text.el-button--primary {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: #409eff;
}
.el-button.is-text.el-button--primary:hover, .el-button.is-text.el-button--primary:focus, .el-button.el-button--text.el-button--primary:hover, .el-button.el-button--text.el-button--primary:focus {
  background: rgba(64, 158, 255, 0.08);
  color: #5aa5ff;
}
.el-button.is-link:hover, .el-button.is-link:focus {
  text-decoration: none;
}
.el-button.is-circle.el-button--primary, .el-button.is-round.el-button--primary {
  background: linear-gradient(135deg, #409eff 0%, #6c5ce7 100%);
}
.el-button.el-button--large {
  padding: 12px 24px;
  font-size: 15px;
}
.el-button.el-button--small {
  padding: 6px 12px;
  font-size: 12px;
}

.el-button.is-link {
  padding: 2px 6px;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s ease;
}
.el-button.is-link .el-icon {
  font-size: 14px;
  margin-right: 2px;
  transition: color 0.2s ease;
}
.el-button.is-link.el-button--primary {
  color: #409eff !important;
  background: rgba(64, 158, 255, 0.06) !important;
  border-radius: 4px;
}
.el-button.is-link.el-button--primary:hover, .el-button.is-link.el-button--primary:focus {
  color: #5aa5ff !important;
  background: rgba(64, 158, 255, 0.12) !important;
}
.el-button.is-link.el-button--primary:hover .el-icon, .el-button.is-link.el-button--primary:focus .el-icon {
  color: #5aa5ff !important;
}
.el-button.is-link.el-button--success {
  color: #67c23a !important;
  background: rgba(103, 194, 58, 0.06) !important;
  border-radius: 4px;
}
.el-button.is-link.el-button--success:hover, .el-button.is-link.el-button--success:focus {
  color: #85ce61 !important;
  background: rgba(103, 194, 58, 0.12) !important;
}
.el-button.is-link.el-button--success:hover .el-icon, .el-button.is-link.el-button--success:focus .el-icon {
  color: #85ce61 !important;
}
.el-button.is-link.el-button--warning {
  color: #e6a23c !important;
  background: rgba(230, 162, 60, 0.06) !important;
  border-radius: 4px;
}
.el-button.is-link.el-button--warning:hover, .el-button.is-link.el-button--warning:focus {
  color: #ebb563 !important;
  background: rgba(230, 162, 60, 0.12) !important;
}
.el-button.is-link.el-button--warning:hover .el-icon, .el-button.is-link.el-button--warning:focus .el-icon {
  color: #ebb563 !important;
}
.el-button.is-link.el-button--danger {
  color: #f56c6c !important;
  background: rgba(245, 108, 108, 0.06) !important;
  border-radius: 4px;
}
.el-button.is-link.el-button--danger:hover, .el-button.is-link.el-button--danger:focus {
  color: #f78989 !important;
  background: rgba(245, 108, 108, 0.12) !important;
}
.el-button.is-link.el-button--danger:hover .el-icon, .el-button.is-link.el-button--danger:focus .el-icon {
  color: #f78989 !important;
}
.el-button.is-link.el-button--info {
  color: #909399 !important;
  background: rgba(144, 147, 153, 0.06) !important;
  border-radius: 4px;
}
.el-button.is-link.el-button--info:hover, .el-button.is-link.el-button--info:focus {
  color: #a6a9ad !important;
  background: rgba(144, 147, 153, 0.12) !important;
}
.el-button.is-link.el-button--info:hover .el-icon, .el-button.is-link.el-button--info:focus .el-icon {
  color: #a6a9ad !important;
}
.el-button.is-link.el-button--default {
  color: #606266 !important;
  background: rgba(96, 98, 102, 0.06) !important;
  border-radius: 4px;
}
.el-button.is-link.el-button--default:hover, .el-button.is-link.el-button--default:focus {
  color: #909399 !important;
  background: rgba(96, 98, 102, 0.12) !important;
}
.el-button.is-link.el-button--default:hover .el-icon, .el-button.is-link.el-button--default:focus .el-icon {
  color: #909399 !important;
}

.el-table .action-btns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
  flex-wrap: nowrap;
}

.el-button-group .el-button {
  margin-left: 0;
}
.el-button-group .el-button:first-child {
  border-radius: 4px 0 0 4px;
}
.el-button-group .el-button:last-child {
  border-radius: 0 4px 4px 0;
}
.el-button-group .el-button:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.el-tag {
  --el-tag-border-radius: 4px;
  font-weight: 500;
  transition: all 0.2s ease;
}
.el-tag.el-tag--primary.el-tag--plain {
  background: rgba(64, 158, 255, 0.08);
  border-color: rgba(64, 158, 255, 0.3);
}
.el-tag.el-tag--success.el-tag--plain {
  background: rgba(103, 194, 58, 0.08);
  border-color: rgba(103, 194, 58, 0.3);
}
.el-tag.el-tag--warning.el-tag--plain {
  background: rgba(230, 162, 60, 0.08);
  border-color: rgba(230, 162, 60, 0.3);
}
.el-tag.el-tag--danger.el-tag--plain {
  background: rgba(245, 108, 108, 0.08);
  border-color: rgba(245, 108, 108, 0.3);
}
.el-tag.el-tag--info.el-tag--plain {
  background: rgba(144, 147, 153, 0.08);
  border-color: rgba(144, 147, 153, 0.3);
}

.el-input {
  --el-input-border-radius: 4px;
}
.el-input .el-input__wrapper {
  transition: all 0.25s ease;
}
.el-input .el-input__wrapper:hover {
  box-shadow: 0 0 0 1px #409eff inset;
}
.el-input .el-input__wrapper.is-focus {
  box-shadow: 0 0 0 1px #409eff inset, 0 0 0 3px rgba(64, 158, 255, 0.15);
}

.el-select {
  --el-select-border-radius-hover: 4px;
}
.el-select .el-select__wrapper {
  transition: all 0.25s ease;
}
.el-select .el-select__wrapper:hover {
  box-shadow: 0 0 0 1px #409eff inset;
}
.el-select .el-select__wrapper.is-focused {
  box-shadow: 0 0 0 1px #409eff inset, 0 0 0 3px rgba(64, 158, 255, 0.15);
}

.el-card {
  --el-card-border-radius: 8px;
  border: none;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
  transition: all 0.3s ease;
}
.el-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.el-card .el-card__header {
  padding: 16px 20px;
  border-bottom: 1px solid #e4e7ed;
}
.el-card .el-card__body {
  padding: 20px;
}

.el-form-item {
  --el-form-label-font-size: 14px;
}
.el-form-item .el-form-item__label {
  font-weight: 500;
  color: #606266;
}

.el-switch {
  --el-switch-border-radius: 10px;
}
.el-switch.is-checked .el-switch__core {
  background: linear-gradient(135deg, #409eff 0%, #6c5ce7 100%);
  border-color: transparent;
}

.el-checkbox .el-checkbox__input.is-checked .el-checkbox__inner {
  background: linear-gradient(135deg, #409eff 0%, #6c5ce7 100%);
  border-color: transparent;
}

.el-message-box {
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.el-message-box .el-message-box__header {
  padding: 20px 20px 10px;
}
.el-message-box .el-message-box__content {
  padding: 10px 20px 20px;
}

.el-notification {
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.table-header-cell {
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  color: #1e293b !important;
  padding: 12px 0 !important;
  border-bottom: 2px solid #e2e8f0 !important;
}
.table-header-cell .cell {
  display: flex;
  align-items: center;
  justify-content: center;
}

.action-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  gap: 4px;
}
.action-buttons .el-button,
.action-buttons .el-button *,
.action-buttons .el-button span,
.action-buttons .el-button i,
.action-buttons .el-button svg {
  transition: none !important;
}
.action-buttons .el-button .el-icon {
  font-size: 14px;
}
.action-buttons .el-button:hover, .action-buttons .el-button:focus, .action-buttons .el-button:active, .action-buttons .el-button:hover *, .action-buttons .el-button:focus *, .action-buttons .el-button:active * {
  color: currentColor !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
  outline: none !important;
  text-decoration: none !important;
  transform: none !important;
  opacity: 1 !important;
}
.action-buttons .el-button:hover .el-icon,
.action-buttons .el-button:hover .el-icon svg,
.action-buttons .el-button:hover svg, .action-buttons .el-button:focus .el-icon,
.action-buttons .el-button:focus .el-icon svg,
.action-buttons .el-button:focus svg, .action-buttons .el-button:active .el-icon,
.action-buttons .el-button:active .el-icon svg,
.action-buttons .el-button:active svg, .action-buttons .el-button:hover * .el-icon,
.action-buttons .el-button:hover * .el-icon svg,
.action-buttons .el-button:hover * svg, .action-buttons .el-button:focus * .el-icon,
.action-buttons .el-button:focus * .el-icon svg,
.action-buttons .el-button:focus * svg, .action-buttons .el-button:active * .el-icon,
.action-buttons .el-button:active * .el-icon svg,
.action-buttons .el-button:active * svg {
  color: inherit !important;
  fill: currentColor !important;
}
.action-buttons .el-button.is-link:hover, .action-buttons .el-button.is-link:focus, .action-buttons .el-button.is-link:active {
  color: currentColor !important;
  background-color: transparent !important;
  border-color: transparent !important;
  text-decoration: none !important;
}
.action-buttons .el-button.el-button--success:hover, .action-buttons .el-button.el-button--success:focus, .action-buttons .el-button.el-button--success:active, .action-buttons .el-button.el-button--primary:hover, .action-buttons .el-button.el-button--primary:focus, .action-buttons .el-button.el-button--primary:active, .action-buttons .el-button.el-button--info:hover, .action-buttons .el-button.el-button--info:focus, .action-buttons .el-button.el-button--info:active, .action-buttons .el-button.el-button--warning:hover, .action-buttons .el-button.el-button--warning:focus, .action-buttons .el-button.el-button--warning:active, .action-buttons .el-button.el-button--danger:hover, .action-buttons .el-button.el-button--danger:focus, .action-buttons .el-button.el-button--danger:active {
  color: currentColor !important;
}

.common-dialog {
  border-radius: 12px;
  overflow: hidden;
  --el-dialog-box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
  border: none;
}
.common-dialog .el-dialog__header {
  padding: 16px 20px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  margin-right: 0;
}
.common-dialog .el-dialog__header .el-dialog__title {
  color: #fff;
  font-size: 16px;
  font-weight: 600;
}
.common-dialog .el-dialog__header .el-dialog__headerbtn {
  top: 16px;
  right: 16px;
}
.common-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #fff;
  font-size: 18px;
}
.common-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #fff;
  opacity: 0.8;
}
.common-dialog .el-dialog__body {
  background: #fafbfc;
  padding-top: 20px;
}
.common-dialog .el-dialog__body .el-divider--horizontal {
  margin-top: 40px;
}
.common-dialog .el-dialog__footer {
  padding: 12px 20px;
  border-top: 1px solid #e4e7ed;
  background: #fff;
}