/* 避免页面遮盖住tp调试页面 */
.layui-layout-admin .layui-body {
	z-index: -1;
}

/* 自托管官网同款字体（可变字重，仅 latin 子集约 80KB；中文自动回落苹方/雅黑） */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('fonts/inter-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'JetBrains Mono';
	font-style: normal;
	font-weight: 100 800;
	font-display: swap;
	src: url('fonts/jetbrains-mono-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body {
	color: var(--ns-fg);
	background-color: var(--ns-bg);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	letter-spacing: -0.011em;
}

/* 文字颜色 */
.red-color {
	color: red !important;
}

.text-color-sub {
	color: var(--ns-fg-2) !important;
}

.text-color {
	color: var(--base-color) !important;
}

.text-color-gray {
	color: var(--ns-fg-3) !important;
}

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

.border-after-color::after {
	border-color: var(--base-color) !important;
}

.bg-color {
	background-color: var(--base-color) !important;
}

.bg-color-gray {
	background-color: #5a5a5a !important;
}

.layui-input-block {
	line-height: 34px;
}

.layui-form-item {
	margin-bottom: 10px;
}

.layui-form-item .layui-input-inline {
	width: auto;
	line-height: 34px;
}

.layui-form-item .layui-table-view, .layui-form-item .layui-form-checkbox[lay-skin=primary] {
	margin-top: 0;
}

.layui-form-item .layui-table-tool {
	min-height: 40px;
	padding: 0;
}

.layui-input-inline.input-append {
	margin-right: 0;
}

.layui-input-inline.input-append .layui-input {
	padding-right: 30px;
}

.layui-input-inline.input-append + .layui-form-mid {
	width: 30px !important;
	text-align: center;
	margin-left: -30px;
}

.layui-form-mid, .layui-word-aux {
	display: inline-block;
	height: 34px;
	line-height: 34px;
	padding: 0 !important;
}

.word-aux {
	margin-left: 200px;
	display: block;
	margin-top: 5px;
	color: #B2B2B2;
	font-size: 12px;
	line-height: 1.6;
}

.word-aux.sm {
	margin-left: 80px;
}

.word-aux.mid {
	margin-left: 150px;
}

.layui-form-label {
	width: 200px;
	height: 34px;
	line-height: 34px;
	padding: 0 10px 0 0;
	box-sizing: border-box;
	color: #454545 !important;
}

.layui-form-label.sm {
	width: 80px;
}

.layui-form-label.mid {
	width: 150px;
}

.layui-form-label + .layui-input-block {
	margin-left: 200px;
}

.layui-form-label.sm + .layui-input-block {
	margin-left: 80px;
}

.layui-form-label.mid + .layui-input-block {
	margin-left: 150px;
}

/* 必填标志 */
.required {
	color: red;
	margin-right: 3px;
}

/* 输入框 */
.layui-input {
	height: 34px;
	line-height: 34px;
	font-size: 14px;
	border-color: var(--ns-border-color);
}

.layui-input:focus {
	border-color: var(--base-color) !important;
}

/* input宽度 */
.len-short {
	width: 120px !important;
}

.len-mid {
	width: 250px !important;
}

.len-long {
	width: 450px !important;
}

.special-length {
	width: 950px !important;
}

/* 选择框 */
.layui-select {
	border-color: var(--ns-border-color);
	height: 34px;
	line-height: 34px;
	font-size: 14px;
}

.layui-select:focus {
	border-color: var(--base-color) !important;
}

.layui-form-select dl {
	z-index: 9999;
}

.layui-form-select dl dd.layui-this {
	background-color: var(--base-color);
}

/* 文本框 */
.layui-textarea {
	display: inline-block;
	resize: none;
}

.layui-textarea:focus {
	border-color: var(--base-color) !important;
}

.layui-textarea::-webkit-scrollbar {
	display: none;
}

/* 单选框 */
.layui-form-radio > i:hover, .layui-form-radioed > i {
	color: var(--base-color);
}

.layui-form-radio:hover *, .layui-form-radioed, .layui-form-radioed > i {
	color: var(--base-color);
}

.layui-unselect.layui-form-radio.layui-form-radioed i:after {
	content: "";
	position: absolute;
	width: 8px;
	height: 8px;
	background: var(--base-color);
	border-radius: 50%;
	left: 4px;
	top: 10px;
}

/* 复选框 */
.layui-form-checked[lay-skin='primary'] i {
	border-color: var(--base-color) !important;
	background-color: var(--base-color);
	color: #fff;
}

.layui-form-checkbox[lay-skin='primary']:hover i {
	border-color: var(--base-color);
}

/* 开关 */
.layui-form-switch {
	margin-top: 6px;
	border-radius: 16px;
	border-color: var(--ns-border-color);
}

.layui-form-switch i {
	width: 21px;
	height: 21px;
	border-radius: 25px;
	background-color: var(--ns-panel);
	position: absolute;
	z-index: 2;
	top: 0;
	left: 1px;
	-webkit-transition-duration: 0.3s;
	transition-duration: 0.3s;
	-webkit-box-shadow: 0 2px 5px #5a5a5a;
	box-shadow: 0 2px 5px #5a5a5a;
}

.layui-form-switch.layui-form-onswitch i {
	left: 46px;
}

.layui-form-onswitch {
	background-color: var(--base-color);
}

/* 日期 */
.layui-laydate-header i:hover, .layui-laydate-header span:hover {
	color: var(--base-color) !important;
}

.layui-laydate .layui-laydate-content .layui-this {
	background-color: var(--base-color) !important;
}

.layui-laydate-footer span:hover {
	color: var(--base-color) !important;
}

.layui-laydate-footer span[lay-type=date] {
	color: var(--base-color) !important;
}

/* 日历图标 */
.calendar {
	position: absolute;
	top: 0;
	right: 0;
	width: 34px;
	height: 34px;
	z-index: 0;
}

/* 表单的其他设置 */
:root input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
	box-shadow: 0 0 50px 50px white inset;
}

.layui-breadcrumb a:hover {
	color: var(--base-color) !important;
}

.table-tab {
	margin-top: 14px;
}

.table-tab.mt-auto {
	margin-top: 0;
}

.table-tab .layui-tab-title {
	height: 41px;
	border-color: var(--ns-border-color);
	background: transparent;
}

.table-tab .layui-tab-title li {
	background-color: transparent;
	border: 0;
	position: relative;
	line-height: 40px;
	color: var(--ns-fg-2);
	font-weight: 500;
	transition: color 0.25s var(--ns-ease), background-color 0.25s var(--ns-ease);
}

.table-tab .layui-tab-title li:hover {
	color: var(--ns-fg);
	background-color: rgba(15, 23, 42, 0.04);
}

.table-tab .layui-tab-title li.layui-this {
	background: transparent;
	color: var(--base-color);
}

.table-tab .layui-tab-title li.layui-this::after {
	content: '';
	position: absolute;
	left: 10px;
	right: 10px;
	top: auto;
	bottom: 0;
	width: auto;
	height: 2px;
	background: var(--base-color);
	border: none;
	border-radius: 0;
}

.table-tab .layui-tab-content {
	padding: 0;
	border: none;
	background-color: var(--ns-panel);
}

.layui-table.mt-auto {
	margin-top: 0;
}

.layui-table th {
	background-color: var(--ns-panel-2);
}

.layui-table .table-btn {
	display: flex;
	flex-wrap: wrap;
}

.layui-table .layui-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 23px;
	border-radius: 50px;
	background-color: transparent;
	text-align: center;
	padding: 2px 8px 2px 0;
	margin: 5px 0 5px 5px;
	position: relative;
	color: var(--base-color);
}

.layui-table.pithy-table {
	margin-top: 15px;
	border: 0;
}

.layui-table.pithy-table thead th {
	height: 40px;
	line-height: 40px;
	border: 0;
	border-bottom: 1px solid var(--ns-border-color);
}

.layui-table.pithy-table tbody td {
	min-height: 40px;
	border: 0;
}

.layui-table.pithy-table tbody tr {
	border-bottom: 1px solid var(--ns-border-color);
}

.layui-table.pithy-table tbody tr:last-of-type {
	border-bottom: 0;
}

.layui-table-header {
	border: 0;
	background-color: var(--ns-panel-2);
	border-bottom-color: var(--ns-border-color);
}

.layui-table-view {
	margin-top: 15px;
	background-color: var(--ns-panel);
	border: 0;
}

.layui-table-view .layui-table[lay-skin=line] {
	width: 100%;
	border: 0;
}

.layui-table-view .layui-table thead tr {
	background-color: var(--ns-panel);
}

.layui-table-view .layui-table tbody td > div {
	height: auto !important;
}

.layui-table-view .layui-table thead span {
	font-weight: 400;
	color: var(--ns-fg);
}

.layui-table-view .table-btn {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.layui-table-view tr .layui-btn {
	color: var(--base-color);
	display: flex;
	justify-content: right;
	align-items: center;
	height: 23px;
	border-radius: 50px;
	background-color: transparent;
	font-size: 14px;
	text-align: center;
	padding: 2px 2px 2px 8px;
	margin: 5px 0;
	position: relative;
}

.layui-table-view .layui-table tbody td .text {
	white-space: pre-wrap;
	line-height: 20px;
}

/* 改变表格固定高度 */
.layui-table-view .layui-table[lay-size=lg] .layui-table-cell {
	height: auto;
	font-size: 14px;
}

.layui-table tbody tr:hover, .layui-table-click {
	background-color: rgba(15, 23, 42, 0.05) !important;
}

/* //表格中图片表现形式 */
.table-title {
	display: flex;
	align-items: center;
}

.table-title .title-pic {
	flex-shrink: 0;
	display: inline-block;
	width: 50px;
	height: 50px;
	text-align: center;
	line-height: 50px;
	margin-right: 10px;
}

.table-title .title-pic img {
	max-width: 100%;
	max-height: 100%;
}

.table-title .title-content {
	overflow: hidden;
	flex: 1;
	line-height: 1.8;
}

.layui-tab-brief li.layui-this {
	color: var(--base-color) !important;
}

.layui-tab-brief li.layui-this:after {
	border-bottom-color: var(--base-color) !important;
}

.table-bottom {
	border-top: 1px solid var(--ns-border-color);
	padding-top: 10px;
	padding-bottom: 15px;
	position: relative;
}

.table-bottom .layui-form-checkbox[lay-skin=primary] {
	padding-left: 24px;
	margin-top: 5px;
}

.table-bottom .layui-table-bottom-tool-temp {
	line-height: 34px;
}

.table-bottom .layui-table-bottom-tool-temp .layui-form-checkbox[lay-skin=primary] {
	padding-left: 0;
}

.table-bottom .layui-table-bottom-tool-temp .tool-temp-checkbox {
	display: inline-block;
	width: 3%;
	text-align: center;
}

.table-bottom .layui-table-bottom-tool-temp .tool-temp-btns {
	display: inline-block;
	margin-left: 10px;
}

.table-bottom .layui-btn {
	padding: 0 5px;
	font-size: 12px;
	line-height: 2 !important;
	height: auto;
	display: inline-block;
	margin-top: 3px;
}

.table-bottom .layui-table-page {
	position: absolute;
	right: 0;
	top: 15px;
	width: auto;
	border-top: 0;
	padding: 0 !important;
	height: 34px !important;
	padding-top: 2px !important;
}

.layui-laypage a:hover {
	color: var(--ns-fg) !important;
}

.layui-laypage .layui-laypage-curr .layui-laypage-em {
	background-color: var(--base-color) !important;
}

.layui-laypage input:focus, .layui-laypage select:focus {
	border-color: var(--base-color) !important;
}

.layui-btn {
	color: #fff;
	padding: 0 16px;
	background-color: var(--base-color);
	height: 34px;
	line-height: 34px;
	font-size: 14px;
}

.layui-btn.layui-btn-xs {
	height: 22px;
	line-height: 22px;
	padding: 0 5px;
	font-size: 12px;
}

.layui-btn.layui-btn-sm {
	height: 30px;
	line-height: 30px;
	padding: 0 10px;
	font-size: 12px;
}

.layui-btn.layui-btn-primary {
	color: var(--ns-fg);
	border-color: var(--ns-border-color);
	background-color: var(--ns-panel);
}

.layui-btn.layui-btn-primary:hover {
	color: var(--ns-fg);
	opacity: 1;
	border-color: var(--ns-border-color);
}

.layui-btn-disabled, .layui-btn-disabled:active, .layui-btn-disabled:hover {
	color: #C9C9C9 !important;
}

.layui-btn-primary.date-picker-btn.selected {
	background-color: var(--base-color);
	border-color: var(--base-color);
	color: #FFFFFF;
}

.form-row {
	margin-top: 20px;
	margin-left: 200px;
}

.form-row.sm {
	margin-left: 80px;
}

.form-row.mid {
	margin-left: 150px;
}

.form-row .layui-btn {
	height: 34px;
	line-height: 34px;
}

.prompt-block {
	display: flex;
	align-items: center;
}

.prompt-block .prompt {
	width: 18px;
	height: 18px;
	line-height: 18px;
	position: relative;
}

.prompt-block .prompt:hover .prompt-box {
	display: inline-block;
}

.prompt-block .prompt .iconfont {
	color: #000;
	font-weight: 100;
	margin-left: 3px;
	cursor: pointer;
}

.prompt-block .prompt-box {
	position: absolute;
	top: -20px;
	left: 32px;
	border: 1px solid #e4e4e4;
	width: 280px;
	text-align: left;
	border-radius: 5px;
	background-color: var(--ns-panel);
	padding: 15px;
	box-sizing: border-box;
	word-break: break-all;
	color: var(--ns-fg-2);
	line-height: 24px;
	z-index: 999;
	display: none;
	font-weight: normal;
}

.prompt-block .prompt-box:before, .prompt-block .prompt-box:after {
	content: "";
	display: inline-block;
	border: solid transparent;
	width: 0;
	height: 0;
	border-width: 12px;
	top: 16px;
	position: absolute;
}

.prompt-block .prompt-box:before {
	border-right-color: #e4e4e4;
	left: -25px;
}

.prompt-block .prompt-box:after {
	border-right-color: #FFFFFF;
	left: -23px;
}

.prompt-block .prompt-con {
	width: 100%;
	word-break: break-all;
	white-space: normal;
}

.square {
	width: 100px;
	height: 100px;
}

.square .operation i {
	line-height: 90px;
	font-size: 25px !important;
	margin-left: 0 !important;
	margin-right: 10px !important;
}

.square .operation i:last-child {
	margin-right: 0 !important;
}

.square .upload-default .preview_img {
	line-height: 80px;
}

.upload_img_square {
	display: inline-block;
	width: 80px;
	height: 80px;
	line-height: 78px;
	font-size: 30px;
	color: #bbbbbb;
	cursor: pointer;
	border: 1px dashed var(--ns-border-color);
	text-align: center;
	margin-bottom: 10px;
	margin-right: 10px;
}

.upload_img_square_item {
	display: inline-block;
	float: left;
	width: 80px;
	height: 80px;
	position: relative;
	border: 1px dashed var(--ns-border-color);
	text-align: center;
	transition: background-color 0.4s var(--ns-ease);
	margin-bottom: 10px;
	margin-right: 10px;
}

.upload_img_square_item:hover {
	border: 1px dashed var(--base-color);
	border-radius: 5px;
}

.upload_img_square_item:hover .operation {
	display: block;
}

.upload_img_square_item .img-wrap {
	width: 80px;
	height: 80px;
	font-size: 0;
	border-radius: 5px;
	overflow: hidden;
	position: relative;
}

.upload_img_square_item .img-wrap img {
	position: absolute;
	left: 50%;
	top:50%;
	transform: translate(-50%, -50%);
	max-width: calc(100% - 2px);
	max-height: calc(100% - 2px);
}

.upload_img_square_item .operation {
	position: absolute;
	top: 0;
	z-index: 10;
	width: 80px;
	height: 80px;
	line-height: 80px;
	background: rgba(0, 0, 0, 0.5);
	color: #fff;
	cursor: pointer;
	text-align: center;
	display: none;
}

.upload_img_square_item .operation i {
	font-size: 20px;
	margin-left: 10px;
}

.upload_img_square_item .operation i:first-child {
	margin-left: 0;
}

.upload_img_square_item .operation .replace_img {
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 24px;
	color: #fff;
	background: rgba(0, 0, 0, 0.5);
	font-size: 12px;
	line-height: 24px;
}

.upload-img-block.square {
	width: 100px;
	height: 100px;
}

.upload-img-block.square .operation i {
	line-height: 90px;
	font-size: 25px !important;
	margin-left: 0 !important;
	margin-right: 10px !important;
}

.upload-img-block.square .operation i:last-child {
	margin-right: 0 !important;
}

.upload-img-block.square .upload-default .preview_img {
	line-height: 80px;
}

.upload-img-block {
	padding: 10px;
	width: 250px;
	height: 120px;
	border: 1px dashed var(--ns-border-color);
	box-sizing: border-box;
	position: relative;
}

.upload-img-block .replace {
	display: none;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	bottom: 0;
	left: 0;
	color: #fff;
	position: absolute;
	text-align: center;
	line-height: 2;
	cursor: pointer;
}

.upload-img-block:hover .replace {
	display: block;
}

.upload-img-block .no-replace {
	color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	cursor: pointer;
}

.upload-img-block .upload-img-box {
	text-align: center;
	cursor: pointer;
	height: 100%;
}

.upload-img-block .upload-img-box .upload-default .preview_img {
	line-height: 80px;
}

.upload-img-block .upload-img-box .upload-default .preview_img, .upload-img-block .upload-img-box .upload-default .img_prev {
	max-width: 100%;
	max-height: 100%;
}

.upload-img-block .upload-img-box .upload-default .img_prev {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-height: 100%;
	max-width: 100%;
}

.upload-img-block .upload-img-box .upload-default .upload {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.upload-img-block .upload-img-box .upload-default .iconfont {
	font-size: 30px;
	color: #6D7278;
}

.upload-img-block .upload-img-box .upload-default p {
	color: var(--ns-fg-3);
	line-height: 20px;
	white-space: nowrap;
}

.upload-img-block .upload-img-box > img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-height: 100%;
	max-width: 100%;
}

.upload-img-block .del {
	background: #999;
	color: #FFFFFF;
	position: absolute;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	font-size: 12px;
	font-style: normal;
	line-height: 18px;
	text-align: center;
	right: -10px;
	top: -10px;
	cursor: pointer;
	z-index: 1;
	display: none;
}

.upload-img-block .del.show {
	display: block;
}

.upload-img-block .hover:hover .operation {
	display: block;
}

.upload-img-block .operation {
	display: none;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	color: #fff;
}

.upload-img-block .operation i {
	font-size: 25px !important;
	margin-left: 30px;
	line-height: 120px;
}

.upload-img-block .operation i:first-child {
	margin-left: 0;
}

.upload-img-block .operation .replace_img {
	position: absolute;
	bottom: 0;
	width: 100%;
	height: 24px;
	color: #fff;
	background: rgba(0, 0, 0, 0.5);
	font-size: 12px;
	line-height: 24px;
}

.upload-img-block .operation .upload-img-block {
	height: 120px;
}

.common-wrap {
	padding: 15px;
	margin: 15px 15px 0 15px;
	background: var(--ns-panel);
	border-radius: var(--ns-radius);
	border: 1px solid var(--ns-border-color);
	/*box-shadow: var(--ns-shadow-card);*/
}

/* 全局 layui 卡片质感 */
.layui-card {
	border-radius: var(--ns-radius);
	/*box-shadow: var(--ns-shadow-card);*/
}

.layui-card-header {
	font-weight: 500;
}

/* 概况统计块（工作台/会员概况/门店概况共用；营销概况与分销概况为卡片语义，已在各自页面重置 display/flex-wrap） */
.summary-wrap {
	display: flex;
	flex-wrap: wrap;
}

.summary-wrap .summary-item .title, .summary-wrap .summary-item .bottom-title {
	color: var(--ns-fg-3);
	font-size: 14px;
	margin-top: 5px;
}

.summary-wrap .summary-item .value {
	color: var(--ns-fg);
	font-size: 26px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	font-family: var(--ns-mono);
	letter-spacing: 0;
	margin-top: 10px;
}

.common-wrap .head {
	display: flex;
	align-items: center
}

.common-wrap .head .title {
	font-size: 16px;
	font-weight: 500;
	letter-spacing: -0.01em;
	position: relative;
	padding-left: 10px;
}

.common-wrap .head .title::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 14px;
	border-radius: 2px;
	background: var(--base-color);
}

.common-wrap .head .sub-title {
	margin-left: 10px;
	color: var(--ns-fg-3)
	font-family: var(--ns-mono);
	font-size: 12px;
}

.common-wrap .body {
	margin-top: 15px;
}

.card-common {
	margin-top: 15px;
	margin-bottom: 0;
	box-shadow: initial;
}

.card-common:first-of-type {
	margin-top: 0;
}

.card-common .layui-card-header {
	padding: 0 20px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: auto;
	line-height: initial;
}

.card-common .layui-card-body {
	padding: 20px;
}

.card-common .card-title {
	font-size: 14px;
	font-weight: 600;
}

.card-common .card-sub {
	color: var(--ns-fg-3);
	font-size: 12px;
}

.card-brief .layui-card-header {
	border-bottom: 0;
	padding-bottom: 0;
}

.card-brief.top {
	padding-top: 15px;
}

.card-brief .card-title {
	position: relative;
	padding-left: 10px;
}

.card-brief .card-title::before {
	content: "";
	display: inline-block;
	width: 3px;
	height: 14px;
	background-color: var(--base-color);
	position: absolute;
	left: 0;
	top: 50%;
	border-radius: 5px;
	transform: translateY(-50%);
}

/* 特殊 */
.card-common.head .layui-card-header {
	padding: 0 20px;
}

.card-common.content .layui-card-header {
	padding: 0 20px;
}

.card-brief .layui-card-header.simple .card-title::before {
	content: initial;
}

.card-brief .layui-card-header.simple .card-title {
	padding-left: 0;
	font-size: 16px;
}

/* 单行筛选面板 */
.single-filter-box {
	display: flex;
	justify-content: space-between;
	padding: 14px 0;
	background-color: var(--ns-panel);
	border-bottom: 1px solid #f5f7fa;
}

.single-filter-box .layui-form {
	margin-left: auto;
}

.single-filter-box .layui-form .layui-btn {
	border-color: var(--ns-border-color);
	padding: 0 10px;
}

.single-filter-box .layui-form .layui-input + .layui-btn {
	height: 30px;
	line-height: 30px;
	position: absolute;
	right: 1px;
	top: 1px;
	border-width: 0;
	border-left-width: 1px;
}

.single-filter-box .layui-input-inline {
	margin-left: 8px;
}

/* 多行筛选面板 */
.screen {
	border: 0;
	background-color: transparent;
	border-radius: 8px;
	min-height: 45px;
}

.screen .layui-colla-item {
	position: relative;
}

.screen .layui-colla-title {
	position: initial;
	height: 0;
}

.screen .layui-colla-title .layui-colla-icon {
	left: auto;
	transform: translateX(-50%);
	top: 0;
	color: #BEBEBE;
	right: 10px;
	z-index: 2;
	padding: 5px;
}

.screen .layui-colla-content {
	padding: 15px 0;
	border: 1px solid var(--ns-border-color);
}

.screen .layui-colla-content .layui-input, .screen .layui-colla-content .layui-form-select {
	width: 185px !important;
}

.screen .layui-form-label {
	width: 120px;
	font-size: 14px;
}

.screen .form-row {
	margin-left: 120px;
}

.detail-card {
	width: 100%;
	border: 1px solid var(--ns-border-color);
	padding: 20px 0 20px 80px;
	box-sizing: border-box;
	display: flex;
}

.detail-card .detail-img {
	width: 60px;
	height: 60px;
	text-align: center;
	margin-right: 15px;
}

.detail-card .detail-img img {
	max-width: 100%;
	max-height: 100%;
}

.detail-card .goods-name {
	font-size: 16px;
	font-weight: 600;
	color: var(--ns-fg);
}

.detail-card .detail-line {
	height: 32px;
	line-height: 32px;
	color: var(--ns-fg-2);
}

.detail-card .inline-span {
	display: inline-block;
	width: 220px;
}

.tips-wrap {
	padding: 6px;
	background-color: var(--ns-panel);
	border: 1px solid var(--ns-border-color);
	border-radius: 4px;
}

.tips-wrap .layui-colla-title {
	padding-left: 10px;
	height: 30px;
	font-size: 16px;
	font-weight: 400;
	line-height: 30px;
	background-color: transparent;
}

.tips-wrap .layui-colla-title .layui-colla-icon {
	left: 80px;
}

.tips-wrap .layui-colla-content {
	padding: 0 0 0 34px;
	border: none;
	color: var(--ns-fg-3);
}

.tips-wrap .layui-colla-content li {
	line-height: 25px;
	list-style: initial;
}

/* 面板内容 */
.panel-content .layui-card-body {
	display: flex;
	padding-bottom: 0 !important;
	padding-right: 50px !important;
	padding-left: 50px !important;
	flex-wrap: wrap;
}

.panel-content .layui-card-body .content {
	width: 33.3%;
	display: flex;
	flex-direction: column;
	margin-bottom: 30px;
	justify-content: center;
}

.panel-content .layui-card-body .content .title {
	color: var(--ns-fg-3);
	font-size: 14px;
}

.panel-content .layui-card-body .money {
	color: var(--ns-fg);
	font-size: 26px;
	margin-top: 10px;
	max-width: 250px;
}

.card {
	margin-top: 10px;
	padding: 20px;
	background-color: var(--ns-panel);
}

.item-block-parent {
	padding: 20px;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	background-color: var(--ns-panel);
	box-sizing: border-box;
	border-radius: 5px;
}

.item-block-parent .item-block {
	position: relative;
	display: inline-block;
	background: var(--ns-panel-2);
	box-sizing: border-box;
	border-radius: 4px;
}

.item-block-parent .item-block:hover {
	background: var(--ns-panel-2);
}

.item-block-parent .item-block-wrap {
	padding: 15px;
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
}

.item-block-parent .item-pic {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	text-align: center;
	line-height: 40px;
	margin-right: 10px;
}

.item-block-parent .item-pic img {
	max-width: 100%;
	max-height: 100%;
}

.item-block-parent .item-con {
	overflow: hidden;
	height: 40px;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
}

.item-block-parent .item-con .item-content-title {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 20px;
	font-size: 14px;
	color: var(--ns-fg-2);
}

.item-block-parent .item-con .item-content-icon {
	font-size: 12px;
	color: var(--ns-fg-3);
	margin-top: 2px;
}

.item-block-parent .item-con .item-content-icon .label {
	display: inline-block;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
	max-width: 66%;
	height: 18px;
	padding-left: 5px;
	padding-right: 5px;
	margin-right: 5px;
	margin-bottom: 5px;
	border: 1px solid var(--ns-border-color);
	vertical-align: middle;
	line-height: 18px;
	border-radius: 2px;
}

.item-block-parent .item-con .item-content-icon img {
	width: 16px;
	height: 16px;
	padding: 2px;
	margin-bottom: 5px;
}

.item-block-parent .item-con .item-content-desc {
	line-height: 20px;
	font-size: 12px;
	color: var(--ns-fg-3);
}

.item-block-parent .item-float-wrap {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	opacity: 0;
	transition: all 0.2s;
}

.item-block-parent .item-float {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 30px;
	line-height: 30px;
	padding: 0 20px;
	color: var(--ns-fg);
	box-sizing: border-box;

	background-color: var(--ns-panel-2);
	border-top: 1px solid var(--ns-border-color);
	font-size: 12px;
	display: flex;
	justify-content: space-between;
}

.item-block-parent .item-float i {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 5px;
}

.item-block-parent .item-float span {
	margin-left: 5px;
	margin-right: 5px;
}

.item-block-parent .item-block-hover:hover {
	border-color: transparent;
}

.item-block-parent .item-block-hover:hover .item-float-wrap {
	bottom: -30px;
	opacity: 1;
	z-index: 99;
}

.item-block-parent .item-poa-pic {
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 50px;
}

.item-block-parent .item-poa-pic img {
	width: 50px;
	height: 50px;
}

/* // 一行5个站点卡片时的排布 */
@media screen and (min-width: 1700px) {
	.item-block {
		width: 19%;
		margin-right: 1.25%;
		margin-bottom: 25px;
	}

	.item-block:nth-child(5n) {
		margin-right: 0;
	}
}

/* // 一行4个站点卡片时的排布 */
@media screen and (min-width: 1460px) and (max-width: 1699px) {
	.item-block {
		width: 23.5%;
		margin-right: 2%;
		margin-bottom: 25px;
	}

	.item-block:nth-child(4n) {
		margin-right: 0;
	}
}

/* // 一行3个站点卡片时的排布 */
@media screen and (max-width: 1459px) {
	.item-block {
		width: 31.5%;
		margin-right: 2%;
		margin-bottom: 25px;
	}

	.item-block:nth-child(3n) {
		margin-right: 0;
	}
}

.layui-colorpicker-main .layui-btn-container .layui-btn:last-of-type {
	background-color: var(--base-color);
}

.layui-elem-quote {
	position: relative;
	border: 0;
	font-size: 16px;
	background-color: transparent;
}

.layui-elem-quote:after {
	content: "";
	position: absolute;
	width: 3px;
	height: 20px;
	background-color: var(--base-color);
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

/********************************** 弹窗 - start **********************************/
/* 弹框阴影 */
.layui-layer {
	box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.08), 0 9px 28px rgba(0, 0, 0, 0.16) !important;
}

.layui-layer-dialog {
	border-radius: 8px;
	overflow: hidden;
}

.layui-layer-page {
	border-radius: 8px;
}

.layui-layer-title {
	font-weight: 500;
	background-color: var(--ns-panel);
	border-bottom: 1px solid var(--ns-border-color);
}

/* 弹框遮罩层颜色 */
.layui-layer-shade {
	background-color: #373737 !important;
	opacity: 0.6 !important;
}

.layui-layer-page .layui-layer-content {
	overflow: initial !important;
	padding: 20px;
}

.layui-layer-page .layui-layer-content .layui-form-selected dl {
	position: absolute;
}

.layui-layer-page #layui-layer-photos {
	padding: 0;
}

/* 弹框按钮 */
.layui-layer-btn .layui-layer-btn0 {
	border-color: var(--base-color) !important;
	background-color: var(--base-color) !important;
	color: #fff;
}

.layui-layer.layui-layer-dialog.layui-layer-msg {
	z-index: 99999999 !important;
}

.layui-table-tool {
	padding: 10px 0;
	background-color: var(--ns-panel);
	z-index: 1;
	border-bottom: 1px solid var(--ns-border-color);
}

.layui-table-tool .layui-table-tool-temp {
	padding: 0;
}

.layui-table-tool .layui-table-tool-temp .layui-btn {
	padding: 0 5px;
	font-size: 12px;
	line-height: 2 !important;
	height: auto;
	display: inline-block;
}

.layui-table-tool .layui-table-tool-temp .layui-form-checkbox[lay-skin=primary] {
	padding-left: 0;
}

.layui-table-tool .layui-table-tool-temp .tool-temp-checkbox {
	display: inline-block;
	width: 3%;
	text-align: center;
}

.layui-table-tool .layui-table-tool-temp .tool-temp-btns {
	display: inline-block;
	margin-left: 10px;
}

.release-layer .layui-layer-title {
	background: var(--ns-panel);
	border-bottom: 0;
	margin-top: 10px;
}

.release-layer .weapp-release .title {
	font-size: 16px;
	text-align: center;
}

.release-layer .weapp-release .desc {
	font-size: 16px;
	text-align: center;
	padding: 0 20px;
	margin-top: 30px;
	color: #555
}

.release-layer .weapp-release .operation-btns {
	margin-top: 60px;
}

.release-layer .operation-btns > div {
	margin-top: 10px;
	text-align: center;
}

.release-layer .operation-btns .layui-btn {
	width: 80%;
}

.footer {
	box-sizing: border-box;
	text-align: center;
	padding-bottom: 50px;
	padding-top: 50px;
	line-height: 1.8;
	color: var(--ns-fg-3);
}

.footer .gov-box img {
	max-width: 20px;
	max-height: 20px;
	margin-right: 5px;
}

.footer a {
	color: var(--ns-fg-3);
}

.footer-img img {
	max-width: 100px;
	max-height: 27px;
}

.footer-img {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 18px;
}

.footer-img span {
	display: inline-block;
	color: #898989;
	line-height: 25px;
	margin-right: 12px;
}

.common-loading-wrap {
	text-align: center;
	margin: 200px 0;
}

.common-loading-layer {
	width: 35px;
	height: 35px;
	perspective: 800px;
	transform-style: preserve-3d;
	transition: all 0.25s var(--ns-ease)-out;
	border-radius: 50%;
	border: 3px solid;
	border-left-color: var(--base-color);
	border-right-color: #C5C5C5;
	border-top-color: var(--base-color);
	border-bottom-color: #C5C5C5;
	animation: spin 0.6s linear normal infinite;
	display: block;
}

.common-loading-layer:before {
	content: "";
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.form-wrap {
	background-color: var(--ns-panel);
	padding: 15px 0;
	border-radius: 5px;
}

.input-text {
	height: 34px;
	line-height: 34px;
	font-size: 14px;
}

.draggable-element:hover {
	outline-color: var(--base-color) !important;
}

.draggable-element.selected {
	outline-color: var(--base-color) !important;
}

.component-list ul li:not(.disabled):hover i {
	color: var(--base-color) !important;
}

.component-list ul li:not(.disabled):hover span:last-child {
	color: var(--base-color);
}

/* 单独图片 */
.img-box {
	display: inline-block;
	width: 50px;
	height: 50px;
	text-align: center;
	line-height: 50px;
}

.img-box img {
	max-width: 100%;
	max-height: 100%;
}

/* //超出范围下拉箭头隐藏 */
.layui-table-grid-down {
	display: none;
}

.category-list .item li:hover, .category-list .item li.selected {
	color: var(--base-color) !important;
	background-color: var(--ns-panel-2);
}

/* 颜色组件 */
.flexbox-fix-btn .btn {
	width: 80px;
	border: 1px solid var(--ns-border-color);
	color: var(--ns-fg-2);
	line-height: 32px;
	background-color: transparent;
	margin: 20px 5px 0;
	cursor: pointer;
}

.layui-table-init .layui-icon {
	position: absolute;
}

.layui-layer-tips .layui-layer-content {
	color: #000 !important;
}

/* 单行超出隐藏 */
.line-hiding {
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	-webkit-box-orient: vertical;
	white-space: normal;
	word-break: break-all;
}

/* 多行超出隐藏 */
.multi-line-hiding {
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	white-space: normal;
	word-break: break-all;
	line-height: 22px !important;
	max-height: 42px !important;
}

.notify-wrap {
	display: flex;
	flex-direction: column;
	width: 330px;
	padding: 20px;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 1000;
}

.notify-wrap .notify-item {
	display: flex;
	background: var(--ns-panel);
	padding: 15px 25px 15px 15px;
	box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
	transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s;
	position: relative;
	margin-bottom: 15px;
	border-radius: 6px;
}

.notify-wrap .notify-item .iconclose_light {
	position: absolute;
	top: 10px;
	right: 10px;
	cursor: pointer;
}

.notify-wrap .notify-item .box {
	flex: 1;
	width: 0;
	margin-left: 10px;
}

.notify-wrap .notify-item .box .title {
	font-weight: 700;
	font-size: 16px;
	color: var(--ns-fg);
	white-space: break-spaces;
}

.notify-wrap .notify-item .box .content {
	font-size: 14px;
	line-height: 21px;
	margin: 6px 0 0;
	color: #606266;
	text-align: justify;
	white-space: break-spaces;
	overflow: hidden;
}

.notify-wrap .notify-item .icon {
	width: 24px;
	height: 24px;
}

.notify-wrap .notify-item .icon i {
	display: block;
	width: 100%;
	height: 100%;
	background: url("../img/notify_icon.png") no-repeat;
}

.notify-wrap .icon i.success {
	background-position-x: -24px;
}

.notify-wrap .icon i.fail {
	background-position-x: -48px;
}

.notify-wrap .icon i.warning {
	background-position-x: 0;
}

.notify-wrap .icon i.info {
	background-position-x: -72px;
}

.fourstage-nav .layui-tab-title {
	border: 0;
}

.fourstage-nav .layui-tab-title li {
	margin: 0 15px 0 5px;
	padding: 0;
}

.fourstage-nav .layui-tab-title li::after {
	border: 0 !important;
}

.fourstage-nav .layui-tab-title li a {
	border-bottom: 2px solid #fff;
}

.fourstage-nav .layui-tab-title li a:hover {
	color: var(--ns-fg);
}

.fourstage-nav .layui-tab-title li.layui-this a {
	color: var(--base-color);
	border-bottom: 2px solid var(--base-color);
}

.shop-ewm {
	position: relative;
}

.shop-ewm > .layui-btn {
	color: var(--base-color);
	border: 1px solid var(--base-color);
	background-color: transparent;
	min-width: 80px;
	height: 28px;
	line-height: 28px;
	padding: 0 8px;
}

/* 头部「帮助」挤占式抽屉（iframe 客服，主内容区同步让位） */
.help-drawer-clip {
	position: absolute;
	top: 55px;
	right: 0;
	bottom: 0;
	width: 0;
	overflow: hidden;
	z-index: 1001;
	transition: width .25s ease;
}
.layui-layout-admin.help-open .help-drawer-clip { width: 420px; }
.help-drawer {
	width: 420px;
	height: 100%;
	background: var(--ns-panel, #fff);
	border-left: 1px solid var(--ns-border-color, #eef0f3);
	display: flex;
	flex-direction: column;
}
.layui-layout-admin.help-open .layui-body { right: 420px; transition: right .25s ease; }
.layui-layout-admin.help-open .layui-body .body-content { min-width: 0; }
.layui-layout-admin.help-open .layui-body > .fourstage-nav.layui-tab { width: calc(100vw - 743px); }
.help-drawer-frame {
	flex: 1;
	width: 100%;
	border: 0;
	background: #fff;
}

/* 头部「渠道直达」右侧抽屉 */
.channel-caret {
	font-size: 12px;
	margin-left: 3px;
}
.channel-drawer-mask {
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.4);
	z-index: 99998;
	visibility: hidden;
	opacity: 0;
	transition: opacity .25s ease, visibility .25s ease;
}
.channel-drawer-mask.show {
	visibility: visible;
	opacity: 1;
}
.channel-drawer {
	position: fixed;
	top: 0;
	right: -400px;
	width: 380px;
	max-width: 86vw;
	height: 100vh;
	background: var(--ns-panel, #fff);
	z-index: 99999;
	box-shadow: -8px 0 24px rgba(15, 23, 42, 0.12);
	transition: right .25s ease, visibility .25s ease;
	display: flex;
	flex-direction: column;
}
.channel-drawer.show {
	right: 0;
	visibility: visible;
}
.channel-drawer:not(.show) {
	visibility: hidden;
}
.channel-drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid var(--ns-border-color, #eef0f3);
	flex-shrink: 0;
}
.channel-drawer-title {
	font-size: 16px;
	font-weight: 600;
	color: var(--ns-fg, #303133);
	position: relative;
	padding-left: 10px;
}
.channel-drawer-title::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 14px;
	border-radius: 2px;
	background: var(--base-color, #2563EB);
}
.channel-drawer-close {
	font-size: 18px;
	color: var(--ns-fg-3, #909399);
	cursor: pointer;
	transition: color .15s ease;
}
.channel-drawer-close:hover {
	color: var(--ns-fg, #303133);
}
.channel-drawer-body {
	flex: 1;
	overflow-y: auto;
	padding: 15px 20px 25px;
}
.channel-drawer-group + .channel-drawer-group {
	margin-top: 20px;
}
.channel-drawer-group-title {
	font-size: 12px;
	color: var(--ns-fg-3, #909399);
	margin-bottom: 10px;
	letter-spacing: 1px;
}
.channel-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--ns-border-color, #eef0f3);
	border-radius: var(--ns-radius, 8px);
	background: #fff;
	text-decoration: none;
	margin-bottom: 10px;
	transition: all .2s ease;
}
.channel-card:hover {
	border-color: color-mix(in srgb, var(--base-color, #2563EB) 35%, var(--ns-border-color, #eef0f3));
	box-shadow: var(--ns-shadow-hover, 0 6px 16px rgba(15, 23, 42, 0.08));
	text-decoration: none;
}
.channel-card-icon {
	width: 38px;
	height: 38px;
	border-radius: var(--ns-radius-sm, 4px);
	background: color-mix(in srgb, var(--base-color, #2563EB) 8%, #fff);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.channel-card-icon img {
	width: 24px;
	height: 24px;
	object-fit: contain;
	border-radius: 4px;
}
.channel-card-icon .layui-icon {
	font-size: 18px;
	color: var(--base-color, #2563EB);
}
.channel-card-info {
	flex: 1;
	min-width: 0;
}
.channel-card-name {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--ns-fg, #303133);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.channel-card-platform {
	display: block;
	font-size: 12px;
	color: var(--ns-fg-3, #909399);
	margin-top: 2px;
}
.channel-card-arrow {
	color: #c9cdd4;
	font-size: 14px;
	flex-shrink: 0;
	transition: color .15s ease;
}
.channel-card:hover .channel-card-arrow {
	color: var(--base-color, #2563EB);
}
.channel-drawer-empty {
	padding: 40px 0;
	text-align: center;
	color: var(--ns-fg-3, #909399);
	font-size: 13px;
}

.shop-ewm a {
	display: inline-block;
	line-height: 60px;
	cursor: pointer;
	margin-right: 25px;
}

.shop-ewm > a {
	line-height: 55px !important;
}

.icon-preview {
	position: fixed;
	width: 100vw;
	height: 100vh;
	left: 0;
	top: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-items: center;
	background: rgba(55, 55, 55, 0.6);
}

.icon-preview .icon-preview-block {
	width: 100px;
	height: 100px;
	font-size: 100px;
	margin: 0 auto;
	background: var(--ns-panel);
}

 .layui-body > .fourstage-nav.layui-tab {
	margin: 0;
	text-align: left !important;
	background: var(--ns-panel);
	position: fixed;
	top: 55px;
	left: 256px;
	width: calc(100vw - 323px);
	z-index: 1000;
	padding: 10px;
	border: 15px solid #EFF0F4;
	border-bottom: 0;
	border-right: 0;
}

.layui-layout-admin .layui-body .layui-tab + .body-content {
	padding-top: 65px !important;
}

.layui-layout-admin .layui-header {
	background-color: var(--ns-chrome);
	height: 55px;
	/*border-bottom: 1px solid var(--ns-border-color);*/
	box-shadow: 0 1px 4px rgba(0, 21, 41, 0.06);
}

.layui-layout-admin .layui-logo {
	width: 124px;
	height: 80px;
	background: linear-gradient(180deg, #24443E 0%, #1C3833 100%);
	display: flex;
	align-items: center;
}

.layui-layout-admin .layui-logo a {
	display: flex;
	width: 100%;
	height: 80px;
	padding: 0 11px 0 12px;
	box-sizing: border-box;
	line-height: 80px;
	justify-content: center;
	align-items: center;
}

.layui-layout-admin .layui-logo a img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	overflow: hidden;
}

.layui-layout-admin .login-box {
	display: flex;
	align-items: center;
}

.layui-layout-admin .login-box .help-btn {
	margin-left: 40px;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 5px;
}
.layui-layout-admin .login-box .help-btn .help-btn-icon {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	object-fit: cover;
	transition: transform .2s ease;
}
.layui-layout-admin .login-box .help-btn:hover .help-btn-icon {
	transform: scale(1.18) rotate(-8deg);
}
.layui-layout-admin .login-box .help-btn .help-bubble {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	background: var(--ns-panel, #fff);
	color: var(--ns-fg, #303133);
	font-size: 12px;
	line-height: 1;
	padding: 9px 12px;
	border-radius: var(--ns-radius-sm, 4px);
	border: 1px solid var(--ns-border-color, #eef0f3);
	box-shadow: var(--ns-shadow-dropdown, 0 8px 24px rgba(15, 23, 42, 0.12));
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: all .15s ease;
	z-index: 9999;
	pointer-events: none;
}
.layui-layout-admin .login-box .help-btn .help-bubble::before {
	content: '';
	position: absolute;
	top: -5px;
	right: 16px;
	width: 10px;
	height: 10px;
	background: var(--ns-panel, #fff);
	border-left: 1px solid var(--ns-border-color, #eef0f3);
	border-top: 1px solid var(--ns-border-color, #eef0f3);
	transform: rotate(45deg);
}
.layui-layout-admin .login-box .help-btn:hover .help-bubble {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition-delay: .3s;
}

.layui-layout-admin .login-box > div {
	position: relative;
}

.layui-layout-admin .login-box > div::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -21px;
	width: 1px;
	height: 16px;
	background-color: #e6e6e6;
	transform: translateY(-50%);
}

.layui-layout-admin .login-box .head-account .layuimini-setting > a {
	height: 55px;
	line-height: 55px;
}

.layui-layout-admin .layui-nav .layui-nav-bar {
	display: none;
}

.layui-layout-admin .layui-nav .layui-nav-item a {
	color: var(--ns-fg);
}

.layui-layout-admin .layui-layout-left .layui-this:after {
	width: 0;
	border: 0;
}

.layui-layout-admin .layui-layout-left a span {
	display: inline-block;
	height: 40px;
	line-height: 40px;
	box-sizing: border-box;
}

.layui-layout-admin .layui-layout-left a:hover span {
	border-bottom: 3px solid var(--base-color);
}

.layui-layout-admin .layui-layout-left a.active span {
	border-bottom: 3px solid var(--base-color);
	border-radius: 1.5px;
	box-sizing: border-box;
}

.layui-layout-admin .layui-layout-right .layui-nav-more {
	border-top-color: #333;
}

.layui-layout-admin .layui-layout-right .layui-nav-mored {
	border-color: transparent transparent #333;
}

.layui-layout-admin .layui-layout-right .layui-nav-child {
	right: 0;
	left: unset;
}

.layui-layout-admin .layui-layout-right .layui-nav-child dd.layui-this, .layui-layout-admin .layui-layout-right .layui-nav-child dd.layui-this a {
	background-color: var(--base-color);
}

.layui-layout-admin .second-nav {
	background-color: var(--ns-chrome-2);
	overflow: hidden;
	box-sizing: border-box;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav {
	background-color: transparent !important;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item {
	background-color: transparent;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a {
	width: 100%;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	border-radius: 6px;
	transition: background-color 0.25s var(--ns-ease), color 0.25s var(--ns-ease);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a .stair-menu {
	overflow: hidden;
	display: flex;
	align-items: center;
	margin-right: 5px;
	width: 20px;
	height: 18px;
	line-height: 18px;
	text-align: center;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a .stair-menu img {
	max-height: 100%;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-itemed > a {
	color: var(--ns-fg) !important;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-itemed > .layui-nav-child {
	background-color: transparent !important;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree {
	position: relative;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree > .layui-this > a {
	box-sizing: border-box;
	position: relative;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd.layui-this {
	background-color: var(--ns-panel) !important;
	color: var(--ns-fg);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav .layui-nav-more {
	border-width: 1px;
	border-color: #333 #333 transparent transparent;
	border-style: solid;
	transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	/* IE 9 */
	-moz-transform: rotate(45deg);
	/* Firefox */
	-webkit-transform: rotate(45deg);
	/* Safari 和 Chrome */
	-o-transform: rotate(45deg);
	margin-top: 0;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-itemed > a .layui-nav-more {
	transform: rotate(135deg);
	-ms-transform: rotate(135deg);
	-moz-transform: rotate(135deg);
	-webkit-transform: rotate(135deg);
	-o-transform: rotate(135deg);
}

.layui-layout-admin .crumbs {
	position: fixed;
	top: 60px;
	left: 184px;
	z-index: 9;
	right: 0;
	height: 43px;
	line-height: 43px;
	padding: 0 28px;
	background-color: var(--ns-panel);
	border-bottom: 1px solid var(--ns-border-color);
}

.layui-layout-admin .crumbs a:hover {
	color: var(--base-color) !important;
}

.layui-layout-admin .layui-body {
	position: absolute;
	overflow: auto !important;
	bottom: 0;
	top: 55px;
	left: 256px;
	background-color: var(--ns-bg);
}

.layui-layout-admin .layui-body .body-content {
	min-width: 1000px;
	min-height: 650px;
	padding: 24px;
	background-color: var(--ns-panel);
	margin: 15px;
	/*border: 1px solid var(--ns-border-color);*/
	border-radius: var(--ns-radius);
	/*box-shadow: var(--ns-shadow-card);*/
}

.layui-layout-admin .layui-header-right {
	position: absolute;
	left: 124px;
	right: 0;
	height: 55px;
	box-sizing: border-box;
}

.layui-layout-admin .layui-header-right .layui-header-crumbs .layui-header-crumbs-first {
	float: left;
	display: inline-block;
	width: 131px;
	height: 55px;
	text-align: center;
	line-height: 55px;
	box-sizing: border-box;
}

.layui-layout-admin .layui-header-right .layui-header-crumbs .layui-header-crumbs-second {
	float: left;
	display: inline-block;
	height: 55px;
	/*border-left: 1px solid var(--ns-border-color);*/
	padding-left: 16px;
	line-height: 55px;
}

.layui-layout-admin .first-nav {
	top: 80px;
	width: 124px !important;
	background: linear-gradient(180deg, #1C3833 0%, #162C28 100%);
}

.layui-layout-admin .first-nav .layui-side-scroll {
	width: 141px;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree {
	width: 124px;
	background-color: transparent;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree .layui-nav-item {
	margin: 0 8px 4px;
	width: 108px;
	height: 40px;
	border-radius: 6px;
	overflow: hidden;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree .layui-nav-item a {
	height: 40px;
	line-height: 40px;
	color: rgba(255, 255, 255, 0.7);
	display: flex;
	align-items: center;
	padding-left: 15px;
	transition: background-color 0.25s var(--ns-ease), color 0.25s var(--ns-ease);
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree .layui-nav-item a i {
	font-size: 16px;
	margin-right: 8px;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree .layui-nav-item a.active {
	background-color: var(--base-color);
	color: #fff;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree .layui-nav-item a:hover {
	background-color: rgba(255, 255, 255, 0.08);
	color: #fff;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree {
	position: relative;
	height: 100%;
	box-sizing: border-box;
	padding-bottom: 56px;
}

.layui-layout-admin .first-nav .layui-side-scroll .layui-nav-tree .layui-nav-item.first-nav-fixed {
	position: absolute;
	left: 8px;
	right: 0;
	bottom: 10px;
	margin: 0;
}

.layui-layout-admin .second-nav {
	width: 132px !important;
	left: 124px;
	top: 55px;
}

/* 双级导航文字层级：一级最亮、悬停提亮、三级弱化 */
.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree > .layui-nav-item > a {
	color: var(--ns-fg);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child a {
	color: var(--ns-fg-2);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd a:hover {
	color: var(--ns-fg);
}

.layui-layout-admin .second-nav .second-selected-nav {
	background-color: var(--ns-panel-2);
	border-radius: 6px;
}

.layui-layout-admin .second-nav .layui-side-scroll {
	width: 152px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav {
	width: 132px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item {
	width: calc(100% - 24px);
	line-height: 40px;
	margin: 0 12px;
	border-radius: 6px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a {
	height: 36px;
	padding-left: 6px;
	margin-bottom: 4px;
	border-radius: 2px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a span {
	line-height: 36px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a:hover {
	color: var(--base-color) !important;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a:hover img {
	left: -19px !important;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-item a:hover .layui-nav-more {
	border-color: var(--base-color) var(--base-color) transparent transparent;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree {
	margin-top: 10px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree > .layui-this > .second-selected-nav {
	color: var(--base-color) !important;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree > .layui-this > a {
	background-color: transparent;
	color: var(--ns-fg);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd.layui-this {
	background-color: var(--ns-panel);
	color: var(--ns-fg);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd.layui-this a {
	background-color: var(--ns-panel);
	color: var(--ns-fg);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd.layui-this .layui-left-nav {
	width: 100%;
	color: var(--base-color);
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd > a {
	padding: 0;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd > a span {
	font-size: 14px;
	padding-left: 20px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav .layui-nav-more {
	width: 6px;
	height: 6px;
	top: 13px;
	right: 6px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-itemed > a .layui-nav-more {
	top: 10px;
}

.layui-layout-admin .tips-wrap {
	background-color: #FFF4E6;
	border-color: #FFC780;
	border-radius: 2px;
}

.layui-layout-admin .tips-wrap .layui-colla-title {
	font-size: 14px;
}

.layui-layout-admin .tips-wrap .layui-colla-content li {
	color: var(--ns-fg);
}

.layui-layout-admin .tips-wrap .layui-colla-content li::marker {
	color: #FFAC42;
}

.layui-layout-admin .screen .layui-colla-content {
	border: none;
	background-color: var(--ns-panel-2);
}

.layui-layout-admin .layui-table-view {
	margin-top: 0;
}

.layui-layout-admin .layui-table-tool {
	padding: 15px 0 10px;
}

.layui-layout-admin .single-filter-box {
	padding-top: 0 !important;
}

.layui-layout-admin .single-filter-box.top {
	padding-top: 14px !important;
}

/* 分类选择弹框样式 start */
.category-select-popup-position{
	display:inline-block;
	width:0;
	height:0;
	position: relative;
	z-index: 1000;
}
.category-select-popup{
	position: absolute;
	left:0;
	top:0;
	background: var(--ns-panel);
	border:1px solid var(--ns-border-color);
	border-radius: 4px;
	box-shadow: 0 1px 1px rgb(0 0 0 / 3%);
	overflow: hidden;
}
.category-select-popup .category-select-ul-box{
	display: flex;
	height: 254px;
	background: var(--ns-panel);
	overflow: hidden;
}
.category-select-popup .category-select-ul-box ul{
	width: 140px;
	height: 100%;
	overflow-y: auto;
	border-left:1px solid var(--ns-border-color);
}
.category-select-popup .category-select-ul-box ul:first-child{
	border-left:0;
}
/* 滚动条样式 */
.category-select-popup .category-select-ul-box ul::-webkit-scrollbar{
	width: 3px;
}
.category-select-popup .category-select-ul-box ul::-webkit-scrollbar-track{
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.1);
	border-radius: 10px;
	background-color: var(--ns-panel);
}
.category-select-popup .category-select-ul-box ul::-webkit-scrollbar-thumb{
	height: 20px;
	border-radius: 10px;
	-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.1);
	background-color: #ccc;
}

.category-select-popup .category-select-ul-box ul li{
	text-align: left;
	padding: 0 10px;
	line-height: 30px;
	cursor: pointer;
	display: flex;
}
.category-select-popup .category-select-ul-box ul li span{
	display: block;
	max-width: 90%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.category-select-popup .category-select-ul-box ul li:hover{
	background: rgba(15, 23, 42, 0.05) !important;
	color: var(--ns-fg);
}
.category-select-popup .category-select-ul-box ul li.selected{
	background: var(--base-color) !important;
	color: #fff;
}
.category-select-popup .category-select-btn-box{
	border-top:1px solid var(--ns-border-color);
	padding:4px 4px 4px 4px;
	display: flex;
	justify-content: flex-end;
}
.category-select-popup .category-select-btn-box button{
	line-height: 28px;
	height:28px;
	padding: 0 12px;
}

/********************************** SaaS 视觉精修 - start **********************************/
/* 设计令牌 */
:root {
	--ns-bg: #f0f2f5;
	--ns-chrome: #FFFFFF;
	--ns-chrome-2: #FFFFFF;
	--ns-panel: #FFFFFF;
	--ns-panel-2: #f7f8fa;
	--ns-fg: #303133;
	--ns-fg-2: #4e5969;
	--ns-fg-3: #909399;
	--ns-radius: 10px;
	--ns-radius-sm: 4px;
	--ns-border-color: rgba(15, 23, 42, 0.08);
	--ns-canvas-bg: #f0f2f5;
	--ns-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--ns-shadow-card: 0 1px 2px rgba(0, 21, 41, 0.05), 0 4px 16px rgba(0, 21, 41, 0.07);
	--ns-shadow-hover: 0 4px 10px rgba(0, 21, 41, 0.12);
	--ns-shadow-dropdown: 0 6px 16px rgba(0, 21, 41, 0.08);
}

/* 按钮 */
.layui-btn {
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(0, 21, 41, 0.08);
	font-weight: 500;
	transition: background-color 0.25s var(--ns-ease), box-shadow 0.25s var(--ns-ease), color 0.25s var(--ns-ease), filter 0.25s var(--ns-ease);
}

/* 覆盖 layui 原生 hover 变暗（opacity:.8 会让白底主按钮发闷） */
.layui-btn:hover {
	opacity: 1;
}

.layui-btn:not(.layui-btn-primary):not(.layui-btn-disabled):hover {
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
	transform: translateY(-1px);
}

.layui-btn:not(.layui-btn-primary):not(.layui-btn-disabled) {
	background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 60%);
}

.layui-btn:not(.layui-btn-primary):not(.layui-btn-disabled):active {
	transform: translateY(0);
	box-shadow: none;
}

.layui-btn-primary, .layui-btn-disabled {
	box-shadow: none;
}

.layui-btn-primary:hover {
	box-shadow: none;
}

/* 输入控件 */
.layui-input, .layui-select, .layui-textarea {
	border-radius: var(--ns-radius-sm);
	transition: border-color 0.25s var(--ns-ease), box-shadow 0.25s var(--ns-ease);
}

.layui-input:focus, .layui-select:focus, .layui-textarea:focus {
	box-shadow: 0 0 0 3px rgba(0, 21, 41, 0.05);
}

/* 下拉面板 */
.layui-form-select dl {
	border-radius: 6px;
	box-shadow: var(--ns-shadow-dropdown);
}

/* 表格 */
.layui-table-view {
}

.layui-table-view .layui-table-tool {
	border-bottom-color: var(--ns-border-color);
}

.layui-table-view .layui-table th {
	background-color: var(--ns-panel-2);
	color: var(--ns-fg-2);
	font-weight: 500;
	font-size: 13px;
}

.layui-table-view .layui-table th, .layui-table-view .layui-table td {
	border-color: var(--ns-border-color);
}

.layui-table-view .layui-table tbody tr:hover, .layui-table-view .layui-table tr.layui-table-hover {
	background-color: rgba(15, 23, 42, 0.03);
}

.layui-table, .layui-laypage {
	font-variant-numeric: tabular-nums;
}

.layui-table-page {
	border-color: var(--ns-border-color);
}

.layui-table-page {
	background-color: var(--ns-panel);
}

.layui-table tbody tr {
	transition: background-color 0.2s var(--ns-ease);
}

.layui-table-none {
	color: var(--ns-fg-3);
	letter-spacing: 0.02em;
}

/* 操作列按钮去阴影 */
.layui-table .layui-btn, .layui-table-view .layui-btn {
	box-shadow: none;
}

/* 分页 */
.layui-laypage a, .layui-laypage span, .layui-laypage input, .layui-laypage select {
	border-radius: var(--ns-radius-sm);
}

/* 下拉菜单 */
.layui-nav-child {
	border-radius: 6px;
	box-shadow: var(--ns-shadow-dropdown);
}

/* 标签页 */
.layui-tab-title li {
	transition: color 0.25s var(--ns-ease);
}

.layui-tab-title li.layui-this {
	color: var(--base-color);
}

.layui-tab-title li.layui-this::after {
	border-color: var(--base-color);
}

/* 表单标签层级 */
.layui-form-label {
	color: var(--ns-fg-2);
}

/* layui 默认色系重写（覆盖框架内置绿 #5FB878/#009688、蓝 #1E9FFF，全部吸附主题色） */
.layui-form-checked,
.layui-form-checked:hover {
	border-color: var(--base-color);
}

.layui-form-checked span,
.layui-form-checked:hover span {
	background-color: var(--base-color);
}

.layui-form-checked i,
.layui-form-checked:hover i {
	color: var(--base-color);
}

.layui-form-checked[lay-skin=primary] i {
	border-color: var(--base-color) !important;
	background-color: var(--base-color);
	color: #fff;
}

.layui-form-checkbox[lay-skin=primary]:hover i {
	border-color: var(--base-color);
}

.layui-form-onswitch {
	border-color: var(--base-color);
	background-color: var(--base-color);
}

.layui-btn-normal {
	background-color: var(--base-color);
}

.layui-btn-checked {
	background-color: var(--base-color) !important;
}

.layui-btn-primary:hover {
	border-color: rgba(15, 23, 42, 0.14);
}

.layui-btn-group .layui-bg-green, .layui-bg-blue {
	background-color: var(--base-color) !important;
}

.layui-elem-quote {
	border-left: 5px solid var(--base-color);
}

.layui-upload-drag .layui-icon {
	color: var(--base-color);
}

.layui-nav-tree .layui-nav-bar {
	background-color: var(--base-color);
}

.layui-tab-brief > .layui-tab-title .layui-this {
	color: var(--base-color);
}

/* 二级菜单三级项 */
.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd {
	border-radius: 6px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child a {
	font-size: 13px;
}

.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-child dd.layui-this a {
	color: var(--base-color);
	font-weight: 500;
}

/* 二级菜单选中态文字 */
.layui-layout-admin .second-nav .layui-side-scroll .layui-nav-tree > .layui-this > a {
	color: var(--base-color) !important;
	font-weight: 500;
}

/* 全局滚动条 */
::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

::-webkit-scrollbar-thumb {
	background: rgba(0, 21, 41, 0.15);
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: rgba(0, 21, 41, 0.28);
}

::-webkit-scrollbar-track {
	background: transparent;
}

/* layui 卡片/组件深色适配 */
.layui-card {
	background-color: var(--ns-panel);
}

.layui-card-header {
	color: var(--ns-fg);
	border-bottom-color: var(--ns-border-color);
}

.layui-btn-primary:hover {
	color: var(--base-color);
}

.layui-tab-title {
	border-bottom-color: var(--ns-border-color);
}

.layui-tab-title li {
	color: var(--ns-fg-3);
}

.layui-tab-title li:hover {
	color: var(--ns-fg);
}

.layui-laypage a, .layui-laypage span {
	background-color: transparent;
	color: var(--ns-fg-2);
}

.layui-laypage input, .layui-laypage select {
	color: var(--ns-fg);
}

.layui-table-view {
	background-color: var(--ns-panel);
}

.layui-table-view .layui-table {
	background-color: transparent;
}

.layui-table-tool, .layui-table-page {
	background-color: transparent;
}

.layui-layout-right .layui-nav-child {
	background-color: var(--ns-panel-2);
}

.layui-layout-right .layui-nav-child dd a {
	color: var(--ns-fg-2);
}

.layui-layer-title {
	background-color: transparent;
	color: var(--ns-fg);
}

.layui-layer-dialog .layui-layer-content {
	color: var(--ns-fg);
}



/* ===== 全局通用组件（ns-*，深色体系专用；新页面优先复用，勿再造轮子） ===== */

/* 账号中心/卡片墙（channel 账号中心 与 oms 店铺管理共用；含统计条/平台tab/卡片/异常遮罩） */
.acc-center { padding: 15px; }
.acc-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px; }
.acc-header .title { font-size: 17px; font-weight: bold; color: var(--ns-fg); }
.acc-header .title .layui-icon { color: var(--base-color); margin-right: 6px; }
.acc-topbar { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; flex-wrap: wrap; }
.acc-topbar .layui-input { width: 200px; }
.acc-stat { display: flex; gap: 20px; margin-bottom: 15px; }
.acc-stat .stat-item { flex: 1; background: var(--ns-panel); border: 1px solid var(--ns-border-color); border-radius: var(--ns-radius); padding: 14px 18px; }
.acc-stat .stat-item .num { font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--base-color); }
.acc-stat .stat-item .label { font-size: 12px; color: var(--ns-fg-3); margin-top: 4px; }
.acc-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 15px; }
.acc-tabs .tab { padding: 6px 14px; border-radius: 16px; border: 1px solid var(--ns-border-color); cursor: pointer; font-size: 13px; color: var(--ns-fg-2); background: var(--ns-panel); display: flex; align-items: center; transition: border-color .2s, color .2s, background .25s var(--ns-ease); }
.acc-tabs .tab img { width: 18px; height: 18px; border-radius: 50%; margin-right: 5px; }
.acc-tabs .tab.active { border-color: var(--base-color); color: var(--base-color); background: color-mix(in srgb, var(--base-color) 10%, #fff); }
.acc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 15px; }
.acc-card { background: var(--ns-panel); border: 1px solid var(--ns-border-color); border-radius: var(--ns-radius); padding: 16px; position: relative; transition: box-shadow .2s, border-color .25s var(--ns-ease); cursor: move; }
.acc-card:hover { box-shadow: var(--ns-shadow-hover); border-color: rgba(15, 23, 42, 0.14); transform: translateY(-2px); }
.acc-card .card-top { display: flex; align-items: center; }
.acc-card .avatar { width: 46px; height: 46px; border-radius: var(--ns-radius-sm); overflow: hidden; margin-right: 12px; flex-shrink: 0; border: 1px solid var(--ns-border-color); background: #fff; display: flex; align-items: center; justify-content: center; }
.acc-card .avatar img { width: 100%; height: 100%; object-fit: contain; }
.acc-card .acc-name { font-size: 14px; font-weight: 600; color: var(--ns-fg); display: flex; align-items: center; }
.acc-card .acc-platform { font-size: 12px; color: var(--ns-fg-3); margin-top: 3px; display: flex; align-items: center; }
.acc-card .acc-platform img { width: 14px; height: 14px; margin-right: 4px; }
.acc-card .status-dot { width: 9px; height: 9px; border-radius: 50%; margin-left: 6px; display: inline-block; }
.acc-card .status-dot.on { background: #52c41a; }
.acc-card .status-dot.off { background: #ff4d4f; }
.acc-card .acc-data { display: flex; margin-top: 14px; border-top: 1px dashed #f5f5f5; padding-top: 12px; }
.acc-card .acc-data .d-item { flex: 1; text-align: center; }
.acc-card .acc-data .d-num { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ns-fg); }
.acc-card .acc-data .d-label { font-size: 11px; color: var(--ns-fg-3); margin-top: 2px; }
.acc-card .card-ops { display: flex; gap: 6px; margin-top: 12px; }
.acc-card .card-ops .layui-btn { flex: 1; padding: 0 4px; font-size: 12px; }
.acc-card .off-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255,255,255,.6); border-radius: var(--ns-radius); display: none; align-items: center; justify-content: center; pointer-events: none; }
.acc-card.off .off-mask { display: flex; }
.acc-card .off-mask span { background: #ff4d4f; color: #fff; padding: 4px 12px; border-radius: 12px; font-size: 12px; }
.empty-tip { text-align: center; color: var(--ns-fg-3); padding: 60px 0; }

/* 等宽数字/编号 */
.ns-mono {
	font-family: var(--ns-mono);
}

/* 标签胶囊（默认/主色/成功/警告/危险；可配 .dot 状态点，.live 呼吸） */
.ns-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: 12px;
	line-height: 18px;
	background: rgba(15, 23, 42, 0.05);
	color: var(--ns-fg-2);
	white-space: nowrap;
}

.ns-tag .dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	flex-shrink: 0;
}

.ns-tag .dot.live {
	animation: ns-breathe 2s var(--ns-ease) infinite;
}

.ns-tag-primary {
	background: color-mix(in srgb, var(--base-color) 14%, transparent);
	color: var(--base-color);
}

.ns-tag-success {
	background: rgba(74, 222, 128, 0.14);
	color: #16a34a;
}

.ns-tag-warning {
	background: rgba(251, 191, 36, 0.14);
	color: #d97706;
}

.ns-tag-danger {
	background: rgba(248, 113, 113, 0.14);
	color: #dc2626;
}

@keyframes ns-breathe {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0.35;
	}
}

/* 数字角标（挂在图标/按钮右上，配合 position:relative 父元素 + absolute 使用） */
.ns-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: 8px;
	background: #dc2626;
	color: #fff;
	font-size: 11px;
	line-height: 1;
	font-family: var(--ns-mono);
	box-sizing: border-box;
}

/* 空状态（结构：.ns-empty > i.ns-empty-icon.iconfont.iconxxx + p.ns-empty-text + .ns-empty-action） */
.ns-empty {
	text-align: center;
	padding: 48px 16px;
}

.ns-empty .ns-empty-icon {
	font-size: 40px;
	color: rgba(15, 23, 42, 0.08);
	line-height: 1;
	margin-bottom: 12px;
}

.ns-empty .ns-empty-text {
	font-size: 13px;
	color: var(--ns-fg-3);
	margin: 0;
}

.ns-empty .ns-empty-action {
	margin-top: 12px;
}

.ns-empty .ns-empty-action a {
	color: var(--base-color);
}

.ns-empty .ns-empty-action a:hover {
	opacity: 0.85;
}

/* 提示条（ns-alert-info / success / warning / danger；正文保持中性灰，只有边框/底/图标着色） */
.ns-alert {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 12px 16px;
	border-radius: var(--ns-radius-sm);
	border: 1px solid var(--ns-border-color);
	background: var(--ns-panel-2);
	color: var(--ns-fg-2);
	font-size: 13px;
	line-height: 1.7;
}

.ns-alert .ns-alert-icon {
	font-size: 15px;
	line-height: 1.6;
	flex-shrink: 0;
	color: var(--ns-fg-3);
}

.ns-alert a {
	color: var(--base-color);
}

.ns-alert-info {
	border-color: rgba(59, 130, 246, 0.3);
	background: rgba(59, 130, 246, 0.08);
}

.ns-alert-info .ns-alert-icon {
	color: #93C5FD;
}

.ns-alert-success {
	border-color: color-mix(in srgb, var(--base-color) 35%, transparent);
	background: color-mix(in srgb, var(--base-color) 9%, transparent);
}

.ns-alert-success .ns-alert-icon {
	color: var(--base-color);
}

.ns-alert-warning {
	border-color: rgba(251, 191, 36, 0.3);
	background: rgba(251, 191, 36, 0.08);
}

.ns-alert-warning .ns-alert-icon {
	color: #d97706;
}

.ns-alert-danger {
	border-color: rgba(248, 113, 113, 0.3);
	background: rgba(248, 113, 113, 0.08);
}

.ns-alert-danger .ns-alert-icon {
	color: #dc2626;
}

/* 步骤条（结构：.ns-steps > .ns-step(.done/.current) > .ns-step-icon + .ns-step-label + .ns-step-line） */
.ns-steps {
	display: flex;
	align-items: center;
}

.ns-steps .ns-step {
	display: flex;
	align-items: center;
	flex: 1;
	min-width: 0;
}

.ns-steps .ns-step:last-child {
	flex: 0 0 auto;
}

.ns-steps .ns-step-icon {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-family: var(--ns-mono);
	border: 1px solid var(--ns-border-color);
	color: var(--ns-fg-3);
	background: var(--ns-panel-2);
	flex-shrink: 0;
	box-sizing: border-box;
}

.ns-steps .ns-step-label {
	font-size: 13px;
	margin-left: 8px;
	color: var(--ns-fg-3);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ns-steps .ns-step-line {
	flex: 1;
	height: 1px;
	background: var(--ns-border-color);
	margin: 0 10px;
}

.ns-steps .ns-step.done .ns-step-icon {
	border-color: var(--base-color);
	background: color-mix(in srgb, var(--base-color) 14%, transparent);
	color: var(--base-color);
}

.ns-steps .ns-step.done .ns-step-line {
	background: var(--base-color);
}

.ns-steps .ns-step.done .ns-step-label, .ns-steps .ns-step.current .ns-step-label {
	color: var(--ns-fg);
}

.ns-steps .ns-step.current .ns-step-icon {
	border-color: var(--base-color);
	color: var(--base-color);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--base-color) 14%, transparent);
}

/* 描述列表（键值对；.ns-desc.cols-2 双列） */
.ns-desc {
	font-size: 13px;
}

.ns-desc.cols-2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 24px;
}

.ns-desc .ns-desc-item {
	display: flex;
	line-height: 1.7;
	padding: 8px 0;
	min-width: 0;
}

.ns-desc .ns-desc-label {
	width: 110px;
	flex-shrink: 0;
	color: var(--ns-fg-3);
}

.ns-desc .ns-desc-value {
	flex: 1;
	min-width: 0;
	color: var(--ns-fg-2);
	word-break: break-all;
}

/* 分段控制（.ns-segmented > button.ns-segmented-item(.active)） */
.ns-segmented {
	display: inline-flex;
	padding: 3px;
	border-radius: var(--ns-radius-sm);
	background: var(--ns-panel-2);
	gap: 2px;
}

.ns-segmented .ns-segmented-item {
	padding: 4px 14px;
	border-radius: 3px;
	font-size: 13px;
	color: var(--ns-fg-2);
	cursor: pointer;
	border: 0;
	background-color: transparent;
	line-height: 20px;
	transition: color 0.25s var(--ns-ease), background-color 0.25s var(--ns-ease);
}

.ns-segmented .ns-segmented-item:hover {
	color: var(--ns-fg);
}

.ns-segmented .ns-segmented-item.active {
	background: #FFFFFF;
	color: #0A0A0D;
	font-weight: 500;
}

/* 骨架屏（.ns-skeleton + .ns-skeleton-text/-img 修饰高度与宽度） */
.ns-skeleton {
	position: relative;
	overflow: hidden;
	background: rgba(15, 23, 42, 0.05);
	border-radius: var(--ns-radius-sm);
}

.ns-skeleton::after {
	content: '';
	position: absolute;
	inset: 0;
	transform: translateX(-100%);
	background: linear-gradient(90deg, transparent, rgba(15, 23, 42, 0.04), transparent);
	animation: ns-shimmer 1.6s infinite;
}

.ns-skeleton-text {
	height: 14px;
	margin-bottom: 10px;
}

.ns-skeleton-text:last-child {
	margin-bottom: 0;
}

.ns-skeleton-line-short {
	width: 60%;
}

.ns-skeleton-img {
	height: 120px;
}

@keyframes ns-shimmer {
	to {
		transform: translateX(100%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ns-tag .dot.live, .ns-skeleton::after {
		animation: none;
	}
}

/* 页面入场动效（SPA 每次切页重放；缓动与官网一致） */
.body-content > * {
	animation: ns-fade 0.35s var(--ns-ease) both;
}

.body-content > .common-wrap, .echart-wrap .common-wrap, .promotion-wrap .common-wrap {
	animation: ns-rise 0.45s var(--ns-ease) both;
}

.body-content > *:nth-child(2) {
	animation-delay: 0.04s;
}

.body-content > *:nth-child(3) {
	animation-delay: 0.08s;
}

.body-content > *:nth-child(4) {
	animation-delay: 0.12s;
}

.body-content > *:nth-child(5) {
	animation-delay: 0.15s;
}

.body-content > *:nth-child(n+6) {
	animation-delay: 0.18s;
}

@keyframes ns-fade {
	from {
		opacity: 0;
	}
}

@keyframes ns-rise {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.body-content > * {
		animation: none;
	}
}
/********************************** SaaS 视觉精修 - end **********************************/
/* 分类选择弹框样式 end */
