/* 资源社 - 开源软件自动采集库 */

.zysfx-ossl-home,
.zysfx-ossl-library{
    margin:20px auto;
}

.zysfx-ossl-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}
.zysfx-ossl-head h2,
.zysfx-ossl-library-title h1{
    margin:0;
}
.zysfx-ossl-head a{
    font-size:14px;
    text-decoration:none;
}

.zysfx-ossl-library-title{
    margin-bottom:18px;
}
.zysfx-ossl-library-title p{
    margin:8px 0 0;
    opacity:.72;
}

.zysfx-ossl-filter{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin:0 0 18px;
}
.zysfx-ossl-filter input,
.zysfx-ossl-filter select{
    height:38px;
    border:1px solid rgba(0,0,0,.12);
    border-radius:8px;
    padding:0 12px;
    background:var(--main-bg-color,#fff);
}
.zysfx-ossl-filter input{
    flex:1 1 260px;
}
.zysfx-ossl-filter select{
    min-width:150px;
}
.zysfx-ossl-filter button{
    height:38px;
    padding:0 20px;
    border:0;
    border-radius:8px;
    cursor:pointer;
}

.zysfx-ossl-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:16px;
}

.zysfx-ossl-card{
    min-width:0;
    overflow:hidden;
    border-radius:10px;
    background:var(--main-bg-color,#fff);
    box-shadow:0 2px 12px rgba(0,0,0,.06);
    transition:transform .18s ease, box-shadow .18s ease;
}
.zysfx-ossl-card:hover{
    transform:translateY(-2px);
    box-shadow:0 5px 18px rgba(0,0,0,.09);
}

.zysfx-ossl-cover{
    position:relative;
    display:block;
    aspect-ratio:16/9;
    overflow:hidden;
    background:#f2f3f5;
}
.zysfx-ossl-cover img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.zysfx-ossl-cover-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px;
    font-weight:700;
    opacity:.45;
}
.zysfx-ossl-cat{
    position:absolute;
    left:8px;
    bottom:8px;
    padding:3px 7px;
    border-radius:5px;
    font-size:11px;
    line-height:1.2;
    background:rgba(0,0,0,.64);
    color:#fff;
}

.zysfx-ossl-card-body{
    padding:10px 11px 11px;
}
.zysfx-ossl-card h3{
    margin:0 0 7px;
    font-size:14px;
    line-height:1.45;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.zysfx-ossl-card h3 a{
    color:inherit;
    text-decoration:none;
}
.zysfx-ossl-meta{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    font-size:11px;
    opacity:.68;
}
.zysfx-ossl-meta span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.zysfx-ossl-pagination{
    display:flex;
    justify-content:center;
    gap:7px;
    flex-wrap:wrap;
    margin:22px 0 8px;
}
.zysfx-ossl-pagination a,
.zysfx-ossl-pagination span{
    min-width:34px;
    height:34px;
    padding:0 8px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:7px;
    text-decoration:none;
    background:rgba(127,127,127,.1);
}
.zysfx-ossl-pagination .current{
    font-weight:700;
    background:rgba(127,127,127,.22);
}
.zysfx-ossl-empty{
    padding:35px 20px;
    text-align:center;
    opacity:.68;
}

.zysfx-ossl-detail{
    margin-top:24px;
}
.zysfx-ossl-info{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:12px;
}
.zysfx-ossl-info span{
    padding:7px 10px;
    border-radius:7px;
    background:rgba(127,127,127,.09);
    font-size:13px;
}
.zysfx-ossl-info b{
    margin-right:6px;
}
.zysfx-ossl-notice{
    padding:10px 12px;
    border-radius:8px;
    margin:10px 0 16px;
    font-size:13px;
    background:rgba(127,127,127,.08);
}
.zysfx-ossl-downloads h3{
    margin:0 0 10px;
}
.zysfx-ossl-download{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:11px 12px;
    margin:8px 0;
    border:1px solid rgba(127,127,127,.16);
    border-radius:8px;
    text-decoration:none !important;
    color:inherit;
}
.zysfx-ossl-download:hover{
    background:rgba(127,127,127,.05);
}
.zysfx-ossl-download .file{
    min-width:0;
}
.zysfx-ossl-download strong{
    display:block;
    overflow-wrap:anywhere;
    font-size:13px;
}
.zysfx-ossl-download small{
    display:block;
    margin-top:3px;
    opacity:.66;
}
.zysfx-ossl-download .go{
    flex:0 0 auto;
    font-size:12px;
    padding:6px 9px;
    border-radius:6px;
    background:rgba(127,127,127,.1);
}
.zysfx-ossl-links{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:14px;
}
.zysfx-ossl-links a{
    text-decoration:none;
}

@media (max-width:1200px){
    .zysfx-ossl-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

@media (max-width:760px){
    .zysfx-ossl-home,
    .zysfx-ossl-library{
        margin-top:12px;
    }

    .zysfx-ossl-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px;
    }

    .zysfx-ossl-home-grid .zysfx-ossl-card:nth-child(n+10){
        display:none;
    }

    .zysfx-ossl-card{
        border-radius:8px;
    }

    .zysfx-ossl-card-body{
        padding:7px 7px 8px;
    }

    .zysfx-ossl-card h3{
        margin-bottom:4px;
        font-size:12px;
    }

    .zysfx-ossl-meta{
        gap:4px;
        font-size:9px;
    }

    .zysfx-ossl-meta span:nth-child(n+3){
        display:none;
    }

    .zysfx-ossl-cat{
        left:5px;
        bottom:5px;
        padding:2px 5px;
        font-size:9px;
    }

    .zysfx-ossl-filter{
        gap:7px;
    }
    .zysfx-ossl-filter input,
    .zysfx-ossl-filter select,
    .zysfx-ossl-filter button{
        width:100%;
        flex:1 1 100%;
    }

    .zysfx-ossl-download{
        align-items:flex-start;
    }
}


/* v1.1.0 软件图标 */
.zysfx-ossl-title-row{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
}
.zysfx-ossl-title-row h3{
    min-width:0;
    flex:1;
}
.zysfx-ossl-icon{
    width:24px;
    height:24px;
    flex:0 0 24px;
    border-radius:6px;
    object-fit:cover;
    background:#fff;
    box-shadow:0 1px 4px rgba(0,0,0,.10);
}
.zysfx-ossl-software-head{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:14px;
}
.zysfx-ossl-detail-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;
    border-radius:10px;
    object-fit:cover;
    background:#fff;
    box-shadow:0 2px 10px rgba(0,0,0,.10);
}
.zysfx-ossl-software-head strong{
    display:block;
    font-size:16px;
}
.zysfx-ossl-software-head small{
    display:block;
    margin-top:3px;
    opacity:.6;
}

/* v1.1.0 1积分下载 */
.zysfx-ossl-paywall{
    margin:16px 0;
    padding:24px 18px;
    text-align:center;
    border-radius:12px;
    background:rgba(127,127,127,.07);
    border:1px solid rgba(127,127,127,.12);
}
.zysfx-ossl-lock{
    font-size:30px;
    line-height:1;
}
.zysfx-ossl-paywall h3{
    margin:10px 0 6px;
}
.zysfx-ossl-paywall p{
    margin:0 0 10px;
}
.zysfx-ossl-vip-tip{
    display:inline-block;
    margin:3px 0 12px;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(255,193,7,.14);
    font-size:12px;
}
.zysfx-ossl-balance{
    margin:0 0 10px;
    font-size:13px;
}
.zysfx-ossl-gate-btn{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-width:210px;
    min-height:42px;
    margin:5px 4px;
    padding:0 18px;
    border:0;
    border-radius:8px;
    text-decoration:none!important;
    font-weight:600;
    cursor:pointer;
    box-sizing:border-box;
}
.zysfx-ossl-gate-btn.primary{
    background:#4f6df5;
    color:#fff!important;
}
.zysfx-ossl-gate-btn.secondary{
    background:rgba(127,127,127,.11);
    color:inherit!important;
}
.zysfx-ossl-gate-msg{
    margin:0 0 14px;
    padding:10px 12px;
    border-radius:8px;
    font-size:13px;
}
.zysfx-ossl-gate-msg.ok{
    background:rgba(34,197,94,.12);
}
.zysfx-ossl-gate-msg.error{
    background:rgba(239,68,68,.11);
}

@media (max-width:760px){
    .zysfx-ossl-icon{
        width:20px;
        height:20px;
        flex-basis:20px;
        border-radius:5px;
    }
    .zysfx-ossl-gate-btn{
        width:100%;
        min-width:0;
        margin:5px 0;
    }
}


/* v1.1.1：软件卡片封面只负责进入文章，不触发子比图片灯箱 */
.zysfx-ossl-cover,
.zysfx-ossl-cover img{
    cursor:pointer;
}
.zysfx-ossl-cover img.zysfx-no-lightbox-img{
    pointer-events:none;
}


/* v1.1.2：分类改成短剧库同类的“类型”标签筛选 */
.zysfx-ossl-searchbar{
    margin-bottom:12px;
}
.zysfx-ossl-searchbar input{
    flex:1 1 auto;
}
.zysfx-ossl-searchbar button{
    flex:0 0 auto;
}

.zysfx-ossl-type-filter{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin:0 0 18px;
    padding:12px 14px;
    border-radius:10px;
    background:rgba(127,127,127,.055);
}
.zysfx-ossl-type-label{
    flex:0 0 auto;
    min-width:34px;
    padding-top:5px;
    font-size:13px;
    font-weight:600;
    opacity:.68;
}
.zysfx-ossl-type-options{
    display:flex;
    flex-wrap:wrap;
    gap:7px 8px;
    min-width:0;
}
.zysfx-ossl-type-item{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 11px;
    border-radius:6px;
    font-size:13px;
    line-height:28px;
    text-decoration:none!important;
    color:inherit!important;
    background:transparent;
    transition:all .16s ease;
}
.zysfx-ossl-type-item:hover{
    background:rgba(127,127,127,.10);
}
.zysfx-ossl-type-item.active{
    color:#fff!important;
    background:#4f6df5;
}

@media (max-width:760px){
    .zysfx-ossl-type-filter{
        display:block;
        margin-bottom:12px;
        padding:9px 10px 10px;
    }
    .zysfx-ossl-type-label{
        padding:0 0 7px;
        min-width:0;
        font-size:12px;
    }
    .zysfx-ossl-type-options{
        flex-wrap:nowrap;
        overflow-x:auto;
        overflow-y:hidden;
        gap:6px;
        padding-bottom:2px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .zysfx-ossl-type-options::-webkit-scrollbar{
        display:none;
    }
    .zysfx-ossl-type-item{
        flex:0 0 auto;
        min-height:27px;
        padding:0 10px;
        font-size:12px;
        line-height:27px;
    }
}


/* v1.1.3：短剧库风格双行筛选：类型 + 系统 */
.zysfx-ossl-filter-panel{
    margin:0 0 18px;
    padding:7px 12px;
    border-radius:10px;
    background:rgba(127,127,127,.055);
}
.zysfx-ossl-filter-row{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:5px 0;
}
.zysfx-ossl-filter-label{
    flex:0 0 34px;
    min-width:34px;
    padding-top:5px;
    font-size:13px;
    font-weight:600;
    opacity:.68;
}
.zysfx-ossl-filter-options{
    display:flex;
    flex-wrap:wrap;
    gap:7px 8px;
    min-width:0;
}
.zysfx-ossl-filter-item{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 11px;
    border-radius:6px;
    font-size:13px;
    line-height:28px;
    text-decoration:none!important;
    color:inherit!important;
    background:transparent;
    transition:all .16s ease;
}
.zysfx-ossl-filter-item:hover{
    background:rgba(127,127,127,.10);
}
.zysfx-ossl-filter-item.active{
    color:#fff!important;
    background:#4f6df5;
}

@media (max-width:760px){
    .zysfx-ossl-filter-panel{
        margin-bottom:12px;
        padding:7px 9px;
    }
    .zysfx-ossl-filter-row{
        display:block;
        padding:4px 0;
    }
    .zysfx-ossl-filter-label{
        min-width:0;
        padding:0 0 6px;
        font-size:12px;
    }
    .zysfx-ossl-filter-options{
        flex-wrap:nowrap;
        overflow-x:auto;
        overflow-y:hidden;
        gap:6px;
        padding-bottom:2px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .zysfx-ossl-filter-options::-webkit-scrollbar{
        display:none;
    }
    .zysfx-ossl-filter-item{
        flex:0 0 auto;
        min-height:27px;
        padding:0 10px;
        font-size:12px;
        line-height:27px;
    }
}


/* v1.1.4：首页完整软件库模块 */
.zysfx-ossl-home-widget,
.zysfx-ossl-home-widget.widget,
.zysfx-ossl-home-widget.widget-box{
    width:100%;
}
.zysfx-ossl-home-library{
    width:100%;
    margin:18px 0 22px;
}
.zysfx-ossl-home-library-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin:0 0 14px;
}
.zysfx-ossl-home-library-head h2{
    margin:0;
    font-size:22px;
    line-height:1.35;
}
.zysfx-ossl-home-library-head p{
    margin:5px 0 0;
    font-size:13px;
    opacity:.65;
}
.zysfx-ossl-home-more{
    flex:0 0 auto;
    margin-top:4px;
    font-size:13px;
    text-decoration:none!important;
    opacity:.72;
}
.zysfx-ossl-home-search{
    margin-bottom:12px;
}
.zysfx-ossl-home-filter-panel{
    margin-bottom:16px;
}
.zysfx-ossl-home-library-footer{
    display:flex;
    justify-content:center;
    margin-top:18px;
}
.zysfx-ossl-home-library-more{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:140px;
    height:38px;
    padding:0 18px;
    border-radius:8px;
    background:rgba(127,127,127,.10);
    color:inherit!important;
    text-decoration:none!important;
}
.zysfx-ossl-home-library-more:hover{
    background:rgba(127,127,127,.16);
}

@media (max-width:760px){
    .zysfx-ossl-home-library{
        margin:12px 0 16px;
    }
    .zysfx-ossl-home-library-head{
        align-items:center;
        margin-bottom:10px;
    }
    .zysfx-ossl-home-library-head h2{
        font-size:18px;
    }
    .zysfx-ossl-home-library-head p{
        display:none;
    }
    .zysfx-ossl-home-more{
        font-size:12px;
        margin-top:0;
    }
    .zysfx-ossl-home-library-footer{
        margin-top:12px;
    }
}


/* v1.1.5：整体改成短剧库相同视觉 */
.zysfx-ossl-home-widget.widget,
.zysfx-ossl-home-widget.widget-box,
.zysfx-ossl-home-widget .widget-box{
    background:transparent!important;
    box-shadow:none!important;
    border:0!important;
    padding:0!important;
}

.zysfx-ossl-home-library,
.zysfx-ossl-library{
    background:transparent!important;
}

.zysfx-ossl-home-library-head,
.zysfx-ossl-library-title{
    margin:0 0 16px!important;
}
.zysfx-ossl-home-library-head h2,
.zysfx-ossl-library-title h1{
    margin:0 0 6px!important;
    font-size:28px!important;
    line-height:1.35!important;
    font-weight:700!important;
}
.zysfx-ossl-home-library-head p,
.zysfx-ossl-library-title p{
    margin:0!important;
    color:#7b8492!important;
    font-size:13px!important;
}

.zysfx-ossl-home-more{
    display:none!important;
}

/* 搜索 + 筛选合成一个白色圆角框，与短剧库一致 */
.zysfx-ossl-filter-box{
    margin:0 0 18px!important;
    padding:18px 20px 14px!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 5px 22px rgba(0,0,0,.04)!important;
}

.zysfx-ossl-filter-box .zysfx-ossl-searchbar{
    display:flex!important;
    gap:10px!important;
    margin:0!important;
    padding:0 0 14px!important;
    border-bottom:1px solid #edf0f3!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-searchbar input{
    flex:1 1 auto!important;
    width:auto!important;
    height:42px!important;
    padding:0 14px!important;
    border:1px solid #dde2e8!important;
    border-radius:9px!important;
    background:#fff!important;
    box-shadow:none!important;
    outline:none!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-searchbar button{
    flex:0 0 auto!important;
    min-width:78px!important;
    height:42px!important;
    padding:0 18px!important;
    border:0!important;
    border-radius:9px!important;
    background:#222!important;
    color:#fff!important;
    font-weight:700!important;
    cursor:pointer!important;
}

.zysfx-ossl-filter-box .zysfx-ossl-filter-panel{
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
    background:transparent!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-row{
    display:flex!important;
    align-items:flex-start!important;
    gap:16px!important;
    padding:11px 0!important;
    border-bottom:1px solid #edf0f3!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-row:last-child{
    border-bottom:0!important;
    padding-bottom:2px!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-label{
    flex:0 0 48px!important;
    min-width:48px!important;
    padding-top:5px!important;
    color:#7b8492!important;
    font-size:13px!important;
    font-weight:700!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-options{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:7px 18px!important;
    min-width:0!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-item{
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    min-height:30px!important;
    padding:0 9px!important;
    border-radius:7px!important;
    background:transparent!important;
    color:#4f5966!important;
    font-size:13px!important;
    line-height:30px!important;
    text-decoration:none!important;
    white-space:nowrap!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-item:hover{
    background:#f2f4f6!important;
}
.zysfx-ossl-filter-box .zysfx-ossl-filter-item.active{
    background:#222!important;
    color:#fff!important;
    font-weight:700!important;
}
.zysfx-ossl-filter-count{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:20px!important;
    height:18px!important;
    padding:0 5px!important;
    border-radius:9px!important;
    background:#eef1f4!important;
    color:#9aa3ad!important;
    font-size:10px!important;
    line-height:18px!important;
    font-weight:600!important;
}
.zysfx-ossl-filter-item.active .zysfx-ossl-filter-count{
    background:rgba(255,255,255,.16)!important;
    color:#fff!important;
}

/* 底部查看更多按钮也改成短剧库黑色按钮 */
.zysfx-ossl-home-library-footer{
    margin-top:20px!important;
}
.zysfx-ossl-home-library-more{
    min-width:152px!important;
    height:42px!important;
    padding:0 22px!important;
    border-radius:9px!important;
    background:#222!important;
    color:#fff!important;
    font-size:14px!important;
    font-weight:700!important;
}
.zysfx-ossl-home-library-more:hover{
    background:#111!important;
    color:#fff!important;
}

@media (max-width:760px){
    .zysfx-ossl-home-library-head h2,
    .zysfx-ossl-library-title h1{
        font-size:22px!important;
    }

    .zysfx-ossl-filter-box{
        padding:12px 12px 9px!important;
        border-radius:11px!important;
    }

    .zysfx-ossl-filter-box .zysfx-ossl-searchbar{
        padding-bottom:11px!important;
    }
    .zysfx-ossl-filter-box .zysfx-ossl-searchbar input,
    .zysfx-ossl-filter-box .zysfx-ossl-searchbar button{
        height:39px!important;
    }
    .zysfx-ossl-filter-box .zysfx-ossl-searchbar button{
        min-width:66px!important;
        padding:0 13px!important;
    }

    .zysfx-ossl-filter-box .zysfx-ossl-filter-row{
        display:flex!important;
        gap:8px!important;
        padding:9px 0!important;
    }
    .zysfx-ossl-filter-box .zysfx-ossl-filter-label{
        flex:0 0 36px!important;
        min-width:36px!important;
        padding:4px 0 0!important;
        font-size:12px!important;
    }
    .zysfx-ossl-filter-box .zysfx-ossl-filter-options{
        flex-wrap:nowrap!important;
        overflow-x:auto!important;
        gap:6px!important;
        padding-bottom:2px!important;
        scrollbar-width:none!important;
        -webkit-overflow-scrolling:touch!important;
    }
    .zysfx-ossl-filter-box .zysfx-ossl-filter-options::-webkit-scrollbar{
        display:none!important;
    }
    .zysfx-ossl-filter-box .zysfx-ossl-filter-item{
        flex:0 0 auto!important;
        min-height:28px!important;
        padding:0 8px!important;
        font-size:12px!important;
        line-height:28px!important;
    }
    .zysfx-ossl-filter-count{
        height:16px!important;
        line-height:16px!important;
        font-size:9px!important;
    }
}
