/**
 * Theme Core - Theme Application and Transitions
 * 
 * Applies theme colors to all elements and provides smooth transitions
 * when switching between themes
 */

/* Apply theme colors to body and root elements */
html, body {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Smooth color transitions for all themed elements */
* {
  transition: background-color 0.3s ease, 
              color 0.3s ease, 
              border-color 0.3s ease;
}

/* Ensure cards use theme background */
.card {
  background-color: var(--bs-card-bg);
  border-color: var(--bs-border-color);
}

/* Secondary backgrounds (inputs, wells, etc.) */
.form-control, 
.form-select, 
.input-group-text,
.list-group-item {
  background-color: var(--bs-secondary-bg);
  border-color: var(--bs-border-color);
  color: var(--bs-body-color);
}

/* Links use theme link color */
a {
  color: var(--bs-link-color);
}

a:hover {
  color: var(--bs-link-hover-color);
}

/* Buttons inherit theme colors properly */
.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.btn-secondary {
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
}

.btn-success {
  background-color: var(--bs-success);
  border-color: var(--bs-success);
}

.btn-danger {
  background-color: var(--bs-danger);
  border-color: var(--bs-danger);
}

.btn-warning {
  background-color: var(--bs-warning);
  border-color: var(--bs-warning);
}

.btn-info {
  background-color: var(--bs-info);
  border-color: var(--bs-info);
}

/* Modal backgrounds */
.modal-content {
  background-color: var(--bs-card-bg);
  color: var(--bs-body-color);
}

.modal-header,
.modal-footer {
  border-color: var(--bs-border-color);
}

/* Offcanvas (hamburger menu) backgrounds */
.offcanvas {
  background-color: var(--bs-card-bg);
  color: var(--bs-body-color);
}

/* Navbar theming */
.navbar {
  background-color: var(--bs-secondary-bg);
  border-bottom: 1px solid var(--bs-border-color);
}

/* Toast notifications */
.toast {
  background-color: var(--bs-card-bg);
  border-color: var(--bs-border-color);
}

/* Badges */
.badge {
  background-color: var(--bs-primary);
}

/* Alerts */
.alert {
  border-color: var(--bs-border-color);
}

/* Tables */
.table {
  color: var(--bs-body-color);
  border-color: var(--bs-border-color);
}

/* Progress bars */
.progress {
  background-color: var(--bs-secondary-bg);
}

/* Text muted - use theme-aware color */
.text-muted {
  color: var(--bs-secondary-color) !important;
}

/* Input placeholders - use theme-aware color */
.form-control::placeholder,
.form-select::placeholder,
input::placeholder,
textarea::placeholder {
  color: var(--bs-secondary-color);
  opacity: 0.7;
}
