body {
	font-family: "Inter", "Source Sans Pro", Helvetica, Arial, sans-serif !important;
}

/*有焦点时不显示黑框*/
*:focus,
*:focus-visible {
	outline: none;
}

:root {
	--border-color: #D1D0D4;
	--border-focus-color: var(--bs-primary);
	--side-bar-bg: #f8f9fc;
	--content-bg: #fafafb;
	--table-header-bg: #f8f9fc;
	--footer-bg: var(--bs-gray-50);
	--table-choosed: #eef3ff;
}

.success-tooltip {
	--bs-tooltip-bg: var(--bs-success);
}

.warning-tooltip {
	--bs-tooltip-bg: var(--bs-warning);
}

.info-tooltip {
	--bs-tooltip-bg: var(--bs-info);
}

.danger-tooltip {
	--bs-tooltip-bg: var(--bs-danger);
}

/*【Codex 2026-09-24】普通提示按内容宽度显示，不自动折行；保留利润明细表专用样式。*/
.tooltip:not(.profit-order-tip) .tooltip-inner {
	max-width: none;
	width: max-content;
	white-space: nowrap;
}

.bg-blue {
	background-color: #408DFB;
}

.transparent {
	color: transparent !important;
}

/* 表格行箭头：默认透明，鼠标移入本行时显色（对应旧系统 david-table 的行指示箭头） */
tr:hover .row-arrow {
	color: var(--bs-primary) !important;
}

.min-100 {
	min-width: 100px;
}

.min-125 {
	min-width: 125px;
}

.min-150 {
	min-width: 150px;
}

.min-175 {
	min-width: 175px;
}

.min-200 {
	min-width: 200px;
}

.max-300 {
	white-space: normal !important;
	max-width: 300px;
}

/*-------------------------------------------------小tab -------------------------------------*/
/*用在织造计划中*/
.david-tab-top {
	background-color: transparent !important;
	border-bottom: solid 1px #aaa !important;
}

.david-tab {
	padding: 5px 10px;
	margin-right: 10px;
	border: solid 1px #ccc;
	border-bottom: none;
	background-color: transparent;
	position: relative;
}

.david-tab.active {
	background-color: white !important;
	border-color: #aaa !important;
}

.david-tab::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 4px;
	background: transparent;
	border-radius: 0 0 4px 4px;
	transition: background 0.25s;
}

.david-tab.active::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 4px;
	background: white;
	border-radius: 0 0 4px 4px;
	transition: background 0.25s;
}

.david-tab-container {
	border-radius: 0px !important;
	border: solid 1px #aaa;
	border-top: none;
}

/*---------------------------------------------------带右侧按钮的文本框-----------------------------*/
.input-with-btn-box {
	position: relative;
	box-sizing: border-box;
}

.input-btn {
	position: absolute;
	right: 0px;
	top: 3px;
}

/*---------------------------------------------------end: 带右侧按钮的文本框-----------------------------*/

/*
 * Flatpickr 向上展开时没有计算日历容器上下各 .5rem 的 padding。
 * 向上补偿 1rem，同时保留组件原有的 2px 间距。
 */
.flatpickr-calendar.arrowBottom {
	margin-top: -1rem;
}

/*数字输入框不显示箭头*/
input[type="number"] {
	-webkit-appearance: textfield;
	-moz-appearance: textfield;
	appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/*	不选择文本		*/
.noselect {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/*		打印时需要		*/
.modal-iframe {
	width: 100%;
	height: calc(100vh - 75px);
	border: none;
	transform: scale(1);
}

/*--------------------------------------------------swal2更改-------------*/
.swal2-html-container {
	padding: 2rem 3rem 3rem !important;
}

.swal2-actions {
	margin-bottom: 2rem !important;
}

.swal2-container .swal2-popup .swal2-icon.swal2-success .swal2-success-ring {
	border-color: rgba(var(--bs-success-rgb), 0.6);
}

/*---------------------------------------------------modal更改----------------*/
.modal .modal-header {
	display: flex;
	align-item: center;
	justify-content: space-between;
	background-color: var(--bs-primary-bg-subtle);
	border-bottom: solid 1px #eee;
	padding-inline-end: 1rem !important;
	padding-inline-start: 1rem !important;
	border-top-left-radius: 0.5rem;
	border-top-right-radius: 0.5rem;
	padding-block-start: 0.5rem !important;
	padding-block-end: 0.5rem !important;
}

.modal .modal-header .modal-title {
	font-size: 15px !important;
	font-weight: bold;
}

.swal2-container .swal2-popup .swal2-icon.swal2-question {
	border-color: rgba(var(--bs-danger-rgb), 0.7);
	color: var(--bs-danger);
}


/*------------------------------------  导航栏/左菜单  ---------------------------------*/
:root {
	--bs-navbar-height: 40px;
	--bs-sideMenu-width: 200px;
}

.navBar {
	height: var(--bs-navbar-height);
	width: 100%;
	position: fixed;
	left: 0;
	top: 0;
	background-color: #21263c;
	color: white;
	display: flex;
	align-items: center;
	justify-content: space-between;
	z-index: 100;
}

.navBar .logo {
	margin: -3px 15px 0;
	padding: 0;
}

.navbar-icon {
	color: #aaa;
}

.navbar-icon i {
	font-size: 22px;
}

.navbar-icon:hover {
	color: #eee;
}

.navBar .breadcrumbs {
	color: var(--bs-light);
	padding: 0 15px;
	border-left: solid 1px #757575;
}

.page-container {
	display: flex;
	margin-top: var(--bs-navbar-height);
}

.main-content {
	height: calc(100vh - var(--bs-navbar-height));
	flex: 1;
	background-color: var(--content-bg);
	overflow-y: hidden !important;
	/* 基础隐藏 */
	-ms-overflow-style: none;
	/* IE/Edge 隐藏滚动条 */
	scrollbar-width: none;
	/* Firefox 隐藏滚动条 */
}

.carousel-item {
	height: calc(100vh - var(--bs-navbar-height)) !important;
}

#sideMenu {
	height: calc(100vh - var(--bs-navbar-height));
	background-color: var(--side-bar-bg);
	border-right: solid 1px var(--border-color);
	width: var(--bs-sideMenu-width);
	transition: width 0.3s ease;
	padding: 10px 0px 10px 10px;
	/*不会因为flex而变化*/
	flex-shrink: 0;
	overflow-x: hidden;
	overflow-y: auto;
	/*保留滚动条宽度*/
	scrollbar-gutter: stable;
}

/* 正常显示（图标+文字） */
.sidemenuitem {
	display: flex;
	align-items: center;
	padding: 5px;
	margin: 5px 0;
	cursor: pointer;
	text-decoration: none;
	color: #212529;
	transition: all 0.2s;
	border-radius: 6px;
	font-size: 14px;
}

.sidemenuitem.active {
	background-color: #edeef0;
}

#sideMenu .sidemenuitem .menu-icon {
	font-size: 16px;
}

#sideMenu .sidemenuitem .menu-text {
	flex: 1;
	white-space: nowrap;
	margin-left: 10px;
}

.sideMenu .sidemenuitem .arrow {
	font-size: 14px;
	transition: transform 0.3s;
}

.sideMenu .sidemenuitem.active .arrow {
	transform: rotate(90deg) !important;
}

/* 二级菜单 */
#sideMenu .submenu {
	overflow: hidden;
	height: 0;
	transition: height 0.3s ease;
}

#sideMenu .submenu.show {
	height: auto;
}

#sideMenu .submenu a {
	display: block;
	white-space: nowrap;
	padding: 5px 14px;
	padding-left: 40px;
	margin: 5px 0;
	color: #495057;
	text-decoration: none;
	border-radius: 6px;
	font-size: 14px;
}

#sideMenu .submenu a:hover:not(.active) {
	background: rgba(97, 143, 243, 0.2);
}

#sideMenu .submenu a.active {
	background-color: rgb(97, 143, 243);
	color: white;
}


#sideMenu.collapsed {
	/*折叠后的宽度*/
	--bs-sideMenu-width: 50px;
}

.sideMenu.collapsed .menu-text,
.sideMenu.collapsed .arrow,
.sideMenu.collapsed .submenu {
	display: none !important;
}

/*--------------------------------------主内容tab---------------------------------------*/
.tabHeader {
	display: flex;
	margin-left: 20px;
}

.tabNav {
	padding: 5px 15px;
	border-top: solid 3px rgba(0, 0, 0, 0);
	cursor: pointer;
}

.tabNav.active {
	border-top: solid 3px #408DFB;
	border-left: solid 1px #DEE2E6;
	border-right: solid 1px #DEE2E6;
	border-start-start-radius: 3px;
	border-start-end-radius: 3px;
	background-color: #F9F9FB;
	font-weight: bold;
	z-index: 1;
}

.tabContent {
	background-color: #F9F9FB;
	border-top: solid 1px #DEE2E6;
	margin-top: -1px;
}

/*-----------------------------页面顶部标题栏------------------------*/
.content-title-wrapper {
	display: flex;
	justify-content: space-between;
	background-color: white;
	border-bottom: solid 1px var(--border-color);
	padding-inline-end: 1.25rem !important;
	padding-inline-start: 1.25rem !important;
	padding-block-start: 0.75rem !important;
	padding-block-end: 0.75rem !important;
}

/*-----------------------------页面主体底部操作栏------------------------*/
.bottom-op-bar {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	z-index: 20;
}

.text-primary {
	color: var(--bs-primary);
}

.form-control[readonly]:focus,
.form-control[readonly]:hover {
	border-color: var(--bs-danger);
}

/*------------------------------自定义card----------------------------*/
.my-card {
	border-radius: 10px;
	border: 1px solid #e8ecf1;
	/* box-shadow: 0 1px 3px rgba(43, 108, 255, 0.04); */
	/* 完整参数：右10 下10 模糊5 扩展2 灰色 */
	box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.1);
	position: relative;
	/* overflow: hidden; 不能加！SELECT2会显示不完整！！*/
}

.rounded-top-10 {
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
}

.my-card .card-title {
	font-size: 16px;
	font-weight: 600;
	color: #1a2a3a;
	margin-bottom: 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.vdot {
	width: 4px;
	height: 18px;
	background: #2b6cff;
	border-radius: 2px;
	display: inline-block;
	margin-right: 8px;
}

.vdotText {
	color: #2b6cff;
	font-size: 16px;
}

/*card右上角提示*/
.my-card .warning-tip {
	background-color: var(--bs-warning-bg-subtle);
	color: var(--bs-warning);
	position: absolute;
	right: 0;
	top: 0;
	padding: 5px 20px;
	font-size: 14px;
	font-weight: normal;
	border-bottom-left-radius: 10px;
	border-top-right-radius: 10px;
}

/*----------------------------------------------自定义弹出菜单----------------------------*/
.my-pop-btn {
	width: 1px;
	height: 1px;
	padding: 0;
	border: 0;
	opacity: 0;
}

.my-pop-btn::after {
	display: none;
}


/*-----------------------------------------------分页导航---------------------------*/
.pagination-container {
	position: absolute;
	left: 0;
	bottom: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: white;
	box-shadow: 0 -1px 3px rgba(43, 108, 255, 0.04);
	z-index: 10;
}

/*--------------------------------------------------------调整原CSS-------------------------------------*/
/*POPOVER*/
.popover-body {
	font-size: 15px !important;
	line-height: 2em !important;
}


/*SELECT2*/
/* 清除按钮*/
.select2-selection__clear {
	padding: 0px 5px !important;
	margin-right: -3px !important;
	margin-top: 1px !important;
}

.select2-selection__clear:hover {
	color: var(--bs-danger) !important;
}

/*阴影，同INPUT匹配*/
.select2-container--default {
	--bs-select-active-box-shadow: 0 0 0 3px rgba(64, 141, 251, 0.16);
}


/*选项：不换行*/
.select2-container--default .select2-results__option .select2-results__option {
	padding-inline-start: 0.75rem;
}

/*----------------------------------------------------------tab-------------------------------------*/
.nav-tabs {
	background: none !important;
}

.alert-outline-warning {
	border-radius: 3px;
	background-color: var(--bs-warning-bg-subtle);
}

/*----------------------------------------------------------标题宽度-------------------------------------*/
.text-w-6 {
	width: 100px;
	padding: 0 10px;
}

/*----------------------------------------------------------首页-----------------------------------------*/
.gradient-bg-success {
	background: linear-gradient(45deg, var(--bs-success-bg-subtle), transparent);
	border-radius: 5px;
}

.gradient-bg-info {
	background: linear-gradient(45deg, var(--bs-info-bg-subtle), transparent);
	border-radius: 5px;
}

.gradient-bg-warning {
	background: linear-gradient(45deg, var(--bs-warning-bg-subtle), transparent);
	border-radius: 5px;
}

.gradient-bg-danger {
	background: linear-gradient(45deg, var(--bs-danger-bg-subtle), transparent);
	border-radius: 5px;
}

.gradient-bg-primary {
	background: linear-gradient(45deg, var(--bs-primary-bg-subtle), transparent);
	border-radius: 5px;
}

.fast-link {
	color: #393e5a;
	border-radius: 5px;
	padding: 8px 15px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.fast-link i {
	display: none;
}

.fast-link:hover {
	color: black;
	font-weight: 500;
	background-color: #f6f6f6;
}

.fast-link:hover i {
	display: block;
}

/*-------------------------------------------表格编辑下拉菜单INITDROPDOWN----------------------------------*/
.editable-cell.cell-dropdown-trigger {
	--cell-dropdown-trigger-right: .375rem;
	/*距离右侧*/
	--cell-dropdown-trigger-space: 2.5rem;
	/*距离文字*/
	position: relative;
	padding-right: var(--cell-dropdown-trigger-space) !important;
}

.editable-cell.cell-dropdown-trigger::after {
	--cell-dropdown-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9l6 6l6-6'/%3E%3C/svg%3E");
	position: absolute;
	top: 50%;
	right: var(--cell-dropdown-trigger-right);
	width: 1rem;
	height: 1rem;
	content: '';
	cursor: pointer;
	background-color: var(--bs-secondary-color);
	-webkit-mask: var(--cell-dropdown-chevron) no-repeat center / 100% 100%;
	mask: var(--cell-dropdown-chevron) no-repeat center / 100% 100%;
	transform: translateY(-50%);
	transition: transform .15s ease;
}

.editable-cell:hover.cell-dropdown-trigger::after {
	background-color: var(--bs-primary);
}

.editable-cell.cell-dropdown-trigger.cell-dropdown-open::after {
	transform: translateY(-50%) rotate(180deg);
}


/*-------------------------------------------单元格按钮----------------------------------*/
.cell-btn {
	--cell-btn-right: .375rem;
	--cell-btn-space: 1.75rem;
	position: relative;
	padding-right: var(--cell-btn-space) !important;
}

.cell-btn::after {
	--cell-btn-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXBlbmNpbC1ib2x0Ij48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTQgMjBoNGwxMC41IC0xMC41YTIuODI4IDIuODI4IDAgMSAwIC00IC00bC0xMC41IDEwLjV2NCIgLz48cGF0aCBkPSJNMTMuNSA2LjVsNCA0IiAvPjxwYXRoIGQ9Ik0xOSAxNmwtMiAzaDRsLTIgMyIgLz48L3N2Zz4=");
	position: absolute;
	top: 50%;
	right: var(--cell-btn-right);
	width: 1rem;
	height: 1rem;
	content: '';
	cursor: pointer;
	background-color: var(--bs-secondary-color);
	-webkit-mask: var(--cell-btn-icon) no-repeat center / 100% 100%;
	mask: var(--cell-btn-icon) no-repeat center / 100% 100%;
	transform: translateY(-50%);
}

.cell-btn:hover::after {
	background-color: var(--bs-primary);
}

/* contenteditable 清空后保持一个单行行盒，不向 DOM 写入 br 或零宽字符。 */
.editable-cell.cell-dropdown-trigger[contenteditable="true"]:empty::before {
	content: '\200B';
}

/* 日期单元格与下拉单元格一致：清空后仍保留单行行盒，避免行高塌缩。 */
.editable-cell.cell-date[contenteditable="true"]:empty::before {
	content: '\200B';
}

.cell-autocomplete {
	position: fixed;
	z-index: 1090;
	display: none;
	min-width: 180px;
	max-width: 320px;
	max-height: 220px;
	overflow-x: hidden;
	overflow-y: auto;
	padding: .25rem;
	color: var(--bs-body-color);
	font-size: var(--bs-body-font-size);
	line-height: 1.5;
	background: var(--bs-paper-bg, #fff);
	border: 1px solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	box-shadow: var(--bs-box-shadow-lg);
}

.cell-autocomplete-item {
	padding: .4rem .65rem;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	border-radius: calc(var(--bs-border-radius) - 2px);
	cursor: pointer;
}

.cell-autocomplete-group {
	padding: .4rem .65rem .25rem;
	font-size: .8125rem;
	font-weight: 600;
	white-space: nowrap;
	pointer-events: none;
}

.cell-autocomplete-item:hover,
.cell-autocomplete-item.active {
	background: var(--bs-light-bg-subtle);
}

.cell-autocomplete-empty {
	padding: .4rem .65rem;
	color: var(--bs-secondary-color);
	white-space: nowrap;
}

td.cell-date {
	padding-top: .5rem !important;
	padding-bottom: .5rem !important;
	max-width: 8rem;
	min-width: 7rem;
}

.cell-date-picker-anchor {
	position: fixed;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

/* initCellDatePicker 使用 initCellButton 的交互区域，日期列改为日历图标。 */
.cell-date.cell-btn::after {
	--cell-btn-icon: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik00IDVtMCAyYTIgMiAwIDAgMSAyIC0yaDEyYTIgMiAwIDAgMSAyIDJ2MTBhMiAyIDAgMCAxIC0yIDJoLTEyYTIgMiAwIDAgMSAtMiAtMnoiLz48cGF0aCBkPSJNMTYgM2wwIDQiLz48cGF0aCBkPSJNOCAzbDAgNCIvPjxwYXRoIGQ9Ik00IDExbDE2IDAiLz48cGF0aCBkPSJNMTEgMTVsMSAwIi8+PHBhdGggZD0iTTEyIDE1bDAgMyIvPjwvc3ZnPg==");
}

/*-------------------------------下滑线按钮----------------*/
.btn-underline {
	padding: 12px 8px 8px;
	margin-right: 2rem;
	font-size: 16px;
	font-weight: 500;
	cursor: pointer;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}

.btn-underline:hover {
	border-bottom: 3px solid rgba(var(--bs-info-rgb), 0.5);
}

.btn-underline.active {
	font-weight: 600;
	border-bottom: 3px solid var(--bs-info);
}

.welcomeBG {
	background-color: #fcfcfe !important;
	background-image: url(/assets/img/welcome-bg.svg);
	background-repeat: repeat-x;
	padding: 10px 20px;
}

/*----------------------------------------------欢迎页NOTICE滚动------------------------------------*/
.welcome-notice-ticker {
	cursor: pointer;
	flex: 0 1 auto;
	max-width: 60%;
	min-width: 0;
	overflow: hidden;
	width: fit-content;
}

.welcome-notice-viewport {
	height: 2.25rem;
	overflow: hidden;
	width: 100%;
}

.welcome-notice-track {
	transform: translateY(0);
	width: 100%;
}

.welcome-notice-track.is-moving {
	transition: transform 0.45s ease;
}

.welcome-notice-item {
	align-items: center;
	display: flex;
	gap: 0.6rem;
	height: 2.25rem;
	justify-content: flex-end;
	min-width: 0;
	padding-inline: 0.25rem;
	width: 100%;
}

.welcome-notice-item>i {
	flex: 0 0 auto;
	font-size: 1.25rem;
}

.welcome-notice-title {
	font-weight: 500;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.welcome-notice-time {
	flex: 0 0 auto;
	white-space: nowrap;
}

@media (max-width: 991.98px) {
	.welcomeBG {
		flex-wrap: wrap;
	}

	.welcome-notice-ticker {
		margin-left: 4.5rem !important;
		margin-top: 0.5rem;
		max-width: calc(100% - 4.5rem);
		min-width: 0;
		width: calc(100% - 4.5rem);
	}

}

/*复制文字*/
.copy-text {
	cursor: pointer;
}

.copy-text:hover {
	color: var(--bs-primary)
}

/*--------------------------------------------typeahead---------------------------------*/

.twitter-typeahead .tt-menu .tt-suggestion .tt-highlight {
	color: var(--bs-success)
}

.twitter-typeahead .tt-menu {
	/* width: 100%; */
	max-height: 300px;
	overflow-y: auto;
	overflow-x: hidden;
}

/*--------------------------------------------input 清除按钮--------------------------------*/
/* 自动生成的包裹层 */
.clearable-wrap {
	position: relative;
	display: inline-block;
	width: 100%;
}

.clearable-wrap input {
	/* padding-right: 28px !important; */
}

/* 清除按钮：默认隐藏 */
.clearable-btn {
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border: none;
	border-radius: 50%;
	background: #c0c4cc;
	color: #fff;
	font-size: 12px;
	line-height: 12px;
	text-align: center;
	cursor: pointer;
	display: none;
	/* 默认隐藏 */
	padding: 0;
	margin: 0;
	z-index: 2;
	transition: background 0.15s;
}

.clearable-btn:hover {
	background: var(--bs-danger);
}

/* 关键：有内容 且 (hover 或 focus-within) 时才显示 */
.clearable-wrap.has-content:hover:has(input:not([readonly])) .clearable-btn,
.clearable-wrap.has-content:focus-within:has(input:not([readonly])) .clearable-btn {
	display: block;
}

/* readonly 时强制隐藏，避免其他样式覆盖 */
.clearable-wrap:has(input[readonly]) .clearable-btn {
	display: none;
}

/*-------------------------------------------------表格小图标按钮-----------------------------*/
i.icon-btn-del,
i.icon-btn-edit,
i.icon-btn-add,
i.icon-btn-cancel,
i.icon-btn-save {
	padding: 0 5px;
	color: var(--bs-secondary);
	cursor: pointer;
}

i.icon-btn-del:hover,
i.icon-btn-cancel:hover {
	color: var(--bs-danger);
}

i.icon-btn-add:hover,
i.icon-btn-edit:hover {
	color: var(--bs-primary)
}

i.icon-btn-save:hover {
	color: var(--bs-success)
}


/*---------------------------------------------------系统通知详情 Modal----------------------------------*/

.notice-detail-content {
	padding: 1.25rem 1.5rem;
	font-size: 15px;
	height: 40vh;
	overflow-y: auto;
	background-color: rgba(var(--bs-secondary-rgb), 0.04);
	box-sizing: border-box;
}

.notice-editor .ql-editor {
	min-height: 180px;
}

.notice-rich-content {
	white-space: normal;
}

.notice-rich-content.ql-container {
	border: 0;
	font-family: inherit;
	font-size: inherit;
}

.notice-rich-content .ql-editor {
	line-height: 1.8;
	min-height: 0;
	overflow: visible;
	padding: 0;
}

/* 公告附件单独靠右显示；仅匹配公告上传目录，不影响正文中的普通链接。 */
.notice-editor .ql-editor p:has(a[href^="/file/"]),
.notice-rich-content .ql-editor p:has(a[href^="/file/"]) {
	text-align: right;
}

.notice-editor .ql-editor a[href^="/file/"],
.notice-rich-content .ql-editor a[href^="/file/"] {
	font-size: 0.8125rem;
}


/*---------------------------------使用原生滚动条--------------------------------------*/
/* 原生滚动容器 */
.scroll-container,
.table-scroll-container {
	overflow: auto;
}

.scroll-container[data-scrollx="no"],
.table-scroll-container[data-scrollx="no"] {
	overflow-x: hidden;
}

.scroll-container[data-scrolly="no"],
.table-scroll-container[data-scrolly="no"] {
	overflow-y: hidden;
}

/* 全局统一原生滚动条样式 */
* {
	scrollbar-width: thin;
	scrollbar-color: var(--bs-gray-300) transparent;
}

/* Chrome、Edge、Safari */
*::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

*::-webkit-scrollbar-track {
	background: transparent;
}

*::-webkit-scrollbar-thumb {
	background-color: var(--bs-gray-300);
	background-clip: content-box;
	border: 2px solid transparent;
	border-radius: 999px;
}

*::-webkit-scrollbar-thumb:hover {
	background-color: var(--bs-gray-200);
}

*::-webkit-scrollbar-thumb:active {
	background-color: var(--bs-gray-500);
}

*::-webkit-scrollbar-corner {
	background: transparent;
}

/*内页标题头*/
.inner-title {
	background-color: #fcfcfe !important;
	background-image: url(/assets/img/welcome-bg.svg);
	background-repeat: repeat-x;
	height: 46px;
}

.flex-nowrap {
	flex-wrap: nowrap !important;
}

/*面料订单坯布用纱按钮*/
.detailYarnItem {
	margin: 2px 0;
	/* border: solid rgba(0, 0, 0, 0) 1px;
	padding: 2px 5px;
	border-radius: 5px;
	background-color: transparent; */
}

.detailYarnItem:hover {
	/* border: solid var(--bs-success) 1px;
	background-color: var(--bs-success-bg-subtle); */
}

.detailYarnItem .btn {
	visibility: hidden;
	opacity: 0;
	transition: opacity .2s ease;
}

.detailYarnItem:hover .btn {
	visibility: visible;
	opacity: 1;
}

/*进度圆环*/
.ring {
	--percent: 0;
	--size: 62px;
	--thickness: 7;

	width: var(--size);
	aspect-ratio: 1;
	position: relative;
	display: grid;
	place-items: center;
	background: transparent;
}

.ring.warning {
	--ring-color: var(--bs-warning);
}

.ring.danger {
	--ring-color: var(--bs-danger);
}

.ring.success {
	--ring-color: var(--bs-success);
}

.ring svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.ring circle {
	fill: none;
	stroke-width: var(--thickness);
}

.ring__track {
	stroke: #e8e8e8;
}

.ring__value {
	stroke: var(--ring-color);
	stroke-linecap: round;
	stroke-dasharray: var(--percent) 100;
	transition: stroke-dasharray .5s ease;
}

.ring>span {
	position: relative;
	font-size: calc(var(--size) * 0.21);
}

/*月份下拉框*/
.check-month-calendar .flatpickr-current-month .numInputWrapper {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	inline-size: auto;
	left: 0;
}

.check-month-calendar .numInputWrapper input.cur-year {
	inline-size: 4.5ch;
	padding: 0;
}

.check-month-calendar .numInputWrapper::after {
	content: '年';
	flex: none;
	pointer-events: none;
}
