389 lines
11 KiB
CSS
389 lines
11 KiB
CSS
.dark.theme-bw {
|
|
--background: 0 0% 4%;
|
|
--foreground: 0 0% 95%;
|
|
--card: 0 0% 8%;
|
|
--card-foreground: 0 0% 95%;
|
|
--popover: 0 0% 8%;
|
|
--popover-foreground: 0 0% 95%;
|
|
--primary: 0 0% 95%;
|
|
--primary-foreground: 0 0% 0%;
|
|
--secondary: 0 0% 50%;
|
|
--secondary-foreground: 0 0% 100%;
|
|
--muted: 0 0% 12%;
|
|
--muted-foreground: 0 0% 55%;
|
|
--accent: 0 0% 95%;
|
|
--accent-foreground: 0 0% 0%;
|
|
--destructive: 0 70% 50%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
--border: 0 0% 20%;
|
|
--input: 0 0% 20%;
|
|
--ring: 0 0% 70%;
|
|
--radius: 0.5rem;
|
|
--sidebar: 0 0% 4%;
|
|
--sidebar-foreground: 0 0% 95%;
|
|
--sidebar-primary: 0 0% 95%;
|
|
--sidebar-primary-foreground: 0 0% 0%;
|
|
--sidebar-accent: 0 0% 95%;
|
|
--sidebar-accent-foreground: 0 0% 0%;
|
|
--sidebar-border: 0 0% 15%;
|
|
--sidebar-ring: 0 0% 70%;
|
|
}
|
|
|
|
.light.theme-bw {
|
|
--background: 0 0% 97%;
|
|
--foreground: 0 0% 10%;
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 0 0% 10%;
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 0 0% 10%;
|
|
--primary: 0 0% 10%;
|
|
--primary-foreground: 0 0% 100%;
|
|
--secondary: 0 0% 40%;
|
|
--secondary-foreground: 0 0% 100%;
|
|
--muted: 0 0% 90%;
|
|
--muted-foreground: 0 0% 45%;
|
|
--accent: 0 0% 10%;
|
|
--accent-foreground: 0 0% 100%;
|
|
--destructive: 0 80% 50%;
|
|
--destructive-foreground: 0 0% 100%;
|
|
--border: 0 0% 82%;
|
|
--input: 0 0% 82%;
|
|
--ring: 0 0% 50%;
|
|
--radius: 0.5rem;
|
|
--sidebar: 0 0% 100%;
|
|
--sidebar-foreground: 0 0% 10%;
|
|
--sidebar-primary: 0 0% 10%;
|
|
--sidebar-primary-foreground: 0 0% 100%;
|
|
--sidebar-accent: 0 0% 10%;
|
|
--sidebar-accent-foreground: 0 0% 100%;
|
|
--sidebar-border: 0 0% 82%;
|
|
--sidebar-ring: 0 0% 50%;
|
|
}
|
|
|
|
.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,
|
|
.light.theme-bw .growth-word {
|
|
-webkit-text-fill-color: #1BB0CE !important;
|
|
color: #1BB0CE !important;
|
|
background: none !important;
|
|
}
|
|
|
|
/* ============================================================================
|
|
Client Portal Overrides — Background for portal pages
|
|
============================================================================ */
|
|
|
|
/* Make the outer portal container transparent so body::before background shows */
|
|
.dark.theme-bw .min-h-screen.bg-background {
|
|
background: transparent !important;
|
|
}
|
|
|
|
/* Portal sidebar — dark glass */
|
|
.dark.theme-bw aside.bg-card.border-r.border-border {
|
|
background: hsl(240, 15%, 3%) !important;
|
|
border-right-color: hsl(270, 25%, 10%) !important;
|
|
}
|
|
|
|
/* Portal sidebar nav items — muted text */
|
|
.dark.theme-bw aside .text-muted-foreground {
|
|
color: hsl(240, 8%, 50%) !important;
|
|
}
|
|
.dark.theme-bw aside button:hover {
|
|
background: hsla(330, 100%, 50%, 0.08) !important;
|
|
color: hsl(0, 0%, 90%) !important;
|
|
}
|
|
|
|
/* Portal sidebar active nav item */
|
|
.dark.theme-bw aside .bg-primary\/10.text-primary {
|
|
background: hsl(330, 100%, 50%) !important;
|
|
color: hsl(0, 0%, 100%) !important;
|
|
box-shadow: 0 0 10px rgba(255, 0, 127, 0.3), 0 0 20px rgba(255, 0, 127, 0.1);
|
|
border-color: hsl(330, 100%, 50%) !important;
|
|
}
|
|
.dark.theme-bw aside .bg-primary\/10.text-primary svg {
|
|
color: hsl(0, 0%, 100%) !important;
|
|
}
|
|
|
|
/* Portal header — dark glass */
|
|
.dark.theme-bw header.bg-card\/80 {
|
|
background: hsl(240, 15%, 3%) !important;
|
|
border-bottom-color: hsl(270, 25%, 10%) !important;
|
|
}
|
|
|
|
/* Portal card backgrounds — semi-transparent glass */
|
|
.dark.theme-bw .bg-card {
|
|
background: hsla(240, 15%, 7%, 0.65) !important;
|
|
backdrop-filter: blur(10px) !important;
|
|
border-color: hsla(270, 30%, 20%, 0.35) !important;
|
|
}
|
|
|
|
/* Portal borders */
|
|
.dark.theme-bw .border-border {
|
|
border-color: hsl(270, 25%, 12%) !important;
|
|
}
|
|
|
|
/* Portal input fields */
|
|
.dark.theme-bw .bg-muted {
|
|
background: hsl(240, 12%, 9%) !important;
|
|
}
|
|
|
|
/* Portal primary buttons */
|
|
.dark.theme-bw .bg-primary {
|
|
background: hsl(330, 100%, 50%) !important;
|
|
box-shadow: 0 0 10px rgba(255, 0, 127, 0.2);
|
|
}
|
|
.dark.theme-bw .bg-primary:hover {
|
|
background: hsl(330, 100%, 55%) !important;
|
|
box-shadow: 0 0 15px rgba(255, 0, 127, 0.4);
|
|
}
|