/* Gravity Forms Secure OTP frontend styles. All selectors are plugin-scoped. */
.gfso-wrap{margin-top:8px;max-width:100%}.gfso-wrap,.gfso-wrap *{box-sizing:border-box}.gfso-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;max-width:100%;margin:0;padding:0}.gfso-otp-row{margin-top:8px;max-width:100%}.gfso-otp-controls{display:grid;gap:10px;align-items:center;max-width:100%;min-width:0}.gfso-otp-input{width:min(220px,100%);max-width:100%;min-width:0;min-height:44px}.gfso-message{margin-top:6px;font-size:.95em}.gfso-success{color:#18794e}.gfso-error{color:#b42318}.gfso-loading{opacity:.72;cursor:wait}.gfso-wrap .gfso-btn{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border-style:solid;line-height:1.2;text-decoration:none;cursor:pointer;max-width:100%;transition-property:background-color,color,border-color,box-shadow,opacity;transition-duration:.15s;transition-timing-function:ease}.gfso-wrap .gfso-btn:disabled,.gfso-wrap .gfso-btn[aria-disabled="true"]{cursor:not-allowed;opacity:.72}.gfso-wrap .gfso-btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.gfso-wrap .gfso-btn[hidden],.gfso-otp-row[hidden]{display:none!important}.gfso-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Send button alignment when the phone/send controls are stacked. */
.gfso-wrap.gfso-phone-layout-separate.gfso-send-stack-align-start .gfso-actions{justify-content:flex-start}.gfso-wrap.gfso-phone-layout-separate.gfso-send-stack-align-center .gfso-actions{justify-content:center}.gfso-wrap.gfso-phone-layout-separate.gfso-send-stack-align-end .gfso-actions{justify-content:flex-end}

/* OTP input + Verify button layouts. These classes exist only inside this plugin's wrapper. */
.gfso-wrap.gfso-otp-layout-separate .gfso-otp-controls{grid-template-columns:minmax(0,1fr);justify-items:start}.gfso-wrap.gfso-otp-layout-separate .gfso-verify{justify-self:start}.gfso-wrap.gfso-otp-layout-same .gfso-otp-controls,.gfso-wrap.gfso-otp-layout-auto .gfso-otp-controls{grid-template-columns:minmax(0,1fr) max-content;align-items:center}.gfso-wrap.gfso-otp-layout-same .gfso-otp-input,.gfso-wrap.gfso-otp-layout-auto .gfso-otp-input{width:100%;max-width:none;min-width:0}.gfso-wrap.gfso-otp-layout-same .gfso-verify,.gfso-wrap.gfso-otp-layout-auto .gfso-verify{align-self:center;white-space:nowrap;max-width:100%}

/* Phone + Send OTP layouts. Only the configured Gravity Forms phone field receives these classes. */
.gfield.gfso-inline-phone-field.gfso-phone-layout-same,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto{display:grid!important;grid-column:1/-1!important;grid-template-columns:minmax(0,1fr) max-content;column-gap:12px;row-gap:6px;align-items:center;max-width:100%;min-width:0;width:100%}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfield_label,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfield_description,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfield_validation_message,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.validation_message,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfield_label,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfield_description,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfield_validation_message,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.validation_message{grid-column:1/-1}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.ginput_container,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.ginput_container{grid-column:1;min-width:0;width:100%;max-width:100%;margin:0!important;align-self:center}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.ginput_container input[type="tel"],.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.ginput_container input[type="tel"],.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.ginput_container .iti,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.ginput_container .iti{width:100%!important;max-width:100%!important;min-width:0}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap{display:contents}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-actions,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-actions{grid-column:2;align-self:center;align-items:center;justify-content:flex-start;margin:0;padding:0;min-width:0;max-width:100%;flex-wrap:nowrap}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-actions>.gfso-send,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-actions>.gfso-send{align-self:center;white-space:nowrap;max-width:100%}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-otp-row,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-message,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-otp-row,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-message{grid-column:1/-1}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-otp-row,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-otp-row{margin-top:2px}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-message,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-message{margin-top:0}

/* Auto Responsive intentionally stacks at the normal mobile/tablet breakpoint. */
@media (max-width:640px){.gfield.gfso-inline-phone-field.gfso-phone-layout-auto{grid-template-columns:minmax(0,1fr)}.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.ginput_container,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-actions,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-otp-row,.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-message{grid-column:1}.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap>.gfso-actions{width:100%}.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap.gfso-send-stack-align-start>.gfso-actions{justify-content:flex-start}.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap.gfso-send-stack-align-center>.gfso-actions{justify-content:center}.gfield.gfso-inline-phone-field.gfso-phone-layout-auto>.gfso-wrap.gfso-send-stack-align-end>.gfso-actions{justify-content:flex-end}.gfso-wrap.gfso-otp-layout-auto .gfso-otp-controls{grid-template-columns:minmax(0,1fr)}.gfso-wrap.gfso-otp-layout-auto .gfso-otp-input{width:100%;max-width:100%}.gfso-wrap.gfso-otp-layout-auto .gfso-verify{justify-self:start}}

/* Same Row stays horizontal whenever practical. On extremely narrow screens we stack as a safety measure to prevent overflow. */
@media (max-width:380px){.gfield.gfso-inline-phone-field.gfso-phone-layout-same{grid-template-columns:minmax(0,1fr)}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.ginput_container,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-actions,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-otp-row,.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-message{grid-column:1}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap>.gfso-actions{width:100%}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap.gfso-send-stack-align-start>.gfso-actions{justify-content:flex-start}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap.gfso-send-stack-align-center>.gfso-actions{justify-content:center}.gfield.gfso-inline-phone-field.gfso-phone-layout-same>.gfso-wrap.gfso-send-stack-align-end>.gfso-actions{justify-content:flex-end}.gfso-wrap.gfso-otp-layout-same .gfso-otp-controls{grid-template-columns:minmax(0,1fr)}.gfso-wrap.gfso-otp-layout-same .gfso-otp-input{width:100%;max-width:100%}.gfso-wrap.gfso-otp-layout-same .gfso-verify{justify-self:start}}

/* Only Submit controls explicitly locked by this plugin receive the not-allowed cursor. */
.gform_wrapper .gfso-submit-locked[data-gfso-submit="1"],
.gform_wrapper [data-gfso-submit="1"]:disabled{cursor:not-allowed!important;}

/* v1.4 state hooks. Visual values are generated per integration by PHP. */
.gfso-wrap .gfso-btn.gfso-loading{cursor:wait}
.gfso-wrap .gfso-btn.gfso-countdown{pointer-events:none}
.gfso-wrap .gfso-otp-input.gfso-input-error,.gfso-wrap .gfso-otp-input.gfso-input-success{transition:border-color .15s ease,background-color .15s ease,color .15s ease}
