| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| |
|
|
| @layer base { |
| :root { |
| |
| --background: 0 0% 10%; |
| --background-deep: 0 0% 6%; |
| --background-card: 0 0% 18%; |
| --foreground: 0 0% 100%; |
|
|
| |
| --card: 0 0% 18%; |
| --card-foreground: 0 0% 100%; |
| --card-glass: 0 0% 17%; |
|
|
| --popover: 0 0% 18%; |
| --popover-foreground: 0 0% 100%; |
|
|
| |
| --primary: 195 100% 50%; |
| --primary-foreground: 0 0% 100%; |
| --primary-glow: 195 100% 60%; |
|
|
| |
| --secondary: 210 100% 40%; |
| --secondary-foreground: 0 0% 100%; |
|
|
| |
| --accent: 233 67% 60%; |
| --accent-foreground: 0 0% 100%; |
|
|
| |
| --success: 72 100% 42%; |
| --success-foreground: 0 0% 10%; |
|
|
| |
| --muted: 0 0% 17%; |
| --muted-foreground: 218 11% 65%; |
|
|
| |
| --destructive: 0 84% 60%; |
| --destructive-foreground: 0 0% 100%; |
|
|
| |
| --warning: 28 87% 57%; |
| --warning-foreground: 0 0% 10%; |
|
|
| |
| --border: 217 19% 27%; |
| --border-light: 214 32% 91%; |
| --border-medium: 214 20% 69%; |
| --input: 0 0% 10%; |
| --ring: 195 100% 50%; |
|
|
| --radius: 0.75rem; |
|
|
| |
| --text-primary: 0 0% 100%; |
| --text-secondary: 218 11% 82%; |
| --text-muted: 218 11% 65%; |
| --text-placeholder: 217 10% 47%; |
|
|
| |
| --stage-1: 51 100% 50%; |
| --stage-2: 33 100% 50%; |
| --stage-3: 9 100% 64%; |
| --stage-4: 0 100% 27%; |
|
|
| |
| --sidebar-background: 0 0% 10%; |
| --sidebar-foreground: 0 0% 100%; |
| --sidebar-primary: 195 100% 50%; |
| --sidebar-primary-foreground: 0 0% 100%; |
| --sidebar-accent: 0 0% 17%; |
| --sidebar-accent-foreground: 0 0% 100%; |
| --sidebar-border: 217 19% 27%; |
| --sidebar-ring: 195 100% 50%; |
|
|
| |
| --gradient-primary: linear-gradient(135deg, hsl(210 100% 40%), hsl(195 100% 50%)); |
| --gradient-secondary: linear-gradient(135deg, hsl(210 100% 40%), hsl(233 67% 60%)); |
| --gradient-danger: linear-gradient(135deg, hsl(0 72% 51%), hsl(0 84% 60%)); |
| --gradient-card: linear-gradient(145deg, hsl(0 0% 17% / 0.8), hsl(0 0% 10% / 0.9)); |
| --gradient-glow: radial-gradient(ellipse at center, hsl(195 100% 50% / 0.15), transparent 70%); |
| --gradient-background: linear-gradient(135deg, hsl(0 0% 17%), hsl(0 0% 10%)); |
|
|
| |
| --shadow-glow: 0 0 30px hsl(195 100% 50% / 0.3); |
| --shadow-card: 0 8px 32px hsl(0 0% 0% / 0.3); |
| --shadow-button: 0 4px 20px hsl(195 100% 50% / 0.4); |
| } |
|
|
| .dark { |
| |
| --background: 0 0% 10%; |
| --background-deep: 0 0% 6%; |
| --foreground: 0 0% 100%; |
| } |
| } |
|
|
| @layer base { |
| * { |
| @apply border-border; |
| } |
|
|
| body { |
| @apply bg-background text-foreground antialiased; |
| font-family: 'Inter', system-ui, -apple-system, sans-serif; |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 8px; |
| height: 8px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: hsl(var(--background-deep)); |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: hsl(var(--muted)); |
| border-radius: 4px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: hsl(var(--primary) / 0.6); |
| } |
| } |
|
|
| @layer components { |
| |
| .glass-card { |
| background: linear-gradient(145deg, hsl(228 30% 20% / 0.7), hsl(228 30% 15% / 0.8)); |
| backdrop-filter: blur(20px); |
| border: 1px solid hsl(var(--border) / 0.3); |
| box-shadow: 0 8px 32px hsl(0 0% 0% / 0.3); |
| } |
|
|
| .glass-card-hover:hover { |
| border-color: hsl(var(--primary) / 0.5); |
| box-shadow: 0 8px 32px hsl(0 0% 0% / 0.3), 0 0 20px hsl(var(--primary) / 0.2); |
| } |
|
|
| |
| .glow-border { |
| border: 1px solid hsl(var(--border)); |
| box-shadow: 0 0 0 1px hsl(var(--border) / 0.5), inset 0 0 20px hsl(var(--primary) / 0.05); |
| } |
|
|
| .glow-border:focus-within { |
| border-color: hsl(var(--primary)); |
| box-shadow: 0 0 0 1px hsl(var(--primary) / 0.5), 0 0 20px hsl(var(--primary) / 0.3); |
| } |
|
|
| |
| .btn-primary-glow { |
| background: var(--gradient-primary); |
| color: hsl(var(--primary-foreground)); |
| box-shadow: 0 4px 20px hsl(var(--primary) / 0.4); |
| transition: all 0.3s ease; |
| } |
|
|
| .btn-primary-glow:hover { |
| box-shadow: 0 6px 30px hsl(var(--primary) / 0.6); |
| transform: translateY(-2px); |
| } |
|
|
| |
| .btn-secondary-glow { |
| background: var(--gradient-secondary); |
| color: hsl(var(--secondary-foreground)); |
| box-shadow: 0 4px 20px hsl(var(--secondary) / 0.3); |
| transition: all 0.3s ease; |
| } |
|
|
| .btn-secondary-glow:hover { |
| box-shadow: 0 6px 25px hsl(var(--secondary) / 0.5); |
| transform: translateY(-2px); |
| } |
|
|
| |
| .btn-danger-glow { |
| background: var(--gradient-danger); |
| color: hsl(var(--destructive-foreground)); |
| box-shadow: 0 4px 20px hsl(var(--destructive) / 0.3); |
| transition: all 0.3s ease; |
| } |
|
|
| .btn-danger-glow:hover { |
| box-shadow: 0 6px 25px hsl(var(--destructive) / 0.5); |
| transform: translateY(-2px); |
| } |
|
|
| |
| .upload-zone { |
| border: 2px dashed hsl(var(--border)); |
| background: hsl(var(--card) / 0.5); |
| transition: all 0.3s ease; |
| } |
|
|
| .upload-zone:hover, |
| .upload-zone.drag-over { |
| border-color: hsl(var(--primary)); |
| background: hsl(var(--primary) / 0.05); |
| } |
|
|
| |
| .placeholder-box { |
| background: hsl(var(--muted) / 0.3); |
| border: 1px dashed hsl(var(--muted-foreground) / 0.3); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| color: hsl(var(--muted-foreground)); |
| font-style: italic; |
| } |
|
|
| |
| .cellular-bg { |
| background-image: |
| radial-gradient(ellipse 600px 600px at 10% 20%, hsl(195 100% 50% / 0.08), transparent), |
| radial-gradient(ellipse 400px 400px at 90% 80%, hsl(72 100% 42% / 0.06), transparent), |
| radial-gradient(ellipse 500px 500px at 50% 50%, hsl(210 100% 40% / 0.05), transparent); |
| } |
|
|
| |
| .floating-orb { |
| position: absolute; |
| border-radius: 50%; |
| filter: blur(60px); |
| opacity: 0.4; |
| animation: float 8s ease-in-out infinite; |
| } |
|
|
| @keyframes float { |
| 0%, 100% { |
| transform: translateY(0) translateX(0); |
| } |
| 25% { |
| transform: translateY(-20px) translateX(10px); |
| } |
| 50% { |
| transform: translateY(-10px) translateX(-10px); |
| } |
| 75% { |
| transform: translateY(-30px) translateX(5px); |
| } |
| } |
|
|
| |
| .text-gradient-primary { |
| background: var(--gradient-primary); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| } |
|
|
| |
| .input-medical { |
| background: hsl(var(--input)); |
| border: 1px solid hsl(var(--border) / 0.5); |
| color: hsl(var(--foreground)); |
| transition: all 0.3s ease; |
| } |
|
|
| .input-medical:focus { |
| border-color: hsl(var(--primary)); |
| box-shadow: 0 0 0 2px hsl(var(--primary) / 0.2); |
| outline: none; |
| } |
|
|
| .input-medical::placeholder { |
| color: hsl(var(--muted-foreground)); |
| } |
| } |
|
|
| @layer utilities { |
| .animate-pulse-slow { |
| animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite; |
| } |
|
|
| .animate-glow { |
| animation: glow 2s ease-in-out infinite alternate; |
| } |
|
|
| @keyframes glow { |
| from { |
| box-shadow: 0 0 20px hsl(var(--primary) / 0.3); |
| } |
| to { |
| box-shadow: 0 0 40px hsl(var(--primary) / 0.5); |
| } |
| } |
| } |
|
|