.zw-cap-box{max-width:320px;background:var(--color-background-secondary,#fff);border:1px solid rgba(128,128,128,.25);border-radius:8px;overflow:hidden;font-family:inherit}
.zw-cap-img-wrap{position:relative;width:100%;padding-top:50%;background:#eee}
.zw-cap-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:fill;display:block}
.zw-cap-piece{position:absolute;top:0;left:0;height:100%;width:auto;max-width:none;cursor:pointer;display:none;transition:left .1s linear}
.zw-cap-slider{position:relative;height:40px;background:rgba(128,128,128,.12);border-top:1px solid rgba(128,128,128,.25);touch-action:none}
.zw-cap-slider-btn{position:absolute;top:0;left:0;width:40px;height:40px;line-height:40px;text-align:center;background:#378ADD;color:#fff;cursor:pointer;user-select:none;border-radius:6px;z-index:2;touch-action:none;-webkit-user-drag:none}
.zw-cap-slider-text{position:absolute;width:100%;text-align:center;line-height:40px;font-size:12px;color:rgba(128,128,128,.8)}
.zw-cap-msg{height:28px;line-height:28px;padding:0 12px;font-size:12px;text-align:center}

/* ── TASK-1488：加载态与就地重试（消除「拖不动」观感） ── */
/* 取图未返回/加载失败时：滑轨按钮不可交互 + 半透明，避免"能拖却不响应"的误判 */
.zw-cap.is-loading .zw-cap-slider-btn{pointer-events:none;opacity:.5;cursor:default}
.zw-cap.is-loading .zw-cap-slider-text{color:rgba(128,128,128,.9)}
/* 失败/超时：提示行允许换行容纳「重新加载」按钮 */
.zw-cap-msg.is-retry{height:auto;line-height:1.6;padding:4px 12px}
.zw-cap-retry{margin-left:6px;padding:2px 10px;border:1px solid rgba(216,5,5,.35);border-radius:4px;background:#fff;color:var(--primary-color,#d80505);font-size:12px;line-height:1.6;font-family:inherit;cursor:pointer}
.zw-cap-retry:hover{background:rgba(216,5,5,.06)}

/* ── canonical AJ 滑块字段（TASK-539）：注册/登录表单复用，主色统一 ── */
.zw-ajcaptcha-field{margin:12px 0;padding:12px;border:1px solid rgba(216,5,5,.14);border-radius:8px;background:var(--color-background-secondary,#fff)}
.zw-ajcaptcha-field .zw-cap-box{margin:0 auto;max-width:100%}
.zw-ajcaptcha-field .zw-cap-slider-btn{background:var(--primary-color,#d80505)}
.zw-ajcaptcha-field .zw-cap-slider-btn:hover{background:#b30404}
.zw-ajcaptcha-field.is-error{border-color:#e24b4a;box-shadow:0 0 0 3px rgba(226,75,74,.08)}
.zw-ajcaptcha-field.is-verified{border-color:#0f6e56}
.zw-ajcaptcha-tip{margin:8px 0 0;font-size:12px;line-height:1.5;color:#666;text-align:center}
