.sfpl-page,
.sfpl-page *{
    box-sizing:border-box;
}
.sfpl-page{
    direction:rtl;
}
.sfpl-content{
    min-width:0;
}
.sfpl-page .filter-sidebar{
    margin-top:80px;
}
.sfpl-filter-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.sfpl-filter-header-title{
    min-width:0;
}
.sfpl-filter-header-title h3{
    margin:0;
}
.sfpl-filter-header-title>span{
    display:block;
    margin-top:2px;
    color:#96a2a8;
    font-size:.57rem;
}
.sfpl-filter-header-actions{
    display:flex;
    align-items:center;
    gap:6px;
}
.sfpl-page .filter-sidebar .clear-all{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    background:#dc3545!important;
    color:#fff!important;
    padding:5px 10px;
    border-radius:20px;
    font-size:.61rem;
    font-weight:800;
    text-decoration:none!important;
    white-space:nowrap;
}
.sfpl-page .filter-sidebar .clear-all:hover{
    background:#c82333!important;
    color:#fff!important;
}
.sfpl-filter-close{
    display:none;
    width:32px;
    height:32px;
    align-items:center;
    justify-content:center;
    border:1px solid #dfe7e8;
    border-radius:9px;
    background:#fff;
    color:#68777d;
    cursor:pointer;
    padding:0;
}
.sfpl-filter-body{
    min-width:0;
}
.sfpl-filter-body input,
.sfpl-filter-body select,
.sfpl-filter-body textarea{
    pointer-events:auto;
}
.sfpl-filter-body .search-wrapper{
    position:relative;
    z-index:2;
    pointer-events:auto;
}
.sfpl-filter-body .search-wrapper>i{
    pointer-events:none;
}
.sfpl-filter-body .search-wrapper input{
    position:relative;
    z-index:3;
    pointer-events:auto!important;
    cursor:text;
}
.sfpl-range-row{
    display:flex;
    align-items:center;
    gap:7px;
    width:100%;
}
.sfpl-range-row .filter-select{
    flex:1;
    width:auto!important;
    min-width:0;
}
.sfpl-range-row>span{
    flex:0 0 auto;
    color:#8b979d;
    font-size:.66rem;
}
.sfpl-filter-mobile-footer{
    display:none;
}
.sfpl-filter-apply{
    width:100%;
    min-height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 15px;
    border:0;
    border-radius:11px;
    background:#00a6a6;
    color:#fff;
    font:inherit;
    font-size:.74rem;
    font-weight:800;
    cursor:pointer;
}
.sfpl-filter-apply:hover{
    background:#078787;
}
.sfpl-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    width:100%;
    min-width:0;
    margin-bottom:14px;
}
.sfpl-result-count{
    display:flex;
    align-items:center;
    gap:5px;
    min-width:0;
    color:#6f7d84;
    font-size:.76rem;
    white-space:nowrap;
}
.sfpl-result-count strong{
    color:#078787;
    font-size:1rem;
    font-weight:800;
}
.sfpl-toolbar-controls{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    min-width:0;
}
.sfpl-page-size{
    display:flex;
    align-items:center;
    gap:6px;
    color:#89959b;
    font-size:.64rem;
    white-space:nowrap;
}
.sfpl-page-size select{
    width:65px;
}
.sfpl-sort-select{
    width:auto!important;
    min-width:180px!important;
}
.sfpl-toolbar .filter-select{
    box-sizing:border-box;
    height:40px!important;
    min-height:40px!important;
    padding:0 10px!important;
    line-height:normal!important;
    vertical-align:middle;
    display:block;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.sfpl-page-size select.filter-select{
    width:65px!important;
}
.sfpl-toolbar .sfpl-sort-select{
    width:auto!important;
    min-width:180px!important;
}
.sfpl-results-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    width:100%;
    min-width:0;
    align-items:stretch;
}
.sfpl-shop-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    width:100%;
    height:100%;
    padding:12px;
    border:1px solid #e5ecee;
    border-radius:16px;
    background:#fff;
    box-shadow:0 5px 20px rgba(18,54,63,.045);
    transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.sfpl-shop-card:hover{
    border-color:rgba(0,166,166,.2);
    box-shadow:0 9px 25px rgba(18,54,63,.07);
    transform:translateY(-2px);
}
.sfpl-shop-top{
    display:flex;
    align-items:center;
    gap:9px;
    width:100%;
    min-width:0;
}
.sfpl-shop-logo-link{
    display:block;
    width:52px;
    height:52px;
    flex:0 0 52px;
    text-decoration:none;
}
.sfpl-shop-logo,
.sfpl-shop-logo-placeholder{
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    overflow:hidden;
    border:1px solid #e4eded;
    border-radius:12px;
    background:#f4f8f8;
}
.sfpl-shop-logo{
    object-fit:cover;
}
.sfpl-shop-logo-placeholder{
    color:#7e999d;
    font-size:1rem;
}
.sfpl-shop-main{
    min-width:0;
    flex:1;
}
.sfpl-shop-name{
    display:block;
    width:100%;
    min-width:0;
    overflow:hidden;
    color:#23333a;
    text-decoration:none;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.78rem;
    font-weight:800;
    line-height:1.5;
}
.sfpl-shop-name:hover{
    color:#078787;
}
.sfpl-shop-address{
    display:flex;
    align-items:center;
    gap:4px;
    width:100%;
    min-width:0;
    margin-top:4px;
    color:#87939a;
    font-size:.58rem;
    line-height:1.5;
}
.sfpl-shop-address i{
    flex:0 0 auto;
    color:#00a6a6;
    font-size:.57rem;
}
.sfpl-shop-address span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.sfpl-phone-list{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    margin-top:5px;
}
.sfpl-phone{
    display:inline-flex;
    align-items:center;
    gap:4px;
    max-width:100%;
    padding:4px 6px;
    border:1px solid #edf1f2;
    border-radius:7px;
    background:#f8fafa;
    color:#607279;
    direction:ltr;
    text-decoration:none;
    font-size:.55rem;
    line-height:1;
}
.sfpl-phone i{
    color:#49927b;
    font-size:.5rem;
}
.sfpl-phone:hover{
    background:#eafafa;
    border-color:#d4eeee;
    color:#078787;
}
.sfpl-divider{
    width:100%;
    height:1px;
    margin:11px 0 9px;
    background:#edf1f2;
}
.sfpl-plans-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:8px;
}
.sfpl-plans-title{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
    color:#526269;
    font-size:.64rem;
    font-weight:800;
}
.sfpl-plans-title i{
    color:#00a6a6;
    font-size:.64rem;
}
.sfpl-count-badge{
    flex:0 0 auto;
    padding:4px 7px;
    border-radius:7px;
    background:#edfafa;
    color:#078787;
    font-size:.55rem;
    font-weight:800;
}
.sfpl-plan-list{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
}
.sfpl-plan{
    min-width:0;
    padding:8px;
    border:1px solid #edf1f2;
    border-radius:10px;
    background:#fcfdfd;
}
.sfpl-plan-title{
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    overflow:hidden;
    color:#2b3b42;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.67rem;
    line-height:1.6;
    font-weight:800;
}
.sfpl-plan-description{
    display:-webkit-box;
    margin:3px 0 0;
    overflow:hidden;
    color:#8b969c;
    font-size:.57rem;
    line-height:1.65;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.sfpl-plan-meta{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    margin-top:7px;
}
.sfpl-meta{
    display:inline-flex;
    align-items:center;
    gap:4px;
    max-width:100%;
    min-height:24px;
    padding:4px 6px;
    border-radius:6px;
    background:#f1f5f6;
    color:#617178;
    font-size:.52rem;
    font-weight:700;
    line-height:1.35;
}
.sfpl-meta i{
    flex:0 0 auto;
    color:#819096;
    font-size:.5rem;
}
.sfpl-meta-downpayment{
    background:#eefafa;
    color:#087d7d;
}
.sfpl-meta-downpayment i{
    color:#00a6a6;
}
.sfpl-meta-interest{
    background:#fff4ec;
    color:#a96635;
}
.sfpl-meta-interest i{
    color:#c2783e;
}
.sfpl-card-footer{
    display:flex;
    align-items:center;
    gap:6px;
    width:100%;
    margin-top:auto;
    padding-top:8px;
}
.sfpl-more-plans{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    min-height:33px;
    padding:0 7px;
    border-radius:8px;
    background:#f5f7f8;
    color:#78868d;
    white-space:nowrap;
    font-size:.53rem;
    font-weight:700;
}
.sfpl-more-plans i{
    color:#00a6a6;
    font-size:.48rem;
}
.sfpl-view-plans{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    flex:1;
    min-width:0;
    min-height:33px;
    padding:0 8px;
    border:1px solid #dceff0;
    border-radius:8px;
    background:#f3fbfb;
    color:#078787;
    text-decoration:none;
    font-size:.56rem;
    font-weight:800;
}
.sfpl-view-plans:hover{
    border-color:#c5e5e5;
    background:#e9f8f8;
    color:#056e6e;
    text-decoration:none;
}
.sfpl-no-plan{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:50px;
    margin-top:auto;
    padding:8px;
    border:1px dashed #e0e7e9;
    border-radius:9px;
    background:#fcfdfd;
    color:#96a2a7;
    text-align:center;
    font-size:.57rem;
    line-height:1.6;
}
.sfpl-no-plan i{
    color:#b4bec2;
}
.sfpl-empty{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:220px;
    padding:25px;
    border:1px dashed #dfe8ea;
    border-radius:16px;
    background:#fff;
    text-align:center;
}
.sfpl-empty-icon{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    margin-bottom:10px;
    border-radius:13px;
    background:#eafafa;
    color:#078787;
    font-size:1rem;
}
.sfpl-empty h3{
    margin:0;
    color:#42535b;
    font-size:.82rem;
    line-height:1.6;
    font-weight:800;
}
.sfpl-empty p{
    margin:4px 0 0;
    color:#98a3a8;
    font-size:.63rem;
    line-height:1.8;
}
.sfpl-pagination{
    width:100%;
    margin-top:16px;
    text-align:center;
}
.sfpl-mobile-filter-backdrop{
    display:none;
}
.sfpl-mobile-filter-button{
    display:none;
}
@media (max-width:1200px){
    .sfpl-results-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:900px){
    .sfpl-toolbar{
        align-items:flex-start;
    }
    .sfpl-toolbar-controls{
        flex-wrap:wrap;
    }
}
@media (max-width:1024px){
    .sfpl-mobile-filter-backdrop{
        display:block;
        position:fixed!important;
        inset:0!important;
        z-index:1190!important;
        background:rgba(14,31,38,.42);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .22s ease,visibility .22s ease;
        backdrop-filter:blur(2px);
        -webkit-backdrop-filter:blur(2px);
    }
    .sfpl-mobile-filter-backdrop.sfpl-visible{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
    }
    .sfpl-sidebar{
        position:fixed!important;
        top:0!important;
        right:0!important;
        bottom:0!important;
        left:auto!important;
        width:min(88vw,350px)!important;
        height:100dvh!important;
        min-height:100dvh!important;
        max-height:none!important;
        margin:0!important;
        padding:0!important;
        border-radius:0 18px 18px 0!important;
        transform:translate3d(105%,0,0)!important;
        transition:transform .24s ease!important;
        z-index:1200!important;
        display:flex!important;
        flex-direction:column!important;
        overflow:hidden!important;
        background:#fff!important;
        box-shadow:-14px 0 35px rgba(0,0,0,.14)!important;
        isolation:isolate;
    }
    .sfpl-sidebar.sfpl-sidebar-open{
        transform:translate3d(0,0,0)!important;
    }
    .sfpl-filter-header{
        flex:0 0 auto;
        position:relative;
        z-index:5;
        padding:14px;
        background:#fff;
        border-bottom:1px solid #edf2f3;
        border-radius:0;
    }
    .sfpl-filter-close{
        display:inline-flex;
    }
    .sfpl-filter-body{
        flex:1;
        min-height:0;
        overflow-y:auto;
        overflow-x:hidden;
        padding:2px 13px 13px;
        scrollbar-width:thin;
        position:relative;
        z-index:2;
        pointer-events:auto;
    }
    .sfpl-filter-body .filter-block{
        position:relative;
        z-index:2;
    }
    .sfpl-filter-body .search-wrapper,
    .sfpl-filter-body .search-wrapper input,
    .sfpl-filter-body .filter-select{
        pointer-events:auto!important;
    }
    .sfpl-filter-mobile-footer{
        display:block;
        flex:0 0 auto;
        padding:10px 13px 14px;
        background:#fff;
        border-top:1px solid #edf2f3;
        position:relative;
        z-index:5;
    }
    .sfpl-mobile-filter-button{
        display:flex!important;
        position:fixed!important;
        left:14px!important;
        right:auto!important;
        top:auto!important;
        bottom:80px!important;
        width:auto!important;
        height:auto!important;
        min-height:44px;
        z-index:1300!important;
        align-items:center;
        justify-content:center;
        gap:7px;
        padding:0 16px;
        margin:0!important;
        border:1px solid rgba(255,255,255,.18);
        border-radius:999px;
        background:#078787;
        color:#fff;
        box-shadow:0 8px 24px rgba(0,96,96,.28);
        font:inherit;
        font-size:.72rem;
        font-weight:800;
        cursor:pointer;
        visibility:visible!important;
        opacity:1!important;
        transform:none!important;
    }
    .sfpl-mobile-filter-button:hover{
        background:#056f6f;
        transform:translateY(-1px)!important;
        box-shadow:0 10px 28px rgba(0,96,96,.35);
    }
    .sfpl-mobile-filter-button i{
        font-size:.85rem;
    }
    .sfpl-results-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .sfpl-toolbar{
        flex-direction:column;
        align-items:stretch;
        gap:9px;
    }
    .sfpl-toolbar-controls{
        width:100%;
        justify-content:space-between;
    }
    .sfpl-sort-select{
        flex:1;
        min-width:0!important;
    }
    .sfpl-page-size select.filter-select{
        width:62px!important;
    }
    .sfpl-toolbar .filter-select{
        height:40px!important;
        min-height:40px!important;
        line-height:normal!important;
    }
    body:has(.sfpl-sidebar.sfpl-sidebar-open){
        overflow:hidden;
    }
}
@media (max-width:700px){
    .sfpl-results-grid{
        grid-template-columns:1fr;
        gap:9px;
    }
}
@media (max-width:560px){
    .sfpl-toolbar{
        margin-bottom:10px;
    }
    .sfpl-result-count{
        font-size:.68rem;
    }
    .sfpl-result-count strong{
        font-size:.9rem;
    }
    .sfpl-toolbar-controls{
        gap:6px;
    }
    .sfpl-page-size{
        font-size:.59rem;
    }
    .sfpl-page-size select.filter-select{
        width:60px!important;
        height:38px!important;
        min-height:38px!important;
    }
    .sfpl-toolbar .sfpl-sort-select{
        min-width:0!important;
        flex:1;
        height:38px!important;
        min-height:38px!important;
    }
    .sfpl-shop-card{
        padding:10px;
        border-radius:13px;
    }
    .sfpl-shop-logo-link,
    .sfpl-shop-logo,
    .sfpl-shop-logo-placeholder{
        width:47px;
        height:47px;
        flex-basis:47px;
    }
    .sfpl-shop-name{
        font-size:.74rem;
    }
    .sfpl-shop-address{
        font-size:.56rem;
    }
    .sfpl-phone{
        font-size:.54rem;
    }
    .sfpl-divider{
        margin:9px 0 8px;
    }
    .sfpl-plans-title{
        font-size:.6rem;
    }
    .sfpl-count-badge{
        font-size:.53rem;
    }
    .sfpl-plan{
        padding:7px;
    }
    .sfpl-plan-title{
        font-size:.64rem;
    }
    .sfpl-plan-description{
        font-size:.55rem;
    }
    .sfpl-meta{
        font-size:.5rem;
        padding:4px 5px;
    }
    .sfpl-card-footer{
        flex-direction:column;
        align-items:stretch;
    }
    .sfpl-more-plans,
    .sfpl-view-plans{
        width:100%;
    }
    .sfpl-mobile-filter-button{
        left:10px!important;
        bottom:80px!important;
        min-height:42px;
        padding:0 14px;
        font-size:.68rem;
    }
}
@media (max-width:380px){
    .sfpl-shop-logo-link,
    .sfpl-shop-logo,
    .sfpl-shop-logo-placeholder{
        width:43px;
        height:43px;
        flex-basis:43px;
    }
    .sfpl-shop-name{
        font-size:.72rem;
    }
    .sfpl-plan-meta{
        gap:3px;
    }
}
@media (min-width:1025px){
    .sfpl-sidebar{
        position:sticky;
        top:80px;
        align-self:start;
        max-height:calc(100vh - 92px);
        overflow-y:auto;
        scrollbar-width:thin;
    }
}
