/* GENERATED IN PART — regenerate with scripts/build_demo_form_css.py
   after changing the form's markup. The utility rules below come from
   the real Tailwind compiler run over the real component markup, so a
   page without Tailwind renders the form identically to one with it. */

/* ── What the component brings with it ──────────────────────────────────────
   Scoped so a host page's own input, button and heading styling stops at the
   card, and so essential.html (which styles all three quite differently) does
   not have to know the form exists. */
#sn-demo-form, #sn-demo-form *, #sn-demo-form *::before, #sn-demo-form *::after {
  box-sizing: border-box;
  --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0;
  --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1;
  --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000; --tw-ring-inset: ;
  --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / .5);
  --tw-border-opacity: 1; --tw-bg-opacity: 1; --tw-text-opacity: 1;
}
#sn-demo-form { font-family: 'Inter', system-ui, -apple-system, sans-serif; color: #0D1117; }
#sn-demo-form button, #sn-demo-form input, #sn-demo-form select, #sn-demo-form textarea {
  font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit;
  letter-spacing: inherit; color: inherit; margin: 0; padding: 0;
  border: 0 solid #e5e7eb; background-color: transparent; background-image: none;
}
#sn-demo-form button { text-transform: none; -webkit-appearance: button; cursor: pointer; }
#sn-demo-form button:disabled, #sn-demo-form input:disabled { cursor: default; }
#sn-demo-form input::placeholder, #sn-demo-form textarea::placeholder { opacity: 1; color: #B9B2A4; }
#sn-demo-form h1, #sn-demo-form h2, #sn-demo-form h3,
#sn-demo-form p, #sn-demo-form label { margin: 0; font-size: inherit; font-weight: inherit; }
#sn-demo-form img, #sn-demo-form svg { display: block; vertical-align: middle; }
#sn-demo-form img { max-width: 100%; height: auto; }
#sn-demo-form [hidden] { display: none !important; }
#sn-demo-form a { color: inherit; text-decoration: inherit; }

/* ── The card, the fields and the segmented control ──
   Lifted verbatim out of index.html's <style> block, where they applied to the
   whole page and only the form used them. */
#sn-demo-form.sn-card, #sn-demo-form .sn-card {
  background: #F6F3EC;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85),
              0 1px 2px rgba(15,27,51,.05),
              0 14px 28px -10px rgba(15,27,51,.20),
              0 36px 64px -24px rgba(15,27,51,.32);
}
#sn-demo-form .sn-input {
  background: #FFFDFA; border-color: #E6E0D2;
  box-shadow: inset 0 1px 2px rgba(15,27,51,.055);
  transition: border-color .18s, box-shadow .18s, background .18s;
}
#sn-demo-form .sn-input::placeholder { color: #B9B2A4; }
#sn-demo-form .sn-input:hover { border-color: #D9D1BF; }
#sn-demo-form .sn-input:focus {
  outline: none; background: #fff; border-color: #E5383B;
  box-shadow: 0 0 0 3px rgba(229,56,59,.12), inset 0 1px 2px rgba(15,27,51,.04);
}
#sn-demo-form .sn-seg {
  background: #EFEBE1; border: 1px solid #E6E0D3; border-radius: 11px; padding: 3px;
  box-shadow: inset 0 1px 2px rgba(15,27,51,.05);
}
#sn-demo-form .sn-seg button { border-radius: 8px; transition: .18s; }
#sn-demo-form .sn-tab-on {
  background: #fff !important; color: #E5383B !important;
  box-shadow: 0 1px 2px rgba(15,27,51,.10), 0 2px 6px -2px rgba(15,27,51,.12);
}

/* ── Step track ── two dots read as decoration; a connected track reads as
   progress through them. */
#sn-demo-form .sn-track { display: grid; grid-template-columns: auto 1fr auto;
                          align-items: center; gap: 10px; }
#sn-demo-form .sn-track-line { height: 2px; background: #e6dcdc; border-radius: 2px;
                               position: relative; overflow: hidden; }
#sn-demo-form .sn-track-line::after {
  content: ""; position: absolute; inset: 0; width: var(--sn-progress, 0%);
  background: #E5383B; transition: width .45s cubic-bezier(.25,.46,.45,.94);
}
#sn-demo-form .sn-step { display: flex; align-items: center; gap: 6px; font-size: 11px;
                         font-weight: 700; color: #9aa3af; transition: color .2s;
                         white-space: nowrap; }
#sn-demo-form .sn-step .n {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 99px;
  background: transparent; border: 1.5px solid #E5383B; color: #8d8383;
  font-size: 11px; font-weight: 800;
  transition: background .25s, border-color .25s, color .25s;
}
#sn-demo-form .sn-step.on { color: #3f4854; }
#sn-demo-form .sn-step.on .n { background: #E5383B; border-color: #E5383B; color: #fff; }

#sn-demo-form .sn-sr { position: absolute; width: 1px; height: 1px; padding: 0;
                       margin: -1px; overflow: hidden; clip: rect(0,0,0,0);
                       white-space: nowrap; border: 0; }
#sn-demo-form .btn-press:active { transform: scale(.97); }

/* ── The explainer under the tabs ──
   Names the actual input and the actual outcome. Without it the card asks for
   a business name and a city and never says what Neuro does with them. */
#sn-demo-form .snf-explain { margin-top: 10px; font-size: 12px; line-height: 1.55;
                             color: #6B6455; text-align: center; }
#sn-demo-form .snf-explain b { display: block; margin-bottom: 2px;
                               font-weight: 700; color: #3F4A5A; }

@keyframes sn-form-in { from { opacity: 0; transform: translateY(20px); }
                        to   { opacity: 1; transform: translateY(0); } }
#sn-demo-form.form-animate, #sn-demo-form .form-animate {
  animation: sn-form-in .7s cubic-bezier(.25,.46,.45,.94) .3s both;
}
@media (prefers-reduced-motion: reduce) {
  #sn-demo-form.form-animate, #sn-demo-form .form-animate { animation: none; }
  #sn-demo-form .sn-track-line::after { transition: none; }
}

#sn-demo-form .pointer-events-none {
  pointer-events: none
}

#sn-demo-form .visible {
  visibility: visible
}

#sn-demo-form .invisible {
  visibility: hidden
}

#sn-demo-form .mx-auto {
  margin-left: auto;
  margin-right: auto
}

#sn-demo-form .-mt-1 {
  margin-top: -0.25rem
}

#sn-demo-form .-mt-1\.5 {
  margin-top: -0.375rem
}

#sn-demo-form .mb-1 {
  margin-bottom: 0.25rem
}

#sn-demo-form .mb-1\.5 {
  margin-bottom: 0.375rem
}

#sn-demo-form .mb-2 {
  margin-bottom: 0.5rem
}

#sn-demo-form .mb-3 {
  margin-bottom: 0.75rem
}

#sn-demo-form .mb-3\.5 {
  margin-bottom: 0.875rem
}

#sn-demo-form .mb-4 {
  margin-bottom: 1rem
}

#sn-demo-form .mb-5 {
  margin-bottom: 1.25rem
}

#sn-demo-form .mb-6 {
  margin-bottom: 1.5rem
}

#sn-demo-form .mt-0\.5 {
  margin-top: 0.125rem
}

#sn-demo-form .mt-1 {
  margin-top: 0.25rem
}

#sn-demo-form .mt-1\.5 {
  margin-top: 0.375rem
}

#sn-demo-form .mt-2 {
  margin-top: 0.5rem
}

#sn-demo-form .mt-2\.5 {
  margin-top: 0.625rem
}

#sn-demo-form .mt-3 {
  margin-top: 0.75rem
}

#sn-demo-form .mt-4 {
  margin-top: 1rem
}

#sn-demo-form .mt-5 {
  margin-top: 1.25rem
}

#sn-demo-form .block {
  display: block
}

#sn-demo-form .flex {
  display: flex
}

#sn-demo-form .inline-flex {
  display: inline-flex
}

#sn-demo-form .grid {
  display: grid
}

#sn-demo-form .hidden {
  display: none
}

#sn-demo-form .aspect-\[16\/7\] {
  aspect-ratio: 16/7
}

#sn-demo-form .h-10 {
  height: 2.5rem
}

#sn-demo-form .h-14 {
  height: 3.5rem
}

#sn-demo-form .h-16 {
  height: 4rem
}

#sn-demo-form .h-3 {
  height: 0.75rem
}

#sn-demo-form .h-4 {
  height: 1rem
}

#sn-demo-form .h-5 {
  height: 1.25rem
}

#sn-demo-form .h-6 {
  height: 1.5rem
}

#sn-demo-form .h-7 {
  height: 1.75rem
}

#sn-demo-form .h-8 {
  height: 2rem
}

#sn-demo-form .h-full {
  height: 100%
}

#sn-demo-form .w-10 {
  width: 2.5rem
}

#sn-demo-form .w-14 {
  width: 3.5rem
}

#sn-demo-form .w-16 {
  width: 4rem
}

#sn-demo-form .w-3 {
  width: 0.75rem
}

#sn-demo-form .w-4 {
  width: 1rem
}

#sn-demo-form .w-5 {
  width: 1.25rem
}

#sn-demo-form .w-6 {
  width: 1.5rem
}

#sn-demo-form .w-7 {
  width: 1.75rem
}

#sn-demo-form .w-8 {
  width: 2rem
}

#sn-demo-form .w-full {
  width: 100%
}

#sn-demo-form .min-w-0 {
  min-width: 0px
}

#sn-demo-form .max-w-xs {
  max-width: 20rem
}

#sn-demo-form .flex-1 {
  flex: 1 1 0%
}

#sn-demo-form .flex-shrink-0 {
  flex-shrink: 0
}

@keyframes spin {
  to {
    transform: rotate(360deg)
  }
}

#sn-demo-form .animate-spin {
  animation: spin 1s linear infinite
}

#sn-demo-form .cursor-pointer {
  cursor: pointer
}

#sn-demo-form .grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

#sn-demo-form .flex-col {
  flex-direction: column
}

#sn-demo-form .items-start {
  align-items: flex-start
}

#sn-demo-form .items-center {
  align-items: center
}

#sn-demo-form .justify-center {
  justify-content: center
}

#sn-demo-form .gap-1 {
  gap: 0.25rem
}

#sn-demo-form .gap-1\.5 {
  gap: 0.375rem
}

#sn-demo-form .gap-2 {
  gap: 0.5rem
}

#sn-demo-form .gap-3 {
  gap: 0.75rem
}

#sn-demo-form .overflow-hidden {
  overflow: hidden
}

#sn-demo-form .whitespace-nowrap {
  white-space: nowrap
}

#sn-demo-form .rounded-2xl {
  border-radius: 1rem
}

#sn-demo-form .rounded-full {
  border-radius: 9999px
}

#sn-demo-form .rounded-lg {
  border-radius: 0.5rem
}

#sn-demo-form .rounded-xl {
  border-radius: 0.75rem
}

#sn-demo-form .border {
  border-width: 1px
}

#sn-demo-form .border-2 {
  border-width: 2px
}

#sn-demo-form .border-t {
  border-top-width: 1px
}

#sn-demo-form .border-dashed {
  border-style: dashed
}

#sn-demo-form .\!border-\[\#E5383B\] {
  --tw-border-opacity: 1 !important;
  border-color: rgb(229 56 59 / var(--tw-border-opacity, 1)) !important
}

#sn-demo-form .border-\[\#E2BDBD\] {
  --tw-border-opacity: 1;
  border-color: rgb(226 189 189 / var(--tw-border-opacity, 1))
}

#sn-demo-form .border-\[\#E5383B\] {
  --tw-border-opacity: 1;
  border-color: rgb(229 56 59 / var(--tw-border-opacity, 1))
}

#sn-demo-form .border-\[\#EAD3D3\] {
  --tw-border-opacity: 1;
  border-color: rgb(234 211 211 / var(--tw-border-opacity, 1))
}

#sn-demo-form .border-\[\#FDDCDC\] {
  --tw-border-opacity: 1;
  border-color: rgb(253 220 220 / var(--tw-border-opacity, 1))
}

#sn-demo-form .border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1))
}

#sn-demo-form .border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1))
}

#sn-demo-form .bg-\[\#E5383B\] {
  --tw-bg-opacity: 1;
  background-color: rgb(229 56 59 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-\[\#F0FFF4\] {
  --tw-bg-opacity: 1;
  background-color: rgb(240 255 244 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-\[\#FEF8F8\] {
  --tw-bg-opacity: 1;
  background-color: rgb(254 248 248 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-\[\#FFF0F0\] {
  --tw-bg-opacity: 1;
  background-color: rgb(255 240 240 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-\[\#FFF8F8\] {
  --tw-bg-opacity: 1;
  background-color: rgb(255 248 248 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .object-cover {
  -o-object-fit: cover;
     object-fit: cover
}

#sn-demo-form .object-top {
  -o-object-position: top;
     object-position: top
}

#sn-demo-form .p-6 {
  padding: 1.5rem
}

#sn-demo-form .px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem
}

#sn-demo-form .px-4 {
  padding-left: 1rem;
  padding-right: 1rem
}

#sn-demo-form .py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem
}

#sn-demo-form .py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem
}

#sn-demo-form .py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem
}

#sn-demo-form .py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem
}

#sn-demo-form .py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem
}

#sn-demo-form .py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem
}

#sn-demo-form .py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem
}

#sn-demo-form .pl-11 {
  padding-left: 2.75rem
}

#sn-demo-form .pt-2\.5 {
  padding-top: 0.625rem
}

#sn-demo-form .text-left {
  text-align: left
}

#sn-demo-form .text-center {
  text-align: center
}

#sn-demo-form .text-2xl {
  font-size: 1.5rem;
  line-height: 2rem
}

#sn-demo-form .text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem
}

#sn-demo-form .text-\[10px\] {
  font-size: 10px
}

#sn-demo-form .text-\[11px\] {
  font-size: 11px
}

#sn-demo-form .text-\[12px\] {
  font-size: 12px
}

#sn-demo-form .text-\[15px\] {
  font-size: 15px
}

#sn-demo-form .text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem
}

#sn-demo-form .text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem
}

#sn-demo-form .text-xs {
  font-size: 0.75rem;
  line-height: 1rem
}

#sn-demo-form .font-bold {
  font-weight: 700
}

#sn-demo-form .font-medium {
  font-weight: 500
}

#sn-demo-form .font-normal {
  font-weight: 400
}

#sn-demo-form .font-semibold {
  font-weight: 600
}

#sn-demo-form .uppercase {
  text-transform: uppercase
}

#sn-demo-form .leading-relaxed {
  line-height: 1.625
}

#sn-demo-form .leading-snug {
  line-height: 1.375
}

#sn-demo-form .leading-tight {
  line-height: 1.25
}

#sn-demo-form .tracking-\[0\.07em\] {
  letter-spacing: 0.07em
}

#sn-demo-form .text-\[\#E5383B\] {
  --tw-text-opacity: 1;
  color: rgb(229 56 59 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-gray-300 {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-red-400 {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}

#sn-demo-form .text-yellow-400 {
  --tw-text-opacity: 1;
  color: rgb(250 204 21 / var(--tw-text-opacity, 1))
}

#sn-demo-form .underline {
  text-decoration-line: underline
}

#sn-demo-form .line-through {
  text-decoration-line: line-through
}

#sn-demo-form .underline-offset-2 {
  text-underline-offset: 2px
}

#sn-demo-form .opacity-0 {
  opacity: 0
}

#sn-demo-form .opacity-25 {
  opacity: 0.25
}

#sn-demo-form .opacity-75 {
  opacity: 0.75
}

#sn-demo-form .transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms
}

#sn-demo-form .hover\:border-\[\#E5383B\]:hover {
  --tw-border-opacity: 1;
  border-color: rgb(229 56 59 / var(--tw-border-opacity, 1))
}

#sn-demo-form .hover\:border-gray-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1))
}

#sn-demo-form .hover\:bg-\[\#c0272a\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(192 39 42 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .hover\:bg-\[\#cf2f32\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(207 47 50 / var(--tw-bg-opacity, 1))
}

#sn-demo-form .hover\:text-gray-500:hover {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1))
}

#sn-demo-form .hover\:text-gray-600:hover {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1))
}

#sn-demo-form .hover\:text-gray-700:hover {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1))
}

#sn-demo-form .hover\:text-gray-800:hover {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1))
}

#sn-demo-form .hover\:text-red-500:hover {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1))
}

#sn-demo-form .focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px
}

#sn-demo-form .focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)
}

#sn-demo-form .focus-visible\:ring-\[\#E5383B\]\/30:focus-visible {
  --tw-ring-color: rgb(229 56 59 / 0.3)
}

@media (min-width: 640px) {
  #sn-demo-form .sm\:p-7 {
    padding: 1.75rem
  }

  #sn-demo-form .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem
  }
}
