/* ============================================================
 * 拼图滑块验证码 UI（global.js 中 SliderCaptcha 组件使用）
 * ============================================================ */
.sld-cap{max-width:330px;margin:0 auto}
.sld-cap .sld-loading{height:155px;border:1px dashed #C4D2EC;border-radius:12px;background:#F6F9FE;display:flex;align-items:center;justify-content:center;color:var(--sub);font-weight:600;font-size:13px}
.sld-cap .sld-panel{position:relative;width:310px;height:155px;margin:0 auto;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#000}
.sld-cap .sld-panel img{display:block}
.sld-cap .sld-bg{position:absolute;inset:0;width:310px;height:155px;object-fit:cover}
.sld-cap .sld-piece{position:absolute;left:0;width:42px;height:42px;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35))}
.sld-cap .sld-refresh{position:absolute;right:8px;top:8px;z-index:3;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--blue);font-size:15px;cursor:pointer;transition:.2s}
.sld-cap .sld-refresh:hover{transform:rotate(180deg)}
.sld-cap .sld-track{position:relative;width:310px;height:42px;margin:12px auto 0;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#F8FBFF,#EEF3FD);overflow:hidden}
.sld-cap .sld-fill{position:absolute;left:0;top:0;bottom:0;width:20px;background:linear-gradient(90deg,#D6E4FB,#E7F8FB);transition:none}
.sld-cap .sld-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--sub);pointer-events:none;letter-spacing:.5px}
.sld-cap .sld-thumb{position:absolute;left:0;top:0;width:42px;height:42px;background:#fff;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--blue);font-weight:800;cursor:grab;box-shadow:0 4px 12px rgba(16,58,140,.12);transition:box-shadow .2s,background .2s,color .2s}
.sld-cap .sld-thumb:active{cursor:grabbing}
.sld-cap .sld-track.is-ok .sld-fill{background:linear-gradient(90deg,#D1FADF,#A7F3D0)}
.sld-cap .sld-track.is-ok .sld-thumb{background:#10B981;color:#fff;border-color:#10B981}
.sld-cap .sld-track.is-fail .sld-fill{background:linear-gradient(90deg,#FEE2E2,#FECACA)}
.sld-cap .sld-track.is-fail .sld-thumb{background:#EF4444;color:#fff;border-color:#EF4444}
.sld-cap .sld-tip{min-height:18px;margin-top:8px;text-align:center;font-size:12.5px;color:var(--orange-deep);font-weight:600}
