File size: 3,207 Bytes
6a44dcb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | @tailwind base;
@tailwind components;
@tailwind utilities;
:root {
--foreground-rgb: 255, 255, 255;
--background-start-rgb: 15, 23, 42;
--background-end-rgb: 30, 41, 59;
}
body {
color: rgb(var(--foreground-rgb));
background: linear-gradient(
135deg,
rgb(var(--background-start-rgb)) 0%,
rgb(var(--background-end-rgb)) 100%
);
min-height: 100vh;
}
/* Glass morphism effect */
.glass {
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.glass-card {
background: linear-gradient(
135deg,
rgba(255, 255, 255, 0.1) 0%,
rgba(255, 255, 255, 0.05) 100%
);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.15);
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, #0ea5e9 0%, #d946ef 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Button styles */
.btn-primary {
@apply px-6 py-3 bg-gradient-to-r from-primary-500 to-accent-500 rounded-xl font-semibold;
@apply hover:from-primary-600 hover:to-accent-600 transition-all duration-300;
@apply shadow-lg hover:shadow-primary-500/30;
}
.btn-secondary {
@apply px-6 py-3 glass rounded-xl font-semibold;
@apply hover:bg-white/10 transition-all duration-300;
}
/* Input styles */
.input-field {
@apply w-full px-4 py-3 bg-white/5 border border-white/10 rounded-xl;
@apply focus:outline-none focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20;
@apply transition-all duration-300 text-white placeholder-white/40;
}
/* Card hover effect */
.hover-lift {
@apply transition-all duration-300;
}
.hover-lift:hover {
@apply -translate-y-1 shadow-xl;
}
/* Animate gradient background */
.animate-gradient-bg {
background: linear-gradient(
-45deg,
#0ea5e9,
#6366f1,
#d946ef,
#0ea5e9
);
background-size: 400% 400%;
animation: gradient 15s ease infinite;
}
@keyframes gradient {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
/* Loading spinner */
.spinner {
width: 40px;
height: 40px;
border: 3px solid rgba(255, 255, 255, 0.1);
border-top-color: #0ea5e9;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
/* Progress bar */
.progress-bar {
@apply h-2 rounded-full bg-white/10 overflow-hidden;
}
.progress-bar-fill {
@apply h-full rounded-full transition-all duration-500 ease-out;
background: linear-gradient(90deg, #0ea5e9 0%, #d946ef 100%);
}
/* Sentiment colors */
.sentiment-positive {
@apply text-emerald-400;
}
.sentiment-neutral {
@apply text-yellow-400;
}
.sentiment-negative {
@apply text-red-400;
}
/* Risk severity colors */
.risk-critical {
@apply bg-red-500/20 border-red-500/50 text-red-400;
}
.risk-high {
@apply bg-orange-500/20 border-orange-500/50 text-orange-400;
}
.risk-medium {
@apply bg-yellow-500/20 border-yellow-500/50 text-yellow-400;
}
.risk-low {
@apply bg-blue-500/20 border-blue-500/50 text-blue-400;
}
|