.fx4 #ft-models{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}
.ft-cat{grid-column:1/-1;font-weight:800;font-size:19px;margin:18px 0 2px;color:#fff;display:flex;align-items:center;gap:10px}
.ft-cat::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#333,transparent)}
.ft-model{position:relative;background:#1f1f1f;border:2px solid #2c2c2c;border-radius:18px;overflow:hidden;cursor:pointer;transition:transform .22s,border-color .22s,box-shadow .22s;padding:0;color:#fff;font-family:inherit;text-align:center}
.ft-model:hover{transform:translateY(-5px) scale(1.015);border-color:#FFC107;box-shadow:0 20px 46px rgba(0,0,0,.5),0 0 24px rgba(255,193,7,.15)}
.ft-model.sel{border-color:#FFC107;box-shadow:0 0 0 2px rgba(255,193,7,.5),0 20px 46px rgba(0,0,0,.5)}
.ft-model img{width:100%;height:230px;object-fit:cover;display:block;transition:transform .3s}
.ft-model:hover img{transform:scale(1.05)}
.ft-model .ft-check{position:absolute;top:10px;inset-inline-start:10px;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#FFC107,#ff7847);color:#191919;font-weight:800;display:none;align-items:center;justify-content:center;font-size:16px;z-index:2}
.ft-model.sel .ft-check{display:flex}
.ft-model b{display:block;padding:12px 8px 2px;font-size:14px}
.ft-model small{color:#FFC107;font-size:13px;display:block;padding:0 8px 12px}
.ft-search{max-width:480px;margin:0 auto 6px;position:relative}
.ft-search input{width:100%;background:#1f1f1f;border:1px solid #383838;border-radius:999px;padding:13px 48px 13px 20px;color:#fff;font-size:15px;font-family:inherit;outline:none;transition:border-color .2s}
.ft-search input:focus{border-color:#FFC107}
.ft-search::before{content:"🔍";position:absolute;top:50%;transform:translateY(-50%);inset-inline-start:18px;font-size:17px}
.ft-fav-bar{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:14px 0 4px}
.ft-chip{background:#1f1f1f;border:1px solid #383838;color:#cfcfcf;border-radius:999px;padding:8px 20px;font-size:13px;cursor:pointer;font-family:inherit;transition:all .2s}
.ft-chip:hover{border-color:#FFC107;color:#fff}
.ft-chip.on{background:rgba(255,193,7,.12);border-color:#FFC107;color:#FFC107}
.ft-box{background:linear-gradient(180deg,#1d1d1d,#171717);border:1px solid #2c2c2c;border-radius:22px;padding:36px 26px;margin:26px auto;max-width:640px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.ft-box h3{margin:0 0 6px;font-size:20px}
.ft-pick-card{display:flex;gap:16px;align-items:center;justify-content:center;background:#222;border:1px solid #333;border-radius:16px;padding:14px;margin:14px 0}
.ft-pick-card img{width:90px;height:120px;object-fit:cover;border-radius:12px}
.ft-pick-card div{text-align:right}
.ft-pick-card b{font-size:15px}
.ft-pick-card small{color:#8f8f8f;display:block;font-size:12px}
.ft-price-tag{display:inline-block;background:linear-gradient(135deg,rgba(255,193,7,.16),rgba(255,120,71,.1));border:1px solid rgba(255,193,7,.45);color:#FFC107;font-weight:800;padding:9px 26px;border-radius:999px;margin:10px 0 18px;font-size:17px}
.ft-drop{border:2px dashed #3d3d3d;border-radius:16px;padding:34px 18px;margin:18px 0;cursor:pointer;transition:border-color .2s,background .2s;color:#a8a8a8}
.ft-drop:hover,.ft-drop.over{border-color:#FFC107;background:rgba(255,193,7,.05)}
.ft-drop img{width:150px;border-radius:14px;border:1px solid #333;margin-bottom:10px}
#ft-file{display:none}
.ft-note{color:#8f8f8f;font-size:13px;margin:10px 0 0}
.ft-progress{display:flex;justify-content:center;gap:10px;margin:0 0 24px;flex-wrap:wrap}
.ft-dot{display:flex;align-items:center;gap:8px;color:#777;font-size:14px}
.ft-dot i{width:32px;height:32px;border-radius:50%;background:#242424;border:1px solid #383838;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-weight:800}
.ft-dot.on{color:#fff}
.ft-dot.on i{background:linear-gradient(135deg,#FFC107,#ff7847);color:#191919;border:0;box-shadow:0 6px 18px rgba(255,193,7,.35)}
#ft-status{margin:22px auto;max-width:640px;font-size:16px;background:#1a1a1a;border:1px solid #2c2c2c;border-radius:16px;padding:26px}
#ft-status .spin{display:inline-block;width:22px;height:22px;border:3px solid #333;border-top-color:#FFC107;border-radius:50%;animation:ftspin 1s linear infinite;vertical-align:middle;margin-inline-end:10px}
@keyframes ftspin{to{transform:rotate(360deg)}}
#ft-result img{max-width:min(420px,90vw);border-radius:18px;border:1px solid #333;margin:14px auto;display:block;box-shadow:0 24px 60px rgba(0,0,0,.5)}
#ft-result .fx4-btn{margin-top:6px}
.ft-empty{grid-column:1/-1;text-align:center;color:#8f8f8f;padding:30px}
@media(max-width:900px){.fx4 #ft-models{grid-template-columns:repeat(2,1fr);gap:12px}.ft-model img{height:190px}}
@media(prefers-reduced-motion:reduce){.ft-model,.ft-model img,#ft-status .spin{transition:none;animation:none}}
