/* Base styles & Font */
body {
    font-family: 'Inter', sans-serif;
    scroll-behavior: smooth;
    background-color: #45474B; /* Default dark background - Dark Grey */
    color: #F5F7F8; /* Default dark text - Light Grey/Off-white */
    overflow-x: hidden; /* Prevent horizontal scroll */
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #495E57; /* Dark Greenish-grey */
}
::-webkit-scrollbar-thumb {
    background: #F4CE14; /* Yellow */
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #e0bb0f; /* Darker Yellow */
}

/* Light theme overrides */
html:not(.dark) body {
    background-color: #F5F7F8; /* Light Grey/Off-white */
    color: #45474B; /* Dark Grey */
}
html:not(.dark) ::-webkit-scrollbar-track {
    background: #d1d5db; /* Lighter Grey track */
}
html:not(.dark) ::-webkit-scrollbar-thumb {
    background: #F4CE14; /* Yellow */
}
html:not(.dark) ::-webkit-scrollbar-thumb:hover {
    background: #e0bb0f; /* Darker Yellow */
}
/* -- Helper classes for theme switching -- */
html:not(.dark) .dark-mode-bg { background-color: #F5F7F8; } /* Light Grey/Off-white */
html:not(.dark) .dark-mode-text { color: #45474B; } /* Dark Grey */
html:not(.dark) .dark-mode-text-muted { color: #495E57; } /* Dark Greenish-grey */
html:not(.dark) .dark-mode-card { background-color: #ffffff; border-color: #d1d5db;} /* White card, light grey border */
html:not(.dark) .dark-mode-border { border-color: #d1d5db; } /* Light grey border */
html:not(.dark) .dark-mode-input { background-color: #ffffff; border-color: #d1d5db; color: #45474B; } /* White input */
html:not(.dark) .dark-mode-input::placeholder { color: #888888; }
html:not(.dark) .dark-mode-nav { background-color: rgba(245, 247, 248, 0.9); } /* Light mode nav */


/* Dark theme styles */
.dark-mode-bg { background-color: #45474B; } /* Dark Grey */
.dark-mode-text { color: #F5F7F8; } /* Light Grey/Off-white */
.dark-mode-text-muted { color: #adb5bd; } /* Lighter Grey */
.dark-mode-card { background-color: #495E57; border-color: #6b7280; } /* Dark Greenish-grey card */
.dark-mode-border { border-color: #6b7280; } /* Medium Grey border */
.dark-mode-input { background-color: #495E57; border-color: #6b7280; color: #F5F7F8; } /* Dark Greenish-grey input */
.dark-mode-input::placeholder { color: #adb5bd; }
.dark-mode-nav { background-color: rgba(69, 71, 75, 0.85); } /* Dark mode nav */


/* Subtle Background Gradient Animation */
@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
/* Dark Mode Gradient */
.animated-gradient-bg {
    background: linear-gradient(-45deg, #45474B, #495E57, #3a3c3f, #6b7280);
    background-size: 400% 400%;
    animation: gradientShift 10s ease infinite;
}
/* Light Mode Gradient */
html:not(.dark) .animated-gradient-bg {
    background: linear-gradient(-45deg, #dedede, #ffffff, #d1d1d1, #f4f3f3);
    background-size: 400% 400%;
    animation: gradientShift 10s ease infinite;
}

/* Mouse Follower */
.mouse-follower {
    position: fixed;
    width: 30px;
    height: 30px;
    border: 1px solid #F4CE14; /* Yellow */
    border-radius: 50%;
    pointer-events: none;
    left: -15px; /* Half width */
    top: -15px; /* Half height */
    z-index: 9999;
    transition: transform 0.1s ease-out, opacity 0.2s ease-out;
    opacity: 0.5;
    mix-blend-mode: difference; /* Adjusted blend mode */
}
@media (pointer: coarse) {
    .mouse-follower {
         display: none; /* Hide on touch devices */
    }
}
.mouse-follower-dot {
    position: fixed;
    width: 6px;
    height: 6px;
    background-color: #F4CE14; /* Yellow */
    border-radius: 50%;
    pointer-events: none;
    left: -3px; /* Half width */
    top: -3px; /* Half height */
    z-index: 10000;
    transition: transform 0.05s ease-out;
}
@media (pointer: coarse) {
    .mouse-follower-dot {
         display: none; /* Hide on touch devices */
    }
}

/* Scroll Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* AI Chat Styling */
.chat-bubble {
    max-width: 80%;
    word-wrap: break-word;
}
.chat-bubble-user {
    background-color: #F4CE14; /* Yellow */
    color: #45474B; /* Dark Grey text */
}
.chat-bubble-bot {
    background-color: #495E57; /* Dark Greenish-grey */
    color: #F5F7F8; /* Light Grey text */
}
 html:not(.dark) .chat-bubble-bot {
    background-color: #e5e7eb; /* Lighter grey for light mode bot */
    color: #45474B; /* Dark Grey text */
}
 html:not(.dark) .chat-bubble-user {
    background-color: #F4CE14; /* Yellow */
    color: #45474B; /* Dark Grey text */
}
.loading-dots span {
    display: inline-block;
    width: 6px;
    height: 6px;
    background-color: currentColor;
    border-radius: 50%;
    margin: 0 2px;
    animation: bounce 1s infinite ease-in-out;
}
.loading-dots span:nth-child(1) { animation-delay: -0.32s; }
.loading-dots span:nth-child(2) { animation-delay: -0.16s; }
@keyframes bounce {
    0%, 80%, 100% { transform: scale(0); }
    40% { transform: scale(1.0); }
}

/* Adjust icon size */
.lucide {
    width: 1em; /* Default size, can be overridden by Tailwind */
    height: 1em;
    display: inline-block;
    vertical-align: middle; /* Align icons better with text */
}

