body {
    font-family: 'Inter', sans-serif;
}
.fade-in { animation: fadeIn 0.5s ease-in-out; }
.fade-out { animation: fadeOut 0.5s ease-in-out forwards; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-10px); } }
.spinner {
    border: 4px solid rgba(255, 255, 255, 0.1);
    width: 36px; height: 36px;
    border-radius: 50%;
    border-left-color: #38bdf8;
    animation: spin 1s ease infinite;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
#ai-insights-content h2 { font-size: 1.25rem; font-weight: 600; margin-top: 1rem; margin-bottom: 0.5rem; }
#ai-insights-content ul { list-style-type: disc; padding-left: 1.5rem; margin-bottom: 1rem; }
#ai-insights-content p { margin-bottom: 0.5rem; }
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 4px; border-radius: 5px; outline: none; opacity: 0.7; transition: opacity .2s; background: #d1d5db; }
.dark input[type="range"] { background: #4b5563; }
input[type="range"]:hover { opacity: 1; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; background: #38bdf8; cursor: pointer; border-radius: 50%; }
input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; background: #38bdf8; cursor: pointer; border-radius: 50%; border: none; }
.chart-container { position: relative; height: 250px; width: 100%; }
/* Toggle Switch Styles */
.toggle-checkbox:checked { right: 0; border-color: #38bdf8; }
.toggle-checkbox:checked + .toggle-label { background-color: #38bdf8; }
/* Custom date picker icon color */
input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(0.8) sepia(1) saturate(5) hue-rotate(180deg);
}

/* Ensure body is the positioning context */
body {
    position: relative;
}

/* Fix hardcoded table text colors for light mode */
.light .text-gray-50,
body:not(.dark) .text-gray-50 {
    color: #111827 !important; /* gray-900 */
}
.light .text-gray-200,
body:not(.dark) .text-gray-200 {
    color: #374151 !important; /* gray-700 */
}
.light .text-gray-300,
body:not(.dark) .text-gray-300 {
    color: #4b5563 !important; /* gray-600 */
}
.light .text-gray-400,
body:not(.dark) .text-gray-400 {
    color: #6b7280 !important; /* gray-500 */
}

/* Interactive Mouse Follower Light */
#mouse-light {
    position: fixed;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.1) 0%, rgba(56, 189, 248, 0) 60%);
    pointer-events: none;
    z-index: 1; /* Bring it above the blobs but below content */
    transition: transform 0.1s ease-out;
}

/* Animated Gradient Background */
#background-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1; /* Place it behind the mouse light */
    overflow: hidden;
}
#background-container .blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.3;
}
#blob1 {
    width: 500px; height: 500px;
    background-color: #38bdf8; /* sky-500 */
    top: -150px; left: -150px;
    animation: move 30s infinite alternate ease-in-out;
}
#blob2 {
    width: 600px; height: 600px;
    background-color: #22d3ee; /* cyan-400 */
    bottom: -200px; right: -200px;
    animation: move 35s infinite alternate-reverse ease-in-out;
}
@keyframes move {
    from { transform: translate(0, 0) scale(1) rotate(0deg); }
    to { transform: translate(150px, 100px) scale(1.2) rotate(45deg); }
}
