.dark.theme-bw { --background: 0 0% 5%; --foreground: 0 0% 97%; --card: 0 0% 10%; --card-foreground: 0 0% 97%; --popover: 0 0% 10%; --popover-foreground: 0 0% 97%; --primary: 0 0% 97%; --primary-foreground: 0 0% 0%; --secondary: 0 0% 68%; --secondary-foreground: 0 0% 0%; --muted: 0 0% 15%; --muted-foreground: 0 0% 72%; --accent: 0 0% 25%; --accent-foreground: 0 0% 97%; --destructive: 0 0% 40%; --destructive-foreground: 0 0% 97%; --border: 0 0% 25%; --input: 0 0% 25%; --ring: 0 0% 70%; --radius: 0.5rem; --sidebar: 0 0% 4%; --sidebar-foreground: 0 0% 97%; --sidebar-primary: 0 0% 97%; --sidebar-primary-foreground: 0 0% 0%; --sidebar-accent: 0 0% 15%; --sidebar-accent-foreground: 0 0% 97%; --sidebar-border: 0 0% 18%; --sidebar-ring: 0 0% 70%; } .light.theme-bw { --background: 0 0% 97%; --foreground: 0 0% 8%; --card: 0 0% 100%; --card-foreground: 0 0% 8%; --popover: 0 0% 100%; --popover-foreground: 0 0% 8%; --primary: 0 0% 8%; --primary-foreground: 0 0% 100%; --secondary: 0 0% 55%; --secondary-foreground: 0 0% 100%; --muted: 0 0% 93%; --muted-foreground: 0 0% 38%; --accent: 0 0% 20%; --accent-foreground: 0 0% 100%; --destructive: 0 0% 60%; --destructive-foreground: 0 0% 10%; --border: 0 0% 78%; --input: 0 0% 78%; --ring: 0 0% 45%; --radius: 0.5rem; --sidebar: 0 0% 100%; --sidebar-foreground: 0 0% 8%; --sidebar-primary: 0 0% 8%; --sidebar-primary-foreground: 0 0% 100%; --sidebar-accent: 0 0% 90%; --sidebar-accent-foreground: 0 0% 8%; --sidebar-border: 0 0% 80%; --sidebar-ring: 0 0% 45%; } .dark.theme-bw body { background: transparent radial-gradient(ellipse 100% 60% at 30% 20%, hsla(0,0%,100%,0.03) 0%, transparent 60%), radial-gradient(ellipse 60% 50% at 70% 80%, hsla(0,0%,50%,0.02) 0%, transparent 50%); position: relative; } .dark.theme-bw body > div { background: transparent !important; } .dark.theme-bw body::before { content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none; background-image: radial-gradient(1px 1px at 10% 20%, hsla(0,0%,100%,0.12) 0%, transparent 100%), radial-gradient(1px 1px at 30% 70%, hsla(0,0%,100%,0.08) 0%, transparent 100%), radial-gradient(1px 1px at 50% 10%, hsla(0,0%,100%,0.1) 0%, transparent 100%), radial-gradient(1px 1px at 70% 50%, hsla(0,0%,100%,0.06) 0%, transparent 100%), radial-gradient(1px 1px at 90% 30%, hsla(0,0%,100%,0.1) 0%, transparent 100%), radial-gradient(1px 1px at 15% 85%, hsla(0,0%,100%,0.08) 0%, transparent 100%), radial-gradient(1px 1px at 65% 90%, hsla(0,0%,100%,0.06) 0%, transparent 100%), radial-gradient(1px 1px at 85% 15%, hsla(0,0%,100%,0.1) 0%, transparent 100%), radial-gradient(1px 1px at 40% 40%, hsla(0,0%,100%,0.07) 0%, transparent 100%), radial-gradient(1px 1px at 55% 60%, hsla(0,0%,100%,0.05) 0%, transparent 100%); background-size: 200% 200%; animation: bw-drift 40s ease-in-out infinite alternate; } .dark.theme-bw body::after { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse 80% 40% at 20% 30%, hsla(0,0%,100%,0.04) 0%, transparent 60%), radial-gradient(ellipse 60% 40% at 80% 70%, hsla(0,0%,50%,0.02) 0%, transparent 50%), radial-gradient(ellipse 50% 30% at 50% 50%, hsla(0,0%,100%,0.02) 0%, transparent 50%); } .light.theme-bw body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse 80% 50% at 20% 30%, hsla(0,0%,0%,0.02) 0%, transparent 60%), radial-gradient(ellipse 60% 40% at 80% 70%, hsla(0,0%,0%,0.01) 0%, transparent 50%), repeating-linear-gradient(0deg, transparent, transparent 60px, hsla(0,0%,0%,0.015) 60px, hsla(0,0%,0%,0.015) 61px), repeating-linear-gradient(90deg, transparent, transparent 60px, hsla(0,0%,0%,0.015) 60px, hsla(0,0%,0%,0.015) 61px); } @keyframes bw-drift { 0% { background-position: 0% 0%; opacity: 0.5; } 50% { background-position: 100% 100%; opacity: 1; } 100% { background-position: 0% 100%; opacity: 0.5; } } .dark.theme-bw .text-glow { text-shadow: 0 0 10px hsla(0,0%,100%,0.15), 0 0 30px hsla(0,0%,100%,0.05); } .light.theme-bw .text-glow { text-shadow: 0 0 8px hsla(0,0%,0%,0.08), 0 0 20px hsla(0,0%,0%,0.04); } .dark.theme-bw h1, .dark.theme-bw h2, .dark.theme-bw h3 { background: linear-gradient(135deg, hsl(0, 0%, 90%), hsl(0, 0%, 60%)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .light.theme-bw h1, .light.theme-bw h2, .light.theme-bw h3 { background: linear-gradient(135deg, hsl(0, 0%, 20%), hsl(0, 0%, 50%)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .dark.theme-bw a { color: hsl(0, 0%, 80%); text-decoration: none; transition: color 0.2s; } .light.theme-bw a { color: hsl(0, 0%, 30%); text-decoration: none; transition: color 0.2s; } .dark.theme-bw a:hover { color: hsl(0, 0%, 100%); text-shadow: 0 0 8px hsla(0,0%,100%,0.3); } .light.theme-bw a:hover { color: hsl(0, 0%, 0%); } .dark.theme-bw blockquote { border-left: 3px solid hsl(0, 0%, 50%); color: hsl(0, 0%, 60%); font-style: italic; } .light.theme-bw blockquote { border-left: 3px solid hsl(0, 0%, 60%); color: hsl(0, 0%, 50%); font-style: italic; } .dark.theme-bw code { color: hsl(0, 0%, 80%); background: hsla(0, 0%, 100%, 0.08); border: 1px solid hsla(0, 0%, 100%, 0.12); } .light.theme-bw code { color: hsl(0, 0%, 30%); background: hsla(0, 0%, 0%, 0.04); border: 1px solid hsla(0, 0%, 0%, 0.1); } .dark.theme-bw pre { background: rgba(0, 0, 0, 0.9); border: 1px solid hsla(0, 0%, 100%, 0.1); } .light.theme-bw pre { background: hsla(0, 0%, 0%, 0.02); border: 1px solid hsla(0, 0%, 0%, 0.08); } .dark.theme-bw hr { border-color: hsla(0, 0%, 100%, 0.12); } .light.theme-bw hr { border-color: hsla(0, 0%, 0%, 0.08); } .dark.theme-bw table th { color: hsl(0, 0%, 80%); } .light.theme-bw table th { color: hsl(0, 0%, 30%); } .dark.theme-bw table td { border-color: hsla(0, 0%, 100%, 0.1); } .light.theme-bw table td { border-color: hsla(0, 0%, 0%, 0.08); } .dark.theme-bw ::selection { background: hsla(0, 0%, 100%, 0.15); color: hsl(0, 0%, 100%); } .light.theme-bw ::selection { background: hsla(0, 0%, 0%, 0.1); color: hsl(0, 0%, 0%); } .dark.theme-bw input::placeholder, .dark.theme-bw textarea::placeholder { color: hsl(0, 0%, 40%); } .light.theme-bw input::placeholder, .light.theme-bw textarea::placeholder { color: hsl(0, 0%, 65%); } .dark.theme-bw .page-header-title { color: hsl(0, 0%, 95%); } .light.theme-bw .page-header-title { color: hsl(0, 0%, 10%); } .dark.theme-bw .stat-card-value { color: hsl(0, 0%, 95%); } .light.theme-bw .stat-card-value { color: hsl(0, 0%, 10%); } .dark.theme-bw .badge { color: hsl(0, 0%, 80%); } .light.theme-bw .badge { color: hsl(0, 0%, 30%); } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .h-1.w-full { background: linear-gradient(to right, hsl(0, 0%, 80%), hsl(0, 0%, 95%), hsl(0, 0%, 80%)) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .h-1.w-full { background: linear-gradient(to right, hsl(0, 0%, 50%), hsl(0, 0%, 70%), hsl(0, 0%, 50%)) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .rounded-xl.shrink-0 { background: hsla(0, 0%, 100%, 0.08) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .rounded-xl.shrink-0 { background: hsla(0, 0%, 50%, 0.08) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .rounded-xl.shrink-0 svg { color: hsl(0, 0%, 95%) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .rounded-xl.shrink-0 svg { color: hsl(0, 0%, 70%) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .absolute.bottom-0.h-1 { background: linear-gradient(to right, transparent, hsla(0, 0%, 100%, 0.2), transparent) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .absolute.bottom-0.h-1 { background: linear-gradient(to right, transparent, hsla(0, 0%, 50%, 0.15), transparent) !important; } .dark.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 .rounded-full.bg-gradient-to-r { background: linear-gradient(to right, hsl(0, 0%, 80%), hsl(0, 0%, 50%)) !important; } .light.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(odd) .group .h-1.w-full { background: linear-gradient(to right, hsl(0, 0%, 30%), hsl(0, 0%, 50%), hsl(0, 0%, 30%)) !important; } .light.theme-bw .sm\:grid-cols-2.lg\:grid-cols-3.gap-4.mt-4 > .relative:nth-child(even) .group .h-1.w-full { background: linear-gradient(to right, hsl(0, 0%, 50%), hsl(0, 0%, 65%), hsl(0, 0%, 50%)) !important; } .dark.theme-bw .growth-word { -webkit-text-fill-color: hsl(0, 0%, 70%) !important; color: hsl(0, 0%, 70%) !important; background: none !important; } .light.theme-bw .growth-word { -webkit-text-fill-color: hsl(0, 0%, 40%) !important; color: hsl(0, 0%, 40%) !important; background: none !important; } /* ============================================================================ Client Portal Overrides — Background for portal pages ============================================================================ */ .dark.theme-bw .min-h-screen.bg-background { background: transparent !important; } .dark.theme-bw aside.bg-card.border-r.border-border { background: hsl(0, 0%, 6%) !important; border-right-color: hsl(0, 0%, 18%) !important; } .dark.theme-bw aside .text-muted-foreground { color: hsl(0, 0%, 50%) !important; } .dark.theme-bw aside button:hover { background: hsla(0, 0%, 100%, 0.08) !important; color: hsl(0, 0%, 90%) !important; } .dark.theme-bw aside .bg-primary\/10.text-primary { background: hsl(0, 0%, 50%) !important; color: hsl(0, 0%, 100%) !important; box-shadow: 0 0 10px hsla(0, 0%, 50%, 0.3), 0 0 20px hsla(0, 0%, 50%, 0.1); border-color: hsl(0, 0%, 50%) !important; } .dark.theme-bw aside .bg-primary\/10.text-primary svg { color: hsl(0, 0%, 100%) !important; } .dark.theme-bw header.bg-card\/80 { background: hsl(0, 0%, 6%) !important; border-bottom-color: hsl(0, 0%, 18%) !important; } .dark.theme-bw .bg-card { background: hsla(0, 0%, 7%, 0.65) !important; backdrop-filter: blur(10px) !important; border-color: hsla(0, 0%, 20%, 0.35) !important; } .dark.theme-bw .border-border { border-color: hsl(0, 0%, 15%) !important; } .dark.theme-bw .bg-muted { background: hsl(0, 0%, 9%) !important; } .dark.theme-bw .bg-primary { background: hsl(0, 0%, 50%) !important; box-shadow: 0 0 10px hsla(0, 0%, 50%, 0.2); } .dark.theme-bw .bg-primary:hover { background: hsl(0, 0%, 60%) !important; box-shadow: 0 0 15px hsla(0, 0%, 60%, 0.4); } /* ============================================================================ Dashboard Chart Overrides — donut chart & leads-per-month bar chart Overrides SVG presentation attributes (fill, stop-color, flood-color) Distinguishable greys per segment + glow on hover ============================================================================ */ /* ---- Donut chart: individual segment fills with varied greys ---- */ .dark.theme-bw [fill="url(#chart-grad-0)"] { fill: hsl(0,0%,55%) !important; } .dark.theme-bw [fill="url(#chart-grad-1)"] { fill: hsl(0,0%,35%) !important; } .dark.theme-bw [fill="url(#chart-grad-2)"] { fill: hsl(0,0%,65%) !important; } .dark.theme-bw [fill="url(#chart-grad-3)"] { fill: hsl(0,0%,30%) !important; } .dark.theme-bw [fill="url(#chart-grad-4)"] { fill: hsl(0,0%,70%) !important; } .dark.theme-bw [fill="url(#chart-grad-5)"] { fill: hsl(0,0%,40%) !important; } .light.theme-bw [fill="url(#chart-grad-0)"] { fill: hsl(0,0%,40%) !important; } .light.theme-bw [fill="url(#chart-grad-1)"] { fill: hsl(0,0%,55%) !important; } .light.theme-bw [fill="url(#chart-grad-2)"] { fill: hsl(0,0%,30%) !important; } .light.theme-bw [fill="url(#chart-grad-3)"] { fill: hsl(0,0%,60%) !important; } .light.theme-bw [fill="url(#chart-grad-4)"] { fill: hsl(0,0%,45%) !important; } .light.theme-bw [fill="url(#chart-grad-5)"] { fill: hsl(0,0%,50%) !important; } /* ---- Donut chart: gradient defs stops (match the fills above) ---- */ .dark.theme-bw #chart-grad-0 stop { stop-color: hsl(0,0%,55%) !important; } .dark.theme-bw #chart-grad-1 stop { stop-color: hsl(0,0%,35%) !important; } .dark.theme-bw #chart-grad-2 stop { stop-color: hsl(0,0%,65%) !important; } .dark.theme-bw #chart-grad-3 stop { stop-color: hsl(0,0%,30%) !important; } .dark.theme-bw #chart-grad-4 stop { stop-color: hsl(0,0%,70%) !important; } .dark.theme-bw #chart-grad-5 stop { stop-color: hsl(0,0%,40%) !important; } .light.theme-bw #chart-grad-0 stop { stop-color: hsl(0,0%,40%) !important; } .light.theme-bw #chart-grad-1 stop { stop-color: hsl(0,0%,55%) !important; } .light.theme-bw #chart-grad-2 stop { stop-color: hsl(0,0%,30%) !important; } .light.theme-bw #chart-grad-3 stop { stop-color: hsl(0,0%,60%) !important; } .light.theme-bw #chart-grad-4 stop { stop-color: hsl(0,0%,45%) !important; } .light.theme-bw #chart-grad-5 stop { stop-color: hsl(0,0%,50%) !important; } /* ---- Bar chart: distinguishable fills for two series ---- */ .dark.theme-bw [fill="url(#newLeadsGrad)"] { fill: hsl(0,0%,55%) !important; } .dark.theme-bw [fill="url(#closedGrad)"] { fill: hsl(0,0%,30%) !important; } .light.theme-bw [fill="url(#newLeadsGrad)"] { fill: hsl(0,0%,40%) !important; } .light.theme-bw [fill="url(#closedGrad)"] { fill: hsl(0,0%,55%) !important; } /* Bar chart: gradient defs stops */ .dark.theme-bw #newLeadsGrad stop { stop-color: hsl(0,0%,55%) !important; } .dark.theme-bw #closedGrad stop { stop-color: hsl(0,0%,30%) !important; } .light.theme-bw #newLeadsGrad stop { stop-color: hsl(0,0%,40%) !important; } .light.theme-bw #closedGrad stop { stop-color: hsl(0,0%,55%) !important; } /* ---- feDropShadow flood-color override ---- */ .dark.theme-bw feDropShadow { flood-color: hsl(0,0%,50%) !important; flood-opacity: 0.25 !important; } .light.theme-bw feDropShadow { flood-color: hsl(0,0%,45%) !important; flood-opacity: 0.15 !important; } /* ---- Hover glow: donut segments + bar rects ---- */ .dark.theme-bw [fill*="chart-grad"]:hover, .dark.theme-bw [fill="url(#newLeadsGrad)"]:hover, .dark.theme-bw [fill="url(#closedGrad)"]:hover { filter: drop-shadow(0 0 14px hsla(0,0%,80%,0.45)) brightness(1.25) !important; } .light.theme-bw [fill*="chart-grad"]:hover, .light.theme-bw [fill="url(#newLeadsGrad)"]:hover, .light.theme-bw [fill="url(#closedGrad)"]:hover { filter: drop-shadow(0 0 12px hsla(0,0%,10%,0.25)) brightness(1.15) !important; } /* ============================================================================ Avatar PFP Overrides — target SVG data URLs with hardcoded blue (#1d4ed8) Desaturate + brighten the blue fill to light grey ============================================================================ */ .dark.theme-bw img[src*="1d4ed8"], .dark.theme-bw img[src*="fill=%231d4ed8"] { filter: saturate(0%) brightness(1.7) !important; } .light.theme-bw img[src*="1d4ed8"], .light.theme-bw img[src*="fill=%231d4ed8"] { filter: saturate(0%) brightness(0.6) !important; } /* ============================================================================ BW THEME: Force all colored Tailwind utilities to greyscale Targets both regular classes AND dark: variant classes Only applies when .theme-bw is active — no source files touched ============================================================================ */ /* ----- Dark mode: bg-{color}-{shade} ----- */ .dark.theme-bw .bg-blue-500, .dark.theme-bw .dark\:bg-blue-500, .dark.theme-bw .bg-amber-500, .dark.theme-bw .dark\:bg-amber-500, .dark.theme-bw .bg-purple-500, .dark.theme-bw .dark\:bg-purple-500, .dark.theme-bw .bg-emerald-500, .dark.theme-bw .dark\:bg-emerald-500, .dark.theme-bw .bg-red-500, .dark.theme-bw .dark\:bg-red-500, .dark.theme-bw .bg-orange-500, .dark.theme-bw .dark\:bg-orange-500, .dark.theme-bw .bg-yellow-500, .dark.theme-bw .dark\:bg-yellow-500, .dark.theme-bw .bg-violet-500, .dark.theme-bw .dark\:bg-violet-500, .dark.theme-bw .bg-green-500, .dark.theme-bw .dark\:bg-green-500, .dark.theme-bw .bg-sky-500, .dark.theme-bw .dark\:bg-sky-500, .dark.theme-bw .bg-teal-500, .dark.theme-bw .dark\:bg-teal-500, .dark.theme-bw .bg-indigo-500, .dark.theme-bw .dark\:bg-indigo-500, .dark.theme-bw .bg-pink-500, .dark.theme-bw .dark\:bg-pink-500 { background-color: hsl(0,0%,50%) !important; } .dark.theme-bw .bg-blue-600, .dark.theme-bw .dark\:bg-blue-600, .dark.theme-bw .bg-amber-600, .dark.theme-bw .dark\:bg-amber-600, .dark.theme-bw .bg-emerald-600, .dark.theme-bw .dark\:bg-emerald-600, .dark.theme-bw .bg-red-600, .dark.theme-bw .dark\:bg-red-600, .dark.theme-bw .bg-green-600, .dark.theme-bw .dark\:bg-green-600, .dark.theme-bw .bg-orange-600, .dark.theme-bw .dark\:bg-orange-600, .dark.theme-bw .bg-yellow-600, .dark.theme-bw .dark\:bg-yellow-600, .dark.theme-bw .bg-violet-600, .dark.theme-bw .dark\:bg-violet-600 { background-color: hsl(0,0%,35%) !important; } .dark.theme-bw .bg-blue-400, .dark.theme-bw .dark\:bg-blue-400, .dark.theme-bw .bg-red-400, .dark.theme-bw .dark\:bg-red-400, .dark.theme-bw .bg-emerald-400, .dark.theme-bw .dark\:bg-emerald-400, .dark.theme-bw .bg-amber-400, .dark.theme-bw .dark\:bg-amber-400, .dark.theme-bw .bg-sky-400, .dark.theme-bw .dark\:bg-sky-400, .dark.theme-bw .bg-green-400, .dark.theme-bw .dark\:bg-green-400, .dark.theme-bw .bg-purple-400, .dark.theme-bw .dark\:bg-purple-400, .dark.theme-bw .bg-orange-400, .dark.theme-bw .dark\:bg-orange-400 { background-color: hsl(0,0%,60%) !important; } .dark.theme-bw .bg-red-50, .dark.theme-bw .dark\:bg-red-50, .dark.theme-bw .bg-orange-50, .dark.theme-bw .dark\:bg-orange-50, .dark.theme-bw .bg-yellow-50, .dark.theme-bw .dark\:bg-yellow-50, .dark.theme-bw .bg-emerald-50, .dark.theme-bw .dark\:bg-emerald-50, .dark.theme-bw .bg-blue-50, .dark.theme-bw .dark\:bg-blue-50, .dark.theme-bw .bg-amber-50, .dark.theme-bw .dark\:bg-amber-50, .dark.theme-bw .bg-violet-50, .dark.theme-bw .dark\:bg-violet-50, .dark.theme-bw .bg-green-50, .dark.theme-bw .dark\:bg-green-50 { background-color: hsl(0,0%,95%) !important; } .dark.theme-bw .bg-red-100, .dark.theme-bw .dark\:bg-red-100, .dark.theme-bw .bg-orange-100, .dark.theme-bw .dark\:bg-orange-100, .dark.theme-bw .bg-yellow-100, .dark.theme-bw .dark\:bg-yellow-100, .dark.theme-bw .bg-emerald-100, .dark.theme-bw .dark\:bg-emerald-100, .dark.theme-bw .bg-blue-100, .dark.theme-bw .dark\:bg-blue-100, .dark.theme-bw .bg-amber-100, .dark.theme-bw .dark\:bg-amber-100, .dark.theme-bw .bg-violet-100, .dark.theme-bw .dark\:bg-violet-100, .dark.theme-bw .bg-green-100, .dark.theme-bw .dark\:bg-green-100 { background-color: hsl(0,0%,88%) !important; } .dark.theme-bw .bg-blue-500\/10, .dark.theme-bw .dark\:bg-blue-500\/10, .dark.theme-bw .bg-amber-500\/10, .dark.theme-bw .dark\:bg-amber-500\/10, .dark.theme-bw .bg-purple-500\/10, .dark.theme-bw .dark\:bg-purple-500\/10, .dark.theme-bw .bg-emerald-500\/10, .dark.theme-bw .dark\:bg-emerald-500\/10, .dark.theme-bw .bg-red-500\/10, .dark.theme-bw .dark\:bg-red-500\/10, .dark.theme-bw .bg-orange-500\/10, .dark.theme-bw .dark\:bg-orange-500\/10, .dark.theme-bw .bg-yellow-500\/10, .dark.theme-bw .dark\:bg-yellow-500\/10, .dark.theme-bw .bg-violet-500\/10, .dark.theme-bw .dark\:bg-violet-500\/10, .dark.theme-bw .bg-green-500\/10, .dark.theme-bw .dark\:bg-green-500\/10, .dark.theme-bw .bg-sky-500\/10, .dark.theme-bw .dark\:bg-sky-500\/10 { background-color: hsla(0,0%,50%,0.1) !important; } .dark.theme-bw .bg-blue-500\/20, .dark.theme-bw .dark\:bg-blue-500\/20, .dark.theme-bw .bg-amber-500\/20, .dark.theme-bw .dark\:bg-amber-500\/20, .dark.theme-bw .bg-purple-500\/20, .dark.theme-bw .dark\:bg-purple-500\/20, .dark.theme-bw .bg-emerald-500\/20, .dark.theme-bw .dark\:bg-emerald-500\/20, .dark.theme-bw .bg-red-500\/20, .dark.theme-bw .dark\:bg-red-500\/20, .dark.theme-bw .bg-violet-500\/20, .dark.theme-bw .dark\:bg-violet-500\/20 { background-color: hsla(0,0%,50%,0.2) !important; } .dark.theme-bw .bg-blue-500\/5, .dark.theme-bw .dark\:bg-blue-500\/5, .dark.theme-bw .bg-amber-500\/5, .dark.theme-bw .dark\:bg-amber-500\/5, .dark.theme-bw .bg-purple-500\/5, .dark.theme-bw .dark\:bg-purple-500\/5, .dark.theme-bw .bg-emerald-500\/5, .dark.theme-bw .dark\:bg-emerald-500\/5, .dark.theme-bw .bg-red-500\/5, .dark.theme-bw .dark\:bg-red-500\/5, .dark.theme-bw .bg-violet-500\/5, .dark.theme-bw .dark\:bg-violet-500\/5 { background-color: hsla(0,0%,50%,0.05) !important; } /* ----- Dark mode: text-{color}-{shade} (regular AND dark: variant) ----- */ .dark.theme-bw .text-blue-500, .dark.theme-bw .dark\:text-blue-500, .dark.theme-bw .text-amber-500, .dark.theme-bw .dark\:text-amber-500, .dark.theme-bw .text-purple-500, .dark.theme-bw .dark\:text-purple-500, .dark.theme-bw .text-emerald-500, .dark.theme-bw .dark\:text-emerald-500, .dark.theme-bw .text-red-500, .dark.theme-bw .dark\:text-red-500, .dark.theme-bw .text-orange-500, .dark.theme-bw .dark\:text-orange-500, .dark.theme-bw .text-yellow-500, .dark.theme-bw .dark\:text-yellow-500, .dark.theme-bw .text-violet-500, .dark.theme-bw .dark\:text-violet-500, .dark.theme-bw .text-green-500, .dark.theme-bw .dark\:text-green-500, .dark.theme-bw .text-sky-500, .dark.theme-bw .dark\:text-sky-500, .dark.theme-bw .text-teal-500, .dark.theme-bw .dark\:text-teal-500, .dark.theme-bw .text-indigo-500, .dark.theme-bw .dark\:text-indigo-500, .dark.theme-bw .text-pink-500, .dark.theme-bw .dark\:text-pink-500, .dark.theme-bw .text-rose-500, .dark.theme-bw .dark\:text-rose-500 { color: hsl(0,0%,65%) !important; } .dark.theme-bw .text-blue-600, .dark.theme-bw .dark\:text-blue-600, .dark.theme-bw .text-amber-600, .dark.theme-bw .dark\:text-amber-600, .dark.theme-bw .text-emerald-600, .dark.theme-bw .dark\:text-emerald-600, .dark.theme-bw .text-red-600, .dark.theme-bw .dark\:text-red-600, .dark.theme-bw .text-green-600, .dark.theme-bw .dark\:text-green-600, .dark.theme-bw .text-orange-600, .dark.theme-bw .dark\:text-orange-600, .dark.theme-bw .text-yellow-600, .dark.theme-bw .dark\:text-yellow-600, .dark.theme-bw .text-violet-600, .dark.theme-bw .dark\:text-violet-600 { color: hsl(0,0%,50%) !important; } .dark.theme-bw .text-blue-400, .dark.theme-bw .dark\:text-blue-400, .dark.theme-bw .text-red-400, .dark.theme-bw .dark\:text-red-400, .dark.theme-bw .text-emerald-400, .dark.theme-bw .dark\:text-emerald-400, .dark.theme-bw .text-amber-400, .dark.theme-bw .dark\:text-amber-400, .dark.theme-bw .text-sky-400, .dark.theme-bw .dark\:text-sky-400, .dark.theme-bw .text-green-400, .dark.theme-bw .dark\:text-green-400, .dark.theme-bw .text-rose-400, .dark.theme-bw .dark\:text-rose-400, .dark.theme-bw .text-orange-400, .dark.theme-bw .dark\:text-orange-400, .dark.theme-bw .text-purple-400, .dark.theme-bw .dark\:text-purple-400 { color: hsl(0,0%,75%) !important; } .dark.theme-bw .text-blue-700, .dark.theme-bw .dark\:text-blue-700, .dark.theme-bw .text-amber-700, .dark.theme-bw .dark\:text-amber-700, .dark.theme-bw .text-emerald-700, .dark.theme-bw .dark\:text-emerald-700, .dark.theme-bw .text-red-700, .dark.theme-bw .dark\:text-red-700, .dark.theme-bw .text-orange-700, .dark.theme-bw .dark\:text-orange-700, .dark.theme-bw .text-yellow-700, .dark.theme-bw .dark\:text-yellow-700, .dark.theme-bw .text-violet-700, .dark.theme-bw .dark\:text-violet-700 { color: hsl(0,0%,35%) !important; } .dark.theme-bw .text-emerald-600\/60, .dark.theme-bw .dark\:text-emerald-600\/60 { color: hsla(0,0%,50%,0.7) !important; } .dark.theme-bw .text-red-500\/40, .dark.theme-bw .dark\:text-red-500\/40 { color: hsla(0,0%,65%,0.5) !important; } /* ----- Dark mode: border-{color}-{shade} ----- */ .dark.theme-bw .border-blue-500, .dark.theme-bw .dark\:border-blue-500, .dark.theme-bw .border-amber-500, .dark.theme-bw .dark\:border-amber-500, .dark.theme-bw .border-purple-500, .dark.theme-bw .dark\:border-purple-500, .dark.theme-bw .border-emerald-500, .dark.theme-bw .dark\:border-emerald-500, .dark.theme-bw .border-red-500, .dark.theme-bw .dark\:border-red-500, .dark.theme-bw .border-orange-500, .dark.theme-bw .dark\:border-orange-500, .dark.theme-bw .border-yellow-500, .dark.theme-bw .dark\:border-yellow-500, .dark.theme-bw .border-violet-500, .dark.theme-bw .dark\:border-violet-500 { border-color: hsl(0,0%,50%) !important; } .dark.theme-bw .border-blue-500\/20, .dark.theme-bw .dark\:border-blue-500\/20, .dark.theme-bw .border-amber-500\/20, .dark.theme-bw .dark\:border-amber-500\/20, .dark.theme-bw .border-purple-500\/20, .dark.theme-bw .dark\:border-purple-500\/20, .dark.theme-bw .border-emerald-500\/20, .dark.theme-bw .dark\:border-emerald-500\/20, .dark.theme-bw .border-red-500\/20, .dark.theme-bw .dark\:border-red-500\/20 { border-color: hsla(0,0%,50%,0.2) !important; } .dark.theme-bw .border-red-200, .dark.theme-bw .dark\:border-red-200, .dark.theme-bw .border-orange-200, .dark.theme-bw .dark\:border-orange-200, .dark.theme-bw .border-yellow-200, .dark.theme-bw .dark\:border-yellow-200, .dark.theme-bw .border-emerald-200, .dark.theme-bw .dark\:border-emerald-200, .dark.theme-bw .border-blue-200, .dark.theme-bw .dark\:border-blue-200, .dark.theme-bw .border-violet-200, .dark.theme-bw .dark\:border-violet-200 { border-color: hsl(0,0%,80%) !important; } .dark.theme-bw .border-red-300, .dark.theme-bw .dark\:border-red-300, .dark.theme-bw .border-orange-300, .dark.theme-bw .dark\:border-orange-300, .dark.theme-bw .border-yellow-300, .dark.theme-bw .dark\:border-yellow-300, .dark.theme-bw .border-emerald-300, .dark.theme-bw .dark\:border-emerald-300, .dark.theme-bw .border-blue-300, .dark.theme-bw .dark\:border-blue-300, .dark.theme-bw .border-violet-300, .dark.theme-bw .dark\:border-violet-300 { border-color: hsl(0,0%,70%) !important; } .dark.theme-bw .ring-blue-500\/20, .dark.theme-bw .dark\:ring-blue-500\/20, .dark.theme-bw .ring-amber-500\/20, .dark.theme-bw .dark\:ring-amber-500\/20, .dark.theme-bw .ring-emerald-500\/20, .dark.theme-bw .dark\:ring-emerald-500\/20, .dark.theme-bw .ring-red-500\/20, .dark.theme-bw .dark\:ring-red-500\/20, .dark.theme-bw .ring-purple-500\/20, .dark.theme-bw .dark\:ring-purple-500\/20 { --tw-ring-color: hsla(0,0%,50%,0.2) !important; } /* ----- Dark mode: Gradient direction classes ----- */ .dark.theme-bw .from-blue-500, .dark.theme-bw .dark\:from-blue-500, .dark.theme-bw .from-amber-500, .dark.theme-bw .dark\:from-amber-500, .dark.theme-bw .from-purple-500, .dark.theme-bw .dark\:from-purple-500, .dark.theme-bw .from-emerald-500, .dark.theme-bw .dark\:from-emerald-500, .dark.theme-bw .from-red-500, .dark.theme-bw .dark\:from-red-500, .dark.theme-bw .from-orange-500, .dark.theme-bw .dark\:from-orange-500, .dark.theme-bw .from-violet-500, .dark.theme-bw .dark\:from-violet-500, .dark.theme-bw .from-green-500, .dark.theme-bw .dark\:from-green-500, .dark.theme-bw .from-pink-500, .dark.theme-bw .dark\:from-pink-500, .dark.theme-bw .from-cyan-400, .dark.theme-bw .dark\:from-cyan-400, .dark.theme-bw .from-fuchsia-500, .dark.theme-bw .dark\:from-fuchsia-500 { --tw-gradient-from: hsl(0,0%,50%) !important; } .dark.theme-bw .to-blue-500, .dark.theme-bw .dark\:to-blue-500, .dark.theme-bw .to-amber-500, .dark.theme-bw .dark\:to-amber-500, .dark.theme-bw .to-purple-500, .dark.theme-bw .dark\:to-purple-500, .dark.theme-bw .to-emerald-500, .dark.theme-bw .dark\:to-emerald-500, .dark.theme-bw .to-red-500, .dark.theme-bw .dark\:to-red-500, .dark.theme-bw .to-orange-500, .dark.theme-bw .dark\:to-orange-500, .dark.theme-bw .to-green-500, .dark.theme-bw .dark\:to-green-500, .dark.theme-bw .to-cyan-400, .dark.theme-bw .dark\:to-cyan-400 { --tw-gradient-to: hsl(0,0%,50%) !important; } .dark.theme-bw .from-blue-500\/5, .dark.theme-bw .dark\:from-blue-500\/5, .dark.theme-bw .from-amber-500\/5, .dark.theme-bw .dark\:from-amber-500\/5, .dark.theme-bw .from-purple-500\/5, .dark.theme-bw .dark\:from-purple-500\/5, .dark.theme-bw .from-emerald-500\/5, .dark.theme-bw .dark\:from-emerald-500\/5, .dark.theme-bw .from-red-500\/5, .dark.theme-bw .dark\:from-red-500\/5 { --tw-gradient-from: hsla(0,0%,50%,0.05) !important; } .dark.theme-bw .to-violet-500\/\[0\.02\], .dark.theme-bw .dark\:to-violet-500\/\[0\.02\], .dark.theme-bw .to-amber-500\/\[0\.02\], .dark.theme-bw .dark\:to-amber-500\/\[0\.02\] { --tw-gradient-to: hsla(0,0%,50%,0.02) !important; } .dark.theme-bw .from-violet-500\/5, .dark.theme-bw .dark\:from-violet-500\/5, .dark.theme-bw .from-amber-500\/5, .dark.theme-bw .dark\:from-amber-500\/5 { --tw-gradient-from: hsla(0,0%,50%,0.05) !important; } /* ----- Dark mode: Inline arbitrary hex colors (stat-card, voice-call, etc) ----- */ .dark.theme-bw .text-\[#C84B4B\], .dark.theme-bw .dark\:text-\[\#C84B4B\], .dark.theme-bw .text-\[\#FF1111\], .dark.theme-bw .dark\:text-\[\#FF1111\] { color: hsl(0,0%,60%) !important; } .dark.theme-bw .text-\[#5A8FC4\], .dark.theme-bw .dark\:text-\[\#5A8FC4\], .dark.theme-bw .text-\[\#1144FF\], .dark.theme-bw .dark\:text-\[\#1144FF\] { color: hsl(0,0%,50%) !important; } .dark.theme-bw .text-\[#2D3020\], .dark.theme-bw .dark\:text-\[\#2D3020\] { color: hsl(0,0%,20%) !important; } .dark.theme-bw .text-\[#8A9078\], .dark.theme-bw .dark\:text-\[\#8A9078\] { color: hsl(0,0%,55%) !important; } .dark.theme-bw .bg-\[#C84B4B\]\/10, .dark.theme-bw .dark\:bg-\[\#C84B4B\]\/10, .dark.theme-bw .bg-\[#5A8FC4\]\/10, .dark.theme-bw .dark\:bg-\[\#5A8FC4\]\/10 { background-color: hsla(0,0%,50%,0.1) !important; } .dark.theme-bw .from-\[#C84B4B\], .dark.theme-bw .dark\:from-\[\#C84B4B\], .dark.theme-bw .via-\[#C84B4B\], .dark.theme-bw .dark\:via-\[\#C84B4B\], .dark.theme-bw .to-\[#C84B4B\], .dark.theme-bw .dark\:to-\[\#C84B4B\] { --tw-gradient-from: hsl(0,0%,50%) !important; } .dark.theme-bw .from-\[#5A8FC4\], .dark.theme-bw .dark\:from-\[\#5A8FC4\], .dark.theme-bw .via-\[#5A8FC4\], .dark.theme-bw .dark\:via-\[\#5A8FC4\], .dark.theme-bw .to-\[#5A8FC4\], .dark.theme-bw .dark\:to-\[\#5A8FC4\] { --tw-gradient-from: hsl(0,0%,50%) !important; } /* ----- Dark mode: SVG stroke/fill (app-shell, etc) ----- */ .dark.theme-bw [stroke="#CC0000"] { stroke: hsl(0,0%,50%) !important; } .dark.theme-bw [stroke="#0033CC"] { stroke: hsl(0,0%,50%) !important; } .dark.theme-bw [fill="#2D3020"] { fill: hsl(0,0%,20%) !important; } .dark.theme-bw [fill="#8A9078"] { fill: hsl(0,0%,55%) !important; } /* ----- Dark mode: Hover states ----- */ .dark.theme-bw .hover\:bg-sky-400\/20:hover { background-color: hsla(0,0%,50%,0.2) !important; } .dark.theme-bw .hover\:bg-emerald-700:hover { background-color: hsl(0,0%,30%) !important; } /* ----- Light mode overrides ----- */ .light.theme-bw .bg-blue-500, .light.theme-bw .dark\:bg-blue-500, .light.theme-bw .bg-amber-500, .light.theme-bw .dark\:bg-amber-500, .light.theme-bw .bg-purple-500, .light.theme-bw .dark\:bg-purple-500, .light.theme-bw .bg-emerald-500, .light.theme-bw .dark\:bg-emerald-500, .light.theme-bw .bg-red-500, .light.theme-bw .dark\:bg-red-500, .light.theme-bw .bg-orange-500, .light.theme-bw .dark\:bg-orange-500, .light.theme-bw .bg-yellow-500, .light.theme-bw .dark\:bg-yellow-500, .light.theme-bw .bg-violet-500, .light.theme-bw .dark\:bg-violet-500, .light.theme-bw .bg-green-500, .light.theme-bw .dark\:bg-green-500, .light.theme-bw .bg-sky-500, .light.theme-bw .dark\:bg-sky-500 { background-color: hsl(0,0%,50%) !important; } .light.theme-bw .text-blue-500, .light.theme-bw .dark\:text-blue-500, .light.theme-bw .text-amber-500, .light.theme-bw .dark\:text-amber-500, .light.theme-bw .text-purple-500, .light.theme-bw .dark\:text-purple-500, .light.theme-bw .text-emerald-500, .light.theme-bw .dark\:text-emerald-500, .light.theme-bw .text-red-500, .light.theme-bw .dark\:text-red-500, .light.theme-bw .text-orange-500, .light.theme-bw .dark\:text-orange-500, .light.theme-bw .text-yellow-500, .light.theme-bw .dark\:text-yellow-500, .light.theme-bw .text-violet-500, .light.theme-bw .dark\:text-violet-500, .light.theme-bw .text-sky-400, .light.theme-bw .dark\:text-sky-400, .light.theme-bw .text-rose-500, .light.theme-bw .dark\:text-rose-500, .light.theme-bw .text-green-500, .light.theme-bw .dark\:text-green-500 { color: hsl(0,0%,40%) !important; } .light.theme-bw .bg-blue-500\/10, .light.theme-bw .dark\:bg-blue-500\/10, .light.theme-bw .bg-amber-500\/10, .light.theme-bw .dark\:bg-amber-500\/10, .light.theme-bw .bg-purple-500\/10, .light.theme-bw .dark\:bg-purple-500\/10, .light.theme-bw .bg-emerald-500\/10, .light.theme-bw .dark\:bg-emerald-500\/10, .light.theme-bw .bg-red-500\/10, .light.theme-bw .dark\:bg-red-500\/10 { background-color: hsla(0,0%,50%,0.1) !important; } /* ============================================================================ Pipeline (Kanban Board + Stat Cards) — white glow instead of stage colours ============================================================================ */ /* ---- Kanban columns ---- */ .dark.theme-bw .overflow-x-auto > .flex-col.rounded-lg.border { box-shadow: 0 0 20px hsla(0,0%,100%,0.06), 0 0 50px hsla(0,0%,100%,0.02) !important; } .dark.theme-bw .overflow-x-auto > .flex-col.rounded-lg.border .rounded-t-lg { background: transparent !important; border-bottom-color: hsla(0,0%,100%,0.1) !important; } .dark.theme-bw .overflow-x-auto > .flex-col.rounded-lg.border .h-2.w-2.rounded-full { background: hsl(0,0%,65%) !important; box-shadow: 0 0 6px hsla(0,0%,100%,0.4) !important; } .dark.theme-bw .overflow-x-auto .cursor-grab .rounded-full { background: hsl(0,0%,50%) !important; box-shadow: 0 0 6px hsla(0,0%,100%,0.2) !important; } /* ---- Dashboard cards (Pipeline Overview stat cards, Analytics charts, Recent Leads table) ---- */ .dark.theme-bw .z-\[1\].space-y-6 .rounded-xl.border.bg-card { box-shadow: 0 0 16px hsla(0,0%,100%,0.05), 0 0 40px hsla(0,0%,100%,0.015) !important; } .dark.theme-bw .z-\[1\].space-y-6 .rounded-xl.border.bg-card .rounded-xl { background: transparent !important; box-shadow: 0 0 12px hsla(0,0%,100%,0.15), inset 0 0 8px hsla(0,0%,100%,0.05) !important; } .dark.theme-bw .z-\[1\].space-y-6 .rounded-xl.border.bg-card .rounded-xl svg { color: hsl(0,0%,70%) !important; } .dark.theme-bw .z-\[1\].space-y-6 .rounded-xl.border.bg-card .h-1\.5.bg-muted.rounded-full .rounded-full { background: hsl(0,0%,50%) !important; box-shadow: 0 0 8px hsla(0,0%,100%,0.3) !important; }