/* Tailwind overlay — minimal additions Tailwind utilities can't express cleanly.
   Smooth scroll, slider thumbs, scrollbar, fonts, and dark-mode body bg. */

html { scroll-behavior: smooth; }
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; -webkit-font-smoothing: antialiased; }
[data-theme="dark"] body { background: #061b30; color: #e7ecf2; }

/* Custom slider styling */
.tf-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; background: #e3e8ee; border-radius: 99px; outline: none; cursor: pointer; }
.tf-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; background: #0B2D4E; border: 3px solid #fff; border-radius: 50%; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,0.2); }
.tf-slider::-moz-range-thumb { width: 22px; height: 22px; background: #0B2D4E; border: 3px solid #fff; border-radius: 50%; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,0.2); }
[data-theme="dark"] .tf-slider { background: #1e3a5a; }

/* Status pulse */
.tf-pulse-dot { animation: tfPulseDot 1.8s ease-in-out infinite; box-shadow: 0 0 0 3px rgba(25,155,147,0.18); }
@keyframes tfPulseDot { 0%,100% { box-shadow: 0 0 0 3px rgba(25,155,147,0.18); } 50% { box-shadow: 0 0 0 6px rgba(25,155,147,0.05); } }

/* Hero waves utility */
.tf-fade-in { animation: tfFadeIn .5s ease-out both; }
@keyframes tfFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Backdrop on sticky nav */
.tf-nav-blur { backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); }
