body {
    background-color: #f7f7f7;
}

/* page-login start */

.page-login {
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: url('../images/login-bg.jpeg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    /* 或者使用 100% 100% */
    background-attachment: fixed;
    /* 如果你想背景图片固定不动 */
    width: 100%;
    height: 100vh;
    /* 使用视口高度 */
}

.page-login .page-login-card {
    width: 500px;
    background-color: rgb(255 255 255 / 93%);
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    border-radius: 6px;
    padding: 20px;
}

.page-login .page-login-logo {
    height: 60px;
    text-align: center;
}

.page-login .page-login-logo span {
    color: #1e9fff;
    font-size: 30px;
}

.page-login .page-login-logo img {
    margin-top: 10px;
}

.page-login .page-login-form {
    padding: 20px;
}

.page-login .login-container {
    padding-top: 10px;
}

.page-login .register {
    text-align: center;
}

.page-login .forget {
    float: right;
    margin-top: 10px;
    color: #1e9fff;
    font-weight: 500;
}

.page-login .register a {
    color: #1e9fff;
    font-weight: 500;
}

.page-login .agreement {
    color: #1e9fff;
}

/* page-login end */

.page-header {
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
    height: 60px;
    z-index: 1000;
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
}

.dark .page-header {
    background-color: #232324;
}

.page-header-logo {
    width: 200px;
    height: 60px;
    display: flex;
    justify-content: left;
    align-items: center;
}

.page-header-logo img {
    width: 140px;
    height: auto;
}

.page-flex-row {
    display: flex;
    flex-direction: row;
}

.page-nav {
    flex: 1
}

.page-header-search {
    width: 200px;
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: right;
}

.page-header-tools {
    width: 80px;
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: right;
}

.page-header-tools-item {
    width: 40px;
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: right;
    font-size: 20px;
}

.page-header-tools-item .avatar {
    width: 25px;
    height: 25px;
}


.page-header-tools .icon-search {
    display: none;
}

.page-main {
    padding-top: 80px;
}

.page-carousel {
    border-radius: 6px;
    margin-bottom: 20px;
}

.page-carousel div {
    border-radius: 6px;
}

.page-carousel img {
    border-radius: 6px;
    width: 100%;
    height: 100%;
}

/* page-card start */

.dark .page-card {
    background-color: #232324;
}

.page-card {
    width: 100%;
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    border-radius: 6px;
    padding: 20px 20px 0px 20px;
    margin-bottom: 20px;
}

.page-card-header {
    height: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    /* padding-bottom: 20px; */
    /* border: 1px solid red; */
}

.page-card-header-icon {
    width: 30px;
}

.page-card-header-icon img {
    width: 20px;
    height: 20px;
}

.page-card-header-title {
    flex: 1;
    font-size: 18px;
    font-weight: 300;
}

.page-card-header-more {
    width: 70px;
}

.page-card-header-more .more {
    font-size: 12px;
    color: #1e9fff !important;
}

.page-card-body {
    margin-top: 20px;
}

.page-card-body .user {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.page-card-body .user img {
    margin-top: 10px;
    width: 100px;
    height: 100px;
}

.page-card-body .user img:hover {
    transform: scale(1.2);
    transition-duration: 100ms;
}

.page-card-body .user .name {
    margin-top: 10px;
    font-size: 20px;
    font-weight: 300;
}

.page-card-body .page-btn {
    margin-top: 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding-bottom: 30px;
}

.page-card-body .page-btn a {
    margin-left: 10px;
}

/* page-card end */


/*  page-upload start */

.page-upload-block {
    display: block;
}

.page-upload {
    width: 80px;
    height: 80px;
    border: 1px #c8c8c8 dashed;
    border-radius: 2px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.page-upload-image {
    position: relative;
    width: 120px;
    background: #f2f2f2;
}

.page-upload-image-close {
    display: none;
    position: absolute;
    right: -10px;
    top: -10px;
    z-index: 9;
    width: 30px;
    height: 30px;
    line-height: 30px;
}

.page-upload-image a:hover .page-upload-image-close {
    display: block;
}

.page-upload-image img {
    width: 120px;
    height: auto;
}

/*  page-end start */

/* page-list start */

.dark .page-list1 {
    background-color: #232324 !important;
}

.page-list1 {
    overflow: hidden;
    background-color: #fff !important;
}

.page-list1 ul {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding-left: 20px;
}

.page-list1 ul li {
    width: 100%;
    width: 33%;
    height: 70px;
}

.page-list1 .item {
    width: 90%;
    height: 70px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.page-list1 .item:hover .title {
    color: #1e9fff;
}

.page-list1 .item:hover img {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

.page-list1 .item img {
    width: 40px;
    height: 40px;
}

.page-list1 .item .title {
    width: 80%;
    margin-left: 10px;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.page-list2 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding-bottom: 20px;
}

.page-list2 li {
    width: 25%;
    height: 150px;
}

.page-list2 .item {
    width: 100%;
    height: 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.page-list2 li a:hover .title {
    color: #1e9fff;
}

.page-list2 li a:hover .logo {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

.page-list2 .item .logo {
    width: 60px;
    height: 60px;
}

.page-list2 .item .title {
    font-size: 14px;
    margin-top: 10px;
    font-weight: 400;
    width: 85%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
}

.page-list2 .item .version {
    margin-top: 20px;
    font-size: 14px;
    margin-top: 5px;
    font-weight: 400;
    color: #999;
}

.page-list3 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding-bottom: 20px;
}

.page-list3 li {
    width: 33%;
    padding: 0 10px 0 10px;
    border-radius: 6px;
    margin-bottom: 20px;
}


.page-list3 li .image {
    width: 100%;
    height: auto;
    border-radius: 6px;
}

.page-list3 li:hover .name {
    color: #1e9fff;
}

.page-list3 li:hover .title {
    color: #1e9fff;
}

.page-list3 li:hover .image {
    transform: scale(1.05);
    transition-duration: 100ms;
}

.page-list3 li .name {
    margin-top: 16px;
    font-size: 14px;
    font-weight: 400;
    width: 100%;
    height: 40px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.page-list3 li .name .content {
    margin-left: 10px;
}

.page-list3 li .title {
    margin-top: 20px;
    width: 100%;
    height: 40px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.page-list3 li .title .content {
    margin-left: 10px;
}

.page-list3 li .title a {
    line-height: 30px;
    font-weight: 500;
    font-size: 16px;
}

.page-list3 li .title a:hover {
    color: #1e9fff;
}

.page-list3 li .time {
    margin-top: 16px;
    margin-right: 3px;
    font-size: 12px;
    color: #999;
}

.page-list3 li .info {
    margin-top: 10px;
}

.page-list3 li .info span {
    font-size: 14px;
    color: #999;
    margin-top: 10px;
}

.page-list4 {
    padding-bottom: 20px;
}

.page-list4 li {
    display: flex;
    flex-direction: row;
    padding-bottom: 30px;
}

.page-list4 li .image {
    width: 45px;
    height: 45px;
    border-radius: 25px;
}

.page-list4 li .content {
    flex: 1;
    text-align: left;
}


.page-list4 li .content .title {
    margin-left: 10px;
    font-size: 14px;
    color: #222;
    font-weight: 400;
}

.page-list4 li .content span {
    margin-right: 6px;
}

.page-list4 li .content a:hover {
    color: #1e9fff;
}

.page-list4 li .content .other {
    margin-top: 6px;
    font-size: 14px;
    color: #999;
    /* margin-left: 10px */
}

.page-list4 li .content .other span {
    /* margin-right: 10px; */
    margin-left: 10px;
}

.page-list5 {
    padding-bottom: 10px;
}

.page-list5 li {
    padding-bottom: 30px;
}

.page-list5 li:hover .title {
    color: #1e9fff;
}

.page-list5 li:hover .logo {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

.page-list5 .item {
    display: flex;
    flex-direction: row;
}

.page-list5 .item .logo {
    width: 50px;
    height: 50px;
}

.page-list5 .item .content {
    flex: 1;
    margin-left: 14px;
}

.page-list5 .item .content .title {
    font-size: 16px;
}

.page-list5 .item .content .version {
    font-size: 16px;
    color: #999;
    margin-top: 10px;
}

.page-list6 {
    padding-bottom: 10px;
}

.page-list6 li:hover .logo {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

.page-list6 li:hover .name {
    color: #1e9fff;
}

.page-list6 .item {
    display: flex;
    flex-direction: row;
    padding: 14px;
    border-top: 1px #f2f2f2 solid;
}

.page-list6 .item-first {
    display: flex;
    flex-direction: row;
    padding: 14px;
}

.page-list6 li .logo {
    width: 38px;
    height: 38px;
}

.page-list6 li .name {
    margin-left: 16px;
    font-size: 14px;
    line-height: 40px;
}

.page-list6 li .active {
    color: #1e9fff !important;
}

/* page-list end */


.dark .page-footer {
    background-color: #232324;
}

.page-footer {
    width: 100%;
    width: 100%;
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    padding: 20px;
}

.page-footer-link {
    margin-bottom: 20px;
}

.page-footer-link .logo {
    width: 200px;
    font-size: 20px;
    color: #1e9fff;
}

.page-footer-link .desc {
    width: 80%;
}

.page-footer-link .app-link {
    margin-top: 10px;
    display: flex;
    flex-direction: row;
}

.page-footer-link .app-link img {
    width: 40px;
    height: 40px;
    margin-right: 4px;
}

.page-footer-link i {
    margin-right: 10px;
}

.page-footer-link h3 {
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 16px;
    font-weight: 400;
}

.page-footer-link p {
    margin-top: 10px;
    font-size: 14px;
    color: #999;
}

.page-footer-copyright {
    border-top: 1px solid #c8c8c8;
    width: 100%;
    height: 80px;
    line-height: 80px;
    text-align: center;
}

.page-footer-copyright a {
    color: #999;
    font-size: 14px;
    text-decoration: underline;
    margin: 0 3px;
}

.page-footer-copyright span {
    color: #999;
    font-size: 14px;
    margin: 0 3px;
}

/* mobile header start*/

.dark .page-mobile-header {
    background-color: #232324;
}

.page-mobile-header {
    position: fixed;
    left: 0;
    right: 0;
    width: 100%;
    height: 60px;
    z-index: 1000;
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
}

.page-mobile-header-logo {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.page-mobile-header-logo img {
    width: 120px;
}

.page-mobile-header-menu {
    width: 60px;
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: left;
}

.page-mobile-header-nav {
    display: none;
}

.page-mobile-header-tools {
    width: 60px;
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: right;
}

/* mobile header end */


/* app start */

.app .app-header {
    display: flex;
}

.app .app-header {
    display: flex;
    border-bottom: 1px #f2f2f2 solid;
    padding-top: 20px;
    padding-bottom: 30px;
}

.app {
    padding: 0 20px 30px 30px;
}

.app .app-logo {
    width: 130px;
}

.app .app-logo img {
    width: 130px;
    height: 130px;
}

.app .app-content {
    flex: 1;
    margin-left: 30px;
}

.app .app-title {
    font-size: 30px;
    font-weight: 500;
}

.app .app-desc {
    font-size: 20px;
    font-weight: 400;
    color: #999;
    margin-top: 10px;
    width: 90%;
}

.app .app-btn {
    margin-top: 20px;
}

.app .app-btn img {
    width: 18px;
}

.app .app-body {
    padding: 0;
}

.app .app-body-title {
    font-size: 22px;
    line-height: 40px;
    margin-bottom: 10px;
}

.app .app-body-content {
    margin-bottom: 30px;
    font-size: 14px;
    line-height: 26px;
}

.app .app-body-content .hide-content {
    height: 50px;
    overflow: hidden;
    /* 隐藏溢出的内容 */
    white-space: wrap;
    /* 防止文本换行 */
    text-overflow: ellipsis;
    /* 显示省略号表示还有更多内容 */
}

.app .app-body-content .omit {
    margin-top: 10px;
}

.app .app-body-content .more {
    margin-top: 10px;
}

.app .app-body-content a {
    color: #1e9fff;
}


.app .app-info {
    /* display: flex;
    width: 100%;
    height: 100px;
    align-items: center; */
    border-bottom: 1px #f2f2f2 solid;
    padding: 20px 0;
    margin-bottom: 20px;
}

.app .app-info .lable-value {
    font-size: 14px;
    font-weight: 400;
    /* color: #999; */
}

.app .app-info .lable-title {
    font-size: 14px;
    font-weight: 400;
    color: #999;
    margin-top: 6px;
}


/* .app .app-info .item {
    flex: 1;
}

.app .app-info .user {
    display: flex;
}

.app .app-info .user .user-img {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background-color: #fff;
    border: 1px solid #c8c8c8;
    display: flex;
    justify-content: center;
    align-items: center;
}

.app .app-info .user .user-img img {
    width: 36px;
    height: 36px;
    border-radius: 20px;
}

.app .app-info .user .user-name {
    margin-left: 10px;
    line-height: 40px;
}

.app .app-info .item {
    margin-left: 30px;
    color: #999;
    font-size: 14px;
} */

/* app end */


/* article start */

.article {
    padding: 30px 30px 30px 30px;
}

.article .article-header .article-title {
    font-size: 30px;
    font-weight: 500;
    border-bottom: 2px #f2f2f2 solid;
    padding-bottom: 20px;
}

.article .article-header .article-info {
    height: 100px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: left;
}

.article .article-info .user {
    flex: 1;
    display: flex;
    color: #999;
    font-size: 14px;
}

.article .article-info .user .user-img {
    /* width: 40px; */
    height: 40px;
    /* border-radius: 20px;
    background-color: #fff;
    border: 1px solid #c8c8c8; */
    display: flex;
    justify-content: center;
    align-items: center;
}

.article .article-info .user .user-img img {
    width: 22px;
    height: 22px;
    /* border-radius: 20px; */
}

.article .article-info .user .user-name {
    margin-left: 8px;
    line-height: 40px;
}

.article .article-info .time {
    margin-left: 10px;
    color: #999;
    font-size: 14px;
}

.article .article-info .time span {
    margin-left: 5px;
}

.article .article-info .item {
    margin-left: 15px;
    color: #999;
    font-size: 14px;
}

.article .article-info .item span {
    margin-left: 3px;
}

.article .article-body img {
    width: 100%;
    margin-bottom: 20px;
}

.article .article-body p {
    font-size: 16px;
    line-height: 26px;
}

.article .article-praise {
    margin-top: 20px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.article .article-praise div {
    width: 60px;
    height: 60px;
    border-radius: 30px;
    background-color: #f2f2f2;
    display: flex;
    justify-content: center;
    align-items: center;
}


.article .article-praise a:hover i {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

/* article end */


/* article-list start */

.dark .article-list li {
    background-color: #232324;
}

.article-list li {
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    padding: 0;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 30px;
}

.article-list li:hover {
    box-shadow: 0 10px 30px rgb(255 255 255 / 1%);
    transform: scale(1.02);
    transition-duration: 100ms;
}

.article-list li:hover .title {
    color: #1e9fff;
}


.article-list li .article-image {
    width: 100%;
    overflow: hidden;
}

.article-list li img {
    width: 100%;
}

/*.article-list li img:hover {*/
/*    transform: scale(1.2);*/
/*    transition-duration: 100ms;*/
/*}*/

/*.article-list li img:not(:hover) {*/
/*    transform: scale(1.0);*/
/*    transition-duration: 100ms;*/
/*}*/

.article-list li .course-content {
    padding: 20px 30px;
    min-height: 150px;
}

.article-list li .article-content {
    padding: 20px 20px 20px 20px;
}

.article-list li .title {
    font-size: 20px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.article-list li .desc {
    margin-top: 16px;
    font-size: 16px;
    color: #999;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.article-list li .article-info {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: left;
    padding: 10px 20px 10px 20px;
}

.article-list .article-info .user {
    flex: 1;
    display: flex;
    color: #999;
    font-size: 14px;
}

.article-list .article-info .user-img {
    height: 38px;
    /* border-radius: 18px;
    background-color: #fff;
    border: 1px solid #c8c8c8; */
    display: flex;
    justify-content: center;
    align-items: center;
}

.article-list .article-info img {
    width: 20px;
    height: 20px;
    /* border-radius: 16px; */
}

.article-list .article-info .user-name {
    margin-left: 6px;
    line-height: 40px;
}

.article-list .article-info .time {
    margin-left: 10px;
    color: #999;
    font-size: 14px;
}

.article-list .article-info .item {
    margin-left: 16px;
    color: #999;
    font-size: 14px;
}

/* article-list end */


/* page-null start */

.page-null {
    width: 100%;
    height: 500px;
    display: flex;
    flex-direction: column;
    /* justify-content: center; */
    align-items: center;
}

.page-null img {
    margin-top: 80px;
    width: 200px;
}

.page-null span {
    color: #1e9fff;
}

/* page-null end */

/* os-list start*/

.os-carousel {
    background-color: #fff !important;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    overflow: hidden;
}

.os-carousel .os-carousel-image {
    width: 100%;
    height: auto;
    overflow: hidden;
}

.os-carousel .os-carousel-image img {
    width: 100%;
    height: auto;
}

.os-carousel .os-carousel-title {
    padding: 5px 20px;
}

.os-carousel .os-carousel-title {
    font-size: 20px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.os-carousel .os-carousel-desc {
    width: 100%;
    padding: 5px 20px;
    font-size: 16px;
    font-weight: 400;
    color: #999;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.os-list-header {
    height: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-top: 20px;
    margin-bottom: 20px;
}

.os-list-header-icon {
    width: 30px;
}

.os-list-header-icon img {
    width: 20px;
    height: 20px;
}

.os-list-header-title {
    flex: 1;
    font-size: 18px;
    font-weight: 300;
}

.dark .os-list .os-item {
    background-color: #232324;
}

.os-list .os-item {
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    padding: 0;
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 30px;
}

.os-list .os-item:hover {
    box-shadow: 0 10px 30px rgb(255 255 255 / 10%);
}

.os-list .os-item:hover img {
    transform: scale(1.2);
    transition-duration: 100ms;
}

.os-list .os-item:hover .title {
    color: #1e9fff;
}

.os-list .os-image {
    width: 100%;
    overflow: hidden;
    position: relative;
}

.os-list img {
    width: 100%;
}

.os-list .os-size {
    position: absolute;
    top: 16px;
    right: 20px;
    padding: 2px 8px;
    font-size: 14px;
    background-color: rgba(0, 0, 0, .3);
    z-index: 9;
    text-align: center;
    border-radius: 6px;

}

.os-list .os-size span {
    color: white;
}

.os-list .title {
    display: flex;
    flex-direction: row;
    padding: 10px;
}

.os-list .title a {
    font-size: 14px;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: wrap;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.os-list .title a:hover {
    color: #1e9fff;
}

.os-list .info {
    padding: 0px 10px 10px 10px;
    display: flex;
    color: #999;
}

.os-list .info a,
.os-list .info span {
    color: #999;
    margin-right: 6px;
}

.os-list .info a:hover {
    color: #1e9fff;
}

/* os-list end */

/* os-card-list sttart */

.dark .os-card-list .os-card-item {
    background-color: #232324;
}

.os-card-list .os-card-item {
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    border-radius: 6px;
    overflow: hidden;
    padding: 20px;
}

.os-card-list .os-card-item:hover {
    box-shadow: 0 10px 30px rgb(255 255 255 / 10%);
    transform: scale(1.02);
    transition-duration: 100ms;
}

.os-card-list .os-card-item:hover img {
    transform: scale(1.1);
    transition-duration: 100ms;
}

.os-card-list .os-card-item:hover .title {
    color: #1e9fff;
}

.os-card-list .os-card-item .info {
    display: flex;
    flex-direction: row;
}

.os-card-list .os-card-item .logo {
    width: 50px;
    height: 50px;
}

.os-card-list .os-card-item .content {
    flex: 1;
    padding: 0px 20px;
}

.os-card-list .os-card-item .title {
    font-size: 16px;
    /*font-weight: 500;*/
}

.os-card-list .os-card-item .version {
    margin-top: 8px;
    font-size: 14px;
    color: #999;
}

.os-card-list .os-card-item .desc {
    margin-top: 20px;
    font-size: 14px;
    color: #999;
    height: 40px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.os-card-list .os-card-item ul {
    margin-top: 20px;
}

.os-card-list .os-card-item li {
    display: flex;
    flex-direction: row;
    color: #999;
    font-size: 14px;
    margin-top: 8px;
}

.os-card-list .os-card-item li .lable {
    flex: 1;
    text-align: left;
}

.os-card-list .os-card-item li .data {
    flex: 1;
    text-align: right;
}

.os-card-list .os-card-item li .data text {
    border: #e1f3d8 1px solid;
    border-radius: 3px;
    padding: 3px 6px;
    background-color: #f0f9eb;
    color: #67c23a;
}

.os-card-list .os-card-item .footer-btn {
    width: 100%;
    height: 30px;
    margin-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.os-card-list .os-card-item .footer-btn .show-btn {
    height: 28px;
    line-height: 28px;
    width: 100%;
    text-align: center;
    /*border: 1px #1e9fff solid;*/
    color: #fff;
    background: #1e9fff;
    border-radius: 3px;
}

/* os-card-list end */


/* app-list start */

.app-list {
    padding: 20px;
}

.page-operation {
    padding: 10px 20px 20px 20px;
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    border-radius: 6px;
    overflow: hidden;
}

/*.page-operation a,*/
/*.page-operation span {*/
/*    color: #999;*/
/*    margin-right: 5px;*/
/*}*/

.page-operation .item {
    display: flex;
    flex-direction: row;
    margin-top: 10px;
}

.page-operation ul {
    display: flex;
    flex-direction: row;
}

.page-operation ul li {
    margin-right: 16px;
}

.page-operation ul li a {
    color: #999;
}

.page-operation ul li:hover a {
    color: #1e9fff;
}

.page-operation .active {
    background: #1e9fff;
    padding: 0 10px;
    border-radius: 3px;
}

.page-operation .active a {
    color: #fff;
}

.page-operation .active:hover a {
    color: #fff;
}

.app-list .app-list-header {
    height: 60px;
    border-top: 1px #ddd solid;
    border-bottom: 1px #ddd solid;
    font-size: 16px;
}

.app-list .app-list-header .app-list-header-title {
    font-size: 16px;
    font-weight: 500;
    color: #999;
    line-height: 60px;
    text-align: left;
}

.app-list .app-list-header .app-list-header-into {
    font-size: 16px;
    font-weight: 500;
    color: #999;
    line-height: 60px;
    text-align: right;
}

.app-list .app-list-body {
    height: 80px;
    border-bottom: 1px #f2f2f2 solid;
}

.app-list li:hover img {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

.app-list li:hover .name {
    color: #1e9fff;
}

.app-list .title {
    height: 80px;
    display: flex;
    flex-direction: row;
    align-items: center;
    /* justify-content: center; */
}

.app-list .title img {
    width: 50px;
    height: auto;
}


.app-list .name {
    margin-left: 20px;
    flex: 1;
    font-size: 16px;
}

.app-list .info {
    text-align: right;
    line-height: 80px;
    font-size: 16px;
    color: #999;
}

/* app-list end */


/* app-card-list start */

.app-card-list-header {
    height: 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-top: 20px;
    margin-bottom: 20px;
}

.app-card-list-header-icon {
    width: 30px;
}

.app-card-list-header-icon img {
    width: 20px;
    height: 20px;
}

.app-card-list-header-title {
    flex: 1;
    font-size: 18px;
    font-weight: 300;
}

.app-card-list {
    margin-top: 10px;
}

.dark .app-card-list .app-card-item {
    background-color: #232324;
}

.app-card-list .app-card-item {
    background-color: #fff;
    box-shadow: 0 1px 3px rgb(0 0 0 / 5%);
    border-radius: 6px;
    overflow: hidden;
    padding: 10px 12px 12px 10px;
}

.app-card-list .app-card-item:hover {
    box-shadow: 0 10px 30px rgb(255 255 255 / 1%);
    transform: scale(1.02);
    transition-duration: 100ms;
}

.app-card-list .app-card-item:hover img {
    transform: scale(1.1);
    transition-duration: 100ms;
}

.app-card-list .app-card-item:hover .title {
    color: #1e9fff;
}

.app-card-list .app-card-item .info {
    display: flex;
    flex-direction: row;
}

.app-card-list .app-card-item .info .logo {
    width: 60px;
    height: 60px;
}

.app-card-list .app-card-item .info .logo {
    width: 60px;
    height: 60px;
}

.app-card-list .app-card-item .info .content {
    flex: 1;
    padding-top: 3px;
    padding-left: 10px;
    height: 90px;
    overflow: hidden;
}

.app-card-list .app-card-item .title {
    font-size: 15px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.app-card-list .app-card-item .desc {
    margin-top: 6px;
    font-size: 13px;
    color: #999;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
}

.app-card-list .app-card-item .title-box {
    display: flex;
    flex-direction: row;
}

.app-card-list .app-card-item .title {
    flex: 1;
}

.app-card-list .app-card-item .categoty-name {
    width: 60px;
    text-align: right;
    font-size: 12px;
    color: #aaa;
}

.app-card-list .app-card-item .version {
    display: flex;
    flex-direction: row;
}

.app-card-list .app-card-item .version-name {
    margin-left: 3px;
    font-size: 14px;
    color: #aaa;
    flex: 1;
}

.app-card-list .app-card-item .version-btn {
    height: 20px;
    line-height: 18px;
    text-align: center;
    font-size: 10px;
    color: #1e9fff;
    border: 1px #1e9fff solid;
    border-radius: 3px;
    padding: 0px 10px;
}

/* app-card-list end */


/*  page-search start */

.page-search {
    padding-top: 60px;
}

.page-search .page-input {
    width: 100%;
    height: 160px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    background-image: url('../images/login-bg.jpeg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    /* 或者使用 100% 100% */
    background-attachment: fixed;
}

.page-search .form {
    width: 55%;
}

.page-search .search-form {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.page-search .search-form .search-input {
    width: 100%
}

.page-search .search-form .search-select {
    width: 140px;
    margin-right: 2px;
}

.page-search .search-form .search-btn {
    width: 100px;
}

.page-search .search-form .search-btn i {
    margin-right: 5px;
}

.search-null {
    height: 500px;
    display: flex;
    flex-direction: column;
    /* justify-content: center; */
    align-items: center;
}

.search-null img {
    margin-top: 80px;
    width: 200px;
}

.search-result {
    width: 80%;
    margin: 0 auto;
    margin-bottom: 20px;
}

.search-list {
    padding: 0 30px;
    margin-bottom: 20px;
}

.search-list .search-list-header {
    height: 60px;
    line-height: 60px;
    border-bottom: 1px #ddd solid;
    font-size: 16px;
}

.search-list .search-list-header .search-list-header-title {
    font-size: 16px;
    font-weight: 500;
    color: #999;
    line-height: 60px;
    text-align: left;
}

.search-list .search-list-header .search-list-header-into {
    font-size: 16px;
    font-weight: 500;
    color: #999;
    line-height: 60px;
    text-align: right;
}

.search-list .search-list-body {
    height: 80px;
    border-bottom: 1px #f2f2f2 solid;
}

.search-list li:hover img {
    transform: scale(1.2) rotate(10deg);
    transition-duration: 100ms;
}

.search-list li:hover .name {
    color: #1e9fff;
}

.search-list .title {
    height: 80px;
    display: flex;
    flex-direction: row;
    align-items: center;
    /* justify-content: center; */
}

.search-list .title img {
    width: 50px;
    height: auto;
}

.search-list .name {
    margin-left: 20px;
    flex: 1;
    font-size: 16px;
}

.search-list .info {
    text-align: right;
    line-height: 80px;
    font-size: 16px;
    color: #999;
}

/*  page-search end */

/*  topic-list start */

.topic-line {
    width: 100%;
    border-top: 1px #f2f2f2 solid;
}

.topic-card {
    padding-bottom: 0px !important;
}

.topic-list {
    padding: 0 20px;
}

.topic-list li {
    display: flex;
    flex-direction: row;
    margin-top: 30px;
    margin-bottom: 20px;
}

.topic-list .topic-user-img {
    width: 46px;
    height: 46px;
    border: 1px #ddd solid;
    border-radius: 23px;
    overflow: hidden;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.topic-list .topic-user-img img {
    width: 40px;
    height: 40px;
    border-radius: 20px;
}

.topic-list .topic-content {
    flex: 1;
    padding: 10px 10px 20px 10px;
    border-bottom: 1px #f2f2f2 solid;
}

.topic-list .topic-user-name {
    font-size: 14px;
    color: #999;
    font-weight: 400;
}

.topic-list .topic-user-name .delete {
    margin-left: 6px;
    font-size: 14px;
    font-weight: 400;
    color: #999;
}

.topic-list .topic-user-name .delete:hover {
    color: #1e9fff;
}


.topic-list .topic-user-name span {
    font-weight: 500;
}

.topic-list .topic-title {
    margin-top: 10px;
}

.topic-list .topic-title span {
    position: relative;
    margin-right: 6px;
    top: -2px;
}

.topic-list .topic-title a {
    font-size: 18px;
    font-weight: 400;
}

.topic-list .topic-title a:hover {
    color: #1e9fff;
}

.topic-list .topic-img {
    margin-top: 10px;
    width: 280px;
    height: auto;
    border-radius: 6px;
    overflow: hidden;
}

.topic-list .topic-img img {
    width: 280px;
    height: auto;
}

.topic-list .topic-img img:hover {
    transform: scale(1.2);
    transition-duration: 100ms;
}

.topic-list .topic-info {
    margin-top: 10px;
    display: flex;
    flex-direction: row;
    justify-content: right;
    align-items: center;
}

.topic-list .topic-info .item {
    text-align: right;
    width: 70px;
    font-size: 14px;
    color: #999;
}

/*  topic-list end */


/* topic start */

.topic {
    padding: 30px;
}

.topic .topic-title {
    font-size: 24px;
    font-weight: 500;
    border-bottom: 2px #f2f2f2 solid;
    padding-bottom: 20px;
}

.topic .topic-title span {
    margin-right: 8px;
    position: relative;
    top: -4px;
}

.topic .topic-user {
    height: 60px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: left;
}

.topic .topic-user {
    display: flex;
}

.topic .topic-user .user-img {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background-color: #fff;
    border: 1px solid #c8c8c8;
    display: flex;
    justify-content: center;
    align-items: center;
}

.topic .topic-user .user-img img {
    width: 36px;
    height: 36px;
    border-radius: 18px;
}

.topic .topic-user .user-name {
    flex: 1;
    margin-left: 10px;
    color: #999;
    font-size: 14px;
    font-weight: 400;
}

.topic .topic-user .user-name span {
    font-weight: 500;
}

.topic .topic-content {
    margin-top: 20px;
}

.topic .topic-content p {
    font-size: 18px;
}

.topic .topic-img {
    margin-top: 10px;
    margin-left: 40px;
    width: 80%;
    height: auto;
    border-radius: 6px;
    overflow: hidden;
}

.topic .topic-img img {
    width: 100%;
    height: auto;
}

.topic .topic-img img:hover {
    transform: scale(1.2);
    transition-duration: 100ms;
}

.topic .topic-info {
    margin-top: 10px;
    display: flex;
    flex-direction: row;
    justify-content: right;
    align-items: center;
}

.topic .topic-info .item {
    text-align: right;
    width: 70px;
    font-size: 14px;
    color: #999;
}

.topic-card {
    padding-bottom: 20px;
}


.comment-null {
    text-align: center;
    font-size: 13px;
    padding-bottom: 30px;
}

.comment-list {
    padding: 0 20px;
}

.comment-list li {
    display: flex;
    flex-direction: row;
    margin-top: 30px;
    margin-bottom: 20px;
}

.comment-list .comment-user-img {
    width: 40px;
    height: 40px;
    border: 1px #ddd solid;
    border-radius: 20px;
    overflow: hidden;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.comment-list .comment-user-img img {
    width: 36px;
    height: 36px;
    border-radius: 18px;
}

.comment-list .comment-wrap {
    flex: 1;
    padding: 6px 10px 20px 10px;
    border-bottom: 1px #f2f2f2 solid;
}

.comment-list .comment-floor {
    color: #999;
    font-size: 12px;
}

.comment-list .comment-user-name {
    font-size: 14px;
    color: #999;
    font-weight: 400;
}

.comment-list .comment-user-name span {
    font-weight: 500;
}

.comment-list .comment-user-name .delete {
    margin-left: 6px;
    font-size: 14px;
    font-weight: 400;
    color: #999;
}

.comment-list .comment-user-name .delete:hover {
    color: #1e9fff;
}

.comment-list .comment-topic {
    padding: 10px;
    margin-top: 10px;
    background: #f2f2f2;
}

.comment-list .comment-content {
    margin-top: 16px;
}

.comment-list .comment-content p {
    font-size: 16px;
}

.comment-list .comment-info {
    margin-top: 22px;
    display: flex;
    flex-direction: row;
    align-items: center;
}

.comment-list .comment-info .item a {
    text-align: left;
    font-size: 14px;
    color: #999;

}

.comment-list .comment-info .item a:hover {
    color: #1e9fff;
}

.comment-more {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding-bottom: 20px;
}

.post-comment {
    padding-bottom: 20px;
}

.post-comment-btn {
    margin-top: 10px;
    display: flex;
    flex-direction: row;
    justify-content: right;
}

.post-comment-btn > div {
    margin-left: 10px;
}

.post-comment-btn input {
    width: 140px;
}

.post-comment-btn img {
    width: 100px;
}


.post-comment-btn button {
    width: 100px;
}

/* topic end */


/*  pagination start */

.pagination {
    margin-top: 18px;
    width: 100%;
    padding: 0 20px 20px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.pagination .load {
    font-size: 13px;
    color: #1e9fff;
}

.pagination .load-ok {
    font-size: 13px;
    color: #999;
}

/*  pagination end */

/* user start */

.personal {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 20px;
}

.personal img {
    width: 100px;
    height: 100px;
}

.personal p, .personal button {
    margin-top: 10px;
}

.personal .name {
    font-size: 16px;
    font-weight: 500;
}

.personal .mobile {
    font-size: 14px;
    font-weight: 400;
    color: #999;
}

.personal-menu {
    padding: 0 20px;
    text-align: center;
}

.personal-menu ul {
    border-top: #ddd 1px solid;
    padding: 20px 0;
}

.personal-menu li {
    height: 40px;
    line-height: 40px;
}

.personal-menu .active {
    background: #1e9fff;
    border-radius: 3px;
}

.personal-menu .active a {
    color: #fff;
}

.personal-menu li:hover {
    background: #1e9fff;
    border-radius: 3px;
}

.personal-menu li:hover a {
    color: #fff;
}

.personal-form {
    padding: 20px 100px 20px 0px;
}

.personal-form .code {
    display: flex;
    flex-direction: row;
}

.personal-form .code .code-input {
    /*flex: 1;*/
}

.personal-form .code .code-btn {
    width: 140px;
    margin-left: 20px;
}

/* user end */

/*  layui 样式替换  start */

.layui-nav.layui-bg-gray .layui-this a {
    color: #1e9fff !important;
}

.layui-nav .layui-this:after,
.layui-nav-bar {
    background-color: #1e9fff !important;
}

.layui-menu .layui-menu-item-checked a,
.layui-menu .layui-menu-item-checked2 a {
    color: #1e9fff !important;
}

.layui-menu .layui-menu-item-checked:after {
    position: absolute;
    right: -1px;
    top: 0;
    bottom: 0;
    border-right: 3px solid #1e9fff;
    content: "";
}

.layui-menu-lg .layui-menu-body-title a:hover,
.layui-menu-lg li:hover {
    color: #1e9fff !important;
}

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

.layui-input:focus,
.layui-textarea:focus {
    border-color: #1e9fff !important;
    box-shadow: 0 0 0 0.2rem rgba(30, 159, 255, 0.25) !important;
}

.dark .layui-input:focus,
.layui-textarea:focus {
    border-color: #1e9fff !important;
    box-shadow: 0 0 0 0.2rem rgba(30, 159, 255, 0.25) !important;
}

.layui-input-wrap .layui-input:focus + .layui-input-split {
    border-color: #1e9fff !important
}

.dark .layui-input-wrap .layui-input:focus + .layui-input-split {
    border-color: #1e9fff !important
}

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

.layui-form-checked[lay-skin=primary] > i {
    border-color: #1e9fff !important;
    background-color: #1e9fff;
    color: #fff;
}

.layui-tabs-header .layui-this,
.layui-tabs-header li:hover {
    color: #1e9fff;
}

.layui-tabs-header .layui-this:after {
    border-bottom: 3px solid #1e9fff;
}

.layui-btn-primary:hover {
    border-color: #1e9fff;
}

.layui-form-select dl dd.layui-this {
    background-color: #f8f8f8;
    color: #1e9fff;
    font-weight: 700;
}

.layui-form-label {
    width: 110px !important;
}

.layui-form-radio:hover > *, .layui-form-radioed, .layui-form-radioed > i {
    color: #1e9fff;
}

.layui-elem-quote {
    border-left: 5px #ffb800 solid;
    margin-top: 10px;
    margin-bottom: 20px;
    /*color: #ff5722;*/
}

/*  layui 样式替换  end */

/* mobile phone start*/

@media (max-width: 1170px) {
    .page-header-search {
        display: none;
    }

    .page-header-tools {
        width: 120px;
        height: 60px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: right;
    }

    .page-header-tools .icon-search {
        display: inline;
        width: 40px;
        height: 60px;
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: right;
        font-size: 20px;
    }
}


@media (max-width: 970px) {

    .page-login .page-login-card {
        width: 90%;
    }

    .page-mobile-header {
        display: show;
    }

    .page-header {
        display: none;
    }

    .page-list1 .item {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .page-list1 .item .title {
        text-align: center;
    }

    .page-list2 li {
        width: 33%;
    }

    .page-list3 li {
        width: 100%;
    }

    .topic-list {
        padding: 0;
    }

    .app {
        padding: 0 10px 20px 20px;
    }

    .app .app-logo {
        width: 60px;
    }

    .app .app-logo img {
        width: 60px;
        height: 60px;
    }

    .app .app-content {

        margin-left: 20px;
    }

    .app .app-title {
        font-size: 20px;
    }

    .app .app-desc {
        font-size: 18px;
    }

    .article {
        padding: 10px 10px 20px 10px;
    }

    .topic-list .topic-user-img {
        width: 40px;
        height: 40px;
        border-radius: 20px;
    }

    .topic-list .topic-user-img img {
        width: 36px;
        height: 36px;
        border-radius: 18px;
    }

    .topic-list .topic-info .item {
        text-align: left;
        flex: 1;
    }

    .topic {
        padding: 10px 10px 20px 10px;
    }

    .topic .topic-info .item {
        margin-top: 10px;
        text-align: left;
        flex: 1;
    }

    .comment-list {
        padding: 0;
    }

    .page-search .form {
        width: 90%;
    }

    .search-result {
        width: 100%;
    }

    .search-list {
        padding: 0 10px;
        margin-bottom: 20px;
    }

    .search-list .search-list-header .search-list-header-into {
        display: none;
    }

    .search-list .info {
        display: none;
    }
}

/* mobile phone end*/
