.public-form-captcha {
    box-sizing: border-box;
    position: fixed;
    inset: 0;
    z-index: 2147483001;
    width: min(520px, calc(100% - 32px));
    height: fit-content;
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 24px;
    overflow: auto;
    border: 1px solid #d4dcde;
    border-radius: 16px;
    background: #fff;
    color: #164d58;
    box-shadow: 0 20px 70px #123f4a40;
    font: inherit;
}
.public-form-captcha:not([open]) { display: none; }
.public-form-captcha::backdrop { background: #143e4b99; }
.public-form-captcha-is-open { overflow: hidden; }
.public-form-captcha-fallback-open::before { content: ""; position: fixed; inset: 0; z-index: 2147483000; background: #143e4b99; }
.public-form-captcha__title { margin: 0 0 8px; color: inherit; font-size: 1.4rem; line-height: 1.3; }
.public-form-captcha__help { margin: 0 0 16px; font-size: 1rem; line-height: 1.5; }
.public-form-captcha__target { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-weight: 600; }
.public-form-captcha__target[hidden], .public-form-captcha__picture[hidden] { display: none; }
.public-form-captcha__target-image { width: 24px; height: 24px; object-fit: contain; }
.public-form-captcha__picture { position: relative; width: 100%; aspect-ratio: 450 / 200; }
.public-form-captcha__image { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; }
.public-form-captcha__grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr)); }
.public-form-captcha__cell { display: block; min-width: 0; min-height: 0; margin: 0; padding: 0; appearance: none; border: 2px solid transparent; border-radius: 0; background: transparent; cursor: pointer; }
.public-form-captcha__cell:hover:not(:disabled) { background: #ff973d20; }
.public-form-captcha__cell[aria-pressed="true"] { border-color: #12616e; background: #12616e26; }
.public-form-captcha__cell:focus-visible { position: relative; z-index: 1; outline: 3px solid #f79835; outline-offset: -3px; }
.public-form-captcha__cell:disabled { cursor: wait; }
.public-form-captcha__status { min-height: 1.5em; margin: 12px 0; font-size: .95rem; line-height: 1.5; }
.public-form-captcha__status--error { color: #a52b2b; }
.public-form-captcha__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.public-form-captcha__button { min-height: 44px; margin: 0; padding: 10px 16px; border: 1px solid #a7bfc4; border-radius: 10px; background: #fff; color: inherit; font: inherit; font-weight: 600; line-height: 1.3; cursor: pointer; }
.public-form-captcha__button--reload { margin-right: auto; }
.public-form-captcha__button--primary { border-color: #ff973d; background: #ff973d; color: #164d58; }
.public-form-captcha__button:focus-visible { outline: 3px solid #12616e; outline-offset: 2px; }
.public-form-captcha__button:disabled { opacity: .55; cursor: wait; }
@media (max-width: 380px) {
    .public-form-captcha { padding: 16px; }
    .public-form-captcha__actions { display: grid; grid-template-columns: 1fr 1fr; }
    .public-form-captcha__button--reload { grid-column: 1 / -1; margin: 0; }
}
