html {
    height: 100%;
    font-family: 'Microsoft YaHei';
}
html, body, div, p, label, button {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
a {
    text-decoration: none;
}
.layout-container {
    display: flex;
    width: 100%;
    height: 100%;
}
.layout-aside {
    width: 220px;
    height: 100%;
    background-color: #202D3D;
    -moz-flex-shrink: 0;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}
.layout-aside .sysmenu,
.layout-aside .sub-sysmenu {
    list-style: none;
    margin: 0;
    padding: 0
}
.layout-aside .sysmenu-item .sysmenu-title {
    position: relative;
    display: block;
    color: #8D90A1;
    font-size: 0;
    height: 50px;
    line-height: 50px;
    padding: 0 20px;
}
.layout-aside .sysmenu-item .sysmenu-title span {
    vertical-align: middle;
    font-size: 16px;
}
.layout-aside .sysmenu-item .icon {
    display: inline-block;
    vertical-align: middle;
    width: 22px;
    height: 100%;
    font-size: 22px;
    margin-right: 16px;
    fill: currentColor;
    overflow: hidden;
}
.layout-aside .sysmenu-item .icon-arrow {
    position: absolute;
    right: 0;
    width: 12px;
    font-size: 12px;
    color: #909399;
    -webkit-transition: -webkit-transform .3s;
    transition: -webkit-transform .3s;
    transition: transform .3s;
    transition: transform .3s,-webkit-transform .3s;
}
.layout-aside .sysmenu-item.actived .icon-arrow {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
}
.layout-aside .sysmenu-item.init-opend .sub-sysmenu {
    height: auto;
}
.layout-aside .sub-sysmenu {
    height: 0;
    overflow: hidden;
    background-color: #1f2d3d;
    -webkit-transition: height .3s linear;
    transition: height .3s linear;
}
.layout-aside .sub-sysmenu .sysmenu-item {
    position: relative;
    padding: 0 20px 0 47px;
}
.layout-aside .sub-sysmenu .sysmenu-item::before {
    position: absolute;
    top: 0;
    left: 31px;
    content: '';
    width: 1px;
    height: 100%;
    border-left: 1px solid #32465E;
}
.layout-aside .sub-sysmenu .sysmenu-title {
    position: relative;
    height: 40px;
    line-height: 40px;
    padding-left: 16px;
}
.layout-aside .sysmenu-item.actived > .sysmenu-title.actived {
    color: #FFFFFF;
    background-color: transparent;
}
.layout-aside .sysmenu-title.actived {
    color: #FFFFFF;
    background-color: #304156;
}
.layout-main {
    flex: 1;
}
.layout-wrap {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #edf1f4;
}
.layout-header {
    display: flex;
    height: 60px;
    /* background-color: #304156; */
}
.layout-header .aside-ctrl {
    line-height: 83px;
    padding: 0 15px;
    cursor: pointer;
}
.layout-header .aside-ctrl .icon {
    width: 14px;
    height: 14px;
    color: #c0ccd8;
    padding: 0;
    margin: 0;
}
.layout-header .page-label,
.layout-header .person-info {
    flex: 1;
    line-height: 60px;
}
.layout-header .person-info {
    font-size: 14px;
    text-align: right;
    padding-right: 20px;
}
.layout-header .page-label a {
    display: inline-block;
    font-size: 16px;
    color: #909399;
}
.layout-header .page-label a:last-child{
    color: #000;
}
.layout-header .person-info div.item {
    display: inline-block;
    position: relative;
    height: 100%;
    color: #303133;
    padding: 0 6px;
}
.layout-header .person-info .icon {
    color: #909399;
}
.layout-header .person-info .avatar {
    display: inline-block;
    vertical-align: middle;
    width: 36px;
    height: 36px;
    border-radius: 100%;
    box-shadow: 0px 4px 10px rgba(65, 120, 213, 0.47);
    background-color: #4178D5;
    border: 3px solid #4178D5;
    margin-right: 8px;
}
.layout-header .person-info .dropdown {
    display: none;
    position: absolute;
    top: 60px;
    right: 0;
    z-index: 10;
    line-height: 20px;
    text-align: left;
    min-width: 132px;
    border-radius: 16px;
    background-color: #ffffff;
    box-shadow: 0 1px 10px #cdcdcd;
}
.layout-header .person-info .dropdown a {
    display: block;
    height: 46px;
    line-height: 46px;
    font-size: 14px;
    color: #303133;
    white-space: nowrap;
    padding: 0 23px;
    border-bottom: 1px solid #f2f2f2;
}
.layout-header .person-info .dropdown a:hover {
    background-color: rgba(48, 99, 229, 0.06);
}
.layout-header .person-info .dropdown a:first-child {
    border-radius: 16px 16px 0 0;
}
.layout-header .person-info .dropdown a:last-child {
    border-radius: 0 0 16px 16px;
}
.layout-header .person-info .dropdown .icon {
    display: inline-block;
    vertical-align: middle;
    width: 18px;
    height: 18px;
}
.layout-header .person-info .dropdown a:last-child {
    border-bottom: 0;
}
.layout-header .person-info .dropdown-box {
    position: relative;
}
.layout-header .person-info .dropdown-box::before {
    content: '';
    display: block;
    position: absolute;
    top: -7px;
    right: 20px;
    border-top: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 8px solid #ffffff;
}
.layout-body {
    flex: 1;
    overflow: hidden;
}
.layout-aside .layout-aside-scrollbar,
.layout-body .layout-body-scrollbar {
    height: 100%;
    overflow: hidden;
}
.layout-body .layout-body-scrollbar .layout-body-content {
    padding: 15px;
}
.layout-aside .syslogo {
    display: flex;
    align-items: center;
    justify-content: center;
    /* height: 80px; */
    /* line-height: 80px; */
    background-color: #202d3d;
    margin-top: 20px;
    margin-bottom: 48px;
}
.layout-aside .sysname {
    display: inline-block;
    color: #ffffff;
    font-size: 16px;
    font-weight: bold;
    margin-left: 12px;
}

/* 公共样式 */
.body-container {
    min-height: calc(100vh - 90px);
}
.body-container-limit {
    max-height: calc(100vh - 90px);
}
.flex {
    display: -ms-flexbox;
    display: -moz-box;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
}
.flex-1 {
    -ms-flex: 1;
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -webkit-flex: 1;
    flex: 1;
}
.flex-h {
    -ms-flex-direction: row;
    -moz-box-orient: horizontal;
    -webkit-box-orient: horizontal;
    flex-direction: row;
}
.flex-h-c {
    -moz-box-pack: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    box-pack: center;
    justify-content: center;
}
.flex-v {
    -ms-flex-direction: column;
    -moz-box-orient: vertical;
    -webkit-box-orient: vertical;
    flex-direction: column;
}
.flex-v-c {
    -moz-box-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    box-align: center;
    align-items: center;
}
.flex-h-end {
    -moz-box-pack: end;
    -webkit-box-pack: end;
    -webkit-justify-content: end;
    box-pack: end;
    justify-content: flex-end;
}
.flex-v-end {
    -moz-box-pack: end;
    -webkit-box-path: end;
    box-align: end;
    -webkit-align-items: flex-end;
    align-items: flex-end;
}
.vw-match {
    width: 100%;
}
.vw-half {
    width: 50%;
}
.vw-40 {
    width: 40px;
}
.vw-260 {
    width: 260px;
}
.vh-match {
    height: 100%;
}
.p-10 {
    padding: 10px;
}
.p-20 {
    padding: 20px;
}
.p-25 {
    padding: 25px;
}
.p-45 {
    padding: 45px;
}
.pt-10 {
    padding-top: 10px;
}
.pt-12 {
    padding-top: 12px;
}
.pt-24 {
    padding-top: 24px;
}
.pb-24 {
    padding-bottom: 24px;
}
.pl-10 {
    padding-left: 10px
}
.pl-16 {
    padding-left: 16px;
}
.pl-30 {
    padding-left: 30px!important;
}
.pr-10 {
    padding-right: 10px;
}
.pr-16 {
    padding-right: 16px;
}
.ml-5 {
    margin-left: 5px;
}
.ml-10 {
    margin-left: 10px;
}
.ml-40 {
    margin-left: 40px;
}
.mr-5 {
    margin-right: 5px;
}
.mr-8 {
    margin-right: 8px;
}
.mr-12 {
    margin-right: 12px;
}
.mr-16 {
    margin-right: 16px;
}
.mr-18 {
    margin-right: 18px;
}
.mr-24 {
    margin-right: 24px;
}
.mr-32 {
    margin-right: 32px;
}
.mr-80 {
    margin-right: 80px;
}
.mr-83 {
    margin-right: 83px;
}
.mt-42 {
    margin-top: 42px;
}
.mb-8 {
    margin-bottom: 8px;
}
.mb-10 {
    margin-bottom: 10px;
}
.mb-15 {
    margin-bottom: 15px;
}
.mb-16 {
    margin-bottom: 16px;
}
.mb-18 {
    margin-bottom: 18px;
}
.mb-20 {
    margin-bottom: 20px;
}
.mb-24 {
    margin-bottom: 24px;
}
.mb-57 {
    margin-bottom: 57px;
}
.mlr-9 {
    margin: 0 9px;
}
.bg-white {
    background-color: #ffffff;
}
.bg-shadow {
    box-shadow: 0px 4px 20px rgba(170, 178, 185, 0.08);
}
.align-c {
    text-align: center;
}
.align-l {
    text-align: left;
}
.align-r {
    text-align: right;
}
.vertical-middle {
    vertical-align: middle;
}
.hide {
    display: none;
}
.block {
    display: block;
}
.inline {
    display: inline;
}
.inline-block {
    display: inline-block;
}
.pointer {
    cursor: pointer;
}
.font-0 {
    font-size: 0;
}
.font-12 {
    font-size: 12px;
}
.font-14 {
    font-size: 14px;
}
.font-bold {
    font-weight: bold;
}
.container-title {
    font-size: 20px;
    font-weight: bold;
    color: #303133;
    margin-right: 20px;
    white-space: nowrap;
}
.text-primary {
    color: #4178D5;
}
.text-dull-gray {
    color: #909399;
}
.text-gray {
    color: #C0C4CC;
}
.text-red {
    color: red;
}
.border-tb1-gray {
    border-top: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
}

/* 按钮 */
.btn {
    display: inline-block;
    font-size: 14px;
    line-height: 18px;
    padding: 10px 24px;
    border-radius: 0;
    cursor: pointer;
    white-space: nowrap;
}
.btn.small {
    padding: 2px 10px;
}
.btn.middle {
    padding: 5px 16px;
}
.btn.large {
    padding: 15px 35px;
}
.btn.text {
    padding: 0;
}
.btn.default {
    color: #606266;
    border: 1px solid #DCDFE6;
    background-color: transparent;
}
.btn.success {
    color: #ffffff;
    border: 1px solid #67c23a;
    background-color: #67c23a;
}
.btn.success.plain {
    color: #67c23a;
    border: 1px solid #67c23a;
    background-color: #ffffff;
}
.btn.primary {
    color: #ffffff;
    border: 1px solid #4178D5;
    background-color: #4178D5;
}
.btn.primary.plain {
    color: #4178D5;
    border: 1px solid #4178D5;
    background-color: #ffffff;
}
.btn.warning {
    color: #ffffff;
    border: 1px solid #e6a23c;
    background-color: #e6a23c;
}
.btn.warning.plain {
    color: #e6a23c;
    border: 1px solid #e6a23c;
    background-color: #ffffff;
}
.btn.danger {
    color: #ffffff;
    border: 1px solid #f56c6c;
    background-color: #f56c6c
}
.btn.danger.plain {
    color: #f56c6c;
    border: 1px solid #f56c6c;
    background-color: #ffffff
}
.cert {
    display: inline-block;
    width: 19px;
    height: 19px;
    line-height: 19px;
    box-sizing: border-box;
}
.cert.opened::before {
    display: inline-block;
    content: '';
    border-top: 5px solid #54565A;
    border-right: 5px solid transparent;
    border-left: 5px solid transparent;
}
.cert.closed::before {
    display: inline-block;
    content: '';
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 5px solid #54565A;
}

.tag {
    display: inline-block;
    height: 12px;
    line-height: 12px;
    border: 1px solid #ededed;
    border-radius: 2px;
    padding: 2px;
}
.tag.default {
    background-color: #ededed;
}
.tag.light-primary {
    background-color: #F5F7FA;
}

.tag-btn {
    position: relative;
    display: inline-block;
    height: 20px;
    line-height: 20px;
    padding: 0 15px 0 5px;
    margin-right: 8px;
    margin-bottom: 5px;
    border-radius: 3px;
    background-color: #f2f2f2;
}
.tag-btn .tag-close {
    position: absolute;
    top: -4px;
    right: -4px;
    display: inline-block;
    border-radius: 100%;
    width: 12px;
    height: 12px;
    color: #fff;
    line-height: 10px;
    text-align: center;
    margin-left: 8px;
    cursor: pointer;
    background-color: black;
}

/* form样式 */
.form .input,
.form .select,
.form .textarea {
    position: relative;
    height: 40px;
    /* font-size: 0; */
    box-sizing: border-box;
    border: 1px solid #DCDFE6;
}
.form .input.height-unlimit,
.form .select.height-unlimit,
.form .textarea.height-unlimit {
    height: auto;
    min-height: 40px;
}
.form .textarea {
    min-height: 80px;
}
.form .input input {
    width: 100%;
    min-height: 38px;
    font-size: 14px;
    border: 0;
    padding-left: 8px;
    outline: none;
    box-sizing: border-box;
    background-color: transparent;
}
.form .input input:disabled,
.form .select select:disabled {
    /*background-color: #C0C4CC;*/
    background-color: #EFEFEF;
}
.form .textarea textarea {
    width: 100%;
    height: 100%;
    font-size: 14px;
    border: 0;
    padding-top: 8px;
    padding-left: 8px;
    outline: none;
    box-sizing: border-box;
    background-color: transparent;
}
.form .select select {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    padding-left: 8px;
    padding-right: 40px;
    outline: none;
    box-sizing: border-box;
    background-color: transparent;
    -ms-appearance:none;
    -moz-appearance:none;
    -webkit-appearance:none;
    appearance:none;
}
.form .select label {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 100%;
    text-align: center;
    line-height: 40px;
    border-left: 1px solid #DCDFE6;
    background-color: #F5F7FA;
    cursor: pointer;
    box-sizing: border-box;
}
.form .select label.transparent {
    background-color: transparent;
}
.form .filter-btn {
    width: 40px;
    height: 100%;
    border-left: 1px solid #DCDFE6;
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-radius: 0;
    cursor: pointer;
    box-sizing: border-box;
    background-color: #F5F7FA;
}
.form .filter-submit-btn {
    width: 64px;
    height: 40px;
    color:#4178D5;
    border-radius: 0;
    cursor: pointer;
    box-sizing: border-box;
    border: 1px solid #4178D5;
    background-color: RGBA(65, 120, 213, 0.1);
}
.form label.checkbox span.box,
.form label.checkbox span.name,
.form label.radio span.box,
.form label.radio span.box + label {
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
}
.form label.checkbox span.box {
    content: '';
    width: 16px;
    height: 16px;
    margin-right: 8px;
    background-color: #FFFFFF;
    border: 1px solid #C0C4CC;
    box-sizing: border-box;
}
.form label.checkbox input[type="checkbox"]:checked + span.box,
.form label.checkbox input[type="radio"]:checked + span.box {
    border: 1px solid #4178D5;
    background: url('../images/checkbox-checked.png') no-repeat center;
    background-size: 16px;
}
.form label.checkbox.half input[type="checkbox"]:checked + span.box,
.form label.checkbox.half input[type="radio"]:checked + span.box {
    border: 1px solid #4178D5;
    background: url('../images/checkbox-has-children.png') no-repeat center;
    background-size: 16px;
}
.form label.checkbox input[type="checkbox"]:disabled + span.box,
.form label.checkbox input[type="radio"]:disabled + span.box  {
    background-color: #C0C4CC;
}
.form label.radio input[type="radio"] + span.box {
    width: 16px;
    height: 16px;
    border: 1px solid #CCD0D5;
    border-radius: 100%;
    box-sizing: border-box;
}
.form label.radio input[type="radio"]:checked + span.box {
    border: 5px solid #4178D5;
}
.form .must::before {
    content: '*';
    display: inline-block;
    vertical-align: middle;
    color: red;
    margin-right: 3px;
}
.form .cascader {
    font-size: 14px;
    height: 100%;
    line-height: 40px;
    padding-left: 8px;
    padding-right: 40px;
}
.form .bg-transparent {
    background-color: transparent;
}
.form .select2-container,
.form .select2-selection--single {
    height: 100%!important;
    border: 0!important;
    border-radius: 0!important;
    outline: none;
}
.form .select2-selection__rendered {
    height: 100%;
    line-height: 38px!important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    display: none!important;
}

/* table样式 */
.table-container {
    width: 100%;
    overflow: hidden;
}
.table-container .table-box {
    position: relative;
    overflow-x: auto;
}
.table {
    width: 100%;
    border-spacing: 0;
    border-collapse: separate;
}
.table thead tr {
    height: 50px;
    font-size: 14px;
    color: #303133;
    background-color: #F5F7FA;
    border-top: 1px solid #EBEEF5;
    border-bottom: 1px solid #EBEEF5;
}
.table thead th,
.table thead td,
.table tbody td {
    white-space: nowrap;
    background-color: #F5F7FA;
    border-bottom: 1px solid #EBEEF5;
}
.table.has-fixed thead th,
.table.has-fixed thead td,
.table.has-fixed tbody td {
    padding: 0 20px;
}
.table thead th.fixed,
.table thead td.fixed,
.table tbody td.fixed,
.table thead th.fixed-left,
.table thead td.fixed-left,
.table tbody td.fixed-left,
.table thead th.fixed-right,
.table thead td.fixed-right,
.table tbody td.fixed-right {
    position: sticky;
}
.table thead th.fixed-left,
.table thead td.fixed-left,
.table tbody td.fixed-left {
    left: 0;
}
.table thead th.fixed-right,
.table thead td.fixed-right,
.table tbody td.fixed-right {
    right: 0;
}
.table tbody td {
    background-color: #FFFFFF;
    border-bottom: 1px solid #EBEEF5
}
.table thead th.last-fixed-left.show-shadow,
.table thead td.last-fixed-left.show-shadow,
.table tbody td.last-fixed-left.show-shadow {
    box-shadow: 3px 0 5px -2px #DDDDDD;
}
.table thead th.last-fixed-right.show-shadow,
.table thead td.last-fixed-right.show-shadow,
.table tbody td.last-fixed-right.show-shadow {
    box-shadow: -3px 0 5px -2px #DDDDDD;
}
.table tbody tr {
    height: 60px;
    font-size: 14px;
    color: #333333;
    border-bottom: 1px solid #EBEEF5
}
.table tbody.sub.hide {
    display: none;
}
.table tbody.actived tr,
.table tbody.sub tr {
    color: #909399;
    background-color: #F5F7FA;
}
.table tbody tr td.no {
    position: relative;
    white-space: nowrap;
    padding-left: 20px;
}
.table tbody.actived tr,
.table tbody.sub tr:not(:last-child) {
    border: 0;
}
.table tbody.has-children td.no::before {
    position: absolute;
    top: 50%;
    left: 8px;
    transform: translateY(-50%);
    content: '';
    width: 6px;
    height: 10px;
    background: url('../images/table-item-closed.png');
    background-size: 6px 10px;
    cursor: pointer;
}
.table tbody.has-children.actived td.no::before {
    position: absolute;
    top: 50%;
    left: 6px;
    transform: translateY(-50%);
    z-index: 10;
    content: '';
    width: 10px;
    height: 6px;
    background: url('../images/table-item-actived.png') no-repeat center;
    background-size: 10px 6px;
    cursor: pointer;
}
.table tbody.sub td.no::before {
    position: absolute;
    top: 0;
    left: 10px;
    content: '';
    width: 1px;
    height: 50%;
    background-color: #C0C4CC;
}
.table tbody.has-children.actived td.no::after,
.table tbody.sub td.no::after {
    position: absolute;
    bottom: 0;
    left: 10px;
    content: '';
    width: 1px;
    height: 50%;
    background-color: #C0C4CC;
}
.table tbody.sub tr:last-child td.no::after {
    position: absolute;
    top: 50%;
    left: 7.5px;
    transform: translateY(-50%);
    z-index: 10;
    content: '';
    width: 6px;
    height: 6px;
    background-color: #C0C4CC;
    border-radius: 100%;
}
.table .enable {
    color: #2A5EE5;
}
.table .disable {
    color: #909399;
}

.tab {
    width: 100%;
}
.tab-label {
    height: 40px;
    border-bottom: 1px solid #DCDFE6;
}
.tab-label .label-item {
    position: relative;
    display: inline-block;
    height: 100%;
    line-height: 40px;
    margin-right: 40px;
    cursor: pointer;
}
.tab-label .label-item.actived::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #4178D5;
}
.tab-body .body-item {
    padding-top: 24px;
}

/* 分页 */
.pagination {
    list-style: none;
    padding: 0;
    margin: 10px 0;
}
.pagination li:first-child {
    display: inline-block;
    vertical-align: middle;
    height: 28px;
    font-size: 0;
}
.pagination li:first-child span,
.pagination li:first-child form,
.pagination li:first-child select {
    display: inline-block;
    vertical-align: middle;
    font-size: 14px;
    color: #303133;
}
.pagination li:first-child select {
    width: 60px;
    height: 28px;
    border: 1px solid #EBEEF5;
    border-radius: 0;
    margin: 0 10px;
    outline: none;
}
.pagination li:not(:first-child),
.pagination li.disabled {
    display: inline-block;
    vertical-align: middle;
    min-width: 28px;
    height: 28px;
    font-size: 14px;
    border: 1px solid #EBEEF5;
    margin: 0 5px;
}
.pagination li:not(:first-child) a,
.pagination li:not(:first-child) span {
    display: inline-block;
    vertical-align: middle;
    width: 100%;
    line-height: 28px;
    font-size: 14px;
    color: #555555;
    text-align: center;
    box-sizing: border-box;
    padding: 0 5px;
}
.pagination li.disabled {
    text-align: center;
}
.pagination li.disabled span {
    color: #c0c4cc;
}
.pagination li.disabled span,
.pagination li:last-child a {
    font-size: 20px!important;
    line-height: 26px;
}
.pagination li.active span {
    color: #FFFFFF;
    background-color: #4178D5;
}
.pagination li:nth-child(2):not(.active) span,
.pagination li:nth-child(2):not(.active) a {
    font-size: 20px;
    line-height: 26px;
}
.pagination li.active span {
    font-size: 14px;
    line-height: 28px;
}

/* 404页面 */
.body-404 {
    height: 100%;
    background-color: #F0F2F5;
}
.container-404 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 250px;
    text-align: center;
}
.png-404 {
    width: 250px;
}
.message-404 {
    font-size: 16px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 35px;
}

/* 错误/成功提示页面 */
.system-jump-message-container {
    width: 500px;
    height: 400px;
    box-shadow: 0px 4px 20px rgba(170, 178, 185, 0.08);
}
.system-jump-message-container .message-box {
    width: 100%;
    background-color: #ffffff;
}
.system-jump-message-container .message-box .message-body {
    position: relative;
    width: 100%;
    height: 340px;
    text-align: center;
}
.system-jump-message-container .message-body.success {
    background: url('../images/system-jump-success.png') no-repeat center;
    background-size: 240px 180px;
}
.system-jump-message-container .message-body.error {
    background: url('../images/system-jump-error.png') no-repeat center;
    background-size: 240px 180px;
}
.system-jump-message-container .message-body .message {
    position: absolute;
    bottom: 42px;
    width: 100%;
}
.system-jump-message-container .message .title {
    font-size: 16px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 10px;
}
.system-jump-message-container .message .text {
    font-size: 14px;
    color: #909399;
}
.system-jump-message-container .message-box .message-footer {
    position: relative;
    height: 60px;
    font-size: 14px;
}
.system-jump-message-container .message-footer .back-1 {
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 460px;
    height: 100px;
    background-color: #ffffff;
    box-shadow: 0px 4px 20px rgba(170, 178, 185, 0.08);
}
.system-jump-message-container .message-footer .back-2 {
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 480px;
    height: 80px;
    background-color: #ffffff;
    box-shadow: 0px 4px 20px rgba(170, 178, 185, 0.08);
}
.system-jump-message-container .message-footer .tips {
    position: absolute;
    width: 100%;
    height: 60px;
    color: #909399;
    text-align: center;
    line-height: 60px;
    background-color: #ffffff;
}
.system-jump-message-container .tips p {
    background-color: rgb(65, 120, 213, 0.04);
}
.system-jump-message-container .message-footer .redirect {
    color: #909399!important;
    text-decoration: underline;
}
.system-jump-message-container .message-footer .wait {
    color: #4178D5;
}

/* 个人中心 */
.person-container {
    display: inline-block;
    width: 580px;
    text-align: left;
}
.person-container .title {
    position: relative;
    font-size: 16px;
    font-weight: bold;
    color: #303133;
    margin-bottom: 51px;
}
.person-container .title span {
    display: inline-block;
    vertical-align: middle;
}
.person-container .title::before {
    display: inline-block;
    vertical-align: middle;
    content: '';
    width: 4px;
    height: 18px;
    background-color: #4178D5;
    margin-right: 8px;
}
.person-container .title::after {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    content: '';
    width: 486px;
    height : 1px;
    border-top: 1px solid #E4E7ED;
}
.person-container .avatar {
    display: inline-block;
    width: 120px;
    height: 120px;
    text-align: center;
    border-radius: 100%;
    box-shadow: 0px 4px 10px rgb(65 120 213 / 47%);
    background-color: #4178D5;
    overflow: hidden;
}
.person-container .avatar img {
    height: 100%;
}
.person-container .input {
    font-size: 14px;
    color: #303133;
    border-top: 1px solid #DCDFE6;
    border-left: 1px solid #DCDFE6;
    border-right: 1px solid #DCDFE6;
}
.person-container .input:last-child {
    border-bottom: 1px solid #DCDFE6;
}
.person-container .input label {
    width: 200px;
    height: 50px;
    font-size: 400;
    text-align: right;
    line-height: 50px;
    border-right: 1px solid #DCDFE6;
    background-color: #F5F7FA;
    padding-right: 32px;
}
.person-container .input input {
    border: 0;
    outline: none;
    padding-left: 32px;
}
.person-container .input input:disabled {
    background-color: #ffffff;
}
.person-container .save-btn .btn {
    width: 104px;
    margin-top: 63px;
}

/* 左侧内容栏 */
.body-sidebar {
    width: 330px;
    height: 100%;
    border-right: 1px solid #E4E8ED;
    -moz-flex-shrink: 0;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}
.body-sidebar .plus-btn {
    display: inline-block;
    width: 22.5px;
    height: 22.5px;
    line-height: 22.5px;
    text-align: center;
    font-size: 20px;
    color: #ffffff;
    border-radius: 3px;
    border: 0;
    background-color: #4178D5;
}
.body-sidebar .sidebar-item-group {
    width: 100%;
    border-radius: 2px;
    background-color: #F5F7FA;
}
.body-sidebar .children .sidebar-item-group {
    padding-left: 20px;
}
.body-sidebar .sidebar-item-group .group-name {
    position: relative;
    display: block;
    font-size: 14px;
    color: #303133;
    padding: 0 10px;
    height: 40px;
    line-height: 40px;
}
.body-sidebar .sidebar-item-group .group-name .name-text {
    display: inline-block;
    width: 70%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.body-sidebar .sidebar-item-group > .group-name p span.before {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: inline-block;
    vertical-align: middle;
    width: 10px;
    height: 100%;
    margin-right: 6px;
}
.body-sidebar .sidebar-item-group .group-name .btn-group {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    color: #4178D5;
}
.body-sidebar .sidebar-item-group.actived,
.body-sidebar .sidebar-item-group .group-name.actived p {
    color: #4178D5;
    background-color: #E2EAF7;
    border-radius: 3px;
}
.body-sidebar .sidebar-item-group .group-name .limit-width {
    display: inline-block;
    vertical-align: middle;
    height: 20px;
    line-height: 20px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.body-sidebar .sidebar-item-group .btn-group i:first-child {
    margin-right: 10px;
}
.body-sidebar .sidebar-item-group > .group-name p {
    position: relative;
    padding-left: 15px;
    padding-right: 20px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.body-sidebar .sidebar-item-group > .group-name p span.before::before{
    display: inline-block;
    vertical-align: middle;
    content: '';
    width: 10px;
    height: 10px;
    margin-right: 6px;
}
.body-sidebar .sidebar-item-group.has-children > .group-name p span.before::before {
    background: url('../images/table-item-closed.png') no-repeat;
    background-size: 6px 10px;
    margin-right: 6px;
}
.body-sidebar .sidebar-item-group.has-children.opened > .group-name p span.before::before {
    width: 10px;
    height: 6px;
    background: url('../images/table-item-opened.png') no-repeat;
    background-size: 10px 6px;
}
.body-sidebar .sidebar-item-group.opened > .children {
    display: block;
}
.body-sidebar > #org_depts > .children {
    list-style: none;
    padding: 0;
    margin: 0;
}
.body-sidebar .sidebar-item-group .children {
    display: none;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* 角色列表 */
.role-editor {
    width: 560px;
}
.role-editor .input,
.role-editor .select,
.role-editor .textarea {
    background-color: #F5F7FA;
}
.roles .ellipsis-w-100 {
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 角色权限列表（管理） */
.rules .back-btn {
    display: inline-block;
    width: 26px;
    height: 26px;
    text-align: center;
    line-height: 26px;
    border: 1px solid #DCDFE6;
    color: #000000;
}
.rules .wrapper {
    height: calc(100% - 40px - 24px);
}
.rules .filter-container {
    margin-bottom: 16px;
}
.rules .filter-container #deptCascader {
    width: 350px;
}
.rules .filter-container .select {
    min-width: 300px;
}
.rules .filter-container .cascader {
    font-size: 14px;
    height: 100%;
    line-height: 40px;
    padding-left: 8px;
    padding-right: 40px;
}
.rules .toggle-all {
    font-size: 0;
}
.rules .toggle-all .item  {
    display: inline-block;
    font-size: 14px;
    padding: 8px 16px;
    cursor: pointer;
}
.rules .toggle-all .selected {
    color: #2A5EE5;
    border-top: 1px solid #2A5EE5;
    border-bottom: 1px solid #2A5EE5;
    border-left: 1px solid #2A5EE5;
}
.rules .toggle-all .item.selected.actived {
    color: #FFFFFF;
    background-color: #2A5EE5;
}
.rules .toggle-all .unselected {
    color: #2A5EE5;
    border: 1px solid #2A5EE5;
}
.rules .modules {
    padding-right: 36px;
}
.rules .modules .module {
    width: 100%;
    min-height: 50px;
    background-color: #F0F2F5;
    border: 1px solid #DCDFE6;
    padding: 8px 24px;
    margin-top: 16px;
}
.rules .module .menus,
.rules .review-rules ul  {
    list-style: none;
    padding: 0;
    margin: 0;
}
.rules .menus .menu p {
    height: 44px;
    line-height: 44px;
    font-size: 16px;
}
.rules .menus .open-submenu::before,
.rules .menus label.checkbox {
    display: inline-block;
    vertical-align: middle;
}
.rules .menus .open-submenu::before {
    content: '';
    width: 14px;
    height: 14px;
    margin-right: 16px;
    cursor: pointer;
}
.rules .menus .open-submenu.has-children::before {
    background: url('../images/table-item-closed.png') no-repeat center;
    background-size: 7px 10px;
    -webkit-transition: -webkit-transform .3s;
    transition: -webkit-transform .3s;
    transition: transform .3s;
    transition: transform .3s,-webkit-transform .3s;
}
.rules .menus .open-submenu.has-children.actived::before {
    -ms-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}
.rules .review-container {
    width: 540px;
    border-left: 1px solid #DCDFE6;
}
.rules .review-container .dept-role {
    font-size: 18px;
    font-weight: bold;
    color: #303133;
    line-height: 24px;
    padding: 0 23px;
}
.rules .review-container .role {
    color: #909399;
}
.rules .review-container .rules-count {
    font-size: 16px;
    color: #606266;
    padding: 0 23px;
    margin-top: 14px;
    margin-bottom: 24px;
}
.rules .review-rules li {
    position: relative;
    padding: 12px 0 12px 63px;
    color: #606266;
    cursor: pointer;
}
.rules .review-rules li:hover {
    color: #4178D5!important;
    background-color: rgba(65, 120, 213, 0.04);
}
.rules .review-rules li.module {
    font-size: 16px;
    font-weight: bold;
    color: #303133;
}
.rules .review-rules svg.icon {
    position: absolute;
    top: 50%;
    left: 23px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
}
.rules .review-rules span.close {
    position: absolute;
    top: 50%;
    top: 50%;
    right: 24px;
    transform: translateY(-50%);
    font-size: 14px;
    cursor: pointer;
}

/* 菜单列表 */
.menus .filter-container .input:nth-child(:last-child) {
    width: 40px;
}
.menus .filter-container .btn {
    height: 40px;
}
.menu-editor {
    width: 632px;
}
.menu-editor .input,
.menu-editor .select {
    background-color: #F5F7FA;
}
.menu-editor label {
    cursor: pointer;
}
.tree-table .table tr {
    --no-before-width: 0px;
    --no-before-left: 0px;
    --no-after-height: 0px;
    --no-after-left: 0px;
    --no-span-before-padding-left: 8px;
}
.tree-table .table tr td.no::before {
    position: absolute;
    top: 50%;
    left: var(--no-before-left);
    content: '';
    display: block;
    width: var(--no-before-width);
    height: 1px;
    border-bottom: 1px dotted #909399;
}
.tree-table .table tr.has-children.actived td.no::after {
    position: absolute;
    top: 50%;
    left: var(--no-after-left);
    content: '';
    display: block;
    width: 1px;
    height: var(--no-after-height);
    border-left: 1px dotted #909399;
    z-index: 1;
}
.tree-table .table tr.has-children td.no>span::before {
    position: absolute;
    top: 50%;
    left: var(--no-span-before-padding-left);
    transform: translateY(-50%);
    content: '';
    width: 6px;
    height: 10px;
    background: url('../images/table-item-closed.png');
    background-size: 6px 10px;
    cursor: pointer;
}
.tree-table .table tr.has-children.actived td.no>span::before {
    position: absolute;
    top: 50%;
    left: var(--no-span-before-padding-left);
    transform: translateY(-50%);
    z-index: 10;
    content: '';
    width: 10px;
    height: 6px;
    background: url('../images/table-item-opened.png') no-repeat center;
    background-size: 10px 6px;
    cursor: pointer;
}

/* 操作日志 */
.syslogs .ellipsis {
    display: inline-block;
    vertical-align: middle;
    width: 200px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* 公司/组织共用样式 */
.content-header {
    height: 66px;
    border-bottom: 1px solid #E4E7ED;
}
.content-header .title {
    font-size: 20px;
    color: #303133;
}
.content-body .form-title {
    font-size: 18px;
    color: #303133;
    text-align: left;
    margin:20px 0 24px 0;
}
.content-body .form-title span {
    display: inline-block;
    vertical-align: middle;
}
.content-body .form-title::before {
    content: '';
    display: inline-block;
    vertical-align: middle;
    width: 4px;
    height: 19px;
    background-color: #4178D5;
    margin-right: 8px;
}
.content-body .form-item {
    margin-bottom: 12px;
}
.content-body .inline-block {
    display: inline-block;
    width: 716px;
}
.content-body .form .label {
    width: 100px;
    font-size: 14px;
    color: #606266;
    text-align: right;
}

/* 公司/组织 */
.company .filter-container,
.org .filter-container {
    width: 80%;
}
.company .content-body .mobile,
.org .content-body .mobile {
    width: 376px;
    margin-left: 40px;
}
.company .content-body .form-title {
    margin: 33px 0 24px 60px;
}
.customer .basics-item-title,
.supplier .basics-item-title {
    color: #8D90A1;
}
.customer .basics-item,
.supplier .basics-item {
    margin-top: 8px;
    margin-bottom: 16px;
    padding: 16px 24px 16px 0;
    background-color: #F6F8FB;
}
.customer .td-input,
.supplier .td-input,
.collection-terms .td-input,
.payment-terms .td-input {
    height: 60px;
    line-height: 60px;
    border: 0;
    outline: none;
}

/* 修改select2默认样式 */
.select2-container--default .select2-selection--single {
    font-size: 14px;
    color: #000!important;
    background-color: transparent!important
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #303133!important;
    background-color: transparent;
}

/* 供应商结账日期 */
.paymey-date .date-group {
    font-size: 0;
    margin-bottom: 12px;
}
.paymey-date .date-group .date:not(:last-child) {
    margin-right: 12px;
}
.paymey-date .date .box {
    display: inline-block;
    width: 80px;
    height: 50;
    line-height: 50px;
    text-align: center;
    padding: 0;
    background-color: #F3F5F9;
}
.paymey-date .date input[type="radio"]:checked + .box {
    color: #ffffff;
    background-color: #4178D5;
    border: 1px solid #4178D5;
}

/* 排班休息管理 */
.schedule {
    position: relative;
    height: 40px;
    font-size: 12px;
    line-height: 35px;
    box-sizing: border-box;
    border: 1px solid #DCDFE6;
    padding-left: 8px;
}
.schedule label {
    display: inline-block;
    position: absolute;
    right: 0;
    width: 40px;
    height: 40px;
    text-align: center;
    line-height: 38px;
    border-left: 1px solid #DCDFE6;
}
.schedule label i.icon {
    font-size: 20px;
}
.schedule > div {
    display: inline-block;
}
.schedule .schedule-break {
    width: 235px;
    height: 24px;
    border: 0;
    padding-left: 8px;
    background-color: #F0F2F5;
}