/* 滚动条美化 */
body::-webkit-scrollbar{width: 8px;height: 8px;}
body:hover::-webkit-scrollbar{width: 8px;height: 8px;}
body::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
body::-webkit-scrollbar-track{background-color: rgba(0, 0, 0, 0.1);}

div::-webkit-scrollbar{width: 8px;height: 8px;}
div:hover::-webkit-scrollbar{width: 8px;height: 8px;}
div::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
div::-webkit-scrollbar-track{background-color: rgba(38, 128, 247, 0.1);}

textarea::-webkit-scrollbar{width: 8px;height: 8px;}
textarea:hover::-webkit-scrollbar{width: 8px;height: 8px;}
textarea::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
textarea::-webkit-scrollbar-track{background-color: rgba(0, 0, 0, 0.1);}

.je1x-card-lock-height::-webkit-scrollbar{width: 8px;height: 8px;}
.je1x-card-lock-height:hover::-webkit-scrollbar{width: 8px;height: 8px;}
.je1x-card-lock-height::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
.je1x-card-lock-height::-webkit-scrollbar-track{background-color: rgba(0, 0, 0, 0.1);}

.layui-table-body::-webkit-scrollbar{width: 8px;height: 8px;}
.layui-table-body:hover::-webkit-scrollbar{width: 8px;height: 8px;}
.layui-table-body::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
.layui-table-body::-webkit-scrollbar-track{background-color: rgba(0, 0, 0, 0.1);}

.layui-table-box::-webkit-scrollbar{width: 8px;height: 8px;}
.layui-table-box:hover::-webkit-scrollbar{width: 8px;height: 8px;}
.layui-table-box::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
.layui-table-box::-webkit-scrollbar-track{background-color: rgba(0, 0, 0, 0.1);}

.layui-anim-upbit::-webkit-scrollbar{width: 8px;height: 8px;}
.layui-anim-upbit:hover::-webkit-scrollbar{width: 8px;height: 8px;}
.layui-anim-upbit::-webkit-scrollbar-thumb{border-radius: 8px;background-color: rgba(24, 144, 255, 1);}
.layui-anim-upbit::-webkit-scrollbar-track{background-color: rgba(0, 0, 0, 0.1);}

.layui-side-menu .layui-nav{
    margin-top: 0px;
}

/* 改为圆角 */
.layui-layer {
    border-radius: 5px !important;
}
.layui-card {
    border-radius: 5px !important;
}
.layui-btn {
    border-radius: 5px;
}

.layui-table-view{
    border-radius: 5px;
}
.layui-layer-btn a {
    border-radius: 5px !important;
}
.layui-btn-group .layui-btn:first-child{
    border-radius: 5px 0 0 5px !important;
}
.layui-btn-group .layui-btn:last-child {
    border-radius: 0 5px 5px 0 !important;
}
.layui-input, .layui-select, .layui-textarea{
    border-radius: 5px!important;
}


/* 按钮组合 */
.layui-btn-group {
    margin-right: 10px;
}

/* 复选框勾选颜色覆盖 */
.layui-form-checked[lay-skin=primary]>i {
    border-color: #1890ff!important;
    background-color: #1890ff;
    color: #fff
}

.layui-form-checkbox[lay-skin=primary]:hover>i {
    border-color: #1890ff;
    color: #fff;
}

/* 禁用的复选框（如锁定行）：灰底实心，悬停不显示勾 */
.layui-form-checkbox.layui-checkbox-disabled[lay-skin=primary]>i,
.layui-form-checkbox.layui-checkbox-disabled[lay-skin=primary]:hover>i {
    border-color: #d2d2d2;
    background-color: #ececec;
    color: transparent;
}

/* 单选框颜色覆盖 */
.layui-form-radio:hover>*, .layui-form-radioed, .layui-form-radioed>i{
    color: #1890ff;
}

/* select 选择框限高 */
.layui-unselect dl {
    max-height: 200px !important;
}

/* 开关变小 */
.layui-form-switch {
    /* position: relative; */
    /* display: inline-block; */
    /* vertical-align: middle; */
    height: 18px;
    line-height: 18px;
    min-width: 44px;
    padding: 0 5px;
    margin-top: 8px;
    border: 1px solid #d2d2d2;
    border-radius: 18px;
    /* cursor: pointer; */
    /* box-sizing: border-box; */
    background-color: #fff;
    /* -webkit-transition: .1s linear; */
    /* transition: .1s linear */
}

.layui-form-switch>i {
    /* position: absolute; */
    left: 3px;
    top: 2px;
    width: 12px;
    height: 12px;
    border-radius: 12px;
    /* background-color: #d2d2d2;
    -webkit-transition: .1s linear;
    transition: .1s linear */
}

.layui-form-switch>div {
    position: relative;
    top: -1px;
    margin-left: 15px;
    margin-right: 3px;
    padding: 0!important;
    text-align: center!important;
    color: #999!important;
    font-style: normal!important;
    font-size: 10px
}

.layui-form-onswitch>i {
    left: 100%;
    margin-left: -15px;
    background-color: #fff
}

.layui-form-onswitch>div {
    margin-left: 3px;
    margin-right: 15px;
    color: #fff!important
}

/* 开关打开颜色覆盖 */
.layui-form-onswitch {
    border-color: #1890ff;
    background-color: #1890ff;
}

.layui-form-checkbox[lay-skin=primary]>.layui-icon-indeterminate {
    border-color: #1890ff;
}
.layui-form-checkbox[lay-skin=primary]>.layui-icon-indeterminate:before {
    background-color: #1890ff;
}

.layui-form-label[required]::before {
    content: '*';
    color: red;
}

.layui-form-label[preview] {
    color: gray;
    padding: 5px 15px;
  }
.layui-form-label[preview]::after {
    content: "：";
}

/* 分页按钮颜色覆盖 */
.layui-laypage .layui-laypage-curr .layui-laypage-em {
    background-color: #1890ff;
}

.layui-table-cell  {
    height: auto !important;
    white-space: normal;
    }
input::placeholder {
    color: #999A9C;
}

/* 拖拽上传的样式 */
.layui-upload-drag .layui-icon {
    font-size: 18px !important;
}

/* 手机打开的时候，搜索条件不要随意换行 */
@media screen and (max-width: 450px) {
    .layui-form-item .layui-inline {
        display: inline-block;
        margin-bottom: 10px;
    }
}

/* 侧边栏logo -- 收缩 */
.layadmin-side-shrink .layui-layout-admin .je1x-logo{
    width: 60px;
    height: 50px;
    /* background-image: url(../image/logo.png); */
    /* background-size: 48px; */
    margin-left: 8px;
    margin-top: 10px;
}

/* 侧边栏logo -- 展开 */
.layui-layout-admin .je1x-logo {
    width: 220px;  
    height: 50px;
    margin-top: 10px;
    margin-left: 30px;
    margin-bottom: 10px;

}

dd[lay-value="__add_new__"] {
    color: #0099ff;
}

/* tab */
/* .layui-tab-title{
    font-weight: bold !important;
} */
.layui-tab-title .layui-this{
    color: #40a9ff !important;
}

.layui-tab-title .layui-this:after {
    border: none;
    border-radius: 0;
    border-bottom: 2px solid #40a9ff !important;
}

/* tab 内容区默认留白过大，上下左右统一收紧到 5px */
.layui-tab-content {
    padding: 5px !important;
}

/* 其他样式 */
.layui-table{
    color: black !important;
}
.layui-card-header{
    color: black !important;
}
.layui-layout-admin .layui-header a, .layui-layout-admin .layui-header a cite{
    color: black !important;
}

.layui-inline {
    margin-bottom: 3px!important;
}

.layui-input-inline {
    margin-bottom: 3px!important;
}

.layui-form.layui-card-header {
    padding: 20px 20px 5px 20px;
    height: auto;
}

.layui-form[lay-filter="layadmin-form"]{
    padding: 10px 20px 5px 0;
}

.layui-form-item {
    margin-bottom: 3px!important;
}

.layui-tab-title {
    user-select: none;
}



/* 详情分区卡片 */
.preview-card {
    border: 1px solid rgba(128, 128, 128, 0.3);
    margin: 10px 5px;
    border-radius: 5px;
}

.preview-card .header {
    display: flex;
    position: relative;
    background-color: rgba(24, 144, 255, .1);
    color: black;
    height: 38px;
    line-height: 38px;
    font-weight: bold;
    padding: 0px 10px;
    justify-content: left;
}

.preview-card .header::before {
    content: ' ';
    width: 3px;
    height: 16px;
    line-height: 38px;
    text-align: center;
    background-color: #1890ff;
    margin: 10px 8px 0px 0px;
    border-radius: 5px;
}

.preview-card .header .right {
    display: flex;
    position: absolute;
    right: 20px;
    font-weight: normal;
}

.preview-card .body {
    position: relative;
    padding: 10px 10px;
}

.preview-card  .body  .preview-label {
    color: gray;
    
}
.preview-card .body .preview-label::after {
    content: '：';
}

.je1x-iframe{
    width: 100%;
    height:100%;
    border: none;
}

.je1x-blue{
    color: #1e9fff !important;
}

.je1x-orange{
    color: #ffb800 !important;
}

.je1x-green{
    color: #16b777 !important;
}

.je1x-red{
    color: #ff5722 !important;
}

.je1x-gray{
    color: #3d3d3d !important;
}

.je1x-card{
    margin: 5px;
    padding: 10px;
    overflow: hidden;
    display: inline-block;
    background-color: white;
    box-shadow: 0px 0px 10px 5px rgb(204, 204, 204, 0.2);
    border-radius: 5px;
}

.je1x-card:hover, .je1x-card.layui-this{
    box-shadow: 0px 0px 5px 3px rgb(27, 129, 245, 0.5);
}

.je1x-card-fluid{
    min-width: 400px;
    max-height: 240px;
}

.je1x-card-200{
    max-width: 200px;
    max-height: 240px;
    /* background-color: white;
    box-shadow: 0px 0px 10px 5px rgb(204, 204, 204, 0.3);
    border-radius: 5px; */
}

.je1x-card-400{
    width: 330px;
    max-height: 240px;
    /* background-color: white;
    box-shadow: 0px 0px 10px 5px rgb(204, 204, 204, 0.3);
    border-radius: 5px; */
}

.je1x-card-header{
    display: block;
    width: 100%;
    position: relative;
}
.je1x-card-header-right-btn{
    display: block;
    position: absolute;
    right: 5px;
    top: 0px; 
}

.je1x-card-img-preview{
    display: grid;
    position: relative;
    overflow: hidden;
    height: 200px;
}

.je1x-card-img-preview > .example-tips {
    pointer-events: none;
    user-select: none;
    position: absolute;
    top: 50px;
    left: 95px;
    background-color: rgba(193, 193, 193, 0.8);
    border-radius: 10px;
    line-height: 68px;
    padding: 0px 20px;
    color:red;
    font-size: 48px;
    opacity: .3;
    z-index: 99;
}

.je1x-upload{
    padding: 0px;
}
.je1x-upload:hover{
    border:dashed #65e97b;
    border-width:thin;
    color: #65e97b !important;
}

.je1x-card-img-preview-full{
    width: 100%;
    /* float: center; */
    max-height: 200px;
    height: 100%;
}

.je1x-card-bottom-btn{
    display: block;
    position: relative;
    /* bottom: 10px; */
    text-align: center;
}

/* 表单组合 整行组合*/
.je1x-card-form-group{
    padding-top: 20px;
    padding-left: 5px;
    padding-right: 10px;
    padding-bottom: 5px;
    margin-top: 5px;
    margin-left: 5px;
    margin-right: 5px;
    margin-bottom: 10px;
    background-color: white;
    box-shadow: 0px 0px 10px 5px rgb(204, 204, 204, 0.2);
    border-radius: 5px;
}

.je1x-card-form-group:hover{
    box-shadow: 0px 0px 10px 5px rgb(27, 129, 245, 0.3);
}

.je1x-card-form-group-title{
    position:relative; 
    top:-10px;
    left: 10px; 
    height: 20px;
    line-height: 20px;
}
.je1x-card-form-group-title-icon{
    background-color: #1b81f5;
    border-radius: 5px;
    display: inline-block;
    width: 5px;
    height: 20px;
}
.je1x-card-form-group-title-words{
    padding-left: 10px;
    display: block; 
    width: 100px;
    /* font-size: large; */
}

.group-title-left-tips {
    color: gray;
    font-size: 12px;
    font-weight: normal;
    padding-left: 5px;
}

.group-title-right-btn {
    cursor: pointer;
    user-select: none;
    line-height: 30px;
    color: #1890ff;
    text-decoration: underline;
    position: absolute;
    right: 15px;
    font-weight: normal !important;
    top: 0px;
    z-index: 999;
}

.je1x-copy-icon {
    cursor: pointer;
}

.je1x-copy-img-upload{
    margin-top: 5px;
    min-width: 320px;
    height: 30px;
    border:dashed #65e97b;
    border-width:thin;
    display: block;
}

.je1x-card-left-logo{
    padding: 10px;
    display: grid;
    place-items: center;
}

/* 图片允许重新上传 删除 */
.je1x-img-edit{
    position: relative;
    display: flex;
    flex-direction: column;
    margin-right: 10px;
}

.je1x-img-right-top-btn{
    background-color: rgb(255, 255, 255, 0.5);
    padding: 3px 3px 1px 3px;
    color: #1b81f5;
    position: absolute;
    top: 0px;
    right: 0px;
    border-radius: 0 0 0 15px;
    text-align: center;
}

.je1x-img-right-bottom-btn{
    background-color: rgb(255, 255, 255, 0.5);
    padding: 3px 0px 0px 3px;
    color: red;
    position: absolute;
    bottom: 0px;
    right: 0px;
    border-radius: 10px 0 0 0;
    font-size: 14px;
    height: 20px;
    min-width: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.je1x-img-right-top-btn i{
    padding-left: 5px;
    font-size: 18px;
    cursor:pointer;
}

.je1x-img-right-bottom-btn i{
    padding-right: 3px;
    font-size: 18px;
    cursor:pointer;
}

.je1x-img{
    background-color: white;
    width: 100%;
    background-image: url(../image/bg-none.jpg);
    border: 1px dashed gray;
}

.je1x-img:hover{
    border: 1px dashed #1b81f5;
}

/* 表单内图片 */
.je1x-img-input{
    display: inline-block;
    padding: 0px 5px 5px 0px;
    height: 100px;
}

/* 表单内的行图片下方带名称 */
.je1x-img-input.je1x-img-title{ 
    height: 120px;
}

/* 添加图片的按钮样式 */
.je1x-img-add{
    display: flex;
    position: relative;
    border: 1px dashed #1b81f5; 
    cursor:pointer;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #1b81f5;

}

.je1x-img-add-icon{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    /* background-color: #fff; */
}

.je1x-upload[lay-over]{
    color: red;
}


.je1x-img-add-icon[lay-over]{
    color: red;
}

/* .je1x-img-add-icon .layui-icon{
    color: #1b81f5;
} */

.je1x-img-add-copy-upload{
    height: 30px;
    border: dashed #65e97b;
    border-width:thin;
    display: block;
    position: absolute;
    z-index:99;
    bottom:2px;
    text-align:center;
}

/* 以下图片基于表单显示，固定不超过100px的高度 */
.je1x-img-169{
    width: 160px !important;
    height: 90px !important;
}

.je1x-img-912{
    width: 70px !important;
    height: 100px !important;
}

.je1x-img-164{
    width: 440px !important;
    height: 100px !important;
    max-width: 100%;
}

.je1x-img-43{
    width: 67.5px !important;
    height: 90px !important;
    max-width: 100%;
}

.je1x-img-11{
    width: 100px !important;
    height: 100px !important;
}

.je1x-img-inline{
    width: 36px !important;
    height: 36px !important;
    border: 1px #5f5f5f;
}

/* 改变layui-progress，将progress的div放在图片框下，与img同级，让进度条在表单内能垂直居中 */
.je1x-progress-upload-img{
    position: relative;
    top:-70px;
}

.je1x-card-black{
    background-color: #1b81f5;
}

.je1x-tip-words{
    font-size: 12px;
    color:gray;
    width: auto;
    min-width: 50px;
}

.je1x-tip-words-center{
    text-align: center;
    min-width: 160px;
}

.ribbon-5 {
    position: absolute;
    top: 10%;
    left: -5px;
    padding: 2px 10px;
    background-color: #57DD43;
    font-size: 12px;
    color: #fff;
  
    &::before {
      content: "";
      position: absolute;
      left: 0;
      bottom: -4px;
      border-top: 4px solid #57DD43;
      border-left: 4px solid transparent;
    }
  }

.je1x-card-lock-height{
    overflow: auto;
    height: 430px;
}

.je1x-label{
    display: inline-block;
    height: 38px;
    white-space: nowrap;
    text-align: center;
    font-size: 14px;
    border-radius: 2px;
    background-color: rgb(54, 197, 54);
    color: white;
    line-height: 38px;
    padding: 0 18px;
    border-radius: 5px;
    box-sizing: border-box;
    vertical-align: middle;
    margin-left: 2px;
    margin-right: 2px;
}

/* 多行表格的字段名 */
.je1x-label-table-title{
    height: 24px;
    font-size: 12px;
    line-height: 24px;
    min-width: 40px;
    text-align: center;
    border-radius: 3px;
    background-color: #f5f5f5;
    color: #909399;
    border: 1px solid #e8e8e8;
    margin-top: 3px;
    margin-bottom: 3px;
    margin-right: 5px;
}

.je1x-label-normal{
    background-color: #1b81f5;
    color: white;
}

.je1x-label-primary{
    background-color: rgb(255,255,255,0);
    color: black;
}

.je1x-label-sm{
    height: 18px;
    font-size: 12px;
    line-height: 18px;
    min-width: 40px;
    padding: 0 12px;
    text-align: center;
    border-radius: 2px;
}

.je1x-label-xs{
    height: 18px;
    font-size: 8px;
    line-height: 18px;
    min-width: 40px;
    padding: 0 12px;
    text-align: center;
    border-radius: 2px;
}

.je1x-label-after-btn{
    padding-left: 2px;
    cursor: pointer;
    color: red;
    padding-right: 8px;
}

.je1x-big-title{
    font-size:xx-large;
}

.je1x-title{
    font-size:large;
}

.je1x-link{
    color:#0099FF;
    /* color: blue; */
    cursor: pointer;
    user-select: none;
}

.je1x-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
}

.je1x-flex.center {
    justify-content: center;
}

.je1x-link-right{
    float: right;
}

.je1x-link-saerch-form{
    padding-left: 10px;
    text-decoration: underline;
}

/* 菜单等处用 layui-icon 承载阿里图标（ali-xxx）时，字体族以 iconfont 为准 */
.layui-icon[class*="ali-"] {
    font-family: "je1x-icon" !important;
}

.je1x-icon,.layui-icon {
    margin-right: 3px;
}

.je1x-icon.gray,.layui-icon.gray {
    color: gray;
}

.je1x-icon.blue, .layui-icon.blue {
    color: #0099ff;
}

.je1x-icon.green,.layui-icon.green {
    color: green;
}

.je1x-icon.je1x-link,.layui-icon.je1x-link{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 22px;
    height: 22px;
    line-height: 22px;
    border-radius: 3px;
    cursor: pointer;
    vertical-align: middle;
    padding: 4px
}

.je1x-icon.je1x-link:hover,.layui-icon.je1x-link:hover { 
    background: #e6f7ff; 
}

/* 基于 layui-input-inline使用， 用于数据的预览查看 */
.je1x-form-inline-label{ 
    height: 28px;
    padding-left: 5px;
    line-height: 28px;
}

.je1x-form-inline-label:empty::before{
    content: '-';
    color: gray;
}

.je1x-copy-label{
    /* padding-left: 5px; */
    cursor: pointer;
    user-select: none;
    /* border-bottom: 1px dashed gray; */
    /* border-top: 1px dashed gray; */
}

.je1x-copy-label:hover{
    /* background-color: rgb(0, 0, 0, 0.1); */
    background-color: white;
    color: #0099ff;
    box-shadow: 0px 0px 10px 5px rgb(100, 100, 100, 0.2);
    &::after{
        content: '';
        color: red;
        padding-left: 2px;
    }
}

.je1x-textarea{
    display: block;
    width: 100%;
    max-width: 800px;
    height: 150px; 
    margin-top: 10px;
    border-color: #eee;
    color: #5f5f5f;
    padding: 10px;
}

.je1x-textarea-fluid{
    width: 100%;
}

/* 地图 */
.map-tips {
    padding: 20px 0px;
    width: calc(100% - 10px);
    background-color: goldenrod; 
    position: absolute;
    top:0px;
    z-index: 99; 
    text-align: center;
    color: white;
}

.map-card{
    display: flex;
    background-color: #fff;
    background-clip: border-box;
    border-radius: .25rem;
    border-width: 0;
    border-radius: 0.4rem;
    box-shadow: 0 2px 6px 0 rgba(114, 124, 245, .5);

    position: relative;
    height: 30px;
    margin-left: 5px;
    margin-top: 5px; 
    width: 240px;
}

.map-card > input[type=checkbox] {
    margin-left: 20px;
}

.map-card > span {
    line-height: 28px;
    margin-left: 5px;
}

.map-card.get-lnglat{
    position: absolute !important;
    left: 0px !important;
    bottom: 5px !important;
    width: 280px !important;
    height: 38px !important;
    line-height: 38px;
    z-index: 999;
}

.get-lnglat span{
    line-height: 38px;
    text-align: center;
    padding-left: 10px;
}

.map-card.quick-point {
    height: 38px;
    display: flex;
    justify-content: space-around;
    padding: 0px 10px;
}

.map-card.quick-point span{
    line-height: 38px;
    cursor: pointer;
}

.map-card img{
    width: 28px;
    height: 28px;
}

.map-window.plate{
    font-weight: bold;
    display: block;
}
.map-control{
    position: absolute;
    bottom: 20px;
    left: 25%;
    height: 48px;
    margin-left: 10px;
    margin-top: 10px; 
    width: 50%;
    z-index: 999
}

.map-control .play-process-slider{
    width: 100%;
    position: relative;
    top: 45%;
    padding-left: 10px;
    padding-right: 50px;
}
.map-control span{
    line-height: 48px;
    text-align: center;
    padding-left: 10px;
}

.map-control .play-stop{
    font-size: 30px;
    color: #036ffd;
    cursor: pointer;
}

button {
    user-select: none !important;
}

/* 选中行的样式 */
.row-selected {
    background-color: #e8f4ff !important;  /* 背景色 */
    color: #1890ff !important;            /* 字体颜色 */
    font-weight: bold !important;         /* 字体加粗 */
}

/* 密码生成/复制按钮 */
.gen-pwd-btn {cursor: pointer; color: #009688; font-size: 12px; white-space: nowrap; user-select: none; vertical-align: middle;}
.gen-pwd-btn:hover {color: #00776e;}
.copy-pwd-text {cursor: pointer; color: #1e9fff; font-size: 12px; white-space: nowrap; vertical-align: middle;}
.copy-pwd-text:hover {color: #0099ff;}

/* 登录页公安备案信息 */
.user-login-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}
.user-login-footer > p,
.user-login-footer > a,
.user-login-footer .police-record {
    margin: 0;
    line-height: 30px;
    white-space: nowrap;
}
.user-login-footer .police-record {
    display: none;
    align-items: center;
    padding: 0 5px;
    vertical-align: middle;
}
.user-login-footer .police-record.is-visible {display: inline-flex;}
.user-login-footer .police-record img {width: 16px; height: 16px; margin-right: 4px;}
.user-login-footer .police-record a {padding: 0;}

/* ==================== 通用设置页（弹窗） ==================== */
/* 页面容器：直接用在 body 上，清边距 + 浅灰底 + 内边距 */
.ai-page {
    box-sizing: border-box;
    min-height: 100vh;
    margin: 0;
    padding: 16px;
    background: #f5f7fa;
}

/* 页内容居中限宽 */
.ai-wrap {
    max-width: 1200px;
    margin: 0 auto;
}

/* 白底卡片 */
.ai-card {
    background: #fff;
    border: 1px solid #edf0f5;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(31, 45, 61, .035);
}

.ai-card-head {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 16px 22px;
    border-bottom: 1px solid #edf0f5;
}

.ai-card-title {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #344054;
    font-size: 15px;
    font-weight: 600;
}

.ai-card-body {
    padding: 0 22px;
}

/* 行式配置：左侧名称/说明，右侧控件 */
.ai-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 6px 0;
}

.ai-row-info {
    min-width: 0;
}

.ai-row-name {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #344054;
    font-size: 15px;
    font-weight: 500;
    line-height: 24px;
}

.ai-row-name[required]::before {
    content: '*';
    color: red;
    margin-right: 4px;
}

.ai-row-tip {
    margin: 4px 0 0;
    color: #98a2b3;
    font-size: 13px;
    line-height: 21px;
}

.ai-row-value {
    color: #1d2939;
    font-size: 15px;
    text-align: right;
    overflow-wrap: anywhere;
}

.ai-row-control {
    flex: 0 1 320px;
    min-width: 180px;
}

.ai-row-compact {
    flex-basis: 250px;
}

/* 按钮权限结果就绪前，所有受控元素（control-*）默认不可见、不可点击 */
html:not(.btn-access-ready) [class*="control-"] {
    visibility: hidden !important;
}

.ai-row-end {
    display: flex;
    justify-content: flex-end;
}

/* 带单位后缀的输入框 */
.ai-input-wrap {
    position: relative;
}

.ai-input-wrap .layui-input {
    padding-right: 42px;
}

.ai-input-unit {
    position: absolute;
    top: 0;
    right: 12px;
    color: #667085;
    line-height: 38px;
    pointer-events: none;
}

@media screen and (max-width: 560px) {
    .ai-page { padding: 10px; }
    .ai-row { align-items: stretch; flex-direction: column; gap: 10px; }
    .ai-row-value { text-align: left; }
    .ai-row-control { flex: none; min-width: 0; width: 100%; }
    .ai-row-end { justify-content: flex-start; }
    .ai-grid { grid-template-columns: 1fr; flex-basis: auto; }
}

/* 侧边导航：左侧竖向选项卡，配合右侧内容区 */
.ai-nav {
    flex: 0 0 170px;
    padding: 12px;
    box-sizing: border-box;
    overflow: auto;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
}

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

.ai-nav li {
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 14px;
    margin-bottom: 4px;
    color: #667085;
    cursor: pointer;
    border-radius: 6px;
    user-select: none;
}

.ai-nav li:hover {
    color: #1e9fff;
    background: #f6f9fc;
}

.ai-nav li.layui-this {
    color: #1e9fff;
    background: #eef7ff;
    font-weight: 500;
}

.ai-nav li.layui-this::after {
    position: absolute;
    top: 10px;
    right: 0;
    bottom: 10px;
    width: 3px;
    border-radius: 3px 0 0 3px;
    background: #1e9fff;
    content: '';
}

@media screen and (max-width: 640px) {
    .ai-nav { flex-basis: 112px; padding: 6px; }
    .ai-nav li { padding: 11px 8px; }
    .ai-nav .layui-icon { display: none; }
}

/* 页头：标题 + 说明的白色卡片 */
.ai-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 16px;
    padding: 16px 20px;
    margin-bottom: 12px;
    background: #fff;
    border: 1px solid #edf0f5;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(31, 45, 61, .035);
}

.ai-head-title {
    margin: 0;
    color: #1d2939;
    font-size: 16px;
    font-weight: 600;
    line-height: 24px;
}

.ai-head-desc {
    margin: 4px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 21px;
}

/* 右侧内容区：占满剩余空间并可滚动 */
.ai-content {
    flex: 1;
    min-width: 0;
    overflow: auto;
}

/* 底部操作条：右侧按钮 */
.ai-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 12px 20px;
    background: #fff;
    border: 1px solid #edf0f5;
    border-radius: 10px;
    box-shadow: 0 -3px 12px rgba(31, 45, 61, .045);
}

.ai-foot .layui-btn { margin: 0; }

/* 固定在窗口底部 */
.ai-foot-fixed {
    position: fixed;
    right: 12px;
    bottom: 0;
    left: 12px;
    z-index: 99;
}

/* 吸附在滚动容器底部 */
.ai-foot-sticky {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin-top: 12px;
}

/* 小标签 */
.ai-tag {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 11px;
    font-size: 12px;
}

.ai-tag[hidden] { display: none !important; }

.ai-tag-brand { color: #1268ba; background: #eef7ff; }
.ai-tag-muted { color: #667085; background: #f2f4f7; }
.ai-tag-warning { color: #b54708; background: #fffaeb; }

/* 两列表单栅格 */
.ai-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    flex-basis: 520px;
}

/* 栅格内的小字段标签 */
.ai-field-label {
    display: block;
    margin-bottom: 6px;
    color: #667085;
    font-size: 12px;
}

/* 行内表单栅格：一行多个字段；字段宽度由行内 style 控制 */
.ai-form-item {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 14px;
    margin-bottom: 12px;
}

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

.ai-inline-field {
    display: flex;
    flex: 0 0 214px;
    min-width: 0;
    max-width: 100%;
}

.ai-inline-field::before,
.ai-inline-field::after {
    display: none;
}

.ai-inline-field > .layui-form-label {
    flex: none;
}

.ai-inline-field > .layui-input-block {
    flex: 1;
    min-width: 0;
    margin-left: 0;
}

@media screen and (max-width: 600px) {
    .ai-inline-field {
        flex: none;
        flex-direction: column;
        min-width: 0;
        width: 100%;
    }
}

/* 分段单选：灰底、蓝色选中项 */
.je1x-tab-radio {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 5px;
    background: #f2f4f7;
    border-radius: 6px;
}

.je1x-tab-radio label {
    position: relative;
    cursor: pointer;
}

.je1x-tab-radio input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.je1x-tab-radio-item {
    position: relative;
    display: block;
    height: 26px;
    padding: 0 12px 0 22px;
    color: #667085;
    font-size: 12px;
    line-height: 26px;
    border-radius: 4px;
    cursor: pointer;
    transition: color .2s, background-color .2s, box-shadow .2s;
}

/* 选中项左侧对勾：用直边绘制，避免字体差异；所有选项预留位置，切换时不挤动文字 */
.je1x-tab-radio-item::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 8px;
    box-sizing: content-box;
    width: 4px;
    height: 8px;
    margin: auto 0;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    opacity: 0;
    /* L 形两条边旋转后视觉重心偏下，向上补偿后再居中 */
    transform: translateY(-1px) rotate(45deg);
    transition: opacity .2s;
}

.je1x-tab-radio-item:hover {
    color: #1e9fff;
}

.je1x-tab-radio input:checked + .je1x-tab-radio-item {
    color: #fff;
    background: #1e9fff;
    box-shadow: 0 2px 6px rgba(30, 159, 255, .24);
}

.je1x-tab-radio input:checked + .je1x-tab-radio-item::before {
    opacity: 1;
}

.je1x-tab-radio-item:focus-visible,
.je1x-tab-radio input:focus-visible + .je1x-tab-radio-item {
    outline: 2px solid #1e9fff;
    outline-offset: 2px;
}

/* 固定底栏：左侧内容 + 右侧操作 */
.je1x-foot {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 99;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 16px;
    border-top: 1px solid #ebeef5;
    background: #fff;
    box-shadow: 0 -2px 8px rgba(31, 35, 41, .06);
}

.je1x-foot-main {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    min-width: 0;
}

.je1x-foot-actions {
    display: flex;
    flex: none;
    gap: 10px;
}

.je1x-foot-actions .layui-btn {
    margin: 0;
}

@media screen and (max-width: 899px) {
    .je1x-foot {
        flex-wrap: wrap;
        gap: 8px;
    }

    .je1x-foot-main {
        flex: none;
        width: 100%;
    }
}

@media screen and (max-width: 600px) {
    .je1x-foot-main {
        flex-wrap: wrap;
        gap: 10px;
    }
}
