/* ==== BASE STYLES (Original) ==== */
a,button{background-color:transparent}body,h1,h4,h5,p,pre,ul{margin:0}.form-checkbox,.form-select{-webkit-print-color-adjust:exact;color-adjust:exact}.block,details,main{display:block}h1{font-size:2em}code,pre{font-size:1em}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}.overflow-auto,textarea{overflow:auto}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}textarea{resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.hidden,[hidden],template{display:none}.form-checkbox,.inline-block{display:inline-block}button{background-image:none}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}ul{list-style:none;padding:0}html{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}.form-input,.form-select,.form-textarea{-webkit-appearance:none;-moz-appearance:none;border-color:#a0aec0;border-width:2px;border-radius:.25rem;font-size:1rem;line-height:1.5;box-shadow:none;background-color:#fff;font-weight:500}img{border-style:solid;max-width:100%;height:auto}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}.cursor-pointer,[role=button],button{cursor:pointer}h1,h4,h5{font-size:inherit;font-weight:inherit}button,input,select,textarea{padding:0;line-height:inherit;color:inherit}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}img,svg{display:block;vertical-align:middle}.container,.w-full{width:100%}.form-input,.form-textarea{appearance:none;padding:.5rem .75rem}.form-input::-moz-placeholder{color:#a0aec0;opacity:1}.form-input:-ms-input-placeholder{color:#a0aec0;opacity:1}.form-input::-ms-input-placeholder{color:#a0aec0;opacity:1}.form-input::placeholder{color:#a0aec0;opacity:1}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:0;box-shadow:none;border-color:#718096}.form-textarea::-moz-placeholder{color:#a0aec0;opacity:1}.form-textarea:-ms-input-placeholder{color:#a0aec0;opacity:1}.form-textarea::-ms-input-placeholder{color:#a0aec0;opacity:1}.form-textarea::placeholder{color:#a0aec0;opacity:1}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%234a5568' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z'/%3E%3C/svg%3E");appearance:none;background-repeat:no-repeat;padding:.5rem 2.5rem .5rem .75rem;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#a0aec0;border:none}.form-checkbox,.rounded{border-radius:.25rem}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px;box-shadow:none}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-select::-ms-expand{display:none}.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox:focus{outline:0;box-shadow:none;border-color:#63b3ed}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.bg-gray-500,.hover\:bg-gray-500:hover{--bg-opacity:1;background-color:#a0aec0;background-color:rgba(160,174,192,var(--bg-opacity))}.bg-gray-600,.focus\:bg-gray-600:focus{--bg-opacity:1;background-color:#718096;background-color:rgba(113,128,150,var(--bg-opacity))}.bg-red-200{--bg-opacity:1;background-color:#fed7d7;background-color:rgba(254,215,215,var(--bg-opacity))}.bg-teal-200{--bg-opacity:1;background-color:#b2f5ea;background-color:rgba(178,245,234,var(--bg-opacity))}.bg-teal-500,.hover\:bg-teal-500:hover{--bg-opacity:1;background-color:#38b2ac;background-color:rgba(56,178,172,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#319795;background-color:rgba(49,151,149,var(--bg-opacity))}.bg-teal-800{--bg-opacity:1;background-color:#285e61;background-color:rgba(40,94,97,var(--bg-opacity))}.bg-teal-900,.hover\:bg-teal-900:hover{--bg-opacity:1;background-color:#234e52;background-color:rgba(35,78,82,var(--bg-opacity))}.focus\:bg-gray-700:focus{--bg-opacity:1;background-color:#4a5568;background-color:rgba(74,85,104,var(--bg-opacity))}.focus\:bg-teal-700:focus{--bg-opacity:1;background-color:#2c7a7b;background-color:rgba(44,122,123,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-500{--border-opacity:1;border-color:#a0aec0;border-color:rgba(160,174,192,var(--border-opacity))}.border-red-400{--border-opacity:1;border-color:#fc8181;border-color:rgba(252,129,129,var(--border-opacity))}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border{border-width:1px}.cursor-wait{cursor:wait}.cursor-not-allowed{cursor:not-allowed}.flex{display:flex}.inline-flex{display:inline-flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.font-primary{font-family:Poppins,sans-serif}.font-fallback{font-family:sans-serif}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.leading-relaxed{line-height:1.625}.list-disc{list-style-type:disc}.mx-0{margin-left:0;margin-right:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-3,.my-3{margin-bottom:.75rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mt-0{margin-top:0}.ml-0{margin-left:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mt-2{margin-top:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mr-px{margin-right:1px}.mb-px{margin-bottom:1px}.-mt-1{margin-top:-.25rem}.-mt-3{margin-top:-.75rem}.-mt-20{margin-top:-5rem}.min-h-70-screen{min-height:70vh}.opacity-50{opacity:.5}.focus\:outline-none:focus{outline:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.px-8{padding-left:2rem;padding-right:2rem}.container,.pl-5{padding-left:1.25rem}.py-20{padding-top:5rem;padding-bottom:5rem}.pt-1{padding-top:.25rem}.pb-10{padding-bottom:2.5rem}.pt-32{padding-top:8rem}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.resize-none{resize:none}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.fill-current{fill:currentColor}.text-center{text-align:center}.text-right{text-align:right}.hover\:text-white:hover,.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#2d3748;color:rgba(45,55,72,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f56565;color:rgba(245,101,101,var(--text-opacity))}.text-teal-200{--text-opacity:1;color:#b2f5ea;color:rgba(178,245,234,var(--text-opacity))}.hover\:text-teal-500:hover,.text-teal-500{--text-opacity:1;color:#38b2ac;color:rgba(56,178,172,var(--text-opacity))}.text-teal-600{--text-opacity:1;color:#319795;color:rgba(49,151,149,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#2c7a7b;color:rgba(44,122,123,var(--text-opacity))}.uppercase{text-transform:uppercase}.hover\:underline:hover,.underline{text-decoration:underline}.hover\:no-underline:hover{text-decoration:none}.tracking-wide{letter-spacing:.025em}.visible{visibility:visible}.invisible{visibility:hidden}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-24{width:6rem}.w-32{width:8rem}.z-50{z-index:50}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.container{margin-left:auto;margin-right:auto;padding-right:1.25rem}.transition{transition:.2s ease-in-out}.form-input{height:46px}@media (min-width:640px){.container{max-width:640px}.sm\:inline-block{display:inline-block}.sm\:h-full{height:100%}.sm\:mt-0{margin-top:0}.sm\:w-auto{width:auto}.sm\:w-1\/2{width:50%}}@media (min-width:768px){.container{max-width:768px}.md\:mt-0{margin-top:0}.md\:w-1\/2{width:50%}}@media (min-width:1024px){.container{max-width:1024px}.lg\:ml-1,.lg\:mx-1{margin-left:.25rem}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:mx-1{margin-right:.25rem}.lg\:mt-0{margin-top:0}.lg\:w-auto{width:auto}.lg\:w-1\/2{width:50%}}@media (min-width:1280px){.container{max-width:1280px}.xl\:w-2\/5{width:40%}}.nuxt-progress{position:fixed;top:0;left:0;right:0;height:2px;width:0;opacity:1;transition:width .1s,opacity .4s;background-color:#fff;z-index:999999}

/* Error message styling */
.error-message {
    display: none; /* Hidden by default, shown by JS */
    /* Ensure it's block or inline-block if it needs to take up space for margin-top */
    /* The JS currently makes them display:block which is good for this. */
}

/* ==== INPUT ERROR ANIMATION ==== */
.input-error-animated {
  border-color: #f56565 !important; /* Tailwind red-500 */
  animation: shake 0.5s;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-6px); }
  20%, 40%, 60%, 80% { transform: translateX(6px); }
}

/* ==== VISUALLY HIDDEN (for screen readers) ==== */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ==== SVG LOGO STYLES (Moved from inline) ==== */
.site-logo .st0 { fill: #bdcece; }
.site-logo .st1 { fill: #9eb0b0; }
.site-logo .svg-logo-path-d0dddd { fill: #d0dddd; } /* Renamed class for clarity */
.site-logo .st3 { fill: #47505b; }
.site-logo .svg-logo-textpaths .st0 { fill: #bdcece; } /* Example for text paths if they share .st0 */

/* You might want to adjust these for dark mode too if the logo needs to adapt */
body.dark-mode .site-logo .st0,
body.dark-mode .site-logo .svg-logo-textpaths .st0 {
    fill: #90a4ae; /* Example: A lighter gray for dark mode */
}
body.dark-mode .site-logo .st1 {
    fill: #78909c; /* Example: Another lighter gray */
}
body.dark-mode .site-logo .svg-logo-path-d0dddd {
    fill: #b0bec5;
}
body.dark-mode .site-logo .st3 {
    fill: #cfd8dc; /* Lighter for text on dark */
}


/* ==== DARK MODE STYLES ==== */
body.dark-mode {
  --bg-opacity: 1;
  background-color: #2d3748; /* Tailwind dark-gray-800 */
  color: #e2e8f0; /* Tailwind light-gray-200 */
}

body.dark-mode #main {
  background-color: #2d3748;
  color: #e2e8f0;
}

body.dark-mode footer.bg-gray-100 {
  background-color: #1a202c !important; /* Tailwind gray-900 */
  color: #a0aec0;
}

body.dark-mode .text-gray-500 { color: #a0aec0; }
body.dark-mode .text-gray-600 { color: #cbd5e0; }
body.dark-mode .text-gray-700 { color: #e2e8f0; }
body.dark-mode h1.text-gray-700 { color: #f7fafc; }
body.dark-mode p.my-3 { color: #cbd5e0; } /* Main paragraph text */

/* Forms in Dark Mode */
body.dark-mode .form-input,
body.dark-mode .form-select,
body.dark-mode .form-textarea {
  background-color: #4a5568;
  border-color: #718096;
  color: #f7fafc;
}

body.dark-mode .form-input::placeholder,
body.dark-mode .form-textarea::placeholder {
  color: #a0aec0;
}

body.dark-mode .form-input:focus,
body.dark-mode .form-select:focus,
body.dark-mode .form-textarea:focus {
  border-color: #4299e1; /* Tailwind blue-500 */
}

body.dark-mode .form-select {
   background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%23a0aec0' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z'/%3E%3C/svg%3E");
}

body.dark-mode .form-checkbox {
  background-color: #4a5568;
  border-color: #718096;
}
body.dark-mode .form-checkbox:checked {
  background-color: #319795; /* Teal-600 */
  border-color: transparent;
}
body.dark-mode .form-checkbox:focus {
    border-color: #4299e1;
}

body.dark-mode span.absolute.bg-white { /* Floating labels */
    background-color: #4a5568; /* Match input background */
    color: #cbd5e0;
}

body.dark-mode .tooltip {
    background-color: #2d3748;
    color: #e2e8f0;
    border: 1px solid #4a5568;
}

/* Dark mode toggle button */
body.dark-mode #darkModeToggle {
    color: #b2f5ea; /* Teal-200 */
}
/* Icon visibility is handled by JS adding/removing 'dark-mode' or 'light-mode' to body */
body.dark-mode #darkModeToggle .dark-mode-icon.light { display: none; }
body.dark-mode #darkModeToggle .dark-mode-icon.dark  { display: inline-block; }

body.light-mode #darkModeToggle .dark-mode-icon.light { display: inline-block; }
body.light-mode #darkModeToggle .dark-mode-icon.dark  { display: none; }

/* Default state (JS might not have run, or no class on body initially) */
#darkModeToggle .dark-mode-icon.light { display: inline-block; }
#darkModeToggle .dark-mode-icon.dark  { display: none; }


body.dark-mode footer .copyright-info { color: #e2e8f0; }
body.dark-mode footer .text-gray-600 a { color: #b2f5ea; }
body.dark-mode footer .text-gray-600 { color: #a0aec0; } /* For the '•' separator */

body.dark-mode textarea#result {
    font-weight: bold;
    color: #e2e8f0;
}