/* Footer positioning */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Prevent theme flash by hiding content until theme is set */
html:not([data-bs-theme]) {
  visibility: hidden;
}

html[data-bs-theme] {
  visibility: visible;
}

main {
  flex: 1;
}

footer {
  margin-top: auto;
}

/* Custom theme toggle button styling */
.btn-outline-secondary {
  transition: all 0.2s ease;
}

.btn-outline-secondary:hover {
  transform: scale(1.05);
}

/* Custom card enhancements */
.card {
  transition: box-shadow 0.2s ease;
}

.card:hover {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Form enhancements */
.form-control:focus,
.form-select:focus {
  box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

/* Table enhancements */
.table {
  transition: all 0.2s ease;
}

.table-hover > tbody > tr:hover {
  background-color: rgba(0, 0, 0, 0.075);
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover {
  background-color: rgba(255, 255, 255, 0.075);
}

/* Alert enhancements */
.alert {
  border-left: 4px solid;
}

.alert-info {
  border-left-color: #0dcaf0;
}

.alert-success {
  border-left-color: #198754;
}

.alert-warning {
  border-left-color: #ffc107;
}

.alert-danger {
  border-left-color: #dc3545;
}

/* Button enhancements */
.btn {
  transition: all 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

/* Navigation enhancements */
.navbar-brand {
  font-weight: 600;
}

.navbar-nav .nav-link {
  transition: color 0.2s ease;
}

/* Ensure navbar properly adapts to theme changes */
.navbar {
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

/* Dark mode navbar adjustments */
[data-bs-theme="dark"] .navbar {
  background-color: var(--bs-dark) !important;
  border-bottom: 1px solid var(--bs-border-color);
}

/* Light mode navbar adjustments */
[data-bs-theme="light"] .navbar {
  background-color: var(--bs-light) !important;
  border-bottom: 1px solid var(--bs-border-color);
}

/* Ensure navbar toggler is visible in both themes */
.navbar-toggler {
  border-color: var(--bs-border-color);
}

.navbar-toggler:focus {
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}

/* Responsive improvements */
@media (max-width: 768px) {
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* Print styles */
@media print {
  .navbar,
  .btn,
  .theme-toggle {
    display: none !important;
  }
  
  body {
    background: white !important;
    color: black !important;
  }
  
  .card {
    border: 1px solid #000 !important;
    box-shadow: none !important;
  }
}
