:root {
  --primary: #adc6ff;
  --primary-container: #00163a;
  --secondary: #d0bcff;
  --secondary-container: #571bc1;
  --tertiary: #b7c8e1;
  --tertiary-container: #06182b;
  --surface: #0b1326;
  --surface-variant: #2d3449;
  --on-surface: #dae2fd;
  --on-surface-variant: #c6c6cd;
  --outline-variant: #45464d;
}

body {
  background-color: var(--surface);
  color: var(--on-surface);
  font-family: 'Inter', sans-serif;
}

h1, h2, h3, h4, .font-headline {
  font-family: 'Manrope', sans-serif;
}

.glass-panel {
  background: rgba(45, 52, 73, 0.6);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

.text-gradient {
  background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.btn-gradient {
  background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  transition: all 0.3s ease;
}

.btn-gradient:hover {
  filter: brightness(1.1);
  box-shadow: 0 0 20px rgba(173, 198, 255, 0.3);
}

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: var(--surface);
}
::-webkit-scrollbar-thumb {
  background: var(--surface-variant);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--outline-variant);
}

/* Chatbot Widget Styles */
#ira-chatbot-trigger {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 1000;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

#ira-chatbot-window {
  position: fixed;
  bottom: 7rem;
  right: 2rem;
  width: 380px;
  height: 550px;
  z-index: 1000;
  display: none;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(173, 198, 255, 0.1);
}

#ira-chatbot-window.active {
  display: flex;
  animation: slideUp 0.3s ease-out;
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.chat-message {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 1rem;
  max-width: 85%;
  font-size: 0.9rem;
  line-height: 1.4;
}

.message-bot {
  background: var(--surface-variant);
  color: var(--on-surface);
  align-self: flex-start;
  border-bottom-left-radius: 0.25rem;
}

.message-user {
  background: var(--primary);
  color: var(--primary-container);
  align-self: flex-end;
  border-bottom-right-radius: 0.25rem;
  font-weight: 500;
}

.typing-indicator {
  display: flex;
  gap: 4px;
  padding: 0.5rem;
}

.typing-dot {
  width: 6px;
  height: 6px;
  background: var(--primary);
  border-radius: 50%;
  animation: blink 1.4s infinite both;
}

.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes blink {
  0%, 80%, 100% { opacity: 0.3; }
  40% { opacity: 1; }
}

/* Dashboard Utilities */
.custom-scrollbar::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.custom-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 10px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.animate-fade-in {
  animation: fadeIn 0.3s ease-out forwards;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

.custom-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.5)'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1.25rem;
}
