/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/UnreadMessageCount.vue?vue&type=style&index=0&id=5a78e547&scoped=true&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* 组件样式 */
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/HeaderBar.vue?vue&type=style&index=0&id=ab0d4174&scoped=true&lang=scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.header-bar-container[data-v-ab0d4174] {
  border-bottom: 1px solid #f0f0f0;
}
.header-bar[data-v-ab0d4174] {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  padding: 0 24px;
}
.left[data-v-ab0d4174] {
  display: flex;
  align-items: center;
}
.left img[data-v-ab0d4174] {
  width: 34px;
  height: 34px;
  margin-right: 12px;
  cursor: pointer;
}
.left .back-button[data-v-ab0d4174] {
  transition: opacity 0.3s ease;
}
.left .back-button[data-v-ab0d4174]:hover {
  opacity: 0.8;
}
.left[data-v-ab0d4174] .el-breadcrumb {
  display: flex;
  font-size: 14px;
}
.left[data-v-ab0d4174] .el-breadcrumb .el-breadcrumb__item {
  display: flex;
}
.left[data-v-ab0d4174] .el-breadcrumb .el-breadcrumb__item .el-breadcrumb__inner {
  display: flex;
  align-items: center;
  font-weight: 400;
}
.left[data-v-ab0d4174] .el-breadcrumb .el-breadcrumb__item:not(:first-child):not(:last-child) .el-breadcrumb__inner:hover {
  cursor: pointer;
  color: #409eff;
}
.left[data-v-ab0d4174] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  font-weight: 500;
}
.right[data-v-ab0d4174] {
  display: flex;
  align-items: center;
}
.theme-switcher[data-v-ab0d4174],
.lang-switcher[data-v-ab0d4174] {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 18px;
}
.user-dropdown .username[data-v-ab0d4174] {
  margin: 0 8px;
  color: #333;
}
.el-dropdown-link[data-v-ab0d4174] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.dialog-title[data-v-ab0d4174] {
  color: #606266;
}
.about-content[data-v-ab0d4174] {
  text-align: center;
  padding: 20px 0;
}
.about-logo[data-v-ab0d4174] {
  margin-bottom: 20px;
}
.about-logo img[data-v-ab0d4174] {
  height: 30px;
  border-radius: 8px;
}
.about-info[data-v-ab0d4174] {
  margin-bottom: 20px;
}
.about-info h3[data-v-ab0d4174] {
  margin: 0 0 10px 0;
  color: #303133;
  font-size: 18px;
  font-weight: 500;
}
.about-info .version[data-v-ab0d4174] {
  margin: 5px 0;
  color: #606266;
  font-size: 14px;
}
.about-info .copyright[data-v-ab0d4174] {
  margin: 5px 0;
  color: #909399;
  font-size: 12px;
}
.about-links[data-v-ab0d4174] {
  margin-top: 20px;
}
.about-links .el-link[data-v-ab0d4174] {
  font-size: 14px;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/SidebarMenu.vue?vue&type=style&index=0&id=c478414a&scoped=true&lang=scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.sidebar-menu-container[data-v-c478414a] {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100vh;
  background: linear-gradient(115deg, #18589f, #1c6dc6 77%, #3460c1);
  position: relative;
  transition: width 0.3s ease;
  width: 200px;
}
.sidebar-menu-container.sidebar-collapsed[data-v-c478414a] {
  width: 64px;
  min-width: auto !important;
}
.sidebar-menu-container.sidebar-collapsed .logo[data-v-c478414a] {
  display: none;
}
.sidebar-menu-container.sidebar-collapsed .sidebar-toggle[data-v-c478414a] {
  width: 64px;
}
.logo[data-v-c478414a] {
  width: 90%;
}
.sidebar-menu[data-v-c478414a] {
  width: 100%;
  border-right: none;
  flex: 1;
  background: transparent;
  overflow-y: auto;
  overflow-x: hidden;
}
.sidebar-toggle[data-v-c478414a] {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40px;
  background: rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #fff;
  transition: all 0.3s ease;
}
.sidebar-toggle[data-v-c478414a]:hover {
  background: rgba(0, 0, 0, 0.2);
}
.sidebar-toggle i[data-v-c478414a] {
  font-size: 16px;
}
.el-menu--popup[data-v-c478414a] {
  background: rgba(255, 255, 255, 0.4) !important;
}
[data-v-c478414a] .el-submenu__title {
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  color: var(--text-color) !important;
  padding-left: 15px !important;
}
[data-v-c478414a] .el-menu-item {
  height: 46px !important;
  color: var(--text-color) !important;
  padding-left: 15px !important;
  text-align: left;
}
[data-v-c478414a] .el-menu-item i {
  color: #fff;
}
.el-menu--inline .el-menu-item[data-v-c478414a] {
  padding-left: 40px !important;
}
[data-v-c478414a] .el-menu--collapse {
  width: 64px;
}
[data-v-c478414a] .el-menu--collapse .el-submenu__title,[data-v-c478414a] .el-menu--collapse .el-menu-item {
  padding-left: 15px !important;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
[data-v-c478414a] .el-menu--collapse .el-submenu__title .menu-icon,[data-v-c478414a] .el-menu--collapse .el-menu-item .menu-icon {
  margin-right: 0;
}
.menu-icon[data-v-c478414a] {
  width: 16px;
  height: 16px;
  margin-right: 8px;
  vertical-align: middle;
}
[data-v-c478414a] .is-active-parent .el-submenu__title {
  color: var(--sidebar-active-color) !important;
}
.active-text[data-v-c478414a] {
  color: var(--sidebar-active-color) !important;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/TabBar.vue?vue&type=style&index=0&id=42921124&scoped=true&lang=scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.tab-bar[data-v-42921124] {
  background: #f5f5f5;
  border-bottom: 1px solid #e4e7ed;
  padding: 4px 16px;
  padding-bottom: 0;
  position: relative;
}
.tabs-container[data-v-42921124] {
  display: flex;
  align-items: center;
  height: 32px;
  overflow-x: auto;
  white-space: nowrap;
  flex-wrap: wrap;
}
.tab-item[data-v-42921124] {
  display: flex;
  align-items: center;
  padding: 6px 8px;
  background: #fff;
  border: 1px solid #e4e7ed;
  border-bottom: none;
  border-radius: 4px 4px 0 0;
  cursor: pointer;
  margin-right: 2px;
  font-size: 13px;
  transition: all 0.2s;
}
.tab-item[data-v-42921124]:hover {
  background: #f5f7fa;
}
.tab-item.active[data-v-42921124] {
  background: #fff;
  border-color: #dcdfe6;
  color: #409eff;
}
.tab-item .tab-title[data-v-42921124] {
  margin-right: 8px;
}
.tab-item .tab-close[data-v-42921124] {
  font-size: 12px;
  color: #909399;
  cursor: pointer;
  padding: 2px;
}
.tab-item .tab-close[data-v-42921124]:hover {
  color: #f56c6c;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.tab-context-menu[data-v-42921124] {
  position: fixed;
  background: white;
  border: 1px solid #e4e7ed;
  border-radius: 4px;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  z-index: 3000;
  min-width: 120px;
  padding: 4px 0;
}
.tab-context-menu .menu-item[data-v-42921124] {
  padding: 8px 16px;
  cursor: pointer;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #606266;
}
.tab-context-menu .menu-item[data-v-42921124]:hover {
  background-color: #f5f7fa;
}
.tab-context-menu .menu-item[data-v-42921124]:active {
  background-color: #e6e8eb;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/layouts/AdminLayout.vue?vue&type=style&index=0&id=9fbb962c&scoped=true&lang=scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.admin-layout[data-v-9fbb962c] {
  display: flex;
  height: 100vh;
  background: var(--background-color);
}
.sidebar[data-v-9fbb962c] {
  overflow-x: hidden;
  background: linear-gradient(115deg, #18589f, #1c6dc6 77%, #3460c1);
  min-width: 120px;
  color: var(--text-color-light);
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05);
  z-index: 2;
}
.main-content[data-v-9fbb962c] {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.header[data-v-9fbb962c] {
  height: 56px;
  background: var(--header-bg);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  display: flex;
  align-items: center;
  z-index: 1;
  color: var(--text-color);
}
.content-area[data-v-9fbb962c] {
  flex: 1;
  overflow: auto;
  background: var(--background-color);
  color: var(--text-color);
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
#app {
  text-align: center;
  color: #2c3e50;
}
nav {
  padding: 30px;
}
nav a {
  font-weight: bold;
  color: #2c3e50;
}
nav a.router-link-exact-active {
  color: #42b983;
}
/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-24.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-24.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-24.use[3]!./src/assets/styles/index.scss ***!
  \********************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
body {
  background: var(--background-color);
  color: var(--text-color);
  transition: background 0.3s, color 0.3s;
}

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

html,
body {
  height: 100%;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#app {
  height: 100%;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

.header-bar {
  background: var(--header-bg);
  color: var(--text-color);
}

.sidebar-menu {
  background: var(--sidebar-bg);
  color: var(--text-color-light);
  overflow-x: hidden;
  padding-bottom: 40px;
}

.page-content {
  width: 100%;
  height: 100%;
  padding: 20px;
  box-sizing: border-box;
  overflow-y: auto;
}

.page-block {
  border-radius: 16px;
  background-color: var(--page-block);
  margin-top: 20px;
  padding: 34px 0 24px;
}

.full-screen-dialog {
  width: calc(100% - 200px) !important;
  right: 0 !important;
  top: 0 !important;
  height: 100% !important;
  bottom: unset !important;
  left: unset !important;
}

.full-screen-dialog-hide-menus {
  width: calc(100% - 64px) !important;
}

.full-screen-dialog.dialog-show-header {
  top: 57px !important;
  height: calc(100vh - 61px) !important;
}

.box-border {
  width: 100%;
  height: 100%;
  padding: 20px;
  padding-bottom: 10px;
  box-sizing: border-box;
}
.box-border .box-border-main {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
}

.box-header .box-label {
  float: left;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 36px;
  margin-right: 10px;
}
.box-header .box-label2 {
  margin-left: 24px;
  margin-right: 10px;
}

.box-input {
  float: left !important;
  width: 180px !important;
}
.box-input .el-input__inner {
  height: 36px !important;
  line-height: 36px !important;
}

.searchBtn {
  float: left;
  width: 100px !important;
  margin-left: 40px;
  cursor: pointer;
  position: relative;
  top: 0px;
}

.resetBtn {
  float: left;
  width: 100px !important;
  margin-left: 40px;
  cursor: pointer;
  position: relative;
  top: 0px;
  background-color: transparent;
  margin-left: 12px;
  color: #66b1ff;
}

.box-second {
  margin-top: 48px;
}

.imExBtn {
  border: 1px solid #1487f2 !important;
  border-radius: 4px !important;
  margin-left: 0 !important;
  margin-right: 12px !important;
}

.addExbtn {
  width: 112px !important;
  margin-left: 0px !important;
}

.box-table {
  width: 100%;
  flex: 1;
  min-width: 0;
  min-height: 0;
  margin-top: 20px;
}

.edit {
  color: #1487f2;
  cursor: pointer;
  font-size: 14px;
}

.line {
  color: #eaeaea;
  margin: 0 14px;
}

.box-header2 {
  margin-top: 30px;
}

.search-select {
  width: 150px;
  float: left;
}
.search-select .el-input__inner {
  height: 36px !important;
}

.box-header:after,
.box-second:after {
  clear: both;
  height: 0;
  display: block;
  content: "";
}

.el-menu,
.el-menu-item {
  background: transparent !important;
  color: var(--sidebar-color);
}

.sidebar-collapsed .el-tooltip {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.el-drawer__header {
  margin-bottom: 0px !important;
}
.el-drawer__header span {
  text-align: left;
}

.sidebar-menu-popper {
  background: linear-gradient(115deg, #18589f, #1c6dc6 77%, #3460c1);
  border: none;
}
.sidebar-menu-popper .el-menu-item {
  height: 40px;
  background: transparent;
  color: #fff !important;
  text-align: left;
  padding-left: 30px !important;
}
.sidebar-menu-popper .popper__arrow {
  display: none;
}

.el-menu-item {
  display: flex;
  align-items: center;
}

.el-menu-item.is-active {
  background: var(--sidebar-active-bg) !important;
  color: #fff !important;
}

.el-menu-item:hover,
.el-submenu__title:hover {
  background: var(--menu-hover-bg) !important;
}

.el-button--default {
  color: var(--text-color) !important;
}

.btn-primary {
  background-color: var(--primary-color);
  color: #fff;
}

.btn-primary:hover {
  background-color: #337ecc;
}

.el-form-item__label {
  color: var(--text-color-primary) !important;
}

.card,
.el-card {
  background: var(--card-bg);
  color: var(--text-color);
  border-color: var(--border-color);
}

.el-tabs--card > .el-tabs__header .el-tabs__nav {
  border: none !important;
  background-color: var(--tabs-bg) !important;
  border-radius: 12px 12px 0 0 !important;
  overflow: hidden;
}

.el-tabs__item {
  color: var(--tabs-color) !important;
}

.el-tabs__header {
  margin-bottom: 0 !important;
}

.el-tabs__item.is-active {
  color: var(--tabs-active-color) !important;
  background-color: var(--tabs-active-bg) !important;
}

.el-dialog {
  margin-top: 5vh !important;
  padding: 0 !important;
  border-radius: 16px !important;
}
.el-dialog .el-dialog__header {
  border-radius: 16px 16px 0 0 !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px;
  background-color: var(--background-color);
}
.el-dialog .el-dialog__header .el-dialog__title {
  font-size: 18px;
  color: var(--text-color-primary);
  font-weight: bold;
}

.el-dialog.is-fullscreen {
  width: 100%;
  position: absolute;
  top: 0;
  right: 0;
  margin-top: 0 !important;
  background-color: var(--background-color);
  border-radius: 0 !important;
}
.el-dialog.is-fullscreen .el-dialog__header {
  padding: 0;
}
.el-dialog.is-fullscreen .el-dialog__body {
  margin: 20px;
  padding: 20px;
  border-radius: 16px !important;
  background-color: var(--content-bg);
}
.el-dialog.is-fullscreen .el-dialog__footer {
  padding: 0;
  padding-right: 20px;
}

.table-container {
  padding: 15px;
  padding-bottom: 0;
  padding-top: 0;
  background-color: var(--card-bg);
}

.table-border {
  background-color: var(--card-bg);
  box-sizing: border-box;
}

.page-table th {
  background-color: var(--table-th-background) !important;
}
.page-table th.el-table__cell {
  color: var(--text-color-primary) !important;
}
.page-table td {
  color: var(--text-secondary) !important;
}

.el-table {
  border-color: var(--border-color) !important;
}
.el-table::before {
  background-color: var(--border-color) !important;
}
.el-table::after {
  background-color: var(--border-color) !important;
}

.el-table__border-line {
  background-color: var(--border-color) !important;
}

.el-table--border {
  border-color: var(--border-color) !important;
}

.el-table--border::after {
  background-color: var(--border-color) !important;
}

.el-table--border .el-table__cell {
  border-right-color: var(--border-color) !important;
}

.el-table--border .el-table__header-wrapper {
  border-bottom-color: var(--border-color) !important;
}

.el-table--border .el-table__body-wrapper {
  border-bottom-color: var(--border-color) !important;
}

.el-table--border .el-table__footer-wrapper {
  border-top-color: var(--border-color) !important;
}

/* 表格固定列边框处理 */
.el-table__fixed-right::before,
.el-table__fixed::before {
  background-color: var(--border-color) !important;
}

.pager {
  padding: 10px 0;
  padding-right: 20px;
  text-align: right;
}

.pagination-wrapper {
  display: flex;
  justify-content: flex-end;
  box-sizing: border-box;
  text-align: right;
  padding-right: 15px;
  padding-top: 15px;
  padding-bottom: 15px;
  margin: 0 !important;
  border-radius: 0 0 16px 16px;
  background-color: var(--content-bg);
  margin-top: 20px;
  text-align: right;
}

.pagination-wrapper .el-pagination__total,
.pagination-wrapper .el-pagination__jump {
  color: var(--text-color-light) !important;
}

.pagination-wrapper .el-input__inner {
  background-color: transparent;
  border-color: var(--border-color) !important;
  color: var(--text-color-light) !important;
}

.pagination-wrapper .el-pagination__editor.el-input {
  margin: 0 6px !important;
}

.pagination-wrapper .el-pagination button:disabled,
.pagination-wrapper .btn-next,
.pagination-wrapper .btn-prev {
  background-color: transparent !important;
  color: var(--text-color-light) !important;
}

.pagination-wrapper .el-pagination button:disabled {
  opacity: 0.5 !important;
}

.pagination-wrapper .el-pager li {
  background-color: transparent !important;
  color: var(--text-color-light) !important;
}

.pagination-wrapper .el-pager li.active {
  color: var(--text-color) !important;
}

.page-title {
  width: 100%;
  text-align: left;
  font-size: 14px;
  color: var(--page-title-main);
}
.page-title i {
  font-style: normal;
  color: var(--page-title);
}

.bom-files-section {
  display: flex;
  gap: 20px;
  height: 70vh;
  padding-top: 10px;
  flex-direction: column;
}
.bom-files-section .bom-files-list {
  border-right: 1px solid #e4e7ed;
  padding-right: 20px;
  overflow-y: auto;
}
.bom-files-section .bom-files-list .list-title {
  font-size: 12px;
  color: #303133;
}
.bom-files-section .bom-files-list .bom-file-item {
  padding: 12px;
  margin-bottom: 8px;
  border: 1px solid #e4e7ed;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s;
  background-color: #fff;
}
.bom-files-section .bom-files-list .bom-file-item:hover {
  border-color: #409eff;
  background-color: #f0f9ff;
}
.bom-files-section .bom-files-list .bom-file-item.active {
  border-color: #409eff;
  background-color: #ecf5ff;
}
.bom-files-section .bom-files-list .bom-file-item.active .file-info .file-name {
  color: #409eff;
  font-weight: 600;
}
.bom-files-section .bom-files-list .bom-file-item .file-info {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bom-files-section .bom-files-list .bom-file-item .file-info i {
  font-size: 16px;
  color: #909399;
}
.bom-files-section .bom-files-list .bom-file-item .file-info .file-name {
  flex: 1;
  font-size: 13px;
  color: #606266;
  word-break: break-all;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #e4e7ed;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list .txt-title {
  font-size: 12px;
  margin-bottom: 6px;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list .txt-file-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  margin-bottom: 4px;
  border-radius: 3px;
  font-size: 12px;
  color: #606266;
  background-color: #f5f7fa;
  transition: all 0.2s;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list .txt-file-item:hover {
  background-color: #e6f7ff;
  color: #409eff;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list .txt-file-item.active {
  background-color: #e6f7ff;
  color: #409eff;
  font-weight: 600;
  border: 1px solid #409eff;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list .txt-file-item i {
  font-size: 14px;
}
.bom-files-section .bom-files-list .bom-file-item .txt-files-list .txt-file-item span {
  flex: 1;
  word-break: break-all;
}
.bom-files-section .file-preview-area {
  flex: 1;
  overflow: auto;
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-3 {
  margin-top: 1rem;
}

.mt-4 {
  margin-top: 1.5rem;
}

.mt-5 {
  margin-top: 3rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 1rem;
}

.mb-4 {
  margin-bottom: 1.5rem;
}

.mb-5 {
  margin-bottom: 3rem;
}

.p-1 {
  padding: 0.25rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-3 {
  padding: 1rem;
}

.p-4 {
  padding: 1.5rem;
}

.p-5 {
  padding: 3rem;
}

.flex {
  display: flex;
}

.justify-between {
  justify-content: space-between;
}

.justify-end {
  justify-content: flex-end;
}

/* Webkit浏览器滚动条样式 */
/* 滚动条整体部分 */
::-webkit-scrollbar {
  width: 6px; /* 宽度 */
  height: 6px; /* 高度 */
}

/* 滚动条轨道 */
::-webkit-scrollbar-track {
  background: transparent; /* 轨道颜色 */
  border-radius: 10px; /* 轨道圆角 */
}

/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
  background: var(--scroll-color); /* 滑块颜色 */
  border-radius: 10px; /* 滑块圆角 */
  border: 1px solid transparent; /* 边框 */
  background-clip: content-box; /* 背景裁剪 */
}

/* 滚动条滑块在鼠标悬停时的样式 */
::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color); /* 滑块悬停颜色 */
  opacity: 0.8; /* 悬停时透明度 */
}

/* 滚动条滑块在鼠标按下时的样式 */
::-webkit-scrollbar-thumb:active {
  background: var(--scroll-color); /* 滑块按下颜色 */
  opacity: 0.6; /* 按下时透明度 */
}

/* 滚动条角落 */
::-webkit-scrollbar-corner {
  background: transparent; /* 角落颜色 */
}

/* 水平滚动条 */
::-webkit-scrollbar:horizontal {
  height: 6px; /* 水平滚动条高度 */
}

/* 垂直滚动条 */
::-webkit-scrollbar:vertical {
  width: 6px; /* 垂直滚动条宽度 */
}

/* Firefox浏览器滚动条样式 */
* {
  scrollbar-width: thin; /* 细滚动条 */
  scrollbar-color: var(--scroll-color) transparent; /* 滚动条颜色 */
}

/* 针对特定元素的滚动条样式 */
.el-table__body-wrapper::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.el-table__body-wrapper::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.el-table__body-wrapper::-webkit-scrollbar-thumb {
  background: var(--scroll-color);
  border-radius: 10px;
  border: 1px solid transparent;
  background-clip: content-box;
}

.el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color);
  opacity: 0.8;
}

/* 对话框内容区域的滚动条 */
.el-dialog__body::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.el-dialog__body::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.el-dialog__body::-webkit-scrollbar-thumb {
  background: var(--scroll-color);
  border-radius: 10px;
  border: 1px solid transparent;
  background-clip: content-box;
}

.el-dialog__body::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color);
  opacity: 0.8;
}

/* 侧边栏菜单的滚动条 */
.sidebar-menu::-webkit-scrollbar {
  width: 4px; /* 侧边栏滚动条更细 */
  height: 4px;
}

.sidebar-menu::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.sidebar-menu::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.3); /* 侧边栏滚动条颜色 */
  border-radius: 10px;
  border: 1px solid transparent;
  background-clip: content-box;
}

.sidebar-menu::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.5);
  opacity: 0.8;
}

/* 页面内容区域的滚动条 */
.page-content::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.page-content::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.page-content::-webkit-scrollbar-thumb {
  background: var(--scroll-color);
  border-radius: 10px;
  border: none;
}

.page-content::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color);
  opacity: 0.8;
}

/* 表格容器的滚动条 */
.table-container::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.table-container::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 10px;
}

.table-container::-webkit-scrollbar-thumb {
  background: var(--scroll-color);
  border-radius: 10px;
  border: 1px solid transparent;
  background-clip: content-box;
}

.table-container::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color);
  opacity: 0.8;
}

.el-message-box__btns .el-button--primary {
  color: var(--primary-color) !important;
}

.icon-button {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-color-primary) !important;
}
.icon-button .button-icon {
  width: 16px;
  height: 16px;
  -o-object-fit: contain;
     object-fit: contain;
  margin-right: 5px;
}

.el-button--text {
  font-size: 14px;
  padding: 0 !important;
}

.el-date-editor .el-range-separator {
  width: 7%;
}

.handle-wrapper {
  display: flex;
  padding: 10px 14px;
  align-items: center;
  background-color: var(--card-bg);
}
.handle-wrapper .el-button {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
  padding: 10px 20px;
}
.handle-wrapper .el-button span {
  display: flex;
  align-items: center;
}

.el-button {
  padding: 10px 20px;
}

.el-button--default {
  border: 1px solid var(--border-color-primary);
}

.el-textarea__inner {
  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
}

.el-message-box {
  padding: 0 !important;
  padding-bottom: 10px !important;
  border-radius: 16px !important;
}
.el-message-box .el-message-box__header {
  display: flex;
  align-items: center;
  padding-top: 12px;
  background-color: var(--background-color);
}
.el-message-box .el-message-box__header .el-message-box__title span {
  color: var(--text-color-primary);
  font-weight: 700;
  font-size: 18px;
}
.el-message-box .el-message-box__header .el-message-box__headerbtn i {
  font-size: 20px;
}
.el-message-box .el-message-box__content {
  display: flex;
  align-items: center;
  min-height: 100px;
}
.el-message-box .el-message-box__content .el-message-box__container .el-message-box__status {
  display: none;
}
.el-message-box .el-message-box__content .el-message-box__container .el-message-box__message {
  font-size: 16px;
  color: var(--text-color-primary);
}
.el-message-box .el-message-box__btns {
  display: flex;
  justify-content: center;
}
.el-message-box .el-message-box__btns button {
  border: 1px solid var(--border-color-primary);
}

.el-scrollbar__view.el-select-dropdown__list {
  max-width: 60vw;
}

.el-tooltip__popper {
  max-width: 70vw !important;
}

body.theme-warm {
  --primary-color: #ff7f50;
  --success-color: #ffd700;
  --warning-color: #ffb347;
  --error-color: #ff6347;
  --info-color: #ffdead;
  --background-color: #fff8f0;
  --header-bg: #fff3e0;
  --sidebar-bg: #ffe0b2;
  --sidebar-active-bg: #ffb347;
  --sidebar-active-color: #fff;
  --sidebar-color: #7c4d03;
  --text-color: #7c4d03;
  --text-color-light: #bfa26a;
  --border-color: #ffe0b2;
  --card-bg: #fff3e0;
  --menu-hover-bg: #ffe0b2;
  --page-title-main: #7c4d03;
  --page-title: #7c4d03;
  --page-block: transparent;
  --text-color-primary: #333333;
  --text-secondary: #666666;
  --table-th-background: #edeff3;
  --scroll-color: #ffb347;
}

body.theme-dark {
  --primary-color: #507fff;
  --success-color: #00adb5;
  --warning-color: #ffd369;
  --error-color: #f05454;
  --info-color: #393e46;
  --background-color: #212332;
  --header-bg: #2a2d3e;
  --sidebar-bg: var(--header-bg);
  --content-bg: var(--header-bg);
  --card-bg: var(--header-bg);
  --text-color: #e0e0e0;
  --text-color-primary: #fff;
  --text-color-light: #bdbdbd;
  --text-secondary: #666666;
  --text-color-tips: #999999;
  --border-color: #4b4f70;
  --border-color-primary: #74aadd;
  --sidebar-active-bg: linear-gradient(90deg, #389fff 0%, #64b4ff 100%);
  --sidebar-active-color: #fff;
  --sidebar-color: #888a93;
  --menu-hover-bg: #222831;
  --scroll-color: var(--border-color);
  --page-title-main: #888a93;
  --page-title: #ffffff;
  --page-block: #2a2d3e;
  --table-th-background: #edeff3;
  color: var(--text-color);
}
body.theme-dark .el-card,
body.theme-dark .el-form,
body.theme-dark .el-input__inner,
body.theme-dark .el-button,
body.theme-dark .el-menu,
body.theme-dark .el-menu-item,
body.theme-dark .el-submenu__title,
body.theme-dark .el-dropdown-menu,
body.theme-dark .el-dropdown-link,
body.theme-dark .el-checkbox__label,
body.theme-dark .el-avatar,
body.theme-dark .el-table,
body.theme-dark .el-table th,
body.theme-dark .el-table td {
  color: var(--text-color) !important;
  background: transparent !important;
  border-color: var(--border-color) !important;
}
body.theme-dark .el-input__inner {
  background: var(--card-bg) !important;
  color: var(--text-color) !important;
}
body.theme-dark .el-button {
  background: var(--primary-color) !important;
  color: #fff !important;
  border: none;
}
body.theme-dark {
  /* 深色主题下默认按钮样式（没有type的按钮） */
}
body.theme-dark .el-button:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger):not(.el-button--info):not(.el-button--text) {
  background: transparent !important;
  color: var(--primary-color) !important;
  border: 1px solid var(--primary-color) !important;
}
body.theme-dark .el-button:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger):not(.el-button--info):not(.el-button--text):hover {
  background: var(--primary-color) !important;
  color: #fff !important;
  border-color: var(--primary-color) !important;
}
body.theme-dark .el-button:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger):not(.el-button--info):not(.el-button--text):active {
  background: var(--primary-color) !important;
  color: #fff !important;
  border-color: var(--primary-color) !important;
}
body.theme-dark {
  /* 深色主题下文本按钮样式 */
}
body.theme-dark .el-button--text {
  background: transparent !important;
  color: var(--primary-color) !important;
  border: none !important;
}
body.theme-dark .el-button--text:hover {
  background: transparent !important;
  color: var(--primary-color) !important;
  border: none !important;
}
body.theme-dark .el-button--text:active {
  background: transparent !important;
  color: var(--primary-color) !important;
  border: none !important;
}
body.theme-dark .sidebar {
  width: 220px !important;
}
body.theme-dark .sidebar-menu {
  width: 220px !important;
  padding: 0 12px;
  background: linear-gradient(115deg, #18589f, #1c6dc6 77%, #3460c1) !important;
}
body.theme-dark .el-submenu__title {
  color: var(--sidebar-color) !important;
  background-color: var(--sidebar-bg) !important;
}
body.theme-dark .el-menu-item {
  color: var(--sidebar-color) !important;
}
body.theme-dark .el-menu-item.is-active {
  background: var(--sidebar-active-bg) !important;
  color: #fff !important;
  border-radius: 12px;
}
body.theme-dark .search-form {
  background-color: var(--content-bg);
  border-bottom: 1px solid var(--border-color);
}
body.theme-dark .search-form .search-form-content {
  background-color: var(--content-bg) !important;
}
body.theme-dark {
  /* 深色主题下的滚动条样式 */
}
body.theme-dark ::-webkit-scrollbar-thumb {
  background: var(--scroll-color) !important;
}
body.theme-dark ::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color) !important;
  opacity: 0.8;
}
body.theme-dark {
  /* 深色主题下侧边栏滚动条 */
}
body.theme-dark .sidebar-menu::-webkit-scrollbar-thumb {
  background: var(--scroll-color) !important;
}
body.theme-dark .sidebar-menu::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color) !important;
}
body.theme-dark {
  /* 深色主题下表格滚动条 */
}
body.theme-dark .el-table__body-wrapper::-webkit-scrollbar-thumb {
  background: var(--scroll-color) !important;
}
body.theme-dark .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color) !important;
  opacity: 0.8;
}
body.theme-dark {
  /* 深色主题下对话框滚动条 */
}
body.theme-dark .el-dialog__body::-webkit-scrollbar-thumb {
  background: var(--scroll-color) !important;
}
body.theme-dark .el-dialog__body::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color) !important;
  opacity: 0.8;
}
body.theme-dark {
  /* 深色主题下页面内容滚动条 */
}
body.theme-dark .page-content::-webkit-scrollbar-thumb {
  background: var(--scroll-color) !important;
}
body.theme-dark .page-content::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color) !important;
  opacity: 0.8;
}
body.theme-dark {
  /* 深色主题下表格容器滚动条 */
}
body.theme-dark .table-container::-webkit-scrollbar-thumb {
  background: var(--scroll-color) !important;
}
body.theme-dark .table-container::-webkit-scrollbar-thumb:hover {
  background: var(--scroll-color) !important;
  opacity: 0.8;
}
body.theme-dark {
  /* 深色主题下表格边框样式 */
}
body.theme-dark .el-table {
  border-color: var(--border-color) !important;
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-table::before {
  background-color: var(--border-color) !important;
}
body.theme-dark .el-table::after {
  background-color: var(--border-color) !important;
}
body.theme-dark .el-table__border-line {
  background-color: var(--border-color) !important;
}
body.theme-dark .el-table--border {
  border-color: var(--border-color) !important;
}
body.theme-dark .el-table--border::after {
  background-color: var(--border-color) !important;
}
body.theme-dark .el-table--border .el-table__cell {
  border-right-color: var(--border-color) !important;
}
body.theme-dark .el-table--border .el-table__header-wrapper {
  border-bottom-color: var(--border-color) !important;
}
body.theme-dark .el-table--border .el-table__body-wrapper {
  border-bottom-color: var(--border-color) !important;
}
body.theme-dark .el-table--border .el-table__footer-wrapper {
  border-top-color: var(--border-color) !important;
}
body.theme-dark {
  /* 确保表格单元格边框也是深色的 */
}
body.theme-dark .el-table td,
body.theme-dark .el-table th {
  border-bottom-color: var(--border-color) !important;
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-table--border .el-table__cell {
  border-right-color: var(--border-color) !important;
}
body.theme-dark {
  /* 表格头部背景色 */
}
body.theme-dark .el-table__header-wrapper {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-table__header th {
  background-color: var(--content-bg) !important;
}
body.theme-dark {
  /* 表格主体背景色 */
}
body.theme-dark .el-table__body-wrapper {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-table__body tr {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-table__body tr:hover > td {
  background-color: var(--menu-hover-bg) !important;
}
body.theme-dark {
  /* 深色主题下表格固定列边框处理 */
}
body.theme-dark .el-table__fixed-right::before,
body.theme-dark .el-table__fixed::before {
  background-color: var(--border-color) !important;
}
body.theme-dark {
  /* 深色主题下树形组件样式 */
}
body.theme-dark .el-tree {
  background-color: var(--content-bg) !important;
  color: var(--text-color-primary) !important;
}
body.theme-dark .el-tree-node {
  color: var(--text-color-primary) !important;
}
body.theme-dark .el-tree-node__content {
  background-color: transparent !important;
  color: var(--text-color-primary) !important;
}
body.theme-dark .el-tree-node__content:hover {
  background-color: var(--menu-hover-bg) !important;
}
body.theme-dark .el-tree-node__content.is-current {
  background-color: var(--sidebar-active-bg) !important;
  color: #fff !important;
}
body.theme-dark .el-tree-node__label {
  color: var(--text-color-primary) !important;
}
body.theme-dark .el-tree-node__expand-icon {
  color: var(--text-color-light) !important;
}
body.theme-dark .el-tree-node__expand-icon.expanded {
  color: var(--primary-color) !important;
}
body.theme-dark .el-tree-node__expand-icon.is-leaf {
  color: transparent !important;
}
body.theme-dark .el-tree-node__children {
  background-color: transparent !important;
}
body.theme-dark .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
  background-color: var(--sidebar-active-bg) !important;
  color: #fff !important;
}
body.theme-dark {
  /* 深色主题下标签页组件样式 */
}
body.theme-dark .el-tabs {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-tabs__nav-scroll {
  background-color: var(--background-color) !important;
}
body.theme-dark .el-tabs__header {
  background-color: var(--content-bg) !important;
  border-bottom-color: var(--border-color) !important;
}
body.theme-dark .el-tabs__nav-wrap {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-tabs__nav {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-tabs__item {
  background-color: transparent !important;
  color: var(--text-color-primary) !important;
  border-color: transparent !important;
}
body.theme-dark .el-tabs__item:hover {
  color: var(--primary-color) !important;
}
body.theme-dark .el-tabs__item.is-active {
  color: var(--primary-color) !important;
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-tabs__active-bar {
  background-color: var(--primary-color) !important;
}
body.theme-dark .el-tabs__nav-prev,
body.theme-dark .el-tabs__nav-next {
  color: var(--text-color-primary) !important;
}
body.theme-dark .el-tabs__nav-prev:hover,
body.theme-dark .el-tabs__nav-next:hover {
  color: var(--primary-color) !important;
}
body.theme-dark {
  /* 卡片式标签页 */
}
body.theme-dark .el-tabs--card > .el-tabs__header .el-tabs__nav {
  border-color: var(--border-color) !important;
  background-color: var(--card-bg) !important;
}
body.theme-dark .el-tabs--card > .el-tabs__header .el-tabs__item {
  background-color: var(--card-bg) !important;
  color: var(--text-color-primary) !important;
  border-color: var(--border-color) !important;
}
body.theme-dark .el-tabs--card > .el-tabs__header .el-tabs__item:hover {
  color: var(--primary-color) !important;
}
body.theme-dark .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
  background-color: var(--primary-color) !important;
  color: #fff !important;
  border-color: var(--primary-color) !important;
}
body.theme-dark {
  /* 标签页内容区域 */
}
body.theme-dark .el-tabs__content {
  background-color: var(--content-bg) !important;
}
body.theme-dark .el-tab-pane {
  background-color: var(--content-bg) !important;
  color: var(--text-color-primary) !important;
}

:root {
  --primary-color: #fff;
  --success-color: #67c23a;
  --warning-color: #e6a23c;
  --error-color: #f56c6c;
  --info-color: #909399;
  --background-color: #f7f7f8;
  --header-bg: #fff;
  --sidebar-bg: #0059a6;
  --content-bg: #fff;
  --card-bg: #fff;
  --page-block: transparent;
  --guidemenu-bg: #f3f5f7;
  --text-color: #74aadd;
  --text-color-primary: #333333;
  --text-color-light: #909399;
  --text-secondary: #666666;
  --text-color-tips: #999999;
  --text-color-menu-item-active: var(--primary-color);
  --text-color-drag-handle: #d9d9d9;
  --border-color: #ebeef5;
  --border-active-color: #74aadd;
  --search-form-border: #ebeef5;
  --border-color-primary: #74aadd;
  --button-color-bg: var(--sidebar-active-bg);
  --sidebar-active-bg: #1f81d8;
  --sidebar-active-color: #fff;
  --menu-hover-bg: #1f81d8;
  --sidebar-color: #888a93;
  --scroll-color: #74aadd;
  --menu-item-bg-active: linear-gradient(90deg, #389fff 0%, #64b4ff 100%);
  --menu-item-bg: #e2e3e6;
  --page-title-main: #888a93;
  --page-title: #333333;
  --table-th-background: #edeff3;
  --tabs-bg: #e3e7eb;
  --tabs-color: #999999;
  --tabs-active-bg: #fff;
  --tabs-active-color: #333333;
}
