/* ==========================================================================
   AIFix brand palette override (Emerald / Teal)
   Loaded after the theme's built CSS so these win. Custom-property
   declarations use !important so they override theme-class definitions
   regardless of source order.
   ========================================================================== */

:root,
.theme-default,
[data-theme] {
  --primary: 160 84% 39% !important;            /* emerald-500  #10B981 */
  --primary-foreground: 0 0% 100% !important;   /* white text on primary */
  --secondary: 152 81% 96% !important;          /* emerald-50  #ECFDF5 */
  --secondary-foreground: 161 94% 22% !important;
  --accent: 173 80% 40% !important;             /* teal-500  #14B8A6 */
  --accent-foreground: 0 0% 100% !important;
  --ring: 160 84% 39% !important;
}

/* Dark mode: lighter emerald/teal so it reads on dark backgrounds */
.dark,
.dark .theme-default,
[data-theme].dark,
html.dark {
  --primary: 158 64% 52% !important;            /* emerald-400  #34D399 */
  --primary-foreground: 161 94% 12% !important;
  --secondary: 161 84% 14% !important;
  --secondary-foreground: 152 76% 90% !important;
  --accent: 172 66% 50% !important;             /* teal-400  #2DD4BF */
  --accent-foreground: 0 0% 100% !important;
  --ring: 158 64% 52% !important;
}

/* Theme gradient (mobile add (+) button, FAB, gradient accents) -> emerald/teal */
:root,
.theme-default,
[data-theme],
.dark,
html.dark {
  --gradient-from: 160 84% 39% !important;   /* emerald-500 */
  --gradient-via: 167 82% 40% !important;
  --gradient-to: 173 80% 40% !important;     /* teal-500 */
}

/* Desktop floating (+) button spinning ring -> emerald/teal */
.spinner_button:before {
  background: linear-gradient(to right, #0d9488, #14b8a6, #34d399) !important;
}

/* ==========================================================================
   Decorative elements that used hardcoded violet/pink/fuchsia utilities
   ========================================================================== */

/* Hero banner gradient (belt-and-suspenders over the build-css recolor) */
.banner-bg {
  background: linear-gradient(120deg, #5eead4, #2dd4bf 20%, #0d9488 30%, #10b981, #0d9488 70%, #5eead4) !important;
  background-size: 200% 200% !important;
}

/* Hero subtitle glow blob (was from-violet-600 to-red-500) */
.banner-subtitle-gradient .animate-hue-rotate,
.animate-hue-rotate {
  background-image: linear-gradient(to bottom right, #10b981, #14b8a6) !important;
}

/* Hero description text (was text-fuchsia-700) and any stray purple/pink text */
.text-fuchsia-700, .text-fuchsia-600, .text-fuchsia-500,
.text-violet-700, .text-violet-600, .text-violet-500,
.text-purple-700, .text-purple-600, .text-purple-500,
.text-pink-700,   .text-pink-600,   .text-pink-500,
.text-rose-700,   .text-rose-600,   .text-rose-500,
.text-indigo-700, .text-indigo-600, .text-indigo-500 { color: #0d9488 !important; }

/* Stray purple/pink/violet/fuchsia/rose/indigo backgrounds -> brand */
.bg-fuchsia-600, .bg-fuchsia-500, .bg-violet-600, .bg-violet-500,
.bg-purple-600,  .bg-purple-500,  .bg-pink-600,   .bg-pink-500,
.bg-rose-600,    .bg-rose-500,    .bg-indigo-600, .bg-indigo-500 { background-color: #10b981 !important; }

/* Stray purple/indigo borders -> brand */
.border-indigo-600, .border-indigo-500, .border-violet-600, .border-purple-600,
.border-fuchsia-600, .border-pink-600 { border-color: #10b981 !important; }

/* Tailwind gradient stops that used purple/pink/violet/red -> emerald/teal */
.from-violet-600, .from-violet-500, .from-purple-600, .from-purple-500,
.from-fuchsia-600, .from-fuchsia-500, .from-pink-600, .from-pink-500,
.from-rose-600, .from-rose-500 {
  --tw-gradient-from: #10b981 var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.via-violet-600, .via-violet-500, .via-purple-600, .via-purple-500,
.via-fuchsia-600, .via-fuchsia-500, .via-pink-600, .via-pink-500 {
  --tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), #14b8a6 var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
.to-red-500, .to-red-600, .to-pink-500, .to-pink-600, .to-fuchsia-500,
.to-fuchsia-600, .to-purple-500, .to-purple-600, .to-violet-500, .to-violet-600,
.to-rose-500, .to-rose-600 {
  --tw-gradient-to: #14b8a6 var(--tw-gradient-to-position) !important;
}

/* Auth pages: replace the pink/orange photo background with an emerald gradient */
[style*="bg-auth"] {
  background-image: linear-gradient(135deg, #10b981 0%, #14b8a6 45%, #0d9488 100%) !important;
}

/* ==========================================================================
   Subscription / pricing page (Join Premium): purple/blue -> emerald/teal
   (arbitrary Tailwind values kept in markup; recolored here reliably)
   ========================================================================== */
.text-\[\#6977DE\], .text-\[\#684AE2\] { color: #0d9488 !important; }
.bg-\[\#684AE2\]  { background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1)) !important; }
.bg-\[\#F5FAFF\]  { background-color: #ecfdf5 !important; }

/* saturated icon gradient (cyan -> periwinkle -> indigo) -> teal -> emerald */
.from-\[\#82E2F4\] {
  --tw-gradient-from: #5eead4 var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgb(94 234 212 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.via-\[\#8A8AED\] {
  --tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), #2dd4bf var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
.to-\[\#6977DE\] { --tw-gradient-to: #10b981 var(--tw-gradient-to-position) !important; }

/* light "Popular plan" badge gradient (lavender/pink) -> light emerald */
.from-\[\#ece7f7\] {
  --tw-gradient-from: #d1fae5 var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgb(209 250 229 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.via-\[\#e7c5e6\] {
  --tw-gradient-to: rgb(167 243 208 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), #a7f3d0 var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
.to-\[\#e7ebf9\] { --tw-gradient-to: #ccfbf1 var(--tw-gradient-to-position) !important; }

/* hover-state variants of the same gradient (e.g. Join Premium button) */
.hover\:from-\[\#82E2F4\]:hover {
  --tw-gradient-from: #5eead4 var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgb(94 234 212 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.hover\:via-\[\#8A8AED\]:hover {
  --tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), #2dd4bf var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
.hover\:to-\[\#6977DE\]:hover { --tw-gradient-to: #10b981 var(--tw-gradient-to-position) !important; }

/* Restore hover->white text/chevron (the !important emerald overrides above were
   also forcing these group-hover:white states to stay emerald = unreadable).
   Higher specificity (.group:hover ...) so white wins on hover. */
.group:hover .group-hover\:text-white { color: #fff !important; }
.group:hover .group-hover\:from-white {
  --tw-gradient-from: #fff var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}
.group:hover .group-hover\:via-white {
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
.group:hover .group-hover\:to-white { --tw-gradient-to: #fff var(--tw-gradient-to-position) !important; }
