:root {
	--blue: var(--bs-global);
}

.page-content {
	/* max-width: 1170px; */
}

body[data-sidebar=dark].vertical-collpsed {
	min-height: inherit;
}

/* body {
	padding-right: 17px !important;
} */

.hide,
.hidden {
	display: none !important;
}

.h100p {
	height: 100%;
}

.w100p {
	width: 100%;
}

.mw-250 {
	max-width: 250px;
}

.flex1 {
	flex: 1;
}

.fs-12 {
	font-size: 12px;
}

.fs-14 {
	font-size: 14px;
}

.fs-16 {
	font-size: 16px;
}

.fs-18 {
	font-size: 18px;
}

.fs-20 {
	font-size: 20px;
}

.fs-22 {
	font-size: 22px;
}

.fs-24 {
	font-size: 24px;
}

.fs-26 {
	font-size: 26px;
}

.fs-28 {
	font-size: 28px;
}

.fs-30 {
	font-size: 30px;
}

.fs-50 {
	font-size: 50px !important;
}

.fw-200 {
	font-weight: 200;
}

.fw-300 {
	font-weight: 300;
}

.fw-400 {
	font-weight: 400;
}

.fw-500 {
	font-weight: 500;
}

.fw-600 {
	font-weight: 600;
}

.color-999 {
	color: #999 !important;
}

.btn-default {
	background-color: #FFF;
	border-color: #ced4da;
}

.btn-default.active,
.btn-default:hover {
	transition: all .4s;
	background-color: #f8f9fa;
}

.form-control:disabled,
.form-control[readonly] {
	background-color: #FAFAFA;
}

.input-group-append {
	height: 36px;
}

.custom-control {
	display: flex;
	align-items: center;
	min-height: calc(1.5em + .94rem + 2px);
}

.custom-control>*:first-child {
	margin-right: 15px;
}

select.form-control {
	padding-top: 0;
	padding-bottom: 0;
	appearance: none;
	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIyLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldhcnN0d2FfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDYgNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNCOUJEQzU7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNS41LDFoLTVDMC4yMiwxLDAsMS4yMiwwLDEuNVYyYzAsMC4xMywwLjA1LDAuMjYsMC4xNSwwLjM1bDIuNSwyLjVDMi43NCw0Ljk1LDIuODcsNSwzLDVzMC4yNi0wLjA1LDAuMzUtMC4xNQoJbDIuNS0yLjVDNS45NSwyLjI2LDYsMi4xMyw2LDJWMS41QzYsMS4yMiw1Ljc4LDEsNS41LDF6Ii8+Cjwvc3ZnPgo=);
	background-position-y: 50%;
	background-position-x: calc(100% - 11px);
	background-repeat: no-repeat;
	padding-right: 24px;
	-webkit-appearance: none;
}

.status {
	color: #FFF;
	padding: 4px 8px
}

.status:before {
	width: 8px;
	height: 8px;
	border: 0 none;
	border-radius: 50%;
	margin-right: 5px;
	display: inline-block;
}

.status-suspended {
	color: #fff;
	background-color: #e31519;
	border-color: #e31519;
	padding: 5px 10px;
}

.status-unpaid,
.status-pending {
	color: #fff;
	background-color: #fca426;
	border-color: #fca426;
	padding: 5px 10px;
}

.status-deleted {
	color: #fff;
	background-color: #2d2d2d;
	border-color: #2d2d2d;
	padding: 5px 10px;
}

.status-active,
.status-paid,
.status-refunded,
.status-cancelled,
.status-success {
	color: #fff;
	background-color: #3fbf70;
	border-color: #3fbf70;
	padding: 5px 10px;
}

/*已退款*/
.status-refunded {
	background-color: #999999;
	border-color: #999999;
}

.status-cancelled {
	background-color: #959799;
}

.security-header {
	border-radius: 15px;
	background-image: url(../img/security_top.png), linear-gradient(87deg, #e076aa, #b074d1);
	background-repeat: no-repeat;
	background-position: 100%;
}

.security-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 10px #b074d1, inset 0 0 0 20px #cc6ecb;
}

.security-logo {
	width: 60px;
	height: 60px;
	font-size: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 14px 2px rgb(6 31 179 / 26%);
}

.security-info {
	padding: 20px;
	border-radius: 4px;
	background-color: #b074d1;
}

.security-username {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 15px;
	font-size: 18px;
}

.security-username .badge {
	font-size: 12px;
}

.security-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 15px;
	color: #FFF;
	opacity: .5;
}

.security-text .progress {
	height: 2px;
	border-radius: 5px;
}

.security-meta .list-inline-item {
	margin-right: 15px;
	line-height: 38px;
}

.security-items {
	display: flex;
	flex-direction: column;
}

.security-items .security-item:hover {
	border-radius: 4px;
	box-shadow: 0 4px 20px 2px rgb(6 75 179 / 8%);
}

.security-items .security-item {
	padding: 15px 0px;
}

.security-item {
	padding: 15px 0;
	display: flex;
	align-items: center;
	margin-bottom: 20px;
	transition: all .3s ease;
}

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

.security-item-icon {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #FFF;
	border-radius: 50%;
	margin-right: 15px;
	font-size: 20px;
}

.security-item-info {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.security-item-title {
	color: #000;
	font-size: 14px;
	font-weight: 400;
}

.security-item-title small {
	margin-left: 15px;
	color: #999;
}

.security-item-title small i {
	color: #20b759;
}

.security-item-desc {
	color: #999;
	font-size: 12px;
}

.security-item-image {
	width: 100%;
	background-color: #fff;
	border-radius: 4px;
	height: calc(100% - 300px);
	background-position: center bottom;
	background-repeat: no-repeat;
	background-image: url("../img/security_bottom_left.png");
	background-size: cover;
	display: none;
}

.not_certified_title {
	font-size: 28px;
	color: #333;
	text-align: center;
}

.not_certified_text {
	color: #70757d;
	margin-top: 15px;
	line-height: 30px;
	margin-bottom: 30px;
}

.type-item {
	padding: 50px 80px;
	border-radius: 4px;
	border: 1px solid #eff2f7;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.type-item a {
	width: 200px;
	white-space: nowrap;
}

.min-95 {
	min-height: 95px;
}

.type-icon {
	width: 49px;
	height: 36px;
	/* margin: 0 auto 30px; */
	background-size: cover;
}

.personal {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAqCAYAAADibUizAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjVEQzc4NzVDOEY2MzExRUE4RUNEQkVCQ0I5NzlBREU4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjVEQzc4NzVEOEY2MzExRUE4RUNEQkVCQ0I5NzlBREU4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NURDNzg3NUE4RjYzMTFFQThFQ0RCRUJDQjk3OUFERTgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NURDNzg3NUI4RjYzMTFFQThFQ0RCRUJDQjk3OUFERTgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44qZ6BAAAG8klEQVR42txae2xTVRhvb9u1W7u269q9GBt7OMZjEDQaNQgo8YUiYHgkmpDgFEVRJBEFAyFGFBIE/QcUmQYFSYxEkaAGEZg4wVfIpmQ8xqDQja1r19fWx/r0d+ZpPbus7dYV1/rBL+fcc797e373e5zvHBDOPPGyICwP/jVrPJq5QBHACdJTOoHvgTPsoJghuQXNq4BQkP6yGdgNrAACgrDVQPIFNK/9T0iG5RlgI9+iaxmFBuB1wJCG5NTAUmA1vSbtW0CfGNbUoVNMb3iAeUdq6i3pwgzz5w81AlOA2YACKAfOEdeVM0qX0olkDPmV6UsHJCMqgQS+KEe/Wh5gBfT4WO5RJurjD4hH4DLE5dcBTwD5zC0X7h1G+yYIn00VE3MJkrwXzXka7Pm821nAYqAJeqvTligmfweabwENa0WgGTDz3r0d+i+mAlHxMElK0HwGyOiQm66/deG4hM49aHYANVRnG8a+w/1LUd4p4y1vicgHtCJKDlHIEqCSSVxzQKCeVcD1T5j8dHRPAxMBCSXydJR3ytiFPUE5GI/ocF13PtPfzyfJkHWgeYUZmpdWrgupYvqH4uiSwtoLZABaWFmND2AbRI/E97IR8riWbKIypt8TSxGkAiAXJkokE7ANokd09iSxMkqK67Yz/VvjTKCClmDheO5KJ9c9DoQ/4UqQ2QmL2KPormP6PxILp1PW3UN3NjK6OT+EiS4CiS5eSbgeqGWe+yROONz0rDssoiBkAJFN6G6iQzOAFox9QSslLbCAl7RO0bX3pklIGBLib1Jdlwg5iXgEuIteK3nWY4Ukn4XR3JaKk36cQSXABTmv2Nuf0MQBkZ8LcSGBQBgKU/RzAc6T4bmmcimTWhmVodnFkBzKRrgez60A2eNRvMRHXS/hrCv1ZyQv6+KFc+iB0/28W0bgGPA5XTv1g6y9R/H8WsF/JAEuIErIopTkQVrO9fsMsJfWtL/DKiGe/kR6ZvM8XUfJB92McTl0N/B0pfQQixUT9BKOa4vcptb15A6PKF0P9zMkO0jNS2raGEmL7GRW49kP0R6gNS+R9Rg7g/tfMeqkkHiX94qmwRJYuamkyi3p2+aUuqa7MzxKn8jHHZ18UiDzSfsUHnlzple2s7qjss4ldW+0BRx5apdy8XBcl0xWxZCcEYskj/A5NHfTiYdlF8gqY7tecEAKregaJy605R2+mtt+oUNtfNSR2aMmJMm9oDAocGW4pV1K87Sr2rbdv1ScMXlFviqQXIKxfXBjLq5FMaEH0NzHuOviaNutGGTteM8CSjYb0NEN+xv8WpcsEyS+emTOPoakwiK3XrTK7YVD+T17lkMLi57Ce2rFQXEtMray2FIU13WfY/qfYtINicQMnrsCsuRQ+W06VItrctQSjFfr2rLsfw6VZOTASOQTtud0fjTWUqQHyRMxXRcTIUnkYWZoxwiT4S7m8G0sMDXeA5jolm6FtSyRH/OL/EJztuXgpXw9Fy9GpzK7FRKbf4yEJT1GZWP7tnjPdMutq0bymz2yXpKwNsQjWsL0z/OXkASlkekXxVIcZx67CLEmG+4PKN3ZtlJz8ZMFdt1Jct0rc9bGS0atTMJoTtJa/jXJF7R/OpYiMufC4b4cZaBZ26uZUGkcZ75Q2Eoqrhm9UteYmERhwUaeBUYs9OilfogxVs5ek6I9JIzuVGqXypjbm1MJkr0tBZerTdnd/TsmZF0OcapJ5X8DjRgh26NwlJtKVXDJ5ZKAJMhX1DjVbWGSFwsu396pMjWiqMiM7G4EIXnKEhUFuQ6m39eap3eQgmCMtWARS1bTm6PPcaor/iHZOrNT3fUzKSAiFVGIE9xiLDPwiYpShajULz3y71rq0OU7tP0xrdcaviRkM/ySoLZHcz7HpRoPkl6QfOh6jvGYW+KRsO+R92X1hLOuixmvxPqpTQWiSCzvY5L+yBZJab5T58htRKXEEbIoBKap3MpJhCQSz+Ntms5v+sTeGwyl8GT1Z18h+T8MIHcd/UKmoH4HaBstkqh1/T9MOtkAEh9f0RmWoZyL3MOupBlLSA1cud99EbdPtWs66rABv+GIQRwUhUrMxWVw3avhgN8KbGcKhb2jHJ+C2c3TlyDWnrXKHfO7FZacyP4tu3sikstZWHYWioEVbZqOjYFBSBLJt+v2EZJsZnuPrNHASymTjAKinaKg6Lc8Ry62ZO5GkI7EHkq7CYAx1vNw86bJbdVLB6RwWvWsggvXoX2M7jBGVYT4A6KzzhW17KnoKq0xK6wNZGcS9zmstwX2vMNTDBPmDhhn/59RqguK/K3IwMtJDTtYPKqdqhasuSurOsuPJuMUcNTEoLm+Bs2aclNJNZLPPGy6S2F5JyzfBBxA8vJEe/ZvAQYAfI6/mqk2QpEAAAAASUVORK5CYII=");
}

.enterprises {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAApCAYAAABgDOogAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzMTcxRjY2OEY2MzExRUFBRjZFOEI5MTE1RkU0QTQ2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzMTcxRjY3OEY2MzExRUFBRjZFOEI5MTE1RkU0QTQ2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTMxNzFGNjQ4RjYzMTFFQUFGNkU4QjkxMTVGRTRBNDYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTMxNzFGNjU4RjYzMTFFQUFGNkU4QjkxMTVGRTRBNDYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6QjG2PAAAF3UlEQVR42txZC2xTVRi+bW/bPbqt7R7s/WbAFgdERVCCk+k0GhJFF4yiJkgkkihbWNQYQ5QoRgFFsqDBoGQjIYbFGCQhGI1EjagkvJnbZBt7dese7Vb6fvqdcjqPd7drt86181++3HvuOff0fvf85/v//06y5+A3HCwdeBeoBTTcwjULcAp4E+giF3ggAzgHFHML3xKBTUANcC/QRgi+LyD3G6BfoOTW0CPxwkbgQULwCWZQA7B/Aa/gYuAPQA2sJ0cps+fMwMcL3EX/Ar6l55IAwYCNAd7/wT40sA1+FhMkA08C9wFpIv1OYJC6ygnajprNlOBW4CMgKczxbwOPA9ejRVA6g7HPAp/PgByxUuBsNENQuCtYBHwmuDYKDIiMlQF5QAptEzc+Tl3aHYsEyQM3ASra9gDbgC8A3zTzvsqEnFXALgrWyEvoiZBDJdAbCUESG9cy7deAIyHucdO9mg/soNdI+nSaZk0cI+Up/+U2C0VwObCbaZ8JEiurgUKqmibm+hskmwAqqCcco3OaaT/xgIkICXojIXgQUDBxcouIW25j9ich+gzTZwc205Ahp2Kzn97DUXLqaKqogjl/CdCJjIlnzhNE+i/RcBGwe2JJZF6nLnYN+DqC3/mAljLZwMmoETxzx1lh/08UQe3hq1VciDkCyvuJyL0xoaKBh2nwSXwbJT7JKZDYE2SYHOOC7SkT7hMKQtRVlLW99FgOBCP4KGCcJtwIS7Goq+hc2johQaxoxCoq3CKR5KLB85bwrDXmqwmJf8tMa5eBuiB9F+aDkA9/7HPOtYuOw+3OzsC9SGXys+ByO+bYFDTrH8mrccs8D3kl3lQQcbZl37jEe/ijpfpCuz+zUDha45xKD/pk870HgyXyy0MNKhkuVNkUtmZjwsRj3el98ilu6OEPTcSbOlJsSS+W6osOW5TW7nhnXIvUJ406walZutTzL10oHM3bMKjWn7AqbMqg98jcktEkwxJj4sQvTpmrqVxX9gLaW5UupTSqBOGK4zQWihrIbezXDLYQAuHM55F6uL5U3fNw4bzKvmXrw3JR7JMSQRUvw7UVTDuHOVcJ+oTWB1Jj4Txs8XBBjk4z9FW45FjDij8g88r2VQyUNfAhyGnp9xTWPUjhezHILXdO00eMfFReE85DWuKsLXa5Y9YeNpw8Uq9wy/eGioOVAnKR2iq8NGkYoqIdUxlmVXUkOhLsWD3OybukeEEHQv3YFcAxhwTPi+SjU8wlc22H2MzINUnsyzFmfrm2Y1U8jjtue4Glhg8hAga88bs48e+fs7Eb4QwCwXUzJmfI/LRiYMl2Kjb+0GNR2DR8GEp3bb7V1SP1pk8+vE/CaSzqm3aFPUssVJB+rFgjyL1C2tdzOvbp1PotgfAh5WLTXIETrUXdaVAZi7LGF+Um25KMQnK5xqz3/iHXfmhAO7gTZd0sk+35SpA9fMekmipt+cUj+Us7M26Opt9KzVdbU/QsufKBsrdI+2pu2/F+7eDLPqYiQKB3swSTYoWg0q1onvxqJbfLh5JHLlKS5lSzphSr2ptnyG7o0+r85K7k/XkSMfNpEUXtl4JxQCW1EJTaWCDYnd57BnnlZCFsVdriWJKGxPGC3tQBf215Ob/1ewT2DWLzqBwJRyS7G1tO817+EebbyQ/c7f8ORcXwwp0u3lUPoXiqI7PrKLufEhzx9syJjLu7Mnr8wrfIlHZOnzy6WmyeJLvKnGFKS+HNcZZ3sHnXIfNOoNl9TTRXj0i+3C23tmd11sENn4MbVrMrqdPoL0A1jyGIV4Fckege9sp8abc0m1BCeWV8fWE/Nu+vSGtWYPLMWHBRPMfqkpGC81iBXbfizbUof9KZykGGayttCrsmGLlsY+bOpYOlzZPJ9u8lF0iRurK6dW0JFCybrmR0SfokpHgm/lmBFWvCam0OlXgn21QmiFBt2VDJd5Pz3P9jHbcQDNVFAYL9AbPSWmVVWlNIKkfcWelSuKGWPcDhZbrFHwrv+1uAAQCgZQwfwnBhuwAAAABJRU5ErkJggg==");
}

.type-title {
	font-size: 22px;
	color: #333;
	margin-bottom: 15px;
	text-align: center;
	white-space: nowrap;
}

.type-desc {
	color: #70757d;
	text-align: center;
	margin-bottom: 25px;
	white-space: nowrap;
}

.type-info {
	margin-bottom: 40px;
	white-space: nowrap;
}

.type-info li {
	font-size: 14px;
	line-height: 40px;
}

.type-info li i {
	color: var(--bs-global);
}

.addfunds-payment {
	padding: 1rem;
	margin-bottom: 1.5rem;
	border: 1px solid #eff2f7;
	text-align: center;
}

.addfunds-payment.active,
.addfunds-payment:hover {
	cursor: pointer;
	border-color: var(--bs-global);
}

.addfunds-payment img {
	height: 30px;
}

.table-container,
.table-responsive,
.table-header {
	margin-bottom: 1rem;
}

.table-responsive {
	min-height: calc(100vh - 650px);
}

.table-container {
	position: relative;
}

.table-responsive {
	background: #fff;
	/*
    border-radius: 4px;
    border: 1px solid #ced4da;
*/
}

.table-responsive .table {
	margin-bottom: 0;
}

/*
.table-responsive thead th {
	border-top: 0 none;
	background-color: #f8f9fa;
}
.table-responsive tbody {
	
}
*/
.table-responsive tbody tr:hover td {
	transition: all .4s;
	background-color: var(--bs-global-2);
}

.table-responsive .custom-control {
	min-height: inherit;
}

.table-header,
.table-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.table-header>* {
	flex: 1;
}

.table-pagination {
	display: flex;
	align-items: center;
}

.table-pagination .pagination {
	margin-bottom: 0;
}

.no-data {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
}

.note-editor .note-toolbar {
	border-radius: 4px 4px 0 0;
	overflow: hidden;
}

.note-btn-group .note-btn {
	border-color: #ced4da !important;
}

.form-control-label {
	font-size: 14px;
	color: #999;
	font-weight: 400;
}

.ticket-item {
	border-radius: 4px;
	margin-bottom: 1.5rem;
	min-height: 90px;
	max-height: 120px;
	padding: 1.5rem;
	border: 1px solid #eff2f7;
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAABOCAYAAABPLWqxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFGMzVCMTNEOTM1MzExRUE5ODA2OENFOUE3NDE1NzI3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFGMzVCMTNFOTM1MzExRUE5ODA2OENFOUE3NDE1NzI3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUYzNUIxM0I5MzUzMTFFQTk4MDY4Q0U5QTc0MTU3MjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUYzNUIxM0M5MzUzMTFFQTk4MDY4Q0U5QTc0MTU3MjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4d0eM2AAAEC0lEQVR42uyciY7jIAxADUl6zHzy/vaqTdoc20i2ykahuQyYgiWkmZHGgRfj2OZQ8KcFh1JgexzQoV6terWxoz1ELKUjwBXqVvi3DtseGXWdsY2wn7GCL5l1nRD2VC6vdnu1YaNOjTrN3wl8izOmSwl2iYPXC9Cur3bfAFzh/6gPzy0RehODpXPAXgJtupcfBN6v6NflA+i5MdwZufyufLZ32O1kqi+5hV/D73aGpSt8ITZXtNQHTlFSYe+ZvhU2QNhHBxaF39YMOgYGKwrdh2hgSxCVCmydjcZfJ0sB4yhTgF3siBxcwRbvSo5axFmQzx77UjPpu0mDfRFi1WY42WEMHyKcdeJGFIKuBM7Uy4YES4QbKfDNDjOQqQ4i2T+e0RAaS2ZJ2WEfGrbG+gVNpX6SSsciVPiCSUlAYxt//xsa9rSc+Q1JT2Gx7nGsD98WYP5cQTpyCjHdzK95SqJ8jzll2BAKdhQZmCN/rn3DTtGqubLozbBDhXUDhmZzcf3XwSb30Xl86IAh19x2hALeq/S+pPcJexz8HQd6dey7n5jZ2ay4M+obrmsvPaxbfHYSjYyDvDl8+AiwXukuCISrtUXXY12EbQ7SxeDqHe5myz6T0Ho3wybg3GlsfQBMzdyXJtTH2BZjcsI+ui+vZYQzAE+9mxX2wOgvWyE6OPWwwuYMiXohOgACb+bRC1OOa+pK0BFcPsHmireVEB2iYWsPz/CpI2RZ4uMgOJfBSiE6vNZBtjz8xPwMfeAjx1n+pUXrpaik8gVbA38h6LwzM6XNN9x96RY+uk52EOiZwV0dvdQ90C7AX9zXsP5UgzPYdAzD1crFacMgFfbFlY8t0ai87h4ojanqY7WGjuw9MG0eZl4+nUpwbXlkXFT29QJ78PyVppdL5xrNDTS+p7bXzUelkcaGCIskbAJqfQ+2hXSl9W3ZVMZMbTtDZ4n/O3B4NG9A4KltabDVtl2sVv3nMx+Jgfa+kGDC7hPz3d6NaxqBNMbfzP3ZMW8ftu3PDg57hHsD+8mDCjNB6R9SWrRuLYlTkP6XFkuw+TjK/C4g9+zhYyEjDHZVxh7XQPsungJBN75Sb98ZXA2ybkN4So+oNIMlSQnjGhAuR2F3QqybcyOPWNggCDZk2P5CvSRgS/HZScCWkOBEUa0sA72wFkO1aSpNt10WO/qQxL1+W3T0H+JzqsU8Ydu9fgDvu1q/3o2svS2SjlZ0Ky3/tkHvIxU30sJ74eEE9tMMW49W0P/8LkCOpizMWUx6Ypu7ZXjv0Yoe//dsRB30nKRvGZ7LKunCrvbgS1Twvk40WnFdJuVI56Ooe6SU1GTYWTLs6H32D6R5X0kQ2DrDzm4kw86ws2TYGXaWDDuV0K/OKJflnwADAPXK+SsHnQQHAAAAAElFTkSuQmCC");
	background-position: right bottom;
	background-size: 91px 78px;
	background-repeat: no-repeat;
}

.ticket-item h4 {
	font-weight: 400;
}

.ticket-item p {
	margin-bottom: 0;
}

.ticket-item:hover {
	box-shadow: 0 4px 20px 2px rgb(6 75 179 / 8%);
}

.knowledgebase .card-title a {
	display: block;
	color: #666;
	font-weight: 400;
	padding-bottom: 15px;
	border-bottom: 1px solid #eff2f7;
}

.kb-items {
	margin-bottom: 0;
}

.kb-item {
	line-height: 28px;
}

.kb-item>* {
	flex: 1;
}

.kb-item:last-child {
	border-bottom: 0 none;
}

.kb-item .date {
	color: #999;
	text-align: right;
}

.kb-link {
	color: #666;
	font-size: 14px;
}

/* ============ 工单系统聊天窗口样式 ============ */
.ticket-chat-wrapper {
	display: flex !important;
	flex-wrap: nowrap;
	gap: 0;
	height: 720px;
	min-height: 600px;
	max-height: 80vh;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 20px rgba(31, 50, 82, 0.08);
	margin: 0 0 20px 0;
	border: 1px solid #e7eaf3;
}

/* ===== 左侧会话列表 ===== */
.ticket-sidebar {
	width: 320px !important;
	min-width: 320px;
	max-width: 320px;
	background: #fafbfc;
	border-right: 1px solid #e7eaf3;
	display: flex !important;
	flex-direction: column;
	flex-shrink: 0;
}

.ticket-sidebar-header {
	padding: 18px 18px 14px !important;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid #e7eaf3;
	background: #fff;
}

.ticket-sidebar-title {
	display: flex !important;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0 !important;
}

.ticket-sidebar-title i {
	color: #b074d1;
	font-size: 18px;
}

.ticket-new-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%) !important;
	color: #fff !important;
	border-radius: 8px;
	text-decoration: none !important;
	font-size: 13px;
	font-weight: 500;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
	border: none !important;
}

.ticket-new-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(176, 116, 209, 0.4);
	color: #fff !important;
	text-decoration: none !important;
}

.ticket-search-box {
	padding: 12px 18px !important;
	position: relative;
	border-bottom: 1px solid #e7eaf3;
	background: #fff;
}

.ticket-search-box i {
	position: absolute !important;
	left: 30px;
	top: 50%;
	transform: translateY(-50%);
	color: #94a3b8;
	font-size: 14px;
}

.ticket-search-box input {
	width: 100% !important;
	padding: 9px 12px 9px 36px !important;
	background: #f3f5f9 !important;
	border: 1px solid transparent !important;
	border-radius: 8px !important;
	font-size: 13px;
	color: #1a1f36;
	transition: all 0.2s;
	box-shadow: none !important;
}

.ticket-search-box input:focus {
	outline: none !important;
	background: #fff !important;
	border-color: #b074d1 !important;
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1) !important;
}

.ticket-conversation-list {
	flex: 1 1 auto !important;
	overflow-y: auto !important;
	overflow-x: hidden;
	padding: 6px 0;
	background: #fafbfc;
}

.ticket-conversation-list::-webkit-scrollbar {
	width: 5px;
}

.ticket-conversation-list::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.3);
	border-radius: 3px;
}

.ticket-conversation-item {
	display: flex !important;
	gap: 12px;
	padding: 12px 18px !important;
	text-decoration: none !important;
	color: inherit !important;
	border-left: 3px solid transparent;
	transition: all 0.2s ease;
	cursor: pointer;
	margin: 0 !important;
}

.ticket-conversation-item:hover {
	background: rgba(176, 116, 209, 0.04) !important;
	text-decoration: none !important;
	color: inherit !important;
}

.ticket-conversation-item.active {
	background: linear-gradient(90deg, rgba(176, 116, 209, 0.1) 0%, rgba(176, 116, 209, 0.02) 100%) !important;
	border-left-color: #b074d1 !important;
}

.ticket-avatar {
	position: relative !important;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	flex-shrink: 0;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%) !important;
	border-radius: 12px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	color: #fff !important;
	font-weight: 600;
	font-size: 13px;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.25);
	margin: 0 !important;
}

.ticket-avatar-text {
	font-size: 12px !important;
	letter-spacing: -0.3px;
	color: #fff !important;
}

.ticket-status-dot {
	position: absolute !important;
	bottom: -2px;
	right: -2px;
	width: 12px !important;
	height: 12px !important;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.ticket-conversation-content {
	flex: 1 1 auto !important;
	min-width: 0;
	display: flex !important;
	flex-direction: column;
	gap: 4px;
}

.ticket-conversation-top {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.ticket-conversation-title {
	font-size: 14px !important;
	font-weight: 500 !important;
	color: #1a1f36 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
	margin: 0 !important;
}

.ticket-conversation-time {
	font-size: 11px !important;
	color: #94a3b8 !important;
	flex-shrink: 0;
}

.ticket-conversation-bottom {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.ticket-conversation-dept {
	font-size: 12px !important;
	color: #64748b !important;
	display: flex !important;
	align-items: center;
	gap: 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin: 0 !important;
}

.ticket-conversation-dept i {
	font-size: 11px;
}

.ticket-status-pill {
	font-size: 10px !important;
	padding: 2px 8px;
	border-radius: 10px;
	color: #fff !important;
	font-weight: 500;
	flex-shrink: 0;
	opacity: 0.9;
}

.ticket-empty {
	text-align: center !important;
	padding: 60px 20px !important;
	color: #94a3b8;
}

.ticket-empty-icon {
	font-size: 48px !important;
	margin-bottom: 12px;
	opacity: 0.4;
}

.ticket-empty p {
	margin: 0 !important;
	font-size: 14px !important;
	color: #94a3b8 !important;
}

/* ===== 右侧聊天主面板 ===== */
.ticket-main-panel {
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column;
	background: #fff;
	min-width: 0;
	overflow: hidden;
}

/* 欢迎页 */
.ticket-welcome {
	flex: 1 1 auto !important;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 40px !important;
	text-align: center;
}

.ticket-welcome-icon {
	color: #cbd5e1;
	margin-bottom: 24px;
	opacity: 0.7;
}

.ticket-welcome h3 {
	font-size: 20px !important;
	font-weight: 600 !important;
	color: #1a1f36 !important;
	margin: 0 0 12px 0 !important;
}

.ticket-welcome p {
	font-size: 14px !important;
	color: #64748b !important;
	margin: 0 0 24px 0 !important;
}

.ticket-welcome-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 10px 24px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%) !important;
	color: #fff !important;
	border-radius: 10px;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.3s ease;
	box-shadow: 0 6px 18px rgba(176, 116, 209, 0.3);
	border: none !important;
}

.ticket-welcome-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(176, 116, 209, 0.4);
	color: #fff !important;
	text-decoration: none !important;
}

/* 聊天头部 */
.ticket-chat-header {
	padding: 14px 20px !important;
	background: #fff !important;
	border-bottom: 1px solid #e7eaf3;
	display: flex !important;
	align-items: center;
	gap: 14px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
	flex-shrink: 0;
}

.ticket-back-btn {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: #f3f5f9 !important;
	border-radius: 10px !important;
	color: #64748b !important;
	text-decoration: none !important;
	transition: all 0.2s;
	flex-shrink: 0;
	border: none !important;
}

.ticket-back-btn:hover {
	background: #b074d1 !important;
	color: #fff !important;
	text-decoration: none !important;
}

.ticket-chat-header-info {
	flex: 1 1 auto !important;
	min-width: 0;
}

.ticket-chat-header-top {
	display: flex !important;
	align-items: center;
	gap: 12px;
	margin: 0 0 4px 0 !important;
}

.ticket-chat-title {
	font-size: 16px !important;
	font-weight: 600 !important;
	color: #1a1f36 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin: 0 !important;
}

.ticket-chat-status {
	font-size: 11px !important;
	padding: 3px 10px;
	border-radius: 12px;
	color: #fff !important;
	font-weight: 500;
	flex-shrink: 0;
}

.ticket-chat-header-meta {
	display: flex !important;
	gap: 16px;
	font-size: 12px !important;
	color: #94a3b8 !important;
	flex-wrap: wrap;
	margin: 0 !important;
}

.ticket-chat-header-meta span {
	display: flex !important;
	align-items: center;
	gap: 4px;
}

.ticket-chat-header-meta i {
	font-size: 11px;
}

.ticket-chat-header-actions {
	display: flex !important;
	gap: 8px;
	flex-shrink: 0;
}

.ticket-action-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	border-radius: 8px;
	font-size: 13px;
	text-decoration: none !important;
	transition: all 0.2s;
	cursor: pointer;
	border: 1px solid transparent !important;
}

.ticket-action-close {
	background: rgba(239, 68, 68, 0.08) !important;
	color: #ef4444 !important;
	border-color: rgba(239, 68, 68, 0.15) !important;
}

.ticket-action-close:hover {
	background: #ef4444 !important;
	color: #fff !important;
	text-decoration: none !important;
}

.ticket-action-refresh {
	background: rgba(59, 130, 246, 0.08) !important;
	color: #3b82f6 !important;
	border-color: rgba(59, 130, 246, 0.15) !important;
}

.ticket-action-refresh:hover {
	background: #3b82f6 !important;
	color: #fff !important;
	text-decoration: none !important;
}

/* 消息流 */
.ticket-chat-body {
	flex: 1 1 auto !important;
	overflow-y: auto !important;
	overflow-x: hidden;
	padding: 24px !important;
	background: #f5f7fb !important;
	min-height: 0;
}

.ticket-chat-body::-webkit-scrollbar {
	width: 6px;
}

.ticket-chat-body::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.3);
	border-radius: 3px;
}

.ticket-message {
	display: flex !important;
	gap: 12px;
	margin: 0 0 20px 0 !important;
	animation: messageSlideIn 0.3s ease;
	align-items: flex-start;
}

.ticket-message:last-child {
	margin-bottom: 0 !important;
}

@keyframes messageSlideIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.ticket-message-user {
	flex-direction: row-reverse !important;
}

.ticket-message-avatar {
	flex-shrink: 0;
}

.ticket-avatar-circle {
	width: 40px !important;
	height: 40px !important;
	min-width: 40px;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	color: #fff !important;
	font-size: 16px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	margin: 0 !important;
}

.ticket-avatar-admin {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%) !important;
}

.ticket-avatar-user {
	background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
}

.ticket-message-bubble-wrap {
	max-width: 70%;
	display: flex !important;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.ticket-message-user .ticket-message-bubble-wrap {
	align-items: flex-end;
}

.ticket-message-meta {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-size: 12px !important;
	color: #94a3b8 !important;
	padding: 0 4px;
	margin: 0 !important;
}

.ticket-message-user .ticket-message-meta {
	flex-direction: row-reverse;
}

.ticket-message-name {
	font-weight: 500 !important;
	color: #475569 !important;
}

.ticket-message-role {
	padding: 1px 6px;
	border-radius: 4px;
	font-size: 10px !important;
	font-weight: 500;
}

.ticket-role-admin {
	background: rgba(176, 116, 209, 0.1) !important;
	color: #b074d1 !important;
}

.ticket-role-user {
	background: rgba(245, 158, 11, 0.1) !important;
	color: #d97706 !important;
}

.ticket-message-time {
	color: #cbd5e1 !important;
}

.ticket-message-bubble {
	background: #fff !important;
	padding: 12px 16px !important;
	border-radius: 14px !important;
	border-top-left-radius: 4px !important;
	box-shadow: 0 2px 12px rgba(31, 50, 82, 0.06);
	border: 1px solid #e7eaf3;
	position: relative;
	word-break: break-word;
	max-width: 100%;
}

.ticket-message-user .ticket-message-bubble {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%) !important;
	color: #fff !important;
	border-top-left-radius: 14px !important;
	border-top-right-radius: 4px !important;
	border-color: transparent !important;
}

.ticket-message-content {
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: #1a1f36 !important;
	word-break: break-word;
}

.ticket-message-content img {
	max-width: 100% !important;
	height: auto !important;
	border-radius: 6px;
}

.ticket-message-user .ticket-message-content {
	color: #fff !important;
}

.ticket-message-attachments {
	margin-top: 10px !important;
	padding-top: 10px !important;
	border-top: 1px dashed rgba(0, 0, 0, 0.08) !important;
}

.ticket-message-user .ticket-message-attachments {
	border-top-color: rgba(255, 255, 255, 0.2) !important;
}

.ticket-attach-title {
	font-size: 12px !important;
	color: #94a3b8 !important;
	margin: 0 0 6px 0 !important;
	display: flex !important;
	align-items: center;
	gap: 4px;
}

.ticket-message-user .ticket-attach-title {
	color: rgba(255, 255, 255, 0.7) !important;
}

.ticket-attach-item {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	background: rgba(176, 116, 209, 0.08) !important;
	border-radius: 6px;
	font-size: 12px !important;
	color: #b074d1 !important;
	text-decoration: none !important;
	margin: 0 6px 4px 0 !important;
	transition: all 0.2s;
}

.ticket-attach-item:hover {
	background: #b074d1 !important;
	color: #fff !important;
	text-decoration: none !important;
}

.ticket-message-user .ticket-attach-item {
	background: rgba(255, 255, 255, 0.2) !important;
	color: #fff !important;
}

.ticket-message-user .ticket-attach-item:hover {
	background: rgba(255, 255, 255, 0.3) !important;
	color: #fff !important;
}

.ticket-message-rating {
	margin-top: 12px !important;
	padding-top: 10px !important;
	border-top: 1px dashed rgba(0, 0, 0, 0.08) !important;
	display: flex !important;
	align-items: center;
	gap: 10px;
}

.ticket-rating-label {
	font-size: 12px !important;
	color: #94a3b8 !important;
}

/* 回复输入区 */
.ticket-chat-footer {
	padding: 14px 20px !important;
	background: #fff !important;
	border-top: 1px solid #e7eaf3;
	flex-shrink: 0;
}

.ticket-reply-form {
	display: flex !important;
	flex-direction: column;
	gap: 10px;
	margin: 0 !important;
}

.ticket-reply-textarea-wrap {
	position: relative;
}

.ticket-reply-textarea {
	width: 100% !important;
	min-height: 70px !important;
	max-height: 180px !important;
	padding: 12px 16px !important;
	border: 1px solid #e7eaf3 !important;
	border-radius: 10px !important;
	background: #fff !important;
	resize: none !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: #1a1f36 !important;
	transition: all 0.2s;
	box-sizing: border-box !important;
	box-shadow: none !important;
}

.ticket-reply-textarea:focus {
	outline: none !important;
	border-color: #b074d1 !important;
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1) !important;
}

.ticket-reply-textarea::placeholder {
	color: #cbd5e1 !important;
}

.ticket-reply-toolbar {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 !important;
}

.ticket-reply-attachments {
	display: flex !important;
	align-items: center;
	gap: 8px;
	flex: 1 1 auto;
	flex-wrap: wrap;
	margin: 0 !important;
}

.ticket-attach-btn {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: rgba(176, 116, 209, 0.08) !important;
	color: #b074d1 !important;
	border-radius: 10px !important;
	cursor: pointer;
	transition: all 0.2s;
	flex-shrink: 0;
	border: none !important;
	margin: 0 !important;
}

.ticket-attach-btn:hover {
	background: #b074d1 !important;
	color: #fff !important;
}

.ticket-file-list {
	display: flex !important;
	gap: 6px;
	flex-wrap: wrap;
	margin: 0 !important;
}

.ticket-file-item {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	background: #f3f5f9 !important;
	border-radius: 6px;
	font-size: 12px !important;
	color: #475569 !important;
	margin: 0 !important;
}

.ticket-file-remove {
	color: #94a3b8 !important;
	cursor: pointer;
	margin-left: 2px;
	font-size: 14px;
	text-decoration: none !important;
}

.ticket-file-remove:hover {
	color: #ef4444 !important;
}

.ticket-reply-actions {
	display: flex !important;
	gap: 8px;
	align-items: center;
	flex-shrink: 0;
}

.ticket-reply-cancel {
	padding: 8px 16px;
	color: #64748b !important;
	text-decoration: none !important;
	font-size: 13px !important;
	border-radius: 8px;
	transition: all 0.2s;
}

.ticket-reply-cancel:hover {
	background: #f3f5f9 !important;
	color: #475569 !important;
	text-decoration: none !important;
}

.ticket-reply-submit {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	padding: 9px 20px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 10px;
	font-size: 13px !important;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
	margin: 0 !important;
}

.ticket-reply-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(176, 116, 209, 0.4);
	color: #fff !important;
}

.ticket-reply-submit i {
	font-size: 14px;
}

.ticket-chat-closed {
	padding: 16px 24px !important;
	text-align: center !important;
	background: #f3f5f9 !important;
	color: #94a3b8 !important;
	font-size: 14px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-top: 1px solid #e7eaf3;
	flex-shrink: 0;
}

/* 分页 */
.ticket-pagination-wrapper {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px !important;
	background: #fff;
	border-radius: 10px;
	margin: 0 !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ticket-pageinfo {
	font-size: 13px !important;
	color: #64748b !important;
	margin: 0 !important;
}

.ticket-pagination {
	display: flex !important;
	gap: 4px;
	margin: 0 !important;
}

.ticket-pagination .pagination {
	margin: 0 !important;
}

.ticket-pagination .page-item .page-link {
	border-radius: 6px !important;
	border: 1px solid #e7eaf3 !important;
	color: #475569 !important;
	font-size: 13px !important;
}

.ticket-pagination .page-item.active .page-link {
	background: #b074d1 !important;
	border-color: #b074d1 !important;
	color: #fff !important;
}

/* 响应式 */
@media (max-width: 768px) {
	.ticket-chat-wrapper {
		height: auto !important;
		min-height: 500px;
		max-height: none;
		flex-direction: column !important;
	}

	.ticket-sidebar {
		width: 100% !important;
		min-width: 0;
		max-width: 100%;
		max-height: 400px;
		border-right: none !important;
		border-bottom: 1px solid #e7eaf3;
	}

	.ticket-message-bubble-wrap {
		max-width: 85%;
	}

	.ticket-chat-header-meta {
		display: none !important;
	}

	.ticket-chat-header-actions {
		gap: 6px !important;
	}

	.ticket-action-btn {
		padding: 6px 8px !important;
		font-size: 12px !important;
		gap: 4px !important;
	}

	.ticket-action-btn span {
		display: none !important;
	}

	/* 欢迎面板移动端紧凑化 */
	.ticket-main-panel .ticket-welcome {
		padding: 16px !important;
		justify-content: flex-start;
	}

	.ticket-main-panel .ticket-welcome-icon {
		display: none !important;
	}

	.ticket-main-panel .ticket-welcome h3 {
		font-size: 14px !important;
		margin: 0 0 4px 0 !important;
	}

	.ticket-main-panel .ticket-welcome p {
		font-size: 12px !important;
		margin: 0 0 12px 0 !important;
	}

	.ticket-main-panel .ticket-welcome-btn {
		padding: 6px 16px !important;
		font-size: 13px !important;
	}

	/* 详情页：移动端侧边栏限制高度，主面板自适应 */
	.ticket-detail-wrapper .ticket-sidebar {
		max-height: 200px !important;
	}

	.ticket-detail-wrapper .ticket-conversation-item {
		padding: 8px 12px !important;
	}

	.ticket-detail-wrapper .ticket-conversation-time,
	.ticket-detail-wrapper .ticket-conversation-dept {
		display: none !important;
	}
}

/* 兼容summernote等编辑器 */
.note-editor.note-frame {
	border: 1px solid #e7eaf3 !important;
	border-radius: 10px !important;
	overflow: hidden;
}

/* ===== 附件上传验证 ===== */
.ticket-file-error {
	color: #ef4444 !important;
	font-size: 12px !important;
	padding: 4px 0 !important;
	margin: 4px 0 0 0 !important;
	animation: shake 0.4s ease;
}

@keyframes shake {

	0%,
	100% {
		transform: translateX(0);
	}

	25% {
		transform: translateX(-5px);
	}

	75% {
		transform: translateX(5px);
	}
}

.ticket-file-preview {
	display: flex !important;
	align-items: center;
	gap: 8px;
	padding: 4px 8px !important;
	background: rgba(176, 116, 209, 0.06) !important;
	border: 1px dashed rgba(176, 116, 209, 0.3) !important;
	border-radius: 8px !important;
}

.ticket-file-thumb {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px;
	object-fit: cover;
	border-radius: 4px !important;
	border: 1px solid #e7eaf3;
}

.ticket-file-name {
	font-size: 12px !important;
	color: #475569 !important;
	max-width: 120px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ticket-file-size {
	font-size: 11px !important;
	color: #94a3b8 !important;
	flex-shrink: 0;
}

/* ===== 聊天消息中的图片附件 ===== */
.ticket-attach-list {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 !important;
}

.ticket-attach-image {
	position: relative !important;
	width: 120px !important;
	height: 120px !important;
	min-width: 120px;
	border-radius: 10px !important;
	overflow: hidden;
	cursor: zoom-in;
	border: 1px solid #e7eaf3;
	transition: all 0.25s ease;
	flex-shrink: 0;
}

.ticket-attach-image:hover {
	transform: scale(1.03);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.ticket-attach-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	margin: 0 !important;
	padding: 0 !important;
}

.ticket-attach-image-overlay {
	position: absolute !important;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0);
	display: flex !important;
	align-items: center;
	justify-content: center;
	transition: all 0.25s ease;
	opacity: 0;
}

.ticket-attach-image:hover .ticket-attach-image-overlay {
	background: rgba(0, 0, 0, 0.3);
	opacity: 1;
}

.ticket-attach-image-overlay i {
	color: #fff !important;
	font-size: 20px;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));
}

.ticket-message-user .ticket-attach-image {
	border-color: rgba(255, 255, 255, 0.3);
}

/* ===== 图片预览Modal ===== */
.ticket-image-preview-modal {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.85) !important;
	z-index: 99999 !important;
	display: none;
	align-items: center;
	justify-content: center;
	animation: fadeIn 0.2s ease;
}

.ticket-image-preview-modal.show {
	display: flex !important;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.ticket-preview-close {
	position: absolute !important;
	top: 20px;
	right: 24px;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px;
	background: rgba(255, 255, 255, 0.1) !important;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	color: #fff !important;
	font-size: 20px;
	cursor: pointer;
	transition: all 0.2s;
	z-index: 10;
}

.ticket-preview-close:hover {
	background: rgba(255, 255, 255, 0.2) !important;
	transform: rotate(90deg);
}

.ticket-preview-wrapper {
	max-width: 90vw;
	max-height: 80vh;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	animation: zoomIn 0.25s ease;
}

@keyframes zoomIn {
	from {
		transform: scale(0.9);
		opacity: 0;
	}

	to {
		transform: scale(1);
		opacity: 1;
	}
}

.ticket-preview-wrapper img {
	max-width: 90vw;
	max-height: 75vh;
	object-fit: contain;
	border-radius: 8px !important;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.ticket-preview-name {
	color: rgba(255, 255, 255, 0.7) !important;
	font-size: 14px !important;
	margin-top: 14px !important;
	max-width: 600px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: center;
}

.ticket-preview-actions {
	position: absolute !important;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	display: flex !important;
	gap: 12px;
}

.ticket-preview-download {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 10px 24px;
	background: #b074d1 !important;
	color: #fff !important;
	border-radius: 10px !important;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.2s;
	box-shadow: 0 4px 16px rgba(176, 116, 209, 0.4);
}

.ticket-preview-download:hover {
	background: #9a5fc3 !important;
	color: #fff !important;
	transform: translateY(-2px);
	text-decoration: none !important;
}

/* 响应式调整 */
@media (max-width: 768px) {
	.ticket-attach-image {
		width: 90px !important;
		height: 90px !important;
		min-width: 90px;
	}

	.ticket-preview-close {
		top: 12px;
		right: 12px;
		width: 38px !important;
		height: 38px !important;
	}
}

/* ============ 工单系统样式结束 ============ */

.ticket-reply .post-by {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 15px;
	/* background-color: #f0f2f6; */
}

.ticket-reply.admin .post-by {
	background-color: #f6faff;
}

.idcsmart.layui-layer {
	border-radius: 4px;
}

.idcsmart .layui-layer-title {
	display: flex;
	align-items: center;
	border-radius: 4px 4px 0 0;
}

.idcsmart .layui-layer-title:before {
	content: '';
	width: 2px;
	height: 14px;
	display: inline-block;
	background-color: #2f54ea;
	margin-right: 10px;
}

.idcsmart .layui-layer-btn {
	padding: 12px 15px;
	border-top: 1px solid #eee;
}

.idcsmart .layui-layer-btn>a {
	min-height: 34px;
	min-width: 80px;
	border-radius: 4px;
	margin-top: 0;
	line-height: 34px;
	text-align: center;
}

.idcsmart .layui-layer-btn .layui-layer-btn0 {
	color: #fff;
	background-color: #6064ff;
	border-color: #6064ff;
}

.idcsmart .layui-layer-btn .layui-layer-btn0:hover {
	color: #fff;
	background-color: #3452e1;
	border-color: #2948df;
}

.idcsmart .layui-layer-setwin {
	top: 13px;
}

.pay-body {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.pay-title {
	color: #999;
	font-size: 14px;
}

.pay-amount {
	display: inline-block;
	margin-top: 18px;
	font-size: 20px;
	font-weight: 700;
	color: #333;
}

.pay-area {
	margin-top: 20px;
	margin-bottom: 60px;
	position: relative;
}

.pay-html,
.pay-jump {
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pay-html,
.pay-insert,
.pay-jump,
.pay-none,
.pay-url {
	width: 200px;
	height: 200px;
}

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

.pay-tools .form-control {
	width: 200px;
}

.affiliates-item-title {
	font-size: 16px;
	font-weight: 400;
}

.affiliates-item-text {
	margin-bottom: 0;
	color: #999;
}

.bg-promote {
	color: #FFF;
	background-color: #b074d1;
	box-shadow: 0 6px 14px 2px #ded7c7;
}

.aff-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	padding: 15px 20px;
}

.aff-item>* {
	flex: 1;
}

.aff-item-title {
	display: flex;
	align-items: center;
}

.aff-item-title>i {
	font-size: 18px;
}

.aff-item-num {
	font-size: 18px;
	text-align: right;
	font-family: DINCondensed-Bold;
	margin-top: 8px;
	line-height: 1;
}

.aff-amo-num {
	margin-top: 8px;
	font-family: DINCondensed-Bold;
	font-size: 22px;
	display: flex;
	align-items: baseline;
	line-height: 1;
}

.aff-amo-num small {
	font-size: 12px;
	margin-left: 5px;
}

.aff-amo-nums {
	margin-top: 0;
	font-size: 40px;
	line-height: 2;
	position: relative;
}

.aff-amo-nums:before {
	content: '';
	position: absolute;
	top: 10px;
	right: 20px;
	background-image: url("../img/withdrawal.svg");
	background-repeat: no-repeat;
	background-size: cover;
	width: 48px;
	height: 48px;
	opacity: 0.2;
}

.affs-nav.nav-tabs-custom .nav-item .nav-link {
	line-height: 32px;
}

.news-items {}

.news-item {
	padding: 1.5rem 0;
	border-bottom: 1px solid #f0f2f7;
}

.news-item a {
	color: #333;
}



.user-center_header {
	width: 56px;
	height: 56px;
	font-size: 30px;
	border-radius: 50%;
	background-color: var(--bs-global-1);
	color: #fff;
}

.user-center_safety_wrapper {
	width: 200px;
}

.user-center_safety_wrapper .user-center_safety {
	width: 30px;
	height: 30px;
	background-color: #228cfc;
	color: #fff;
	font-size: 20px;
	border-radius: 50%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.user-center_name {
	max-width: 150px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
}

.user-center_product_grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 12px 20px;
}

.user-center_product_grid .user-center_product {
	height: 52px;
	padding: 0 20px;
	cursor: pointer;
	background-color: #ffffff;
	border: 1px solid var(--light);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.user-center_h50 {
	height: 50px;
}

.user-center_h100 {
	height: 100px;
}

.user-center_h150 {
	height: 150px;
}

.user-center_h300 {
	height: 300px;
}

.user-center_h450 {
	height: 450px;
}

.user-center_h500 {
	height: 500px;
}

.user-center_calc {
	height: calc(100vh - 505px);
	min-height: 400px;
}

.user-center_notice_ul {
	height: calc(100% - 30px);
	overflow: auto;
}

.user-center_dot {
	width: 10px;
	height: 10px;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	border-radius: 50%;
}

.user-center_resources {
	overflow-y: auto;
}

.user-center_notice_item {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	height: 30px;
}

.user-center_notice_item .notice_item_time {
	margin-right: 12px;
}

.user-center_notice_item .notice_item_title {
	font-weight: 500;
	width: -webkit-max-content;
	width: -moz-max-content;
	width: max-content;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	word-break: keep-all;
	cursor: pointer;
}

.bx {
	line-height: 0.6;
}

.offset-3 {
	position: relative;
	top: -3px;
}

.pointer {
	cursor: pointer;
}

.note-editor.note-frame .note-editing-area .note-editable {
	color: #333;
}

.not-allowed {
	cursor: not-allowed;
}

/* 服务器内页 电源状态 */
.bx-loader {
	font-size: 24px;
	animation: rotate 2s linear infinite;
}

@keyframes rotate {
	0% {
		transform: rotateZ(0deg);
		/*从0度开始*/
	}

	100% {
		transform: rotateZ(360deg);
		/*360度结束*/
	}
}

.power-detail-box {
	min-height: 94px;
}

.powerimg {
	width: 50px;
	height: 50px;
	background-color: #edf0f5;
	box-shadow: 0 6px 14px 2px rgba(6, 31, 179, .26);
	border-radius: 4px;
}

.sprite {
	background-image: url("../img/status2.png");
	background-size: 48px;
	background-repeat: repeat-y;
	width: 48px;
	height: 48px;
	display: inline-block;
}

.sprite.start {
	background-position: 0px 0px;
}

.sprite.closed {
	background-position: 0px -55px;
}

.sprite.waitOn {
	background-position: 0px -218px;
}

.sprite.waitOff {
	background-position: 0px -272px;
}

.sprite.pause {
	background-position: 0px -485px;
}

.sprite.unknown {
	background-position: 0px -163px;
}

.sprite.waiting {
	background-position: 0px -859px;
}

.sprite2 {
	background-image: url("../img/status3.0.png");
	background-size: 48px;
	background-repeat: repeat-y;
	width: 48px;
	height: 48px;
	display: inline-block;
}

.sprite2.Pending {
	background-position: 0px 0px;
}

.sprite2.Fraud {
	background-position: 0px -230px;
}

.sprite2.Deleted {
	background-position: 0px -77px;
}

.sprite2.Cancelled {
	background-position: 0px -154px;
}

.sprite2.Active {
	background-position: 0px -307px;
}

.sprite2.Suspended {
	background-position: 0px 48px;
}

/* 取消任务按钮 */
.cancelBtn {
	background-color: rgba(255, 255, 255, 0.3);
	box-shadow: 0px 6px 14px 2px rgba(6, 31, 179, 0.26);
	border-radius: 4px;
	color: #fff;
	cursor: pointer;
	padding: 3px 10px;
	margin-left: 10px;
}

/* 菜单背景颜色 */
.vertical-menu {
	background: var(--white) !important;
}

.navbar-brand-box {
	background: var(--white) !important;
}

/* 续费弹窗周期样式 */
.btn-radio-bill {
	white-space: nowrap;
	padding: .47rem .2rem;
}

/* 评分插件数量隐藏 */
.badge.badge-info {
	display: none;
}


/* slider */
.irs--square .irs-handle {
	border: 2px solid #6064ff !important;
	width: 12px !important;
	height: 12px !important;
	top: 26px !important;
}

.irs--square {
	width: 80%;
	float: left;
	margin-right: 20px;
}

/* selct2 */
.btn-light,
.btn-light:hover {
	background-color: #fff;
}

.dropdown-item {
	padding: 0.5rem 1rem;
}

/* 购物车注册登录方式切换样式更改 */
.cart-login .btn-primary,
.cart-login .btn-primary:not(:disabled):not(.disabled).active,
.cart-login .btn-primary:not(:disabled):not(.disabled):active,
.cart-register .btn-primary,
.cart-register .btn-primary:not(:disabled):not(.disabled).active {
	color: #333;
	background-color: #fff;
	border-color: #fff;
}

.cart-login .btn-primary:not(:disabled):not(.disabled).active,
.cart-register .btn-primary:not(:disabled):not(.disabled).active {
	border-bottom: 1px solid #2040db;
}

.cart-login .btn-primary.focus,
.cart-login .btn-primary:focus,
.cart-login .btn-primary:not(:disabled):not(.disabled).active:focus,
.cart-register .btn-primary.focus,
.cart-register .btn-primary:focus,
.cart-register .btn-primary:not(:disabled):not(.disabled).active:focus {
	box-shadow: none;
}

.bootstrap-select {
	position: relative;
}

.bootstrap-select::after {
	content: '';
	width: 0;
	height: 0;
	border-top: 4px solid rgb(185, 189, 197);
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	position: absolute;
	right: 10px;
	top: 16px;
}

.bootstrap-select .dropdown-menu {
	min-width: 100% !important;
}

.dropdown-menu {
	min-width: 5rem !important;
}


.btn-group-toggle .btn-primary {
	background: #eaeaea;
	color: #666;
	border: 1px solid #eaeaea;
}

.btn-group-toggle.cart-login .btn-primary {
	background: none;
	border: none;
	padding: .25rem 2rem;
	border-radius: 0;
}



.btn-group-toggle .btn-primary input[type="radio"]:disabled::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	color: #CED1E2;
	cursor: not-allowed;
	background-image: none;
	background-color: #FFF;
	border-color: #EBEEF5;
	box-shadow: none;

}

.btn-group-toggle .btn-primary.disabled {
	color: #CED1E2;
	cursor: not-allowed;
	background-image: none;
	background-color: #fff;
	border-color: #fff;
	box-shadow: none;
}

.btn-group-toggle .btn-sm {
	padding: .25rem .95rem;
}

.text-gray {
	color: #999;
}

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

/*取消模态对话框弹出隐藏滚动条操作*/
.modal-open {
	overflow: auto !important;
}

/*增加强制换行*/
.col-form-label {
	word-break: break-all;
}

.table td,
.table th {
	vertical-align: middle !important;
}

.label-color {
	color: #495057 !important;
}

/* ssl证书待验证 */
.status-verifiy_active {
	color: #fff;
	background-color: #fca426;
	border-color: #fca426;
	padding: 5px 10px;
}

/* ssl证书即将过期 */
.status-overdue_active {
	color: #fff;
	background-color: #6064FF;
	border-color: #6064FF;
	padding: 5px 10px;
}

/* ssl证书已签发 */
.status-issue_active {
	color: #fff;
	background-color: #3FBF70;
	border-color: #3FBF70;
	padding: 5px 10px;
}

.zd-cascader-wrap .zd-input__inner {
	height: 36px;
}

.zd-cascader-wrap.is-focus .zd-input .zd-input__inner {
	border-color: #ced4da !important;
}

.zd-cascader-wrap:focus-within .zd-input__inner {
	border-color: #ced4da !important;
}

.btn-light:not(:disabled):not(.disabled).active:focus,
.btn-light:not(:disabled):not(.disabled):active:focus,
.show>.btn-light.dropdown-toggle:focus {
	box-shadow: none !important;
}

.btn.focus,
.btn:focus {
	box-shadow: none !important;
}

.btn-light:not(:disabled):not(.disabled).active,
.btn-light:not(:disabled):not(.disabled):active,
.show>.btn-light.dropdown-toggle {
	background-color: #fff !important;
	border-color: #ced4da !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
	-webkit-transition-delay: 99999s !important;
	-webkit-transition: color 99999s ease-out, background-color 99999s ease-out !important;
}

input:-webkit-autofill {
	box-shadow: none !important;
	-webkit-box-shadow: none !important;

}

/* ============================================================
   P0 - 侧边栏导航重构（对齐工单系统设计风格）
   ============================================================ */

/* --- 侧边栏变量 --- */
:root {
	--sidebar-bg: #ffffff;
	--sidebar-text: #475569;
	--sidebar-text-hover: #1a1f36;
	--sidebar-text-muted: #94a3b8;
	--sidebar-border: #e7eaf3;
	--sidebar-radius: 10px;
	--sidebar-shadow: 0 2px 8px rgba(31, 50, 82, 0.06);
	--sidebar-active-bg: linear-gradient(90deg, rgba(176, 116, 209, 0.1) 0%, rgba(176, 116, 209, 0.02) 100%);
	--sidebar-hover-bg: rgba(176, 116, 209, 0.04);
	--sidebar-spacing-x: 10px;
	--sidebar-spacing-y: 2px;
	--sidebar-item-height: 42px;
	--sidebar-group-title-size: 11px;
	--sidebar-icon-size: 18px;
}

/* --- 侧边栏容器 --- */
.vertical-menu {
	background: var(--sidebar-bg) !important;
	border-right: 1px solid var(--sidebar-border);
}

.navbar-brand-box {
	background: var(--sidebar-bg) !important;
	border-bottom: 1px solid var(--sidebar-border);
}

/* --- 滚动条 --- */
.vertical-menu .simplebar-content-wrapper::-webkit-scrollbar {
	width: 5px;
}

.vertical-menu .simplebar-content-wrapper::-webkit-scrollbar-track {
	background: transparent;
}

.vertical-menu .simplebar-content-wrapper::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.3);
	border-radius: 3px;
}

.vertical-menu .simplebar-content-wrapper::-webkit-scrollbar-thumb:hover {
	background: rgba(148, 163, 184, 0.5);
}

/* Firefox 滚动条 */
.vertical-menu .simplebar-content-wrapper {
	scrollbar-width: thin;
	scrollbar-color: rgba(148, 163, 184, 0.3) transparent;
}

/* --- 导航列表 --- */
.sidebar-nav-wrapper {
	padding: 8px 0;
}

.sidebar-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* --- 分组卡片 --- */
.sidebar-nav-group {
	margin: 4px 8px;
	border-radius: var(--sidebar-radius);
	border: 1px solid transparent;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sidebar-nav-group:hover {
	border-color: var(--sidebar-border);
}

.sidebar-nav-group:not(.collapsed) {
	background: #fafbfc;
	border-color: var(--sidebar-border);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03);
}

/* --- 分组标题 --- */
.sidebar-nav-group-title {
	padding: 16px 20px 6px;
	font-size: var(--sidebar-group-title-size);
	font-weight: 600;
	color: var(--sidebar-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1.4;
}

/* --- 导航项 --- */
.sidebar-nav-item {
	display: flex;
	align-items: center;
	gap: 10px;
	height: var(--sidebar-item-height);
	padding: 0 14px;
	margin: var(--sidebar-spacing-y) var(--sidebar-spacing-x);
	border-radius: var(--sidebar-radius);
	color: var(--sidebar-text);
	font-size: 14px;
	font-weight: 400;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, border-radius 0.2s ease;
	position: relative;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-nav-item:hover {
	background: var(--sidebar-hover-bg);
	color: var(--sidebar-text-hover);
	text-decoration: none;
}

.sidebar-nav-item:focus {
	outline: none;
	text-decoration: none;
	color: var(--sidebar-text);
}

.sidebar-nav-item:active {
	background: rgba(176, 116, 209, 0.06);
}

/* --- Active 状态（左侧色条 + 渐变背景） --- */
.sidebar-nav-item.active {
	background: var(--sidebar-active-bg);
	color: var(--bs-global);
	font-weight: 500;
	border-left: 3px solid var(--bs-global);
	border-radius: 0 var(--sidebar-radius) var(--sidebar-radius) 0;
	margin-left: 0;
	padding-left: 11px;
}

.sidebar-nav-item.active:hover {
	color: var(--bs-global);
}

/* --- 图标 --- */
.sidebar-nav-item>i {
	font-size: var(--sidebar-icon-size);
	width: 20px;
	text-align: center;
	flex-shrink: 0;
	line-height: 1;
}

/* --- 文字 --- */
.sidebar-nav-item>span {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* --- 徽章 --- */
.sidebar-nav-badge {
	margin-left: auto;
	padding: 2px 8px;
	min-width: 20px;
	text-align: center;
	background: rgba(239, 68, 68, 0.1);
	color: #ef4444;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
	flex-shrink: 0;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.sidebar-nav-badge.info {
	background: rgba(59, 130, 246, 0.1);
	color: #3b82f6;
}

.sidebar-nav-badge.success {
	background: rgba(59, 191, 112, 0.1);
	color: #3fbf70;
}

.sidebar-nav-badge.warning {
	background: rgba(245, 158, 11, 0.1);
	color: #d97706;
}

.sidebar-nav-badge.primary {
	background: var(--bs-global-o-1);
	color: var(--bs-global);
}

.sidebar-nav-badge.muted {
	background: rgba(148, 163, 184, 0.15);
	color: #94a3b8;
}

/* --- 分组箭头 --- */
.sidebar-nav-group-toggle {
	cursor: pointer;
}

.sidebar-nav-group-toggle .sidebar-nav-group-arrow {
	margin-left: 4px;
	font-size: 12px;
	color: var(--sidebar-text-muted);
	transition: transform 0.25s ease;
	flex-shrink: 0;
	order: 99;
}

.sidebar-nav-group-toggle .sidebar-nav-badge {
	order: 98;
}

.sidebar-nav-group-toggle:not(.collapsed) .sidebar-nav-group-arrow {
	transform: rotate(90deg);
}

/* --- 子菜单 --- */
.sidebar-nav-submenu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 20px;
	overflow: hidden;
	transition: max-height 0.25s ease, opacity 0.2s ease;
	max-height: 500px;
	opacity: 1;
}

.sidebar-nav-group.collapsed .sidebar-nav-submenu {
	max-height: 0;
	opacity: 0;
}

.sidebar-nav-submenu .sidebar-nav-item {
	font-size: 13.5px;
	height: 38px;
}

.sidebar-nav-submenu .sidebar-nav-item>i {
	font-size: 14px;
	width: 16px;
}

/* --- 三级菜单缩进 --- */
.sidebar-nav-submenu .sidebar-nav-submenu {
	padding-left: 16px;
}

/* --- 未登录菜单样式同步 --- */
.vertical-menu:not(.logged-in) .sidebar-nav-item {
	color: var(--sidebar-text);
}

.vertical-menu:not(.logged-in) .sidebar-nav-item:hover {
	color: var(--sidebar-text-hover);
}

/* --- 收起状态适配 --- */
.vertical-collpsed .sidebar-nav-item>span,
.vertical-collpsed .sidebar-nav-group-title,
.vertical-collpsed .sidebar-nav-group-arrow,
.vertical-collpsed .sidebar-nav-badge,
.vertical-collpsed .bx-chevron-right {
	display: none !important;
}

.vertical-collpsed .sidebar-nav-item {
	justify-content: center !important;
	align-items: center !important;
	padding: 0 !important;
	margin: 4px auto !important;
	gap: 0 !important;
	width: 44px !important;
	height: 44px !important;
	min-height: 44px !important;
	border-radius: 10px !important;
}

.vertical-collpsed .sidebar-nav-item>i:first-child {
	margin: 0 !important;
	font-size: 20px !important;
	width: auto !important;
	flex-shrink: 0 !important;
}

.vertical-collpsed .sidebar-nav-submenu {
	display: none !important;
}

.vertical-collpsed .sidebar-nav-group {
	margin: 0 !important;
}

.vertical-collpsed .sidebar-nav-group-toggle {
	cursor: default !important;
}

/* 覆盖 app.css 收起状态下的锚点样式 */
.vertical-collpsed .vertical-menu #sidebar-menu>ul>li>a.sidebar-nav-item,
.vertical-collpsed .vertical-menu #sidebar-menu>ul>li>div>a.sidebar-nav-item {
	padding: 0 !important;
	min-height: 44px !important;
	height: 44px !important;
	width: 44px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 4px auto !important;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li>a.sidebar-nav-item i,
.vertical-collpsed .vertical-menu #sidebar-menu>ul>li>div>a.sidebar-nav-item i {
	margin-left: 0 !important;
	margin-right: 0 !important;
	font-size: 20px !important;
}

/* 收起状态 hover 展开二级导航 */
.vertical-collpsed .vertical-menu #sidebar-menu>ul>li {
	position: relative;
	white-space: nowrap;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>a {
	position: relative;
	width: calc(190px + 70px);
	color: var(--bs-global);
	background-color: #f5f5f5;
	z-index: 10;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>a span {
	display: inline !important;
	padding-left: 12px;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>a i:first-child {
	color: var(--bs-global);
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>ul.sidebar-nav-submenu {
	display: block !important;
	position: absolute;
	left: 70px;
	top: 100%;
	width: 190px;
	height: auto !important;
	background: #fff;
	border-radius: 0 8px 8px 0;
	box-shadow: 3px 5px 10px 0 rgba(54, 61, 71, 0.15);
	z-index: 9999;
	padding: 6px 0;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>ul.sidebar-nav-submenu .sidebar-nav-item {
	justify-content: flex-start !important;
	padding: 8px 16px !important;
	margin: 0 !important;
	width: 100% !important;
	height: auto !important;
	min-height: auto !important;
	border-radius: 0 !important;
	gap: 10px !important;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>ul.sidebar-nav-submenu .sidebar-nav-item>span {
	display: block !important;
	font-size: 13px;
}

.vertical-collpsed .vertical-menu #sidebar-menu>ul>li:hover>ul.sidebar-nav-submenu .sidebar-nav-item:hover {
	background: #f5f5f5;
}

/* --- 覆盖 metismenu 残留样式 --- */
.sidebar-nav .has-arrow:after,
.sidebar-nav .arrow,
#sidebar-menu .has-arrow:after,
#sidebar-menu .mm-collapse,
#sidebar-menu .mm-collapsing {
	display: none !important;
}

.sidebar-nav-group .sidebar-nav-group-toggle .sidebar-nav-group-arrow {
	display: block !important;
}

/* --- 响应式适配 --- */
@media (max-width: 991.98px) {
	.vertical-menu {
		border-right: none;
		border-bottom: 1px solid var(--sidebar-border);
	}

	.sidebar-nav-item {
		height: 46px;
		font-size: 15px;
	}
}

@media (max-width: 575.98px) {
	.sidebar-nav-item {
		margin: 2px 6px;
		padding: 0 12px;
	}
}

/* ============================================================
   用户中心主页重构（对齐工单系统设计风格）
   ============================================================ */

/* --- 变量 --- */
:root {
	--ca-card-radius: 12px;
	--ca-card-border: #e7eaf3;
	--ca-card-shadow: 0 2px 8px rgba(31, 50, 82, 0.06);
	--ca-card-shadow-hover: 0 4px 20px rgba(31, 50, 82, 0.08);
	--ca-stat-radius: 12px;
	--ca-stat-icon-size: 48px;
	--ca-card-padding: 20px;
	--ca-section-gap: 20px;
}

/* --- 通用卡片 --- */
.ca-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	transition: box-shadow 0.3s ease;
}

.ca-card:hover {
	box-shadow: var(--ca-card-shadow-hover);
}

.ca-card-title {
	font-size: 15px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0;
}

/* --- 统计卡片 --- */
.ca-stat-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: var(--ca-card-padding);
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	transition: all 0.3s ease;
	cursor: pointer;
	text-decoration: none;
	height: 100%;
	color: inherit;
}

.ca-stat-card:hover {
	box-shadow: var(--ca-card-shadow-hover);
	transform: translateY(-2px);
	text-decoration: none;
	color: inherit;
}

.ca-stat-icon {
	width: var(--ca-stat-icon-size);
	height: var(--ca-stat-icon-size);
	min-width: var(--ca-stat-icon-size);
	border-radius: var(--ca-stat-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 22px;
}

.ca-stat-products {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.ca-stat-orders {
	background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.ca-stat-tickets {
	background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
	box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.ca-stat-uptime {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-stat-info {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.ca-stat-label {
	font-size: 13px;
	color: #64748b;
	font-weight: 400;
}

.ca-stat-value {
	font-size: 24px;
	font-weight: 700;
	color: #1a1f36;
	line-height: 1.2;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.ca-stat-value .badge {
	font-size: 11px;
	padding: 3px 8px;
	border-radius: 10px;
	vertical-align: middle;
	margin-left: 4px;
	font-weight: 500;
}

/* --- 个人信息卡片 --- */
.ca-profile-card {
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
	height: 100%;
}

.ca-profile-header {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	padding: 16px 20px;
}

.ca-profile-group {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px 5px 5px;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 100px;
	color: #fff;
	font-size: 13px;
	font-weight: 500;
}

.ca-profile-group i {
	width: 24px;
	height: 24px;
	background: rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.ca-profile-body {
	padding: 20px;
	display: flex;
	align-items: center;
	gap: 14px;
}

.ca-profile-avatar img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 3px solid #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.ca-profile-info {
	flex: 1;
	min-width: 0;
}

.ca-profile-name {
	font-size: 16px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0 0 6px 0;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.ca-badge {
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 500;
}

.ca-badge-primary {
	background: var(--bs-global-o-1);
	color: var(--bs-global);
}

.ca-profile-meta {
	font-size: 13px;
	color: #64748b;
	margin: 0 0 4px 0;
	display: flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ca-profile-meta i {
	color: #94a3b8;
	font-size: 14px;
}

.ca-profile-actions {
	padding: 0 20px 20px;
	display: flex;
	gap: 10px;
}

.ca-btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 14px;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.2s;
	border: none;
	cursor: pointer;
}

.ca-btn-outline {
	background: #f3f5f9;
	color: #475569;
}

.ca-btn-outline:hover {
	background: #e7eaf3;
	color: #1a1f36;
	text-decoration: none;
}

.ca-btn-primary {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(176, 116, 209, 0.4);
	color: #fff;
	text-decoration: none;
}

.ca-btn-sm {
	padding: 6px 14px;
	font-size: 12px;
	flex: none;
}

.ca-finance-header .ca-btn,
.ca-products-header .ca-btn {
	flex: none;
}

/* --- 财务信息卡片 --- */
.ca-finance-card {
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	padding: var(--ca-card-padding);
	height: 100%;
	display: flex;
	flex-direction: column;
}

.ca-finance-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.ca-finance-balance {
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--ca-card-border);
}

.ca-finance-amount {
	font-size: 32px;
	font-weight: 700;
	color: var(--bs-global);
	line-height: 1;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.ca-finance-unit {
	font-size: 14px;
	color: #94a3b8;
	font-weight: 400;
}

.ca-finance-stats {
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
}

.ca-finance-stat {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ca-finance-stat-label {
	font-size: 12px;
	color: #94a3b8;
	display: flex;
	align-items: center;
	gap: 4px;
}

.ca-finance-stat-value {
	font-size: 18px;
	font-weight: 600;
	color: #1a1f36;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.ca-finance-stat-value.text-danger {
	color: #ef4444;
}

.ca-finance-stat-link {
	font-size: 12px;
	color: var(--bs-global);
	text-decoration: none;
}

.ca-finance-stat-link:hover {
	text-decoration: underline;
}

.ca-finance-stat-link.text-warning {
	color: #d97706;
}

/* --- 已开通产品卡片 --- */
.ca-products-card {
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	padding: var(--ca-card-padding);
	display: flex;
	flex-direction: column;
}

.ca-products-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.ca-products-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
}

.ca-product-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	background: #f8f9fb;
	border-radius: 8px;
	text-decoration: none;
	color: #475569;
	font-size: 13px;
	font-weight: 500;
	transition: all 0.2s;
	border: 1px solid transparent;
	min-height: 48px;
}

.ca-product-item:hover {
	background: #fff;
	border-color: var(--ca-card-border);
	box-shadow: 0 2px 8px rgba(31, 50, 82, 0.06);
	text-decoration: none;
	color: #1a1f36;
	transform: translateY(-1px);
}

.ca-product-item>span {
	display: flex;
	align-items: center;
	gap: 8px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

.ca-product-item>span i {
	font-size: 14px;
	color: #94a3b8;
	flex-shrink: 0;
}

.ca-product-count {
	padding: 2px 8px;
	min-width: 20px;
	text-align: center;
	background: var(--bs-global-o-1);
	color: var(--bs-global);
	border-radius: 10px;
	font-size: 11px;
	font-weight: 600;
	flex-shrink: 0;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

/* 产品卡片空状态 */
.ca-products-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	color: #94a3b8;
}

.ca-products-empty i {
	font-size: 32px;
	margin-bottom: 8px;
	opacity: 0.4;
}

.ca-products-empty p {
	font-size: 13px;
	margin: 0;
}

.ca-products-empty i {
	font-size: 32px;
	margin-bottom: 8px;
	opacity: 0.4;
}

.ca-products-empty p {
	font-size: 13px;
	margin: 0;
}

.ca-product-item>span {
	display: flex;
	align-items: center;
	gap: 8px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}

.ca-product-item>span i {
	font-size: 14px;
	color: #94a3b8;
	flex-shrink: 0;
}

.ca-product-count {
	padding: 2px 8px;
	min-width: 20px;
	text-align: center;
	background: var(--bs-global-o-1);
	color: var(--bs-global);
	border-radius: 10px;
	font-size: 11px;
	font-weight: 600;
	flex-shrink: 0;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

/* --- 资源列表卡片 --- */
.ca-resource-card {
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	padding: var(--ca-card-padding);
	height: 100%;
	display: flex;
	flex-direction: column;
}

.ca-resource-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.ca-resource-table-wrap {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
}

.ca-resource-table-wrap::-webkit-scrollbar {
	width: 5px;
}

.ca-resource-table-wrap::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.3);
	border-radius: 3px;
}

.ca-resource-table {
	width: 100%;
	border-collapse: collapse;
}

.ca-resource-table thead th {
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	text-align: left;
	background: #f3f5f9;
	border-bottom: 1px solid var(--ca-card-border);
	position: sticky;
	top: 0;
	white-space: nowrap;
}

.ca-resource-table thead th:first-child {
	border-radius: 8px 0 0 0;
}

.ca-resource-table thead th:last-child {
	border-radius: 0 8px 0 0;
}

.ca-resource-table tbody td {
	padding: 12px;
	font-size: 13px;
	color: #475569;
	border-bottom: 1px solid #f3f5f9;
	white-space: nowrap;
}

.ca-resource-table tbody tr {
	transition: background 0.15s;
}

.ca-resource-table tbody tr:hover {
	background: #fafbfc;
}

.ca-resource-table tbody tr:last-child td {
	border-bottom: none;
}

.ca-resource-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.ca-resource-status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}

.ca-resource-status-dot.bg-success {
	background: #3fbf70;
}

.ca-resource-status-dot.bg-danger {
	background: #ef4444;
}

.ca-resource-status-dot.bg-warning {
	background: #f59e0b;
}

.ca-resource-status-dot.bg-secondary {
	background: #94a3b8;
}

.ca-resource-host-link {
	color: #1a1f36;
	text-decoration: none;
	font-weight: 500;
}

.ca-resource-host-link:hover {
	color: var(--bs-global);
	text-decoration: underline;
}

/* --- 公告通知卡片 --- */
.ca-notice-card {
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	padding: var(--ca-card-padding);
	height: 100%;
	display: flex;
	flex-direction: column;
}

.ca-notice-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.ca-notice-header .ca-card-title {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-notice-header .ca-card-title a {
	font-size: 12px;
	color: #64748b;
	font-weight: 400;
	text-decoration: none;
}

.ca-notice-header .ca-card-title a:hover {
	color: var(--bs-global);
}

.ca-notice-list {
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1;
	overflow-y: auto;
	min-height: 0;
}

.ca-notice-list::-webkit-scrollbar {
	width: 5px;
}

.ca-notice-list::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.3);
	border-radius: 3px;
}

.ca-notice-item {
	padding: 12px 0;
	border-bottom: 1px solid #f3f5f9;
}

.ca-notice-item:last-child {
	border-bottom: none;
}

.ca-notice-item:first-child {
	padding-top: 0;
}

.ca-notice-time {
	font-size: 11px;
	color: #94a3b8;
	margin-bottom: 4px;
	display: flex;
	align-items: center;
	gap: 4px;
}

.ca-notice-title {
	font-size: 13px;
	color: #475569;
	text-decoration: none;
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
	transition: color 0.2s;
}

.ca-notice-title:hover {
	color: var(--bs-global);
	text-decoration: none;
}

.ca-notice-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	color: #94a3b8;
}

.ca-notice-empty i {
	font-size: 36px;
	margin-bottom: 8px;
	opacity: 0.4;
}

.ca-notice-empty p {
	font-size: 13px;
	margin: 0;
}

.ca-notice-footer {
	padding-top: 12px;
	margin-top: 12px;
	border-top: 1px solid #f3f5f9;
}

.ca-btn-full {
	flex: none;
	width: 100%;
}

.ca-btn-full i {
	font-size: 14px;
}

/* --- 表格底部 --- */
.ca-table-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 14px;
	margin-top: 14px;
	border-top: 1px solid var(--ca-card-border);
}

.ca-table-pageinfo {
	font-size: 13px;
	color: #64748b;
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-table-pageinfo select {
	padding: 4px 24px 4px 8px;
	border: 1px solid var(--ca-card-border);
	border-radius: 6px;
	font-size: 13px;
	color: #475569;
	background-color: #fff;
	cursor: pointer;
}

.ca-table-pagination .pagination {
	margin: 0;
	display: flex;
	gap: 4px;
}

.ca-table-pagination .page-item .page-link {
	border-radius: 6px;
	border: 1px solid var(--ca-card-border);
	color: #475569;
	font-size: 13px;
	padding: 4px 10px;
}

.ca-table-pagination .page-item.active .page-link {
	background: var(--bs-global);
	border-color: var(--bs-global);
	color: #fff;
}

.ca-table-pagination .page-item .page-link:hover {
	background: #f3f5f9;
	border-color: #d1d5db;
}

/* --- 响应式适配 --- */
@media (max-width: 1399.98px) {
	.ca-products-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 991.98px) {
	.ca-products-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767.98px) {
	.ca-stat-card {
		padding: 16px;
	}

	.ca-stat-icon {
		width: 42px;
		height: 42px;
		min-width: 42px;
		font-size: 18px;
	}

	.ca-stat-value {
		font-size: 20px;
	}

	.ca-profile-body {
		padding: 16px;
	}

	.ca-profile-actions {
		padding: 0 16px 16px;
	}

	.ca-finance-balance {
		margin-bottom: 16px;
		padding-bottom: 12px;
	}

	.ca-finance-amount {
		font-size: 26px;
	}

	.ca-products-grid {
		grid-template-columns: 1fr;
	}

	.ca-table-footer {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
}

@media (max-width: 575.98px) {
	.ca-stat-card {
		gap: 10px;
	}

	.ca-profile-body {
		flex-direction: column;
		text-align: center;
	}

	.ca-profile-name {
		justify-content: center;
	}

	.ca-profile-meta {
		justify-content: center;
	}

	.ca-profile-actions {
		flex-direction: column;
	}
}

/* ============================================================
   个人信息页面（/details）
   ============================================================ */

.ca-form-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	margin-bottom: 20px;
	overflow: hidden;
}

.ca-form-section {
	padding: 24px;
}

.ca-form-section+.ca-form-section {
	border-top: 1px solid #f3f5f9;
}

.ca-form-section-title {
	font-size: 15px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0 0 20px 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-form-section-title i {
	font-size: 18px;
	color: var(--bs-global);
}

.ca-form-row {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -10px;
}

.ca-form-col {
	flex: 0 0 50%;
	max-width: 50%;
	padding: 0 10px;
	margin-bottom: 16px;
}

.ca-form-col-full {
	flex: 0 0 100%;
	max-width: 100%;
}

.ca-form-group {
	margin-bottom: 0;
}

.ca-form-group label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: #475569;
	margin-bottom: 6px;
}

.ca-form-control {
	width: 100%;
	padding: 9px 14px;
	font-size: 14px;
	color: #1a1f36;
	background: #fff;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	transition: all 0.2s;
	box-sizing: border-box;
	-webkit-appearance: none;
}

.ca-form-control:focus {
	outline: none;
	border-color: var(--bs-global);
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1);
}

.ca-form-control:disabled,
.ca-form-control[readonly] {
	background: #f3f5f9;
	color: #94a3b8;
	cursor: not-allowed;
}

.ca-form-control::placeholder {
	color: #cbd5e1;
}

select.ca-form-control {
	padding-right: 32px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	cursor: pointer;
}

textarea.ca-form-control {
	resize: vertical;
	min-height: 80px;
}

.ca-form-check {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-form-check input[type="checkbox"] {
	width: 16px;
	height: 16px;
	border: 1px solid #e7eaf3;
	border-radius: 4px;
	cursor: pointer;
	-webkit-appearance: none;
	background: #fff;
	position: relative;
	flex-shrink: 0;
}

.ca-form-check input[type="checkbox"]:checked {
	background: var(--bs-global);
	border-color: var(--bs-global);
}

.ca-form-check input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 2px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.ca-form-check label {
	font-size: 13px;
	color: #475569;
	cursor: pointer;
	margin: 0;
}

.ca-form-actions {
	padding: 20px 24px;
	background: #fafbfc;
	border-top: 1px solid #f3f5f9;
	display: flex;
	justify-content: flex-end;
	gap: 12px;
}

.ca-btn-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 28px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-btn-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(176, 116, 209, 0.4);
}

.ca-btn-submit i {
	font-size: 16px;
}

.ca-btn-reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 20px;
	background: #fff;
	color: #475569;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
}

.ca-btn-reset:hover {
	background: #f3f5f9;
	color: #1a1f36;
}

/* ============================================================
   产品列表页面（/service）
   ============================================================ */

.ca-service-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
}

.ca-service-toolbar {
	padding: 16px 20px;
	background: #fafbfc;
	border-bottom: 1px solid var(--ca-card-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.ca-service-filter {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.ca-service-filter .selectpicker {
	border-radius: 8px;
}

.ca-service-search {
	position: relative;
	width: 240px;
	max-width: 100%;
}

.ca-service-search input {
	width: 100%;
	padding: 8px 14px 8px 38px;
	font-size: 13px;
	color: #1a1f36;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	background: #fff;
	transition: all 0.2s;
}

.ca-service-search input:focus {
	outline: none;
	border-color: var(--bs-global);
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1);
}

.ca-service-search input::placeholder {
	color: #cbd5e1;
}

.ca-service-search i {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: #94a3b8;
	font-size: 16px;
}

.ca-service-table-wrap {
	overflow-x: auto;
}

.ca-service-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 900px;
}

.ca-service-table thead th {
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	text-align: left;
	background: #f3f5f9;
	border-bottom: 1px solid var(--ca-card-border);
	white-space: nowrap;
}

.ca-service-table thead th:first-child {
	border-radius: 0;
}

.ca-service-table thead th:last-child {
	border-radius: 0;
}

.ca-service-table thead th.pointer {
	cursor: pointer;
	user-select: none;
}

.ca-service-table thead th.pointer:hover {
	color: #1a1f36;
}

.ca-service-table thead th .sort-icon {
	display: inline-flex;
	flex-direction: column;
	margin-left: 4px;
	vertical-align: middle;
	line-height: 0.5;
}

.ca-service-table thead th .sort-icon i {
	font-size: 10px;
	color: #cbd5e1;
	line-height: 0.5;
}

.ca-service-table thead th .sort-icon i.active {
	color: var(--bs-global);
}

.ca-service-table tbody td {
	padding: 12px;
	font-size: 13px;
	color: #475569;
	border-bottom: 1px solid #f3f5f9;
	vertical-align: middle;
}

.ca-service-table tbody tr {
	transition: background 0.15s;
}

.ca-service-table tbody tr:hover {
	background: #fafbfc;
}

.ca-service-table tbody tr:last-child td {
	border-bottom: none;
}

.ca-service-checkbox {
	width: 16px;
	height: 16px;
	border: 1px solid #e7eaf3;
	border-radius: 4px;
	cursor: pointer;
	-webkit-appearance: none;
	background: #fff;
	position: relative;
	flex-shrink: 0;
}

.ca-service-checkbox:checked {
	background: var(--bs-global);
	border-color: var(--bs-global);
}

.ca-service-checkbox:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 2px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.ca-service-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 500;
	white-space: nowrap;
}

.ca-service-status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}

.ca-service-status-active {
	background: rgba(59, 191, 112, 0.1);
	color: #3fbf70;
}

.ca-service-status-active .ca-service-status-dot {
	background: #3fbf70;
}

.ca-service-status-pending {
	background: rgba(245, 158, 11, 0.1);
	color: #d97706;
}

.ca-service-status-pending .ca-service-status-dot {
	background: #f59e0b;
}

.ca-service-status-suspended {
	background: rgba(239, 68, 68, 0.1);
	color: #ef4444;
}

.ca-service-status-suspended .ca-service-status-dot {
	background: #ef4444;
}

.ca-service-status-fraud {
	background: rgba(148, 163, 184, 0.1);
	color: #94a3b8;
}

.ca-service-status-fraud .ca-service-status-dot {
	background: #94a3b8;
}

.ca-service-status-deleted {
	background: rgba(45, 45, 45, 0.1);
	color: #2d2d2d;
}

.ca-service-status-deleted .ca-service-status-dot {
	background: #2d2d2d;
}

.ca-service-host-link {
	color: #1a1f36;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
}

.ca-service-host-link:hover {
	color: var(--bs-global);
	text-decoration: underline;
}

.ca-service-domain {
	display: block;
	font-size: 12px;
	color: #94a3b8;
	margin-top: 2px;
}

.ca-service-ip {
	font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
	font-size: 12px;
	color: #475569;
}

.ca-service-ip-more {
	cursor: pointer;
	color: var(--bs-global);
}

.ca-service-due-date {
	white-space: nowrap;
}

.ca-service-due-date .cancel-icon {
	color: #ef4444;
	margin-left: 4px;
	cursor: pointer;
}

.ca-service-cost {
	white-space: nowrap;
}

.ca-service-cost-value {
	font-weight: 600;
	color: #1a1f36;
}

.ca-service-cost-cycle {
	font-size: 11px;
	color: #94a3b8;
}

.ca-service-cost-auto {
	font-size: 11px;
	color: #3fbf70;
}

.ca-service-os {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: #475569;
}

.ca-service-os img {
	width: 16px;
	height: 16px;
}

.ca-service-notes {
	display: flex;
	align-items: center;
	gap: 6px;
	max-width: 150px;
}

.ca-service-notes span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	flex: 1;
	color: #475569;
}

.ca-service-notes i {
	color: var(--bs-global);
	cursor: pointer;
	flex-shrink: 0;
}

.ca-service-action-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 14px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: all 0.2s;
	box-shadow: 0 2px 8px rgba(176, 116, 209, 0.25);
}

.ca-service-action-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.35);
	color: #fff;
	text-decoration: none;
}

.ca-service-action-btn i {
	font-size: 14px;
}

.ca-service-footer {
	padding: 14px 20px;
	background: #fafbfc;
	border-top: 1px solid var(--ca-card-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.ca-service-bulk {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.ca-service-bulk .btn {
	padding: 6px 14px;
	font-size: 12px;
	border-radius: 6px;
}

.ca-service-bulk .dropdown-menu {
	border-radius: 8px;
	border: 1px solid var(--ca-card-border);
	box-shadow: 0 4px 16px rgba(31, 50, 82, 0.1);
	padding: 4px 0;
}

.ca-service-bulk .dropdown-item {
	padding: 8px 16px;
	font-size: 13px;
	color: #475569;
}

.ca-service-bulk .dropdown-item:hover {
	background: #f3f5f9;
	color: #1a1f36;
}

.ca-service-pagination {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ca-service-pageinfo {
	font-size: 13px;
	color: #64748b;
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-service-pageinfo select {
	padding: 4px 24px 4px 8px;
	border: 1px solid var(--ca-card-border);
	border-radius: 6px;
	font-size: 13px;
	color: #475569;
	background-color: #fff;
	cursor: pointer;
}

.ca-service-pagination .pagination {
	margin: 0;
	display: flex;
	gap: 4px;
}

.ca-service-pagination .page-item .page-link {
	border-radius: 6px;
	border: 1px solid var(--ca-card-border);
	color: #475569;
	font-size: 13px;
	padding: 4px 10px;
}

.ca-service-pagination .page-item.active .page-link {
	background: var(--bs-global);
	border-color: var(--bs-global);
	color: #fff;
}

.ca-service-pagination .page-item .page-link:hover {
	background: #f3f5f9;
	border-color: #d1d5db;
}

.ca-service-empty {
	padding: 60px 20px;
	text-align: center;
	color: #94a3b8;
}

.ca-service-empty i {
	font-size: 48px;
	margin-bottom: 12px;
	opacity: 0.4;
	display: block;
}

.ca-service-empty p {
	font-size: 14px;
	margin: 0;
}

/* 电源状态点 */
.ca-power-dot {
	cursor: pointer;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 2px solid #fff;
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 1;
}

.ca-power-dot.on_color {
	background-color: #3fbf70;
}

.ca-power-dot.off_color {
	background-color: #e31519;
}

.ca-power-dot.ing_color {
	background-color: #f5f5f5;
}

.ca-power-dot.unknown_color {
	background-color: #c0c0c0;
}

.ca-power-dot.error_color {
	background-color: #959799;
}

/* 响应式 */
@media (max-width: 767.98px) {
	.ca-service-toolbar {
		flex-direction: column;
		align: stretch;
	}

	.ca-service-search {
		width: 100%;
	}

	.ca-service-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.ca-service-bulk {
		justify-content: center;
	}

	.ca-service-pagination {
		flex-direction: column;
		align-items: center;
	}
}

/* ============================================================
   产品详情页面（servicedetail）弹窗样式
   ============================================================ */

.ca-modal .modal-content {
	border-radius: 12px;
	border: 1px solid #e7eaf3;
	box-shadow: 0 4px 20px rgba(31, 50, 82, 0.08);
}

.ca-modal .modal-header {
	padding: 16px 20px;
	border-bottom: 1px solid #f3f5f9;
	background: #fafbfc;
	border-radius: 12px 12px 0 0;
}

.ca-modal .modal-header .modal-title {
	font-size: 15px;
	font-weight: 600;
	color: #1a1f36;
}

.ca-modal .modal-header .close {
	font-size: 18px;
	color: #94a3b8;
	padding: 8px;
	margin: -8px -8px -8px auto;
}

.ca-modal .modal-header .close:hover {
	color: #475569;
}

.ca-modal .modal-body {
	padding: 20px;
}

.ca-modal .modal-body label {
	font-size: 13px;
	font-weight: 500;
	color: #475569;
}

.ca-modal .modal-body .form-control {
	padding: 9px 14px;
	font-size: 14px;
	color: #1a1f36;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	transition: all 0.2s;
}

.ca-modal .modal-body .form-control:focus {
	outline: none;
	border-color: var(--bs-global);
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1);
}

.ca-modal .modal-body .form-control.is-invalid {
	border-color: #f46a6a;
}

.ca-modal .modal-body .error-tip {
	color: #f46a6a;
	font-size: 12px;
	margin: 4px 0 0 0;
	padding: 0;
	line-height: 1.4;
}

.ca-modal .modal-footer {
	padding: 14px 20px;
	border-top: 1px solid #f3f5f9;
	background: #fafbfc;
	border-radius: 0 0 12px 12px;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.ca-modal .modal-footer .btn {
	padding: 8px 20px;
	font-size: 13px;
	font-weight: 500;
	border-radius: 8px;
}

.ca-modal .modal-footer .btn-primary {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	border: none;
	color: #fff;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-modal .modal-footer .btn-primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(176, 116, 209, 0.4);
}

.ca-modal .modal-footer .btn-secondary,
.ca-modal .modal-footer .btn-outline-light {
	background: #fff;
	border: 1px solid #e7eaf3;
	color: #475569;
}

.ca-modal .modal-footer .btn-secondary:hover,
.ca-modal .modal-footer .btn-outline-light:hover {
	background: #f3f5f9;
	color: #1a1f36;
}

.ca-modal .modal-body .tips {
	font-size: 12px;
	color: #f46a6a;
	line-height: 1.6;
}

.ca-modal .modal-body .create_random_pass,
.ca-modal .modal-body .module_reinstall_random_port {
	color: var(--bs-global);
	cursor: pointer;
}

.ca-modal .modal-body .create_random_pass:hover,
.ca-modal .modal-body .module_reinstall_random_port:hover {
	color: #9a5fc3;
}

.ca-modal .modal-body .custom-control-label {
	font-size: 13px;
	color: #475569;
}

.ca-modal .modal-body .selectpicker {
	border-radius: 8px;
}

/* 合同蒙层 */
.ca-contract-overlay {
	width: 100%;
	height: 100%;
	position: fixed;
	right: 0;
	top: 0;
	background: #000;
	z-index: 999999;
	opacity: 0.4;
}

.ca-contract-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1000000;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ca-contract-modal .modal-dialog {
	max-width: 500px;
	width: 100%;
	margin: 20px;
}

.ca-contract-modal .modal-content {
	border-radius: 12px;
	border: 1px solid #e7eaf3;
	box-shadow: 0 4px 20px rgba(31, 50, 82, 0.15);
}

.ca-contract-modal .modal-header {
	padding: 16px 20px;
	border-bottom: 1px solid #f3f5f9;
	background: #fafbfc;
	border-radius: 12px 12px 0 0;
}

.ca-contract-modal .modal-header .modal-title {
	font-size: 15px;
	font-weight: 600;
	color: #1a1f36;
}

.ca-contract-modal .modal-body {
	padding: 20px;
	font-size: 14px;
	color: #475569;
	line-height: 1.6;
}

.ca-contract-modal .modal-body a {
	color: var(--bs-global);
	text-decoration: underline;
}

.ca-contract-modal .modal-body a:hover {
	color: #9a5fc3;
}

.ca-contract-modal .modal-footer {
	padding: 14px 20px;
	border-top: 1px solid #f3f5f9;
	background: #fafbfc;
	border-radius: 0 0 12px 12px;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.ca-contract-modal .modal-footer .btn {
	padding: 8px 20px;
	font-size: 13px;
	font-weight: 500;
	border-radius: 8px;
}

.ca-contract-modal .modal-footer .btn-primary {
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	border: none;
	color: #fff;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-contract-modal .modal-footer .btn-outline-light {
	background: #fff;
	border: 1px solid #e7eaf3;
	color: #475569;
}

.ca-contract-modal .modal-footer .btn-outline-light:hover {
	background: #f3f5f9;
}

@media (max-width: 767.98px) {
	.ca-form-section {
		padding: 20px;
	}

	.ca-form-col {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.ca-form-actions {
		flex-direction: column;
	}

	.ca-btn-submit,
	.ca-btn-reset {
		width: 100%;
	}
}

/* ============================================================
   账户充值页面（/addfunds）
   ============================================================ */

.ca-addfunds-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
}

.ca-addfunds-balance {
	padding: 24px;
	background: linear-gradient(135deg, rgba(176, 116, 209, 0.05) 0%, rgba(154, 95, 195, 0.02) 100%);
	border-bottom: 1px solid #f3f5f9;
	display: flex;
	align-items: center;
	gap: 12px;
}

.ca-addfunds-balance-icon {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 20px;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.25);
}

.ca-addfunds-balance-info {
	flex: 1;
}

.ca-addfunds-balance-label {
	font-size: 13px;
	color: #64748b;
	margin-bottom: 4px;
}

.ca-addfunds-balance-value {
	font-size: 28px;
	font-weight: 700;
	color: var(--bs-global);
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
	line-height: 1.2;
}

.ca-addfunds-balance-unit {
	font-size: 14px;
	color: #94a3b8;
	margin-left: 4px;
}

.ca-addfunds-form {
	padding: 24px;
}

.ca-addfunds-field {
	margin-bottom: 24px;
}

.ca-addfunds-field-label {
	font-size: 13px;
	font-weight: 500;
	color: #475569;
	margin-bottom: 8px;
	display: block;
}

.ca-addfunds-input-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: 300px;
}

.ca-addfunds-input {
	width: 100%;
	padding: 12px 16px;
	font-size: 20px;
	font-weight: 700;
	color: #1a1f36;
	border: 2px solid #e7eaf3;
	border-radius: 10px;
	text-align: center;
	transition: all 0.2s;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.ca-addfunds-input:focus {
	outline: none;
	border-color: var(--bs-global);
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1);
}

.ca-addfunds-unit {
	font-size: 16px;
	color: #64748b;
	font-weight: 500;
}

.ca-addfunds-quick {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ca-addfunds-quick-btn {
	padding: 8px 16px;
	background: #f3f5f9;
	color: #475569;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
}

.ca-addfunds-quick-btn:hover {
	background: #e7eaf3;
	color: #1a1f36;
	border-color: #d1d5db;
}

.ca-addfunds-quick-btn.active {
	background: var(--bs-global-o-1);
	color: var(--bs-global);
	border-color: var(--bs-global);
}

.ca-addfunds-gateway-wrap {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
}

.ca-addfunds-gateway {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 12px;
	background: #fff;
	border: 2px solid #e7eaf3;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.2s;
	position: relative;
	min-height: 56px;
}

.ca-addfunds-gateway:hover {
	border-color: #d1d5db;
	background: #fafbfc;
}

.ca-addfunds-gateway.active {
	border-color: var(--bs-global);
	background: var(--bs-global-o-1);
	box-shadow: 0 0 0 3px rgba(176, 116, 209, 0.1);
}

.ca-addfunds-gateway input[type="radio"] {
	position: absolute;
	opacity: 0;
}

.ca-addfunds-gateway img {
	max-width: 100%;
	max-height: 32px;
	object-fit: contain;
}

.ca-addfunds-gateway-name {
	font-size: 13px;
	color: #475569;
	text-align: center;
}

.ca-addfunds-submit {
	padding: 0 24px 24px;
}

.ca-addfunds-submit-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 14px 28px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
	border: none;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-addfunds-submit-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(176, 116, 209, 0.4);
}

.ca-addfunds-submit-btn i {
	font-size: 18px;
}

@media (max-width: 575.98px) {
	.ca-addfunds-balance {
		padding: 20px;
	}

	.ca-addfunds-balance-value {
		font-size: 24px;
	}

	.ca-addfunds-form {
		padding: 20px;
	}

	.ca-addfunds-gateway-wrap {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ============================================================
   账单列表页面（/billing）
   ============================================================ */

.ca-billing-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
}

.ca-billing-toolbar {
	padding: 16px 20px;
	background: #fafbfc;
	border-bottom: 1px solid var(--ca-card-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.ca-billing-filter {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ca-billing-filter select {
	padding: 8px 32px 8px 12px;
	font-size: 13px;
	color: #475569;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	background-color: #fff;
	cursor: pointer;
}

.ca-billing-table-wrap {
	overflow-x: auto;
}

.ca-billing-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 800px;
}

.ca-billing-table thead th {
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	text-align: left;
	background: #f3f5f9;
	border-bottom: 1px solid var(--ca-card-border);
	white-space: nowrap;
}

.ca-billing-table thead th.pointer {
	cursor: pointer;
	user-select: none;
}

.ca-billing-table thead th.pointer:hover {
	color: #1a1f36;
}

.ca-billing-table thead th .sort-icon {
	display: inline-flex;
	flex-direction: column;
	margin-left: 4px;
	vertical-align: middle;
	line-height: 0.5;
}

.ca-billing-table thead th .sort-icon i {
	font-size: 10px;
	color: #cbd5e1;
	line-height: 0.5;
}

.ca-billing-table thead th .sort-icon i.active {
	color: var(--bs-global);
}

.ca-billing-table tbody td {
	padding: 12px;
	font-size: 13px;
	color: #475569;
	border-bottom: 1px solid #f3f5f9;
	vertical-align: middle;
}

.ca-billing-table tbody tr {
	transition: background 0.15s;
}

.ca-billing-table tbody tr:hover {
	background: #fafbfc;
}

.ca-billing-table tbody tr:last-child td {
	border-bottom: none;
}

.ca-billing-id {
	font-size: 13px;
}

.ca-billing-id a {
	color: #475569;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.ca-billing-id a:hover {
	color: var(--bs-global);
}

.ca-billing-id a span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 8px;
	background: #f3f5f9;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 500;
}

.ca-billing-type {
	color: #475569;
}

.ca-billing-amount {
	font-weight: 600;
	color: #1a1f36;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
	font-size: 14px;
}

.ca-billing-date {
	color: #64748b;
	font-size: 12px;
	white-space: nowrap;
}

.ca-billing-payment {
	color: #475569;
}

.ca-billing-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 500;
	white-space: nowrap;
}

.ca-billing-status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
}

.ca-billing-status-paid {
	background: rgba(59, 191, 112, 0.1);
	color: #3fbf70;
}

.ca-billing-status-paid .ca-billing-status-dot {
	background: #3fbf70;
}

.ca-billing-status-unpaid {
	background: rgba(245, 158, 11, 0.1);
	color: #d97706;
}

.ca-billing-status-unpaid .ca-billing-status-dot {
	background: #f59e0b;
}

.ca-billing-status-cancelled {
	background: rgba(148, 163, 184, 0.1);
	color: #94a3b8;
}

.ca-billing-status-cancelled .ca-billing-status-dot {
	background: #94a3b8;
}

.ca-billing-status-refunded {
	background: rgba(59, 130, 246, 0.1);
	color: #3b82f6;
}

.ca-billing-status-refunded .ca-billing-status-dot {
	background: #3b82f6;
}

.ca-billing-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.ca-billing-action {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 10px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.2s;
}

.ca-billing-action-view {
	background: rgba(59, 130, 246, 0.1);
	color: #3b82f6;
}

.ca-billing-action-view:hover {
	background: #3b82f6;
	color: #fff;
	text-decoration: none;
}

.ca-billing-action-pay {
	background: rgba(59, 191, 112, 0.1);
	color: #3fbf70;
}

.ca-billing-action-pay:hover {
	background: #3fbf70;
	color: #fff;
	text-decoration: none;
}

.ca-billing-action-delete {
	background: rgba(239, 68, 68, 0.1);
	color: #ef4444;
}

.ca-billing-action-delete:hover {
	background: #ef4444;
	color: #fff;
	text-decoration: none;
}

.ca-billing-action i {
	font-size: 14px;
}

.ca-billing-footer {
	padding: 14px 20px;
	background: #fafbfc;
	border-top: 1px solid var(--ca-card-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.ca-billing-bulk {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.ca-billing-bulk .btn {
	padding: 6px 14px;
	font-size: 12px;
	border-radius: 6px;
}

.ca-billing-summary {
	font-size: 13px;
	color: #64748b;
}

.ca-billing-summary strong {
	color: #1a1f36;
}

.ca-billing-pagination {
	display: flex;
	align-items: center;
	gap: 16px;
}

.ca-billing-pageinfo {
	font-size: 13px;
	color: #64748b;
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-billing-pageinfo select {
	padding: 4px 24px 4px 8px;
	border: 1px solid var(--ca-card-border);
	border-radius: 6px;
	font-size: 13px;
	color: #475569;
	background-color: #fff;
	cursor: pointer;
}

.ca-billing-pagination .pagination {
	margin: 0;
	display: flex;
	gap: 4px;
}

.ca-billing-pagination .page-item .page-link {
	border-radius: 6px;
	border: 1px solid var(--ca-card-border);
	color: #475569;
	font-size: 13px;
	padding: 4px 10px;
}

.ca-billing-pagination .page-item.active .page-link {
	background: var(--bs-global);
	border-color: var(--bs-global);
	color: #fff;
}

.ca-billing-pagination .page-item .page-link:hover {
	background: #f3f5f9;
	border-color: #d1d5db;
}

.ca-billing-empty {
	padding: 60px 20px;
	text-align: center;
	color: #94a3b8;
}

.ca-billing-empty i {
	font-size: 48px;
	margin-bottom: 12px;
	opacity: 0.4;
	display: block;
}

.ca-billing-empty p {
	font-size: 14px;
	margin: 0;
}

@media (max-width: 767.98px) {
	.ca-billing-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.ca-billing-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.ca-billing-bulk {
		justify-content: center;
	}

	.ca-billing-pagination {
		flex-direction: column;
		align-items: center;
	}
}

/* ============================================================
   交易记录页面（/transaction）
   ============================================================ */

.ca-transaction-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
}

.ca-transaction-tabs {
	display: flex;
	padding: 0 20px;
	background: #fafbfc;
	border-bottom: 1px solid var(--ca-card-border);
	overflow-x: auto;
}

.ca-transaction-tabs::-webkit-scrollbar {
	height: 0;
}

.ca-transaction-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 14px 18px;
	font-size: 13px;
	font-weight: 500;
	color: #64748b;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	transition: all 0.2s;
}

.ca-transaction-tab:hover {
	color: #1a1f36;
	text-decoration: none;
}

.ca-transaction-tab.active {
	color: var(--bs-global);
	border-bottom-color: var(--bs-global);
}

.ca-transaction-tab i {
	font-size: 16px;
}

.ca-transaction-toolbar {
	padding: 16px 20px;
	border-bottom: 1px solid #f3f5f9;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.ca-transaction-toolbar select {
	padding: 8px 32px 8px 12px;
	font-size: 13px;
	color: #475569;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	background-color: #fff;
	cursor: pointer;
}

.ca-transaction-table-wrap {
	overflow-x: auto;
}

.ca-transaction-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 800px;
}

.ca-transaction-table thead th {
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	text-align: left;
	background: #f3f5f9;
	border-bottom: 1px solid var(--ca-card-border);
	white-space: nowrap;
}

.ca-transaction-table thead th.pointer {
	cursor: pointer;
	user-select: none;
}

.ca-transaction-table thead th.pointer:hover {
	color: #1a1f36;
}

.ca-transaction-table thead th .sort-icon {
	display: inline-flex;
	flex-direction: column;
	margin-left: 4px;
	vertical-align: middle;
	line-height: 0.5;
}

.ca-transaction-table thead th .sort-icon i {
	font-size: 10px;
	color: #cbd5e1;
	line-height: 0.5;
}

.ca-transaction-table thead th .sort-icon i.active {
	color: var(--bs-global);
}

.ca-transaction-table tbody td {
	padding: 12px;
	font-size: 13px;
	color: #475569;
	border-bottom: 1px solid #f3f5f9;
	vertical-align: middle;
}

.ca-transaction-table tbody tr {
	transition: background 0.15s;
}

.ca-transaction-table tbody tr:hover {
	background: #fafbfc;
}

.ca-transaction-table tbody tr:last-child td {
	border-bottom: none;
}

.ca-transaction-id {
	font-size: 13px;
	color: #64748b;
}

.ca-transaction-invoice a {
	color: #475569;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.ca-transaction-invoice a:hover {
	color: var(--bs-global);
}

.ca-transaction-invoice a span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 8px;
	background: #f3f5f9;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 500;
}

.ca-transaction-amount {
	font-weight: 600;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
	font-size: 14px;
	white-space: nowrap;
}

.ca-transaction-amount-income {
	color: #3fbf70;
}

.ca-transaction-amount-expense {
	color: #ef4444;
}

.ca-transaction-desc {
	color: #475569;
	max-width: 200px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ca-transaction-payment {
	color: #64748b;
	font-size: 12px;
}

.ca-transaction-type {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	background: #f3f5f9;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 500;
	color: #64748b;
	white-space: nowrap;
}

.ca-transaction-time {
	color: #64748b;
	font-size: 12px;
	white-space: nowrap;
}

.ca-transaction-trans-id {
	font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
	font-size: 12px;
	color: #94a3b8;
}

.ca-transaction-footer {
	padding: 14px 20px;
	background: #fafbfc;
	border-top: 1px solid var(--ca-card-border);
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.ca-transaction-pageinfo {
	font-size: 13px;
	color: #64748b;
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-transaction-pageinfo select {
	padding: 4px 24px 4px 8px;
	border: 1px solid var(--ca-card-border);
	border-radius: 6px;
	font-size: 13px;
	color: #475569;
	background-color: #fff;
	cursor: pointer;
}

.ca-transaction-pagination .pagination {
	margin: 0;
	display: flex;
	gap: 4px;
}

.ca-transaction-pagination .page-item .page-link {
	border-radius: 6px;
	border: 1px solid var(--ca-card-border);
	color: #475569;
	font-size: 13px;
	padding: 4px 10px;
}

.ca-transaction-pagination .page-item.active .page-link {
	background: var(--bs-global);
	border-color: var(--bs-global);
	color: #fff;
}

.ca-transaction-pagination .page-item .page-link:hover {
	background: #f3f5f9;
	border-color: #d1d5db;
}

.ca-transaction-empty {
	padding: 60px 20px;
	text-align: center;
	color: #94a3b8;
}

.ca-transaction-empty i {
	font-size: 48px;
	margin-bottom: 12px;
	opacity: 0.4;
	display: block;
}

.ca-transaction-empty p {
	font-size: 14px;
	margin: 0;
}

@media (max-width: 767.98px) {
	.ca-transaction-tabs {
		padding: 0 16px;
	}

	.ca-transaction-tab {
		padding: 12px 14px;
		font-size: 12px;
	}

	.ca-transaction-footer {
		flex-direction: column;
		align-items: center;
	}
}

/* ============================================================
   推介计划页面（/affiliates）
   ============================================================ */

.ca-aff-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
	margin-bottom: 20px;
}

.ca-aff-balance {
	padding: 24px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
}

.ca-aff-balance-label {
	font-size: 13px;
	opacity: 0.85;
	margin-bottom: 8px;
}

.ca-aff-balance-value {
	font-size: 36px;
	font-weight: 700;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
	line-height: 1.2;
}

.ca-aff-balance-value small {
	font-size: 14px;
	font-weight: 400;
	opacity: 0.85;
}

.ca-aff-balance-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 16px;
}

.ca-aff-balance-item {
	flex: 1;
	min-width: 100px;
}

.ca-aff-balance-item-value {
	font-size: 18px;
	font-weight: 600;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.ca-aff-balance-item-value small {
	font-size: 12px;
	font-weight: 400;
	opacity: 0.85;
}

.ca-aff-balance-item-label {
	font-size: 12px;
	opacity: 0.75;
	margin-top: 2px;
}

.ca-aff-balance-btn {
	padding: 10px 24px;
	background: #fff;
	color: var(--bs-global);
	border: none;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.ca-aff-balance-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.ca-aff-balance-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

.ca-aff-stats {
	padding: 0;
}

.ca-aff-stat-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid #f3f5f9;
}

.ca-aff-stat-item:last-child {
	border-bottom: none;
}

.ca-aff-stat-info {
	display: flex;
	align-items: center;
	gap: 12px;
}

.ca-aff-stat-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	flex-shrink: 0;
}

.ca-aff-stat-icon.purple {
	background: var(--bs-global-o-1);
	color: var(--bs-global);
}

.ca-aff-stat-icon.blue {
	background: rgba(59, 130, 246, 0.1);
	color: #3b82f6;
}

.ca-aff-stat-icon.green {
	background: rgba(59, 191, 112, 0.1);
	color: #3fbf70;
}

.ca-aff-stat-text h4 {
	font-size: 14px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0;
}

.ca-aff-stat-text p {
	font-size: 12px;
	color: #94a3b8;
	margin: 0;
}

.ca-aff-stat-value {
	font-size: 18px;
	font-weight: 600;
	color: #1a1f36;
	font-family: DINCondensed-Bold, -apple-system, sans-serif;
}

.ca-aff-referral {
	padding: 20px;
}

.ca-aff-referral-label {
	font-size: 13px;
	font-weight: 500;
	color: #475569;
	margin-bottom: 10px;
}

.ca-aff-referral-box {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ca-aff-referral-input {
	flex: 1;
	padding: 10px 14px;
	font-size: 13px;
	color: #1a1f36;
	background: #f3f5f9;
	border: 1px solid #e7eaf3;
	border-radius: 8px;
	font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
}

.ca-aff-referral-copy {
	padding: 10px 16px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
	display: flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.ca-aff-referral-copy:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
}

.ca-aff-referral-copy i {
	font-size: 14px;
}

.ca-aff-tabs {
	display: flex;
	border-bottom: 1px solid var(--ca-card-border);
	padding: 0 20px;
	overflow-x: auto;
}

.ca-aff-tabs::-webkit-scrollbar {
	height: 0;
}

.ca-aff-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 14px 18px;
	font-size: 13px;
	font-weight: 500;
	color: #64748b;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	transition: all 0.2s;
	cursor: pointer;
}

.ca-aff-tab:hover {
	color: #1a1f36;
}

.ca-aff-tab.active {
	color: var(--bs-global);
	border-bottom-color: var(--bs-global);
}

.ca-aff-tab:hover {
	color: #1a1f36;
}

.ca-aff-tab-content {
	padding: 20px;
	min-height: 200px;
}

.ca-aff-tab-pane {
	display: none;
}

.ca-aff-tab-pane.active {
	display: block;
}

.ca-aff-intro {
	padding: 24px;
}

.ca-aff-intro-title {
	font-size: 18px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0 0 8px 0;
}

.ca-aff-intro-desc {
	font-size: 13px;
	color: #64748b;
	line-height: 1.6;
	margin: 0 0 20px 0;
}

.ca-aff-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
}

.ca-aff-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 24px 16px;
	background: #fafbfc;
	border-radius: 12px;
}

.ca-aff-step-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.ca-aff-step-icon img {
	width: 32px;
	height: 32px;
}

.ca-aff-step-title {
	font-size: 14px;
	font-weight: 600;
	color: #1a1f36;
	margin: 0 0 4px 0;
}

.ca-aff-step-text {
	font-size: 12px;
	color: #94a3b8;
	line-height: 1.4;
}

.ca-aff-apply-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 32px;
	background: linear-gradient(135deg, #b074d1 0%, #9a5fc3 100%);
	color: #fff;
	border: none;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s;
	box-shadow: 0 4px 12px rgba(176, 116, 209, 0.3);
	margin-top: 24px;
}

.ca-aff-apply-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(176, 116, 209, 0.4);
}

@media (max-width: 767.98px) {
	.ca-aff-balance {
		padding: 20px;
	}

	.ca-aff-balance-value {
		font-size: 28px;
	}

	.ca-aff-balance-row {
		flex-direction: column;
		align-items: flex-start;
	}

	.ca-aff-referral-box {
		flex-direction: column;
	}

	.ca-aff-referral-copy {
		width: 100%;
		justify-content: center;
	}

	.ca-aff-steps {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   消息中心页面（/message）
   ============================================================ */

.ca-message-card {
	background: #fff;
	border-radius: var(--ca-card-radius);
	border: 1px solid var(--ca-card-border);
	box-shadow: var(--ca-card-shadow);
	overflow: hidden;
}

.ca-message-tabs {
	display: flex;
	padding: 0 20px;
	background: #fafbfc;
	border-bottom: 1px solid var(--ca-card-border);
	overflow-x: auto;
}

.ca-message-tabs::-webkit-scrollbar {
	height: 0;
}

.ca-message-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 14px 18px;
	font-size: 13px;
	font-weight: 500;
	color: #64748b;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
	transition: all 0.2s;
}

.ca-message-tab:hover {
	color: #1a1f36;
	text-decoration: none;
}

.ca-message-tab.active {
	color: var(--bs-global);
	border-bottom-color: var(--bs-global);
}

.ca-message-tab .badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: #ef4444;
	color: #fff;
	border-radius: 9px;
	font-size: 10px;
	font-weight: 600;
}

.ca-message-table-wrap {
	overflow-x: auto;
}

.ca-message-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 600px;
}

.ca-message-table thead th {
	padding: 10px 12px;
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
	text-align: left;
	background: #f3f5f9;
	border-bottom: 1px solid var(--ca-card-border);
	white-space: nowrap;
}

.ca-message-table tbody td {
	padding: 12px;
	font-size: 13px;
	color: #475569;
	border-bottom: 1px solid #f3f5f9;
	vertical-align: middle;
}

.ca-message-table tbody tr {
	transition: background 0.15s;
}

.ca-message-table tbody tr:hover {
	background: #fafbfc;
}

.ca-message-table tbody tr:last-child td {
	border-bottom: none;
}

.ca-message-title {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

.ca-message-title:hover {
	color: var(--bs-global);
}

.ca-message-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #ef4444;
	flex-shrink: 0;
}

.ca-message-time {
	color: #64748b;
	font-size: 12px;
	white-space: nowrap;
}

.ca-message-type {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	background: #f3f5f9;
	border-radius: 10px;
	font-size: 11px;
	font-weight: 500;
	color: #64748b;
}

.ca-message-footer {
	padding: 14px 20px;
	background: #fafbfc;
	border-top: 1px solid var(--ca-card-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.ca-message-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.ca-message-actions .btn {
	padding: 6px 14px;
	font-size: 12px;
	border-radius: 6px;
}

.ca-message-empty {
	padding: 60px 20px;
	text-align: center;
	color: #94a3b8;
}

.ca-message-empty i {
	font-size: 48px;
	margin-bottom: 12px;
	opacity: 0.4;
	display: block;
}

.ca-message-empty p {
	font-size: 14px;
	margin: 0;
}

/* 消息详情弹窗 */
.ca-message-modal .modal-content {
	border-radius: 12px;
	border: 1px solid #e7eaf3;
	box-shadow: 0 4px 20px rgba(31, 50, 82, 0.08);
}

.ca-message-modal .modal-header {
	padding: 16px 20px;
	border-bottom: 1px solid #f3f5f9;
	background: #fafbfc;
	border-radius: 12px 12px 0 0;
}

.ca-message-modal .modal-header .modal-title {
	font-size: 15px;
	font-weight: 600;
	color: #1a1f36;
}

.ca-message-modal .modal-body {
	padding: 20px;
	font-size: 14px;
	color: #475569;
	line-height: 1.6;
}

.ca-message-modal .modal-body img {
	max-width: 100%;
	border-radius: 6px;
}

.ca-message-modal .modal-body a {
	color: var(--bs-global);
}

.ca-message-modal .modal-body hr {
	border-color: #f3f5f9;
}

@media (max-width: 767.98px) {
	.ca-message-tabs {
		padding: 0 16px;
	}

	.ca-message-tab {
		padding: 12px 14px;
		font-size: 12px;
	}

	.ca-message-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.ca-message-actions {
		justify-content: center;
	}
}