Spaces:
Sleeping
Sleeping
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap'); | |
| @import "tailwindcss"; | |
| @source "../components"; | |
| :root { | |
| --foreground-rgb: 255, 255, 255; | |
| --background-start-rgb: 8, 12, 24; | |
| --background-end-rgb: 2, 6, 14; | |
| /* Premium accent colors */ | |
| --accent-cyan: 6, 182, 212; | |
| --accent-blue: 59, 130, 246; | |
| --accent-purple: 139, 92, 246; | |
| /* Risk colors */ | |
| --risk-critical: 239, 68, 68; | |
| --risk-warning: 245, 158, 11; | |
| --risk-normal: 16, 185, 129; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| html, | |
| body { | |
| max-width: 100vw; | |
| overflow-x: hidden; | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif; | |
| } | |
| body { | |
| color: rgb(var(--foreground-rgb)); | |
| background: linear-gradient(135deg, | |
| rgb(var(--background-start-rgb)) 0%, | |
| rgb(8, 15, 35) 50%, | |
| rgb(var(--background-end-rgb)) 100%); | |
| min-height: 100vh; | |
| background-attachment: fixed; | |
| } | |
| /* Premium scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: rgba(30, 41, 59, 0.5); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: linear-gradient(180deg, rgb(var(--accent-cyan)) 0%, rgb(var(--accent-blue)) 100%); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: linear-gradient(180deg, rgb(var(--accent-blue)) 0%, rgb(var(--accent-purple)) 100%); | |
| } | |
| /* Glassmorphism utilities */ | |
| .glass { | |
| background: rgba(15, 23, 42, 0.6); | |
| backdrop-filter: blur(12px); | |
| -webkit-backdrop-filter: blur(12px); | |
| border: 1px solid rgba(148, 163, 184, 0.1); | |
| } | |
| .glass-dark { | |
| background: rgba(2, 6, 23, 0.8); | |
| backdrop-filter: blur(16px); | |
| -webkit-backdrop-filter: blur(16px); | |
| border: 1px solid rgba(71, 85, 105, 0.3); | |
| } | |
| .glass-card { | |
| background: linear-gradient(135deg, | |
| rgba(15, 23, 42, 0.8) 0%, | |
| rgba(30, 41, 59, 0.6) 100%); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(148, 163, 184, 0.15); | |
| box-shadow: | |
| 0 4px 30px rgba(0, 0, 0, 0.3), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.05); | |
| } | |
| .glow-cyan { | |
| box-shadow: 0 0 20px rgba(var(--accent-cyan), 0.3), | |
| 0 0 40px rgba(var(--accent-cyan), 0.1); | |
| } | |
| .glow-blue { | |
| box-shadow: 0 0 20px rgba(var(--accent-blue), 0.3), | |
| 0 0 40px rgba(var(--accent-blue), 0.1); | |
| } | |
| .glow-red { | |
| box-shadow: 0 0 20px rgba(var(--risk-critical), 0.4), | |
| 0 0 40px rgba(var(--risk-critical), 0.2); | |
| } | |
| .text-gradient { | |
| background: linear-gradient(135deg, rgb(var(--accent-cyan)) 0%, rgb(var(--accent-blue)) 50%, rgb(var(--accent-purple)) 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .border-gradient { | |
| border-image: linear-gradient(135deg, rgb(var(--accent-cyan)), rgb(var(--accent-blue))) 1; | |
| } | |
| /* Custom animations */ | |
| @keyframes pulse-slow { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.7; | |
| } | |
| } | |
| @keyframes pulse-border { | |
| 0%, | |
| 100% { | |
| opacity: 0.5; | |
| } | |
| 50% { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes float { | |
| 0%, | |
| 100% { | |
| transform: translateY(0px); | |
| } | |
| 50% { | |
| transform: translateY(-10px); | |
| } | |
| } | |
| @keyframes glow-pulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 20px rgba(var(--accent-cyan), 0.2); | |
| } | |
| 50% { | |
| box-shadow: 0 0 40px rgba(var(--accent-cyan), 0.4); | |
| } | |
| } | |
| @keyframes shimmer { | |
| 0% { | |
| background-position: -200% 0; | |
| } | |
| 100% { | |
| background-position: 200% 0; | |
| } | |
| } | |
| @keyframes spin-slow { | |
| from { | |
| transform: rotate(0deg); | |
| } | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .animate-pulse-slow { | |
| animation: pulse-slow 2s ease-in-out infinite; | |
| } | |
| .animate-pulse-border { | |
| animation: pulse-border 2s ease-in-out infinite; | |
| } | |
| .animate-float { | |
| animation: float 3s ease-in-out infinite; | |
| } | |
| .animate-glow-pulse { | |
| animation: glow-pulse 2s ease-in-out infinite; | |
| } | |
| .animate-shimmer { | |
| background: linear-gradient(90deg, | |
| transparent 0%, | |
| rgba(255, 255, 255, 0.1) 50%, | |
| transparent 100%); | |
| background-size: 200% 100%; | |
| animation: shimmer 2s infinite; | |
| } | |
| .animate-spin-slow { | |
| animation: spin-slow 8s linear infinite; | |
| } | |
| /* Form input enhancements */ | |
| input[type="number"]::-webkit-inner-spin-button, | |
| input[type="number"]::-webkit-outer-spin-button { | |
| -webkit-appearance: none; | |
| margin: 0; | |
| } | |
| input[type="number"] { | |
| -moz-appearance: textfield; | |
| appearance: textfield; | |
| } | |
| /* Select styling */ | |
| select { | |
| background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); | |
| background-position: right 0.5rem center; | |
| background-repeat: no-repeat; | |
| background-size: 1.5em 1.5em; | |
| padding-right: 2.5rem; | |
| -webkit-appearance: none; | |
| -moz-appearance: none; | |
| appearance: none; | |
| } | |
| /* Transition utilities */ | |
| .transition-smooth { | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| /* Card hover effects */ | |
| .card-hover { | |
| transition: all 0.3s ease; | |
| } | |
| .card-hover:hover { | |
| box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1), 0 0 0 1px rgba(6, 182, 212, 0.1); | |
| transform: translateY(-4px); | |
| } | |
| /* Loading skeleton */ | |
| .skeleton { | |
| background: linear-gradient(90deg, | |
| rgba(30, 41, 59, 0.6) 25%, | |
| rgba(51, 65, 85, 0.6) 50%, | |
| rgba(30, 41, 59, 0.6) 75%); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| } |