.captcha-field {
    clear: both;
    display: flow-root;
    width: 100%;
}
.captcha-challenge {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
}
.captcha-challenge .captcha-image {
    display: block;
    flex: 0 1 250px;
    min-width: 0;
    width: 250px;
    object-fit: contain;
}
.captcha-challenge .captcha-refresh {
    position: static;
    flex: 0 0 auto;
}
.form-clip-loader {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-right: 9px;
    vertical-align: -3px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: form-spin .65s linear infinite;
}
@keyframes form-spin { to { transform: rotate(360deg); } }
[data-ajax-form][aria-busy="true"] button[type="submit"] { cursor: wait; opacity: .75; }
.server-validation-error { display: block; color: #c62828; font-size: 13px; line-height: 1.5; margin-top: 5px; }
[data-ajax-form] [aria-invalid="true"] { border-color: #c62828; }
.form-toast-container { position: fixed; top: 20px; right: 20px; z-index: 20000; width: min(360px, calc(100vw - 40px)); }
.form-toast { position: relative; overflow: hidden; padding: 17px 42px 20px 18px; margin-bottom: 12px; border-radius: 7px; background: #238447; color: #fff; box-shadow: 0 5px 24px #0003; font-size: 14px; line-height: 1.5; }
.form-toast-warning { background: #805900; }
.form-toast-error { background: #b3261e; }
.form-toast-info { background: #176b91; }
.form-toast-close { position: absolute; top: 8px; right: 10px; border: 0; padding: 0 4px; background: transparent; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.form-toast-progress { position: absolute; bottom: 0; left: 0; width: 100%; height: 4px; background: #ffffffb3; transform-origin: left; animation: form-toast-countdown var(--toast-duration) linear forwards; }
@keyframes form-toast-countdown { to { transform: scaleX(0); } }
