@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; }