/* FireRaid signup — vanilla CSS */
.fr-container { max-width: 480px; margin: 3rem auto; padding: 0 1rem; font-family: system-ui, sans-serif; }
.fr-subtitle { color: #666; margin-top: -0.5rem; }
.fr-form-fields { border: none; padding: 0; }
.fr-form-fields legend { font-weight: 600; margin-bottom: 1rem; }
.fr-form-fields label { display: block; margin-top: 1rem; font-size: 0.9rem; font-weight: 500; }
.fr-form-fields input, .fr-form-fields textarea { width: 100%; padding: 0.5rem; margin-top: 0.25rem;
  border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; font-size: 1rem; }
#submit-btn { margin-top: 1.5rem; width: 100%; padding: 0.75rem; background: #2563eb; color: white;
  border: none; border-radius: 4px; font-size: 1rem; cursor: pointer; }
#submit-btn:hover { background: #1d4ed8; }
.fr-disclaimer { font-size: 0.8rem; color: #888; margin-top: 2rem; }
.fr-lab-banner { background: #dc2626; color: white; text-align: center; padding: 0.5rem; font-weight: 600; font-size: 0.9rem; }

/* Defense-injected markup (FR-R6-046: moved out of inline <style>). */
.fr-canary { border-left: 3px solid #b45309; background: #fffbeb; padding: 0.6rem 0.9rem;
  margin: 0.75rem 0; font-size: 0.9rem; color: #92400e; border-radius: 4px; }
.fr-canary code { background: #fef3c7; padding: 0.1rem 0.3rem; border-radius: 3px; }
/* P1-AUDIT-2: visually-hidden utility for INERT artifacts. Lab decoys use
   .fr-decoy (below); PRODUCTION decoys must not carry the greppable "fr-decoy"
   name, so they get this neutral offscreen class instead. It must override the
   generic full-width input rule (.fr-form-fields input) so a production decoy
   never renders as a visible textbox. aria-hidden + tabindex=-1 already remove
   it from the AX tree and tab order; this hides it from the EYE. */
.fr-visually-hidden { 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; clip-path: inset(50%) !important;
  white-space: nowrap !important; border: 0 !important; }
.fr-decoy { 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; }
.fr-result { margin-top: 1rem; padding: 1rem; border-radius: 4px; background: #f1f5f9; }
.fr-result-status { font-weight: 600; }
.fr-result-disposition { color: #64748b; }
.fr-result-error { color: #dc2626; }
/* FR-R6-047: distinct placement wrappers. */
.fr-canary-wrap { margin: 0.75rem 0; }
.fr-canary-inert { border: 1px dashed #94a3b8; background: #f8fafc; padding: 0.6rem 0.9rem;
  margin: 0.75rem 0; font-size: 0.9rem; color: #475569; border-radius: 4px; }
.fr-canary-server-injected { border-right: 3px solid #0369a1; background: #f0f9ff; padding: 0.6rem 0.9rem;
  margin: 0.75rem 0; font-size: 0.9rem; color: #075985; border-radius: 4px; }
.fr-retry { margin-top: 0.5rem; padding: 0.5rem 1rem; background: #2563eb; color: white;
  border: none; border-radius: 4px; font-size: 0.9rem; cursor: pointer; }
.fr-retry:hover { background: #1d4ed8; }
