.cpflt-root{display:grid;gap:16px}
.cpflt-controls{display:grid;gap:8px}
.cpflt-controls-title{text-align:center;font-weight:600}
.cpflt-checkwrap{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.cpflt-check{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #e5e5e5;border-radius:999px;background:#fff;cursor:pointer;user-select:none}
.cpflt-check input{position:absolute;opacity:0;pointer-events:none}
.cpflt-check .cpflt-box{width:16px;height:16px;border:1px solid #bbb;border-radius:4px;background:#fff;display:inline-block}
.cpflt-check input:checked + .cpflt-box{background:#111;border-color:#111}
.cpflt-check .cpflt-lbl{font-size:13px}

.cpflt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;align-items:stretch}

.cpflt-item{transition:transform .32s cubic-bezier(.2,.7,.2,1),opacity .32s ease;will-change:transform,opacity}
.cpflt-item.is-hidden{display:none !important}
.cpflt-item.is-enter{opacity:0;transform:scale(.92)}
.cpflt-item.is-enter-active{opacity:1;transform:scale(1);transition:opacity .28s ease,transform .28s cubic-bezier(.2,.7,.2,1)}

.cpflt-card{display:grid;gap:8px;border:1px solid #efefef;border-radius:12px;padding:12px;background:#fff}
.cpflt-img{width:100%;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#f8f8f8}
.cpflt-img img{width:100%;height:100%;object-fit:cover;display:block}
.cpflt-name{text-align:center;font-size:14px;font-weight:500}
