/* Shared FitFourby feedback; native form fallback remains until JS enhancement. */
.ff-state{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid var(--border,#d8d5cf);border-left:4px solid var(--accent,#ff6624);border-radius:6px;background:var(--surface,#fff);color:var(--text-1,#20201d);font:400 14px/1.55 var(--font,Outfit,sans-serif);overflow-wrap:anywhere;max-width:100%;box-sizing:border-box}
.ff-state[hidden],.ff-field-error[hidden],.ff-form-summary[hidden]{display:none!important}
.ff-state svg{flex:none;width:20px;height:20px;margin-top:1px}
.ff-state>span{flex:1;min-width:0}
.ff-state[data-tone=error]{border-color:#DB1A1A;background:#fff5f4;color:#a81414}
.ff-state[data-tone=warning]{border-left-color:#93600b;background:#fff9ed;color:#634109}
.ff-state[data-tone=success]{border-color:var(--green,#257144);background:#edf7ee;color:#1b5832}
.ff-state[data-tone=pending]{border-left-color:var(--accent,#ff6624)}
.ff-form-summary.ff-state{display:block;margin:0 0 18px}.ff-form-summary>svg{display:inline-block;vertical-align:middle;margin-right:8px}.ff-form-summary ul{margin:8px 0 0;padding-left:24px}.ff-form-summary a{color:inherit!important;text-decoration:underline}
.ff-field-error{display:block;color:#b01515;font-size:13px;line-height:1.5;margin-top:6px;overflow-wrap:anywhere}
[aria-invalid=true]:is(input,select,textarea){border-color:#DB1A1A!important;outline-color:#DB1A1A!important}
.ff-toast{position:fixed;top:calc(var(--nav-h,64px) + max(12px,env(safe-area-inset-top)));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);z-index:1500;box-shadow:0 6px 22px #0002;animation:ff-toast-drop .18s ease-out}
.ff-toast button{flex:none;min-height:44px;padding:8px 12px;border:1px solid currentColor;background:transparent;color:inherit;border-radius:4px;font:600 13px var(--font,Outfit,sans-serif);cursor:pointer}.ff-toast svg{margin-top:12px}.ff-toast>span{align-self:center}.ff-toast-close{font-weight:400!important}
@keyframes ff-toast-drop{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:600px){.ff-toast{gap:8px;padding:10px;flex-wrap:wrap}.ff-toast>span{flex-basis:calc(100% - 32px)}.ff-toast svg{margin-top:2px}.ff-toast button{margin-left:auto}.ff-toast button+button{margin-left:0}}
@media(prefers-reduced-motion:reduce){.ff-toast{animation:none}}
/* Apply to forms on charcoal surfaces; error text must remain legible there. */
.ff-form-dark .ff-field-error{color:#ffb4a9}.ff-form-dark [aria-invalid=true]:is(input,select,textarea){border-color:#ff8e7d!important}
/* Bot field stays outside visual and keyboard flow. */
.ff-form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
