.xly-captcha-layer{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:rgba(0,0,0,.42);font:13px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:#323b49}
.xly-captcha-panel{position:relative;box-sizing:border-box;width:460px;max-width:100%;min-height:218px;max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid #e4e7ec;border-radius:4px;background:#fff;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.xly-captcha-close{position:absolute;top:17px;right:18px;z-index:2;display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:2px;padding:4px;background:transparent;color:#8a919d;cursor:pointer}
.xly-captcha-close:hover{background:#f2f4f7;color:#333}
.xly-captcha-close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round}
.xly-captcha-status{position:absolute;inset:0;padding:20px 24px;box-sizing:border-box;transition:opacity .18s ease;opacity:1}
.xly-captcha-status.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility 0s .18s}
.xly-captcha-status h3{margin:0;font-size:17px;font-weight:600;line-height:26px;color:#242b36}
.xly-captcha-loading{display:flex;align-items:center;justify-content:center;gap:10px;height:132px;color:#858d9a;font-size:12px}
.xly-captcha-spinner{display:block;width:18px;height:18px;box-sizing:border-box;border:2px solid #e5eaf2;border-top-color:#1677ff;border-radius:50%;animation:xly-captcha-spin .8s linear infinite}
.xly-captcha-load-error{padding:28px 0;text-align:center;font-size:12px;color:#858d9a}
.xly-captcha-load-error p{margin:0 0 12px}
.xly-captcha-load-error button{padding:0;border:0;background:none;color:#1677ff;cursor:pointer;font:inherit}
.xly-captcha-host{opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .22s ease,transform .22s cubic-bezier(.2,.7,.2,1),visibility 0s .22s}
.xly-captcha-host.is-ready{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}
.xly-captcha-layer #captcha-outer{position:static!important;width:auto!important;height:auto!important;background:transparent!important;filter:none!important}
.xly-captcha-layer .captcha-content{box-sizing:border-box;position:static;left:auto;top:auto;margin:0;transform:none;padding:20px 24px;width:100%;background:transparent;border-radius:0}
.xly-captcha-layer .captcha-title{padding-right:28px;font-size:17px;font-weight:600;line-height:26px;color:#242b36}
.xly-captcha-layer .captcha-main{gap:10px;align-items:center;margin-top:20px!important;padding-left:0!important}
.xly-captcha-layer #captcha-input{box-sizing:border-box;flex:1;min-width:0;width:100%;height:36px;margin:0;padding:0 10px!important;border:1px solid #d5dae2;border-radius:2px;color:#323b49;font-size:12px;line-height:34px;font-family:inherit;outline:none}
.xly-captcha-layer #captcha-input:focus{border-color:#1677ff}
.xly-captcha-layer #captcha-input::placeholder{color:#a0a7b2}
.xly-captcha-layer #captcha-img{flex-shrink:0;object-fit:contain;width:100px;height:36px}
.xly-captcha-layer #captcha-error-text{font-size:12px!important;min-height:18px;line-height:18px;margin:6px 0 0}
.xly-captcha-layer #captcha-error-text+p{display:none}
.xly-captcha-layer .captcha-footer{display:flex;flex-direction:row;justify-content:flex-end;gap:8px;margin-top:18px}
.xly-captcha-layer #check-btn,.xly-captcha-layer #cancel-btn{box-sizing:border-box;width:auto;min-width:76px;height:34px;margin:0;padding:0 16px;border:1px solid #d5dae2;border-radius:2px;cursor:pointer;font-size:12px;line-height:32px}
.xly-captcha-layer #check-btn{background:#1677ff;border-color:#1677ff;color:white}
.xly-captcha-layer #check-btn:hover{background:#0969da;border-color:#0969da}
.xly-captcha-layer #cancel-btn{background:white;color:#535b68}
.xly-captcha-layer #cancel-btn:hover{color:#1677ff;border-color:#8db8f8}
.xly-captcha-layer button:focus-visible{outline:2px solid #85b3ff;outline-offset:2px}
.xly-captcha-motion-enter-active{transition:opacity .25s cubic-bezier(.2,.7,.2,1)}
.xly-captcha-motion-leave-active{transition:opacity .2s ease;pointer-events:none}
.xly-captcha-motion-enter-active .xly-captcha-panel{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.xly-captcha-motion-leave-active .xly-captcha-panel{transition:transform .2s ease}
.xly-captcha-motion-enter,.xly-captcha-motion-leave-to{opacity:0}
.xly-captcha-motion-enter .xly-captcha-panel{transform:translateY(12px) scale(.985)}
.xly-captcha-motion-leave-to .xly-captcha-panel{transform:translateY(6px) scale(.99)}
@keyframes xly-captcha-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.xly-captcha-layer,.xly-captcha-panel,.xly-captcha-status,.xly-captcha-host{transition:none!important;animation:none!important}.xly-captcha-spinner{animation:none}.xly-captcha-motion-enter .xly-captcha-panel,.xly-captcha-motion-leave-to .xly-captcha-panel{transform:none}}
.xly-captcha-panel{width:440px;min-height:260px;border:0;border-radius:3px;color:#253449;box-shadow:0 12px 40px rgba(13,30,55,.2)}
.xly-captcha-close{top:23px;right:22px;width:30px;height:30px}
.xly-captcha-status{padding:26px 28px}.xly-captcha-status h3{font-size:18px;color:#182b46}
.ax-verification-form{margin:0;padding:26px 28px 24px}.ax-verification-form h3{margin:0 36px 12px 0;font-size:18px;line-height:26px;font-weight:600;color:#182b46}
.ax-verification-description{margin:0 0 24px;color:#536177;font-size:13px;line-height:1.7}.ax-verification-form>label{display:block;margin-bottom:8px;font-size:13px;color:#253449}
.ax-verification-field{display:flex;align-items:center;gap:12px}.xly-captcha-layer .ax-verification-field #captcha-input{height:40px;font-size:14px;border-color:#cbd2dc;border-radius:2px}.xly-captcha-layer .ax-verification-field #captcha-input:focus{border-color:#0052d9}.xly-captcha-layer .ax-verification-field #captcha-input[aria-invalid=true]{border-color:#c9353f}
.ax-verification-image{flex:0 0 116px;height:40px;padding:0;border:0;border-radius:2px;background:#f2f5fa;cursor:pointer}.xly-captcha-layer .ax-verification-image #captcha-img{display:block;width:116px;height:40px;object-fit:contain}
.ax-verification-meta{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:#68778c}.ax-verification-refresh{padding:0;border:0;background:transparent;color:#0052d9;font:inherit;cursor:pointer}
.xly-captcha-layer .ax-verification-form #captcha-error-text{min-height:20px;margin:10px 0 0;color:#c9353f;font-size:13px!important;line-height:20px}
.xly-captcha-layer .ax-verification-form .captcha-footer{margin-top:18px;gap:10px}.xly-captcha-layer .ax-verification-form #check-btn,.xly-captcha-layer .ax-verification-form #cancel-btn{height:36px;min-width:90px;font-size:13px;line-height:34px}.xly-captcha-layer .ax-verification-form #check-btn{background:#0052d9;border-color:#0052d9}.xly-captcha-layer .ax-verification-form #check-btn:hover{background:#0046b8;border-color:#0046b8}.xly-captcha-layer .ax-verification-form button:disabled{cursor:wait;opacity:.65}.xly-captcha-host.is-verified #check-btn{background:#16834d;border-color:#16834d;opacity:1}
.xly-captcha-host.is-verified .ax-verification-field{opacity:.7}.ax-verification-field{transition:opacity .16s}.xly-captcha-layer button{touch-action:manipulation}.xly-captcha-layer #captcha-error-text:not(:empty){animation:ax-captcha-error .16s ease-out}
@keyframes ax-captcha-error{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
@media(max-width:700px){.xly-captcha-layer{padding:16px}.ax-verification-form{padding:24px 22px}.xly-captcha-close{right:16px;top:21px}.ax-verification-image{flex-basis:104px}.xly-captcha-layer .ax-verification-image #captcha-img{width:104px}.ax-verification-description{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.ax-verification-field,.xly-captcha-layer #captcha-error-text{animation:none!important;transition:none!important}}

/* 验证弹窗外壳延迟 350ms 显示（captchaDialog.js 控制），直接弹窗的验证组件不再闪出加载面板 */
.xly-captcha-layer.is-deferred{opacity:0}
/* 加载阶段只显示一个毛玻璃小胶囊（与极验的加载提示一致），内容就绪或加载失败后才显示弹窗外壳 */
.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)){background:transparent}
.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)) .xly-captcha-panel{width:auto;min-height:0;border:0;background:transparent;box-shadow:none;overflow:visible}
.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)) .xly-captcha-close,.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)) .xly-captcha-status h3{display:none}
.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)) .xly-captcha-status{position:static;padding:0}
.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)) .xly-captcha-loading{height:auto;gap:10px;padding:12px 20px;border-radius:999px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 0 0 .5px rgba(0,0,0,.06),0 10px 36px rgba(0,0,0,.14);color:#1d1d1f;font:500 14px/20px -apple-system,BlinkMacSystemFont,'SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif}
.xly-captcha-layer:not(:has(.xly-captcha-host.is-ready)):not(:has(.xly-captcha-load-error)) .xly-captcha-spinner{width:16px;height:16px;border-color:rgba(0,0,0,.1);border-top-color:#0071e3}

/* 极验：弹窗外壳透明，只留极验自己的窗口和加载胶囊 */
.xly-captcha-layer:has(.ax-geetest){background:transparent!important;animation:none!important;opacity:1!important}
.xly-captcha-layer:has(.ax-geetest) .xly-captcha-panel{width:auto;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;transform:none!important}
.xly-captcha-layer:has(.ax-geetest) .xly-captcha-close,.xly-captcha-layer:has(.ax-geetest) .xly-captcha-status{display:none!important}