:root {
  --bg-primary: #0a192f;
  --bg-secondary: #112240;
  --bg-tertiary: #1f335a;
  
  --text-primary: #e6f1ff;
  --text-secondary: #8892b0;
  --text-accent: #64ffda;
  
  --accent-primary: #64ffda;
  --accent-secondary: #ff7e5f;
  
  --font-main: 'Inter', sans-serif;
  --font-heading: 'Outfit', sans-serif;
  
  --shadow-card: 0 10px 30px -10px rgba(2, 12, 27, 0.7);
  --shadow-hover: 0 20px 30px -15px rgba(2, 12, 27, 0.7);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-main);
  background-color: var(--bg-primary);
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  color: var(--text-primary);
}

button {
  font-family: var(--font-main);
}

/* Loader & Spinner Styles */
.spinner-container {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100%;
}

.spinner-border {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: text-bottom;
  border: 0.25em solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spinner-border .75s linear infinite;
  color: var(--accent-primary);
}

.spinner-border-sm {
  width: 1rem !important;
  height: 1rem !important;
  border-width: 0.15em !important;
}

@keyframes spinner-border {
  to { transform: rotate(360deg); }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.text-primary {
  color: var(--accent-primary) !important;
}

.d-flex { display: flex !important; }
.justify-content-center { justify-content: center !important; }
.align-items-center { align-items: center !important; }

