.fl {
    float: left;
}

.fr {
    float: right;
}

.clearfix::after {
    display: block;
    clear: both;
    content: "";
}

ul,li{
    list-style: none;
    padding: 0;
    margin: 0;
}

a{
    text-decoration: none;
}


.nowrap {
    white-space: nowrap;
}

.one-line {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.two-line {
    text-overflow: -o-ellipsis-lastline;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical
}

.three-line {
    text-overflow: -o-ellipsis-lastline;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical
}

.four-line {
    text-overflow: -o-ellipsis-lastline;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical
}

body {
    font-family: Microsoft YaHei, Microsoft YaHei-Regular;
    color: #0A1425;
}

:root {
    --main-color: #6366F1;
    --main-color-2: #6366F1;
    --main-color-3: #6366F1;
    --main-color-4: #6366F1;
    --vz-font-base: 0.8125rem;
    --color-normal: #94A3B8;
    --vz-body-font-size: 14px;
    --vz-secondary: #6366F1;
    --vz-body-bg: #f5f5f5;
    --btn-bg-color: linear-gradient(82deg, #6366F1 0%, #6366F1 100% 100%);
    --vz-font-weight-bold: 700;
    --vz-topbar-user-bg: #f5f5f5;
    --input-border-color: #6366F1;
    --vz-body-font-family: Microsoft YaHei, Microsoft YaHei-Regular;
    --vz-secondary-rgb: 99, 102, 241;


}

.absolute-center {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

.fs-5 {
    font-size: calc(var(--vz-font-base)* 1.15) !important;
}

a:hover {
    text-decoration: none;
}

.self-bold {
    font-weight: 600;
}

.c-avatar {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.text-right {
    text-align: right;
}

/* .btn-success{
  background: var(--main-color);
}

.btn-success:hover{
  background: var(--main-color);
}

.btn-success:focus{
  background: var(--main-color);
} */

.app-search .btn-success {
    background: var(--main-color) !important;
}

/* 滚动条优化 */
::-webkit-scrollbar {
    width: 5px;
    height: 10px;
}

::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: #d8d6d6;
    ;
}

::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: #d8d6d6;
    ;
}


/* col 间距 */
.row-0 {
    margin-left: 0px;
    margin-right: 0px;
}

.row-0>[class*=col] {
    padding-left: 0px;
    padding-right: 0px;
}

.row-5 {
    margin-left: -5px;
    margin-right: -5px;
}

.row-5>[class*=col] {
    padding-left: 5px;
    padding-right: 5px;
}

.row-10 {
    margin-left: -10px;
    margin-right: -10px;
}

.row-10>[class*=col] {
    padding-left: 10px;
    padding-right: 10px;
}

.row-15 {
    margin-left: -15px;
    margin-right: -15px;
}

.row-15>[class*=col] {
    padding-left: 15px;
    padding-right: 15px;
}

.row-20 {
    margin-left: -20px;
    margin-right: -20px;
}

.row-20>[class*=col] {
    padding-left: 20px;
    padding-right: 20px;
}

/* 分页样式 */
.dataTables_paginate {
    margin-top: 1.5rem;
    padding: 0.5rem 0;
}

/* 分页列表基础样式 */
.pagination {
    margin: 0;
    gap: 5px;
}

/* 分页项基础样式 */
.pagination li {
    display: inline-flex;
    white-space: nowrap;
}

/* 分页链接样式 */
.pagination li a {
    padding: 0.375rem 0.75rem;
    min-width: 32px;
    height: 32px;
    line-height: 1.45;
    text-align: center;
    background-color: #fff;
    border: 1px solid #dee2e6;
    color: #3577f1;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 鼠标悬停效果 */
.pagination li a:hover {
    background-color: #3577f1;
    border-color: #3577f1;
    color: #fff;
    z-index: 2;
}

/* 当前页样式 */
.pagination li.active a {
    background-color: #3577f1;
    border-color: #3577f1;
    color: #fff;
    z-index: 3;
}

/* 禁用状态样式 */
.pagination li.disabled a {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #6c757d;
    cursor: not-allowed;
    pointer-events: none;
}

/* 首页末页样式 */
.pagination li:first-child a,
.pagination li:last-child a {
    padding: 0.375rem 0.75rem;
}

/* 省略号样式 */
.pagination li.disabled span {
    padding: 0.375rem 0.75rem;
    min-width: 32px;
    height: 32px;
    line-height: 1.45;
    text-align: center;
    color: #6c757d;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 适配深色模式 */
@media (prefers-color-scheme: dark) {
    .pagination li a {
        background-color: #2a3042;
        border-color: #32394e;
        color: #a6b0cf;
    }
    
    .pagination li a:hover {
        background-color: #3577f1;
        border-color: #3577f1;
        color: #fff;
    }
    
    .pagination li.active a {
        background-color: #3577f1;
        border-color: #3577f1;
        color: #fff;
    }
    
    .pagination li.disabled a,
    .pagination li.disabled span {
        background-color: #2a3042;
        border-color: #32394e;
        color: #6c757d;
    }
}

/* 响应式调整 */
@media (max-width: 576px) {
    .pagination {
        gap: 3px;
    }
    
    .pagination li a,
    .pagination li.disabled span {
        min-width: 28px;
        height: 28px;
        padding: 0.25rem 0.5rem;
        font-size: 0.875rem;
    }
}

/* 自定义拓展固定类 */
.mt30 {
    margin-top: 30px;
}

.ml30 {
    margin-left: 30px;
}

.mgb15 {
    margin-bottom: 15px;
}

.mgb0{
    margin-bottom: 0px;
}

/* 表单样式统一，去除阴影 */
.form-select:focus,
.has-success .form-select:focus,
.has-warning .form-select:focus,
.has-error .form-select:focus {
    -webkit-box-shadow: none;
    box-shadow: none;
}

.form-select{
    cursor: pointer;
}

/* 弹窗控制类 */
.custom-popup-pd0 {
    padding-bottom: 0px;
}


.custom-confirm-button-delete {
    background-color: #f2f6f9;
    color: #101010 !important;
    padding: 7px 15px;
}

.custom-cancel-button {
    padding: 7px 15px;
}

.custom-confirm-button-delete:focus {
    -webkit-box-shadow: none;
    box-shadow: none;
    border: none;
}

/* 弹窗样式字体调整 */
.swal2-popup .swal2-title {
    color: var(--vz-heading-color);
    font-weight: 600;
    font-size: calc(var(--vz-font-base)* 1.5);
}

.swal2-html-container {
    color: var(--vz-secondary-color) !important;
    font-size: 0.9375rem !important;
}



/* 自定义间距 */
.mgt3 {
    margin-top: 3px;
}

.mgt5 {
    margin-top: 5px;
}

.mgt10 {
    margin-top: 10px;
}

.mgt15 {
    margin-top: 15px;
}

.mgt18 {
    margin-top: 18px;
}

.mgt20 {
    margin-top: 20px;
}

.mgt25 {
    margin-top: 25px;
}

.mgt30 {
    margin-top: 30px !important;
}

.mgt35 {
    margin-top: 35px;
}

.mgt40 {
    margin-top: 40px;
}

.mgt45 {
    margin-top: 45px;
}

.mgt50 {
    margin-top: 50px;
}

.mgt55 {
    margin-top: 55px;
}

.mgt60 {
    margin-top: 60px;
}

.mgt70 {
    margin-top: 70px;
}

.mgt80 {
    margin-top: 80px;
}

.mgt100 {
    margin-top: 100px;
}

.mgb0 {
    margin-bottom: 0px;
}

.mgb5 {
    margin-bottom: 5px;
}

.mgb10 {
    margin-bottom: 10px;
}

.mgb15 {
    margin-bottom: 15px;
}

.mgb16 {
    margin-bottom: 17px;
}

.mgb17 {
    margin-bottom: 17px;
}

.mgb20 {
    margin-bottom: 20px;
}

.mgb25 {
    margin-bottom: 25px;
}

.mgb30 {
    margin-bottom: 30px;
}

.mgb35 {
    margin-bottom: 35px;
}

.mgb40 {
    margin-bottom: 40px;
}

.mgr2 {
    margin-right: 2px;
}

.mgr5 {
    margin-right: 5px;
}

.mgr10 {
    margin-right: 10px;
}

.mgr15 {
    margin-right: 15px;
}

.mgr20 {
    margin-right: 20px;
}

.mgr25 {
    margin-right: 25px;
}

.mgr30 {
    margin-right: 30px;
}

.mgr35 {
    margin-right: 35px;
}

.mgr40 {
    margin-right: 40px;
}

.mgl5 {
    margin-left: 5px;
}

.mgl10 {
    margin-left: 10px;
}

.mgl15 {
    margin-left: 15px;
}

.mgl20 {
    margin-left: 20px;
}

.mgl25 {
    margin-left: 25px;
}

.mgl30 {
    margin-left: 30px;
}

.mgl35 {
    margin-left: 35px;
}

.mgl40 {
    margin-left: 40px;
}

.mgl45 {
    margin-left: 45px;
}

.mgl50 {
    margin-left: 50px;
}



/* 自定义内间距 */
.pd10 {
    padding: 10px;
    box-sizing: border-box;
}

.pd15 {
    padding: 15px;
    box-sizing: border-box;
}

.pd20 {
    padding: 20px;
    box-sizing: border-box;
}

.pd22 {
    padding: 22px;
    box-sizing: border-box;
}

.pd25 {
    padding: 25px;
    box-sizing: border-box;
}

.pd30 {
    padding: 30px;
    box-sizing: border-box;
}

.pd35 {
    padding: 35px;
    box-sizing: border-box;
}


/* 面包屑 */
.breadcrumb a {
    color: #B9B9B9;
}

.breadcrumb-item+.breadcrumb-item::before {
    color: #B9B9B9;
}

.breadcrumb span {
    color: #333333;
}

.breadcrumb-item.active {
    color: #333333;
}

/* 表单样式统一，去除阴影 */
.form-select:focus,
.has-success .form-select:focus,
.has-warning .form-select:focus,
.has-error .form-select:focus {
    -webkit-box-shadow: none;
    box-shadow: none;
}


.text-left {
    text-align: left;
}

.position-center {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

/* 自定义字体大小类 */
.fs12 {
    font-size: 12px;
}

.fs13 {
    font-size: 13px;
}

.fs14 {
    font-size: 14px;
}

.fs15 {
    font-size: 15px;
}

.fs16 {
    font-size: 16px;
}

.fs17 {
    font-size: 17px;
}

.fs18 {
    font-size: 18px;
}

.fs19 {
    font-size: 19px;
}

.fs20 {
    font-size: 20px;
}

.fs23 {
    font-size: 23px;
}

.fs24 {
    font-size: 24px;
}

.fs25 {
    font-size: 25px;
}

.fs26 {
    font-size: 26px;
}

.fs28 {
    font-size: 28px;
}

.fs30 {
    font-size: 30px;
}

.fs32 {
    font-size: 32px;
}

.fs33 {
    font-size: 33px;
}

.fs35 {
    font-size: 35px;
}

.fs36 {
    font-size: 36px;
}

.fs38 {
    font-size: 38px;
}

.fs40 {
    font-size: 40px;
}

.fs42 {
    font-size: 42px;
}

.fs48 {
    font-size: 48px;
}

.fs53 {
    font-size: 53px;
}

.fs60 {
    font-size: 60px;
}

/* 自定义字体颜色 */

/* 标题和正常文字颜色 */
.color0A1425{
    color: #0A1425;
}

/* 二级标题和描述性文字颜色 */
.color64728F{
    color: #64728F;
}

/* active 和 hover 颜色 */
.color6366F1{
    color: #6366F1;
}


/* 常用border颜色 */
.borderE5E7EB{
    border: 1px solid #E5E7EB;
}




/* 常用圆角 */
.radius12{
    border-radius: 12px;
}



.nopadding-wrap #swal2-html-container {
    margin: 0;
}

.nopadding-wrap {
    margin: 0;
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
}

.swal-popup-success .swal2-html-container {
    margin-top: 0;
}

.form-check-input:checked {
    background-color: var(--main-color);
    border-color: var(--main-color);
}



/* 设置信息弹窗的icon 大小 */
.custom-icon-size.swal2-icon {
    font-size: 20px;
}




/* 去除:after样式 */

/* 白色背景的 nav */
.no-arrow::after {
    display: none;
}

.nav-white a {
    color: #101010 !important;
}

.nav-white .active {
    background-color: #ffffff !important;
    color: #101010 !important;
}

.nav-white .active::before {
    background-color: #ffffff !important;
}

.g-6 {
    --vz-gutter-y: 4rem;
}

.g-7 {
    --vz-gutter-y: 5rem;
}

.g-8 {
    --vz-gutter-y: 6rem;
}






/* 弹窗 */
.cover-popup {
    padding: 0px !important;
}

.cover-popup .swal2-popup {
    padding: 0px !important;
}

.swal2-backdrop-hide{
    display: none;
}

/* 修复iframe 显示底部空白问题 */
.swal2-html-container iframe{
    display: block;
}

/* 弹窗的按钮尺寸 */
.swal2-btn-sm{
    font-size: 13px!important;
    height: 37.5px;
}

/* 用法 */
/* customClass: {
    confirmButton: 'swal2-btn-sm',
    cancelButton: 'swal2-btn-sm'
}, */

/* 自定义动画速度 可用于弹窗配合动画 */
.custom-fast {
    animation-duration: 0.3s !important;
}

/* 或者更快 */
.custom-faster {
    animation-duration: 0.2s !important;
}

/* 或者超快 */
.custom-instant {
    animation-duration: 0.15s !important;
}

/* 全局去除SweetAlert2按钮的focus效果 */
.swal2-popup .swal2-actions button,
.swal2-popup .swal2-actions button:focus,
.swal2-popup .swal2-actions button:active {
    box-shadow: none !important;
    outline: none !important;
    border: 1px solid transparent !important;
}

.swal2-popup .swal2-actions button:hover {
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

/* 全局取消按钮样式 */
div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{
    background-color: #f3f6f9 !important;
    color: #000000 !important;
}

.fw-bold-500{
    font-weight: 500;
}

/* 常用行高 */
.lineHeight23{
    line-height: 23px;
}

.lineHeight25{
    line-height: 25px;
}

.lineHeight20{
    line-height: 20px;
}

.btn-secondary{
    --vz-btn-color: #fff;
    --vz-btn-bg: #6366F1;
    --vz-btn-border-color: #6366F1;
    --vz-btn-hover-color: #fff;
    --vz-btn-hover-bg: #6366F1;
    --vz-btn-hover-border-color: #6366F1;
    --vz-btn-focus-shadow-rgb: 83, 139, 243;
    --vz-btn-active-color: #fff;
    --vz-btn-active-bg: #6366F1;
    --vz-btn-active-border-color: #6366F1;
    --vz-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --vz-btn-disabled-color: #fff;
    --vz-btn-disabled-bg: #6366F1;
    --vz-btn-disabled-border-color: #6366F1;
}

.btn-secondary:hover{
    background-color: #4e51ee!important;
    color: #fff!important;
}

.btn-outline-secondary{
    --vz-btn-color: #6366F1;
    --vz-btn-bg: #fff;
    --vz-btn-border-color: #6366F1;
    --vz-btn-hover-color: #fff;
    --vz-btn-hover-bg: #6366F1;
    --vz-btn-hover-border-color: #6366F1;
    --vz-btn-focus-shadow-rgb: 83, 139, 243;
}

.btn-outline-secondary:hover{
    background-color: #6366F1!important;
    color: #fff!important;
}

hr{
    border-color: #E5E7EB;
    background-color: #E5E7EB;
}

body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){
    overflow: auto;
}