.form-captcha{scroll-margin-top:100px;min-width:0;width:100%;max-width:380px;margin:12px 0 4px;padding:0;border:1px solid #cbdcd0;border-radius:12px;background:#f8faf7;box-sizing:border-box;color:#244c43}

.form-captcha p{margin:0 0 12px;line-height:1.5}
.form-captcha .captcha-prompt{font-size:1rem;font-weight:650}
.captcha-actor-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.captcha-actor-row p{font-size:.8rem;color:#4f695d;margin:0;flex:1}
.captcha-actor{flex:none;display:block;width:60px;height:60px;background-size:contain;background-repeat:no-repeat;cursor:grab;touch-action:none;user-select:none}
.captcha-board{position:relative;max-width:400px;width:100%;margin:0 auto 10px;border-radius:12px;overflow:hidden;background:#eaf2e8}
.captcha-image{display:block;width:100%;height:auto;aspect-ratio:4/3;user-select:none}
.captcha-cells{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}
.form-captcha .captcha-cell{display:flex;align-items:flex-start;justify-content:flex-end;padding:5px 8px;margin:0;min-width:0;min-height:44px;border:3px solid transparent;border-radius:10px;background:transparent;color:#244c43;font:inherit;font-size:.85rem;line-height:1.2;font-weight:750;cursor:pointer;touch-action:manipulation;box-shadow:none}
.form-captcha .captcha-cell:hover{background:#47987915;border-color:#71a684}
.form-captcha .captcha-cell[aria-pressed=true]{border-color:#368364;background:#47987920}
.form-captcha .captcha-cell:focus-visible{outline:3px solid #153e33;outline-offset:-5px}
.form-captcha .captcha-cell:disabled{opacity:1;cursor:default}
.captcha-player{display:none;position:absolute;width:42px;height:42px;background-size:contain;transform:translate(-50%,-50%);transition:left .18s ease,top .18s ease;filter:drop-shadow(0 3px 3px #31503c30);pointer-events:auto;cursor:grab;touch-action:none}
.captcha-player.is-visible{display:block}
.captcha-drag-ghost{position:fixed;z-index:10000;display:block;width:62px;height:62px;background-size:contain;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 4px 5px #244c4344)}
.form-captcha .captcha-help{font-size:.73rem;color:#53685b}
.form-captcha .captcha-status{font-size:.83rem;font-weight:500;margin:0;padding:0 16px 12px}.form-captcha .captcha-status:empty{display:none}.captcha-dialog-status{font-size:.86rem;font-weight:650}
.form-captcha .captcha-error{color:#983820}
.captcha-controls{display:flex;flex-wrap:wrap;gap:4px 14px}
.form-captcha .captcha-controls button,.form-captcha .captcha-audio-check{min-height:44px;padding:6px 0;border:0;background:transparent;font:inherit;font-size:.8rem;color:#244c43;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.form-captcha button:focus-visible,.form-captcha summary:focus-visible{outline:3px solid #21684f;outline-offset:3px}
.form-captcha button:disabled{cursor:wait;opacity:.6}
.captcha-audio{margin-top:8px;border-top:1px solid #cbdcd0;padding-top:4px}
.captcha-audio summary{padding:12px 0;cursor:pointer;font-size:.84rem;font-weight:650;min-height:44px;box-sizing:border-box}
.captcha-audio p{font-size:.82rem}
.captcha-audio audio{display:block;max-width:100%;width:100%;margin:0 0 12px}
.form-captcha .captcha-audio label{display:block;font-size:.84rem}
.form-captcha .captcha-audio input{margin-top:6px;width:100%;box-sizing:border-box;font-size:1rem;letter-spacing:.2em}
.form-captcha.captcha-solved{background:#edf7eb;border-color:#81b391}

.captcha-audio-mode .captcha-game{display:none}
.captcha-audio-mode .captcha-reset{display:none}
.form-captcha:not(.captcha-enhanced) .captcha-check,.form-captcha:not(.captcha-enhanced) .captcha-status,.captcha-enhanced .captcha-fallback{display:none}
@media(max-width:380px){.captcha-dialog{padding:14px}.captcha-actor{width:48px;height:48px}.captcha-player{width:32px;height:32px}.form-captcha .captcha-cell{padding:3px;font-size:.7rem}}
@media(prefers-reduced-motion:reduce){.captcha-player{transition:none}}
@media(forced-colors:active){.form-captcha .captcha-cell[aria-pressed=true]{border-color:Highlight}.form-captcha .captcha-cell:focus-visible{outline-color:Highlight}}

.form-captcha .captcha-check{width:100%;display:flex;align-items:center;gap:14px;padding:17px 16px;min-height:72px;border:0;border-radius:12px;background:transparent;color:#244c43;text-align:left;font:inherit;font-size:1rem;cursor:pointer}
.captcha-check-box{flex:none;display:grid;place-items:center;width:28px;height:28px;border:2px solid #758c82;border-radius:4px;background:#fff;box-sizing:border-box}
.captcha-check[aria-checked=true] .captcha-check-box{border-color:#287a54;background:#287a54;color:#fff}
.captcha-check[aria-checked=true] .captcha-check-box:after{content:'✓';font-size:22px;font-weight:750}
.captcha-check[aria-busy=true] .captcha-check-box{border-radius:50%;border-color:#cbdcd0;border-top-color:#287a54;animation:captcha-spin .8s linear infinite}
.captcha-dialog{position:fixed;inset:0;box-sizing:border-box;width:calc(100% - 28px);max-width:440px;max-height:calc(100% - 28px);max-height:calc(100dvh - 28px);margin:auto;padding:20px;border:1px solid #cbdcd0;border-radius:18px;background:#f4f8f1;color:#244c43;overflow:auto;overscroll-behavior:contain;text-align:left}
.captcha-dialog:not([open]){display:none}
.captcha-dialog::backdrop{background:#102a2580}
.captcha-dialog-fallback{z-index:10000;box-shadow:0 0 0 100vmax #102a2580}
.captcha-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.form-captcha .captcha-dialog-heading h2{margin:0;font-size:1.15rem;line-height:1.3;letter-spacing:normal}
.form-captcha .captcha-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:#244c43;font:inherit;font-size:1.8rem;cursor:pointer}
.captcha-fallback{padding:16px}.captcha-fallback summary{cursor:pointer;min-height:44px}.captcha-fallback audio{max-width:100%;width:100%}
@keyframes captcha-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.captcha-check[aria-busy=true] .captcha-check-box{animation:none;border-style:dotted}}
@media(forced-colors:active){.captcha-check[aria-checked=true] .captcha-check-box{background:Highlight;color:HighlightText;border-color:Highlight}}
