/* Base styles */
body {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  min-height: 500px;
}

/* Links */
a {
  color: var(--bs-primary);
}

/* Navbar */
.navbar {
  background-color: var(--bs-navbar-bg) !important;
  color: var(--bs-body-color);
}

/* Cards */
.card {
  background-color: var(--bs-card-bg);
  color: var(--bs-body-color);
  box-shadow: 0 8px 16px rgba(var(--bs-primary-rgb), 0.15), 
             0 16px 32px rgba(0, 0, 0, 0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid rgba(var(--bs-primary-rgb), 0.1);
}

.card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 24px rgba(var(--bs-primary-rgb), 0.2), 
             0 24px 48px rgba(0, 0, 0, 0.4);
}

/* Footer */
footer {
  background-color: var(--bs-footer-bg);
  color: var(--bs-footer-color) !important;
}

footer p,
footer h5,
footer .nav-link,
footer .text-light {
  color: var(--bs-footer-color) !important;
}

footer .nav-link:hover {
  color: var(--bs-primary) !important;
}

/* Form controls */
input, textarea {
  background-color: var(--bs-input-bg) !important;
  color: var(--bs-input-color) !important;
  border-color: var(--bs-input-border-color) !important;
}

/* Buttons */
.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #000;
}

.btn-primary:hover {
  background-color: var(--bs-primary-hover);
  border-color: var(--bs-primary-hover);
  color: #000;
}

/* Navbar specific overrides */
.navbar-dark .navbar-nav .nav-link {
  color: var(--bs-body-color);
}

.navbar-dark .navbar-nav .nav-link:hover {
  color: var(--bs-primary);
}

.navbar-dark .navbar-brand {
  color: var(--bs-body-color);
}

/* Alert customization */
.alert-success {
  background-color: rgba(var(--bs-success-rgb), 0.1);
  border-color: var(--bs-success);
  color: var(--bs-success);
}

/* Accordion customization */
.accordion-item {
  background-color: var(--bs-card-bg);
  border-color: rgba(var(--bs-primary-rgb), 0.1);
}

.accordion-button {
  background-color: var(--bs-card-bg);
  color: var(--bs-body-color);
}

.accordion-button:not(.collapsed) {
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}

.accordion-button::after {
  filter: invert(1);
}

.accordion-button:not(.collapsed)::after {
  filter: invert(0.8);
}

.accordion-body {
  background-color: var(--bs-card-bg);
  color: var(--bs-body-color);
}

.accordion-button:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}