/* --- CSS VARIABLES: MUST BE AT THE TOP --- */
/* Default theme color if nothing is stored in localStorage */
:root {
  --primary-color: #3625cc; 
  --danger-color: #cf1414;
}

/* Base Styles */
body {
    transition: background-color 0.3s;
}

.text-center {
  text-align: center;
}

/* --- ENHANCED GRID TRAIL CSS --- */
#cursor-grid-container {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  pointer-events: none !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, 50px) !important;
  grid-template-rows: repeat(auto-fill, 50px) !important;
  overflow: hidden !important;
  z-index: -10 !important;
}

#cursor-grid-container.disabled {
  display: none !important;
}

.grid-square {
  /* NOW USES THE CSS VARIABLE */
  background-color: var(--primary-color);
  opacity: 0;
  transition: opacity 1s, transform 0.5s;
  transform: scale(0);
  outline: 1px solid rgba(54, 37, 204, 0.05); 
}

.grid-square.active {
  opacity: 0.5;
  transform: scale(1);
}
/* -------------------------------- */

/* --- ACCORDION STYLES (UPDATED TO USE VARS) --- */
.accordion-container {
  width: 100%;
  max-width: 600px;
  margin-bottom: 2em;
}

.accordion-item {
  margin-bottom: 10px;
  /* NOW USES THE CSS VARIABLE */
  border: 1px solid var(--primary-color);
  border-radius: 10px;
  overflow: hidden;
}

.accordion-header {
  /* NOW USES THE CSS VARIABLE */
  background-color: var(--primary-color);
  color: #ffffff;
  padding: 15px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1.2em;
  font-weight: bold;
}

.accordion-content {
  padding: 15px;
  background-color: #1a1a1a; /* Darker background for content area */
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out, padding 0.3s ease-out;
}

.accordion-item.active .accordion-content {
  max-height: 500px; /* Adjust this value if content is very long */
  padding: 15px;
}

.arrow {
  transition: transform 0.3s ease-out;
}

.accordion-item.active .arrow {
  transform: rotate(180deg);
}

/* Style inputs/buttons inside accordion content to match */
.accordion-content input, .accordion-content textarea, .accordion-content button {
  margin-top: 10px;
}

/* Universal Button Styling Update */
.color-button {
  padding: 10px 20px; 
  border: none; 
  border-radius: 10px; 
  color: #ffffff;
  cursor: pointer;
}

/* Apply variable to buttons */
.color-button-primary {
  background-color: var(--primary-color);
}
.color-button-danger {
  background-color: var(--danger-color);
}