html {
  font-size: 14px;
  position: relative;
  min-height: 100%;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

body {
  margin-bottom: 60px;
  transition: background-color 2s ease, color 2s ease;
}

/* Smooth transitions for theme change */
.navbar,
.card,
.list-group-item,
.modal-content,
.form-control,
.form-select,
.dropdown-menu,
.footer,
.table,
.nav-tabs .nav-link,
.btn {
  transition: background-color 2s ease, border-color 2s ease, color 2s ease;
}

a {
  transition: color 2s ease;
}

/* Focus styles */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* ============================================
   Light Theme (default)
   ============================================ */
[data-bs-theme="light"] {
  --bg-body: #fff;
  --bg-navbar: #fff;
  --bg-card: #fff;
  --bg-footer: #f8f9fa;
  --text-primary: #212529;
  --text-muted: #6c757d;
  --border-color: #dee2e6;
}

[data-bs-theme="light"] body {
  background-color: var(--bg-body);
  color: var(--text-primary);
}

[data-bs-theme="light"] .navbar {
  background-color: var(--bg-navbar) !important;
}

[data-bs-theme="light"] .footer {
  background-color: var(--bg-footer);
}

[data-bs-theme="light"] .navbar .nav-link,
[data-bs-theme="light"] .navbar .navbar-brand {
  color: #212529;
}

[data-bs-theme="light"] .navbar .nav-link:hover {
  color: #000;
}

/* ============================================
   Dark Theme
   ============================================ */
[data-bs-theme="dark"] {
  --bg-body: #1a1d21;
  --bg-navbar: #212529;
  --bg-card: #2b3035;
  --bg-footer: #212529;
  --text-primary: #e9ecef;
  --text-muted: #adb5bd;
  --border-color: #495057;
}

[data-bs-theme="dark"] body {
  background-color: var(--bg-body);
  color: var(--text-primary);
}

[data-bs-theme="dark"] .navbar {
  background-color: var(--bg-navbar) !important;
}

[data-bs-theme="dark"] .navbar-toggler-icon {
  filter: invert(1);
}

[data-bs-theme="dark"] .navbar .nav-link {
  color: #e9ecef;
}

[data-bs-theme="dark"] .navbar .navbar-brand {
  color: #e9ecef !important;
}

[data-bs-theme="dark"] .navbar .nav-link:hover,
[data-bs-theme="dark"] .navbar .navbar-brand:hover {
  color: #fff !important;
}

[data-bs-theme="dark"] .footer {
  background-color: var(--bg-footer);
  border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] .card {
  background-color: var(--bg-card);
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .list-group-item {
  background-color: var(--bg-card);
  border-color: var(--border-color);
  color: var(--text-primary);
}

[data-bs-theme="dark"] .table {
  --bs-table-bg: var(--bg-card);
  --bs-table-border-color: var(--border-color);
  color: var(--text-primary);
}

[data-bs-theme="dark"] .modal-content {
  background-color: var(--bg-card);
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .modal-header,
[data-bs-theme="dark"] .modal-footer {
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: #2b3035;
  border-color: var(--border-color);
  color: var(--text-primary);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  background-color: #343a40;
  border-color: #258cfb;
  color: var(--text-primary);
}

[data-bs-theme="dark"] .form-control::placeholder {
  color: var(--text-muted);
}

[data-bs-theme="dark"] .dropdown-menu {
  background-color: var(--bg-card);
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .dropdown-item {
  color: var(--text-primary);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
  background-color: #495057;
  color: #fff;
}

[data-bs-theme="dark"] .border-bottom {
  border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] .border-top {
  border-color: var(--border-color) !important;
}

[data-bs-theme="dark"] .text-muted {
  color: var(--text-muted) !important;
}

[data-bs-theme="dark"] .bg-light {
  background-color: #2b3035 !important;
}

[data-bs-theme="dark"] .bg-white {
  background-color: var(--bg-card) !important;
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item-action) {
  color: #6ea8fe;
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item-action):hover {
  color: #9ec5fe;
}

/* Dark mode buttons */
[data-bs-theme="dark"] .btn-outline-secondary {
  color: #adb5bd;
  border-color: #6c757d;
}

[data-bs-theme="dark"] .btn-outline-secondary:hover {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

[data-bs-theme="dark"] .btn-outline-primary {
  color: #6ea8fe;
  border-color: #6ea8fe;
}

[data-bs-theme="dark"] .btn-outline-primary:hover {
  color: #fff;
  background-color: #0d6efd;
  border-color: #0d6efd;
}

[data-bs-theme="dark"] .btn-outline-danger {
  color: #ea868f;
  border-color: #ea868f;
}

[data-bs-theme="dark"] .btn-outline-danger:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

[data-bs-theme="dark"] .btn-outline-success {
  color: #75b798;
  border-color: #75b798;
}

[data-bs-theme="dark"] .btn-outline-success:hover {
  color: #fff;
  background-color: #198754;
  border-color: #198754;
}

[data-bs-theme="dark"] .btn-outline-warning {
  color: #ffda6a;
  border-color: #ffda6a;
}

[data-bs-theme="dark"] .btn-outline-warning:hover {
  color: #000;
  background-color: #ffc107;
  border-color: #ffc107;
}

[data-bs-theme="dark"] .btn-outline-info {
  color: #6edff6;
  border-color: #6edff6;
}

[data-bs-theme="dark"] .btn-outline-info:hover {
  color: #000;
  background-color: #0dcaf0;
  border-color: #0dcaf0;
}

[data-bs-theme="dark"] .btn-outline-light {
  color: #f8f9fa;
  border-color: #f8f9fa;
}

[data-bs-theme="dark"] .btn-outline-light:hover {
  color: #000;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

[data-bs-theme="dark"] .btn-outline-dark {
  color: #adb5bd;
  border-color: #adb5bd;
}

[data-bs-theme="dark"] .btn-outline-dark:hover {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

/* Dark mode link buttons */
[data-bs-theme="dark"] .btn-link {
  color: #6ea8fe;
}

[data-bs-theme="dark"] .btn-link:hover {
  color: #9ec5fe;
}

/* Dark mode close button */
[data-bs-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

/* Dark mode pagination */
[data-bs-theme="dark"] .page-link {
  background-color: var(--bg-card);
  border-color: var(--border-color);
  color: #6ea8fe;
}

[data-bs-theme="dark"] .page-link:hover {
  background-color: #495057;
  border-color: var(--border-color);
  color: #fff;
}

[data-bs-theme="dark"] .page-item.active .page-link {
  background-color: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
}

[data-bs-theme="dark"] .page-item.disabled .page-link {
  background-color: var(--bg-card);
  border-color: var(--border-color);
  color: var(--text-muted);
}

/* Dark mode alerts */
[data-bs-theme="dark"] .alert-info {
  background-color: #032830;
  border-color: #055160;
  color: #6edff6;
}

[data-bs-theme="dark"] .alert-success {
  background-color: #051b11;
  border-color: #0a3622;
  color: #75b798;
}

[data-bs-theme="dark"] .alert-warning {
  background-color: #332701;
  border-color: #664d03;
  color: #ffda6a;
}

[data-bs-theme="dark"] .alert-danger {
  background-color: #2c0b0e;
  border-color: #58151c;
  color: #ea868f;
}

/* Dark mode breadcrumb */
[data-bs-theme="dark"] .breadcrumb {
  background-color: transparent;
}

[data-bs-theme="dark"] .breadcrumb-item a {
  color: #6ea8fe;
}

[data-bs-theme="dark"] .breadcrumb-item a:hover {
  color: #9ec5fe;
}

[data-bs-theme="dark"] .breadcrumb-item.active {
  color: var(--text-muted);
}

[data-bs-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
  color: var(--text-muted);
}

/* Dark mode table header */
[data-bs-theme="dark"] .table-light {
  --bs-table-bg: #343a40;
  --bs-table-border-color: var(--border-color);
  color: var(--text-primary);
}

[data-bs-theme="dark"] .table thead th a {
  color: var(--text-primary);
}

[data-bs-theme="dark"] .table thead th a:hover {
  color: #fff;
}

/* Dark mode table hover */
[data-bs-theme="dark"] .table-hover > tbody > tr:hover {
  --bs-table-hover-bg: rgba(255, 255, 255, 0.075);
  background-color: var(--bs-table-hover-bg);
  color: var(--text-primary);
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover > td,
[data-bs-theme="dark"] .table-hover > tbody > tr:hover > th {
  background-color: transparent;
  color: var(--text-primary);
}

/* Dark mode input group */
[data-bs-theme="dark"] .input-group-text {
  background-color: #343a40;
  border-color: var(--border-color);
  color: var(--text-primary);
}

/* Dark mode card footer/header */
[data-bs-theme="dark"] .card-header,
[data-bs-theme="dark"] .card-footer {
  background-color: rgba(0, 0, 0, 0.15);
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .card-footer.bg-transparent {
  background-color: transparent !important;
}

[data-bs-theme="dark"] .nav-tabs {
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .nav-tabs .nav-link {
  color: var(--text-muted);
}

[data-bs-theme="dark"] .nav-tabs .nav-link:hover {
  border-color: var(--border-color) var(--border-color) transparent;
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active {
  background-color: var(--bg-card);
  border-color: var(--border-color) var(--border-color) var(--bg-card);
  color: var(--text-primary);
}

/* Theme toggle button */
#themeToggle {
  padding: 0.25rem 0.5rem;
  font-size: 1.1rem;
  text-decoration: none;
}

#themeToggle:hover {
  opacity: 0.8;
}

[data-bs-theme="light"] #themeIconLight {
  color: #ffc107;
}

[data-bs-theme="dark"] #themeIconDark {
  color: #6ea8fe;
}