@charset "utf-8";

/* ======================
   基础样式重置与变量定义
   ====================== */
:root {
	--primary: #800020;
	--primary-light: #a83a56;
	--primary-dark: #5e001a;
	--ink: #42222e;
	--muted: #a38b93;
	--line: rgba(128,0,32,.14);
	--tint: #fbf1f4;
	--grad: linear-gradient(135deg,#a83a56 0%,#800020 55%,#5e001a 100%);
	--card-shadow: 0 4px 8px rgba(94,0,26,.2);
	--focus-shadow: 0 0 0 4px rgba(128,0,32,.10);
}

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

body {
	background: #fff;
	font-family: 'PingFang SC', 'Montserrat-reg', "Microsoft YaHei", 'Arial', '黑体', '宋体', 'sans-serif';
	/* 现代字体栈 */
	color: var(--title-color);
}

/* 根元素字体大小 - 基准值 */
html {
	font-size: 12px;
	/* 默认基准 */
}

/* 根据屏幕尺寸调整根字体大小 */
@media (min-width: 768px) {
	html {
		font-size: 14px;
	}
}

@media (min-width: 1024px) {
	html {
		font-size: 16px;
	}
}

@media (min-width: 1440px) {
	html {
		font-size: 18px;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: inherit;
	font-weight: inherit
}

textarea {
	resize: none
}

/* 输入控件统一基础重置 */
input,
select,
textarea {
	outline: 0;
	-webkit-user-modify: read-write-plaintext-only;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

/* 数字输入框单独覆盖，去除上下箭头 */
input[type=number] {
	font-family: 'Montserrat-reg';
	-moz-appearance: textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

em {
	font-style: normal;
}

ul,
ol,
li {
	margin: 0px;
	padding: 0px;
	list-style: none
}

i {
	font-style: normal
}

a {
	text-decoration: none;
	/* 去掉下划线 */
	color: var(--title-color);
	/* 企业常用的蓝色作为默认链接颜色 */
	transition: all 0.3s ease;
	/* 平滑过渡效果 */
}

a:hover {
	color: var(--hover-color);
	text-decoration: none;
	outline: none;
}

@font-face {
	font-family: 'Montserrat-reg';
	src: url('../fonts/Montserrat-Regular-8.otf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

.montserrat {
	font-family: 'Montserrat-reg';
}

@font-face {
	font-family: 'arial_black'; 
    src: url('../fonts/arial_black.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

.arial-black {
	font-family: 'arial_black';
}

.acea-row {
	display: flex;
	-webkit-box-lines: multiple;
	-moz-box-lines: multiple;
	-o-box-lines: multiple;
	flex-wrap: nowrap
}

.acea-row.row-middle {
	-o-box-align: center;
	align-items: center
}

.acea-row.row-top {
	-o-box-align: start;
	align-items: flex-start
}

.acea-row.row-bottom {
	-o-box-align: end;
	align-items: flex-end
}

.acea-row.row-center {
	-o-box-pack: center;
	justify-content: center
}

.acea-row.row-right {
	-o-box-pack: end;
	justify-content: flex-end
}

.acea-row.row-left {
	-o-box-pack: start;
	justify-content: flex-start
}

.acea-row.row-between {
	-o-box-pack: justify;
	justify-content: space-between
}

.acea-row.row-around {
	justify-content: space-around;
	-webkit-justify-content: space-around
}

.acea-row.row-column-around {
	flex-direction: column;
	justify-content: space-around;
	-webkit-justify-content: space-around
}

.acea-row.row-column {
	-o-box-orient: vertical;
	flex-direction: column
}

.acea-row.row-column-between {
	-o-box-orient: vertical;
	flex-direction: column;
	-o-box-pack: justify;
	justify-content: space-between
}

.acea-row.row-center-wrapper {
	-o-box-align: center;
	align-items: center;
	-o-box-pack: center;
	justify-content: center
}

.acea-row.row-between-wrapper {
	-o-box-align: center;
	align-items: center;
	-o-box-pack: justify;
	justify-content: space-between
}

.row-one {
	flex: 1;
}

.hidden {
	overflow: hidden;
}

.hr {
	height: 1rem;
	clear: both;
	font-size: 1px;
	line-height: 1px;
}

.fl {
	float: left;
}

.fr {
	float: right
}

.clear {
	clear: both;
}

.line1 {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap
}

input {
	width: 100%;
	height: 3rem;
	border: 1.5px solid var(--line);
	border-radius: 1rem;
	background: #fffdfe;
	padding: 0px .5rem 0px .8rem;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ink);
	transition: border-color .2s, box-shadow .2s, background .2s;
}

input::placeholder {
	font-weight: 400;
	color: var(--muted);
}

input:focus {
	background: #fff;
	border-color: var(--primary);
	box-shadow: var(--focus-shadow);
}

.radio {
	position: relative;
	gap: .5rem;
	padding: .6rem 1rem .6rem .8rem;
	border-radius: 999px;
	border: 1.5px solid var(--line);
	background: var(--tint);
	font-size: 1rem;
	color: var(--muted);
	cursor: pointer;
	transition: all .25s;
}

.radio input {
	position: absolute;
	top: 0px;
	left: 0px;
	right: 0px;
	bottom: 0px;
	opacity: 0;
	pointer-events: none
}

.radio .dot {
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
	border: 2px solid var(--line);
	background: #fff;
	position: relative;
	transition: all .25s;
	overflow: hidden;
}

.radio .dot::after {
	content: "";
	position: absolute;
	inset: .3rem;
	border-radius: 50%;
	background: #fff;
	transform: scale(0);
	transition: transform .2s;
}

.radio input:checked + .dot {
	border: 5px solid var(--primary);
}

.radio input:checked + .dot::after {
	inset: .3rem;
}

.radio:has(input:checked) {
	border-color: var(--primary);
	color: var(--primary);
	background: var(--tint);
	box-shadow: var(--card-shadow);
}

select {
	width: 100%;
	height: 3.6rem;
	border: 1.5px solid var(--line);
	border-radius: 1rem;
	background: #fffdfe;
	padding: 0 3rem 0 3rem;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ink);
	cursor: pointer;
	transition: border-color .2s, box-shadow .2s;
}

select.no-left-padding{
    padding: 0 3rem 0 .8rem;
}

select:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 4px rgba(128,0,32,.10)
}

button {
	gap: .4rem;
	height: 3rem;
	padding: 0 .8rem;
	border-radius: 1rem;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition: all .25s;
}

button  i.iconfont {
	font-size: 1.2rem;
	transition: transform .25s
}

button  i.iconfont.icon-Edit {
	font-size: 1.1rem;
}

button  i.iconfont.icon-yinlebofangye-xiayishou {
	font-size: .7rem;
}

button  i.iconfont.icon-daojishi3 {
	font-size: 1rem;
}

button  i.iconfont.icon-shangyishou3 {
	font-size: .72rem;
}

button.danger {
	background: #fff;
	border-color: var(--line);
	color: var(--primary);
}

button.danger:hover {
	border-color: var(--primary);
	background: var(--line);
	box-shadow: var(--card-shadow);
	color: var(--primary);
}

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

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

button.warn {
	background: #fff7e6;
	border-color: #f0dfb8;
	color: #a06a00
}

button.warn:hover {
	background: #ffedcc;
	border-color: #f0dfb8;
	box-shadow: 0 4px 12px rgba(176,106,0,.18)
}

button.gray {
    cursor: not-allowed;
	background: #f2f2f2;
	border-color: #ddd;
	color: #999;
}

button.gray:hover {
	background: #ddd;
	border-color: #ccc;
	box-shadow: 0 4px 12px rgba(199,199,199,.18)
	color: #888;
}

.toast {
	position: fixed;
	left: 50%;
	top: 2rem;
	transform: translate(-50%,-250%);
	z-index: 99999;
	max-width: 90vw;
	background: rgba(29,172,13,.98);
	box-shadow: 0 2px 10px rgba(21,64,0,.3);
	padding: .8rem 2rem;
	border-radius: 1rem;
	font-size: 1rem;
	transition: transform .35s ease;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: #fff;
}

.toast.on{
	transform: translate(-50%,0)
}

.toast.err{
	background: rgba(0,0,0,.92);
	box-shadow: 0 2px 10px rgba(0,0,0,.4);
}

@keyframes rise {
	from {
		opacity: 0;
		transform: translateY(14px)
	}

	to {
		opacity: 1;
		transform: none
	}
}

/* ===== 分页 ===== */
.pagination{
  padding: 2rem 0px 0px;   /* 20px 0 10px */
  gap: .6rem;                   /* 8px */
  flex-wrap: wrap;
}

.page-link{
  padding: .6rem 1.4rem;     /* 6px 14px */
  border: 1px solid #ddd;
  border-radius: .4rem;
  text-decoration: none;
  transition: all .25s;
  line-height: 1;
  font-size: 1rem;
  font-weight: 600;
  background: #fff;
  border-color: var(--line);
  font-family: 'Montserrat-reg';
  color: var(--primary);
}

.page-link:hover{
  border-color: transparent;
  background: var(--line);
  box-shadow: var(--card-shadow);
  color: var(--primary);
}

/* 当前页 */
.page-link.active{
  border-color: transparent;
  background: var(--grad);
  box-shadow: 0 4px 12px rgba(128,0,32,.3);
  cursor: default;
  color: #fff;
}

.page-link.prev,
.page-link.next{
    font-family: normal;
}

/* 确认对话框样式 */
.confirm-dialog {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 9999;
    opacity: 0;
   pointer-events: none;
   transition: opacity 0.3s ease;
}
.confirm-dialog.show {
    opacity: 1;
    pointer-events: auto;
}
.confirm-dialog .confirm-box {
    background: #fff;
    border-radius: 12px;
    padding: 2rem;
    max-width: 30rem;
    width: 90%;
    text-align: center;
    box-shadow: var(--card-shadow);
    transform: translateY(30px);
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0;
}
.confirm-dialog.show .confirm-box {
    transform: translateY(0);
    opacity: 1;
}
.confirm-dialog .confirm-box .icon-warn {
    line-height: 1;
    font-size: 3rem;
    margin-bottom: 1rem;
    color: var(--primary);
}
.confirm-dialog .confirm-box .title {
     margin-bottom: 1rem;
     line-height: 1;
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--ink);
}
.confirm-dialog .confirm-box .msg {
    margin-bottom: 2rem;
    line-height: 1.4;
    font-size: 1rem;
    color: var(--muted);
}
.confirm-dialog .confirm-box .btns {
    gap: 1rem;
}

.confirm-dialog .confirm-box .btns button{
    padding: 0 2rem;
}