/**
 * CLMS v2 Dark Theme - Table Styling
 * Consolidated table styling using CSS variables
 */

/* ===== BASE TABLE STYLING ===== */
[data-bs-theme="dark"] {
  .table {
    --bs-table-bg: var(--clms-table-bg);
    --bs-table-striped-bg: var(--clms-table-striped-bg);
    --bs-table-hover-bg: var(--clms-table-hover-bg);
    --bs-table-border-color: var(--clms-table-border);
    --bs-table-color: var(--clms-text-primary);

    background-color: var(--clms-table-bg) !important;
    color: var(--clms-text-primary) !important;
    border-color: var(--clms-table-border) !important;
  }

  .table th,
  .table td {
    border-color: var(--clms-table-border) !important;
    color: var(--clms-text-primary) !important;
  }

  .table thead th {
    background-color: var(--clms-bg-tertiary) !important;
    border-color: var(--clms-table-border) !important;
    color: var(--clms-text-primary) !important;
  }

  .table tbody tr {
    background-color: var(--clms-table-bg) !important;
  }
}

/* ===== TABLE VARIANTS ===== */
[data-bs-theme="dark"] {
  /* Striped tables */
  .table-striped > tbody > tr:nth-of-type(odd) > td,
  .table-striped > tbody > tr:nth-of-type(odd) > th {
    background-color: var(--clms-table-striped-bg) !important;
  }

  /* Bordered tables */
  .table-bordered {
    border-color: var(--clms-table-border) !important;
  }

  .table-bordered th,
  .table-bordered td {
    border-color: var(--clms-table-border) !important;
  }

  /* Borderless tables */
  .table-borderless th,
  .table-borderless td {
    border: none !important;
  }

  /* Small tables */
  .table-sm th,
  .table-sm td {
    padding: 0.25rem !important;
  }
}

/* ===== TABLE HOVER EFFECTS ===== */
[data-bs-theme="dark"] {
  /* Custom hover effect with orange highlight */
  .table-hover tbody tr:hover,
  .table-hover tbody tr:hover td,
  .table-hover tbody tr:hover th {
    background-color: var(--clms-table-hover-bg) !important;
    --bs-table-hover-bg: var(--clms-table-hover-bg) !important;
    color: var(--clms-white) !important;
  }

  /* Ensure text remains visible on hover */
  .table-hover tbody tr:hover a {
    color: var(--clms-white) !important;
  }

  .table-hover tbody tr:hover .btn {
    border-color: var(--clms-white) !important;
  }
}

/* ===== TABLE RESPONSIVE ===== */
[data-bs-theme="dark"] {
  .table-responsive {
    border-color: var(--clms-table-border) !important;
  }

  .table-responsive::-webkit-scrollbar {
    width: 8px !important;
    height: 8px !important;
  }

  .table-responsive::-webkit-scrollbar-track {
    background-color: var(--clms-bg-tertiary) !important;
  }

  .table-responsive::-webkit-scrollbar-thumb {
    background-color: var(--clms-border-primary) !important;
    border-radius: 4px !important;
  }

  .table-responsive::-webkit-scrollbar-thumb:hover {
    background-color: var(--clms-accent-orange) !important;
  }
}

/* ===== BOOTSTRAP TABLE PLUGIN ===== */
[data-bs-theme="dark"] {
  /* Bootstrap Table container */
  .bootstrap-table {
    color: var(--clms-text-primary) !important;
  }

  /* Table toolbar */
  .fixed-table-toolbar {
    background-color: transparent !important;
    color: var(--clms-text-primary) !important;
    border-color: var(--clms-table-border) !important;
  }

  .fixed-table-toolbar .bs-bars {
    color: var(--clms-text-primary) !important;
  }

  /* Search box */
  .fixed-table-toolbar .search input {
    background-color: var(--clms-form-bg) !important;
    border-color: var(--clms-form-border) !important;
    color: var(--clms-text-primary) !important;
  }

  .fixed-table-toolbar .search input:focus {
    border-color: var(--clms-form-focus-border) !important;
    box-shadow: 0 0 0 0.2rem var(--clms-form-focus-shadow) !important;
  }

  /* Table container */
  .fixed-table-container {
    border-color: var(--clms-table-border) !important;
  }

  .fixed-table-body {
    background-color: var(--clms-table-bg) !important;
  }

  /* Table header */
  .fixed-table-header {
    background-color: var(--clms-bg-tertiary) !important;
  }

  .fixed-table-header table thead th {
    background-color: var(--clms-bg-tertiary) !important;
    color: var(--clms-text-primary) !important;
    border-color: var(--clms-table-border) !important;
  }

  /* Sort indicators */
  .fixed-table-header th .sortable {
    color: var(--clms-text-primary) !important;
  }

  .fixed-table-header th .both,
  .fixed-table-header th .asc,
  .fixed-table-header th .desc {
    color: var(--clms-accent-orange) !important;
  }
}

/* ===== BOOTSTRAP TABLE PAGINATION ===== */
[data-bs-theme="dark"] {
  .fixed-table-pagination {
    background-color: transparent !important;
    color: var(--clms-text-primary) !important;
    border-color: var(--clms-table-border) !important;
  }

  .fixed-table-pagination .pagination-detail {
    color: var(--clms-text-primary) !important;
  }

  .fixed-table-pagination .page-list {
    color: var(--clms-text-primary) !important;
  }

  .fixed-table-pagination .page-list .btn-group .btn {
    background-color: var(--clms-bg-tertiary) !important;
    border-color: var(--clms-border-primary) !important;
    color: var(--clms-text-primary) !important;
  }

  .fixed-table-pagination .page-list .btn-group .btn:hover {
    background-color: var(--clms-hover-bg) !important;
  }

  .fixed-table-pagination .page-list .btn-group .dropdown-menu {
    background-color: var(--clms-dropdown-bg) !important;
    border-color: var(--clms-dropdown-border) !important;
  }

  .fixed-table-pagination .page-list .btn-group .dropdown-item {
    color: var(--clms-dropdown-item-color) !important;
  }

  .fixed-table-pagination .page-list .btn-group .dropdown-item:hover {
    background-color: var(--clms-dropdown-item-hover-bg) !important;
    color: var(--clms-white) !important;
  }
}

/* ===== TABLE FILTER CONTROLS ===== */
[data-bs-theme="dark"] {
  /* Filter controls */
  .filter-control select,
  .filter-control input {
    background-color: var(--clms-form-bg) !important;
    border-color: var(--clms-form-border) !important;
    color: var(--clms-text-primary) !important;
  }

  .filter-control select:focus,
  .filter-control input:focus {
    border-color: var(--clms-form-focus-border) !important;
    box-shadow: 0 0 0 0.2rem var(--clms-form-focus-shadow) !important;
  }

  /* Bootstrap table filter dropdowns */
  .fixed-table-toolbar .dropdown-menu,
  .filter-control .dropdown-menu,
  #toolbar .dropdown-menu,
  .bootstrap-table .dropdown-menu,
  [class*="filter"] .dropdown-menu,
  [id*="filter"] .dropdown-menu,
  .btn-group .dropdown-menu {
    background-color: var(--clms-dropdown-bg) !important;
    border-color: var(--clms-dropdown-border) !important;
  }

  .fixed-table-toolbar .dropdown-item,
  .filter-control .dropdown-item,
  #toolbar .dropdown-item,
  .bootstrap-table .dropdown-item,
  [class*="filter"] .dropdown-item,
  [id*="filter"] .dropdown-item,
  .btn-group .dropdown-item {
    background-color: var(--clms-dropdown-bg) !important;
    color: var(--clms-dropdown-item-color) !important;
  }

  .fixed-table-toolbar .dropdown-item:hover,
  .filter-control .dropdown-item:hover,
  #toolbar .dropdown-item:hover,
  .bootstrap-table .dropdown-item:hover,
  [class*="filter"] .dropdown-item:hover,
  [id*="filter"] .dropdown-item:hover,
  .btn-group .dropdown-item:hover {
    background-color: var(--clms-dropdown-item-hover-bg) !important;
    color: var(--clms-white) !important;
  }
}

/* ===== TABLE LOADING & EMPTY STATES ===== */
[data-bs-theme="dark"] {
  .fixed-table-loading {
    background-color: var(--clms-bg-card) !important;
    color: var(--clms-text-secondary) !important;
  }

  .no-records-found {
    background-color: var(--clms-bg-card) !important;
    color: var(--clms-text-secondary) !important;
  }

  .fixed-table-footer {
    background-color: var(--clms-bg-card) !important;
    color: var(--clms-text-primary) !important;
    border-color: var(--clms-table-border) !important;
  }
}

/* ===== TABLE UTILITIES ===== */
[data-bs-theme="dark"] {
  /* Transparent background utilities for table containers */
  .mt-4.mb-3.text-center,
  .mt-5.mb-3.text-center,
  #toolbar {
    background-color: var(--clms-transparent) !important;
    color: var(--clms-text-primary) !important;
  }

  /* AllPrograms specific container styling */
  #allPrograms {
    background-color: var(--clms-transparent) !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  #allPrograms .bootstrap-table {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
  }

  #allPrograms .fixed-table-container {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  #allPrograms .fixed-table-body {
    flex: 1 !important;
    overflow-y: auto !important;
  }

  #allPrograms .fixed-table-pagination {
    flex-shrink: 0 !important;
    margin-top: auto !important;
  }
}

/* ===== DATEPICKER STYLING ===== */
[data-bs-theme="dark"] {
  /* Datepicker month text */
  .datepicker-days th,
  .datepicker-days .day,
  .datepicker-months th,
  .datepicker-months .month,
  .datepicker-years th,
  .datepicker-years .year,
  .datepicker th,
  .datepicker td {
    color: var(--clms-text-primary) !important;
  }

  /* Datepicker container */
  .datepicker {
    background-color: var(--clms-bg-card) !important;
    border-color: var(--clms-border-primary) !important;
  }

  /* Datepicker header */
  .datepicker-days thead th,
  .datepicker-months thead th,
  .datepicker-years thead th {
    background-color: var(--clms-bg-tertiary) !important;
    color: var(--clms-text-primary) !important;
    border-color: var(--clms-border-primary) !important;
  }

  /* Datepicker navigation buttons */
  .datepicker .prev,
  .datepicker .next {
    color: var(--clms-text-primary) !important;
  }

  .datepicker .prev:hover,
  .datepicker .next:hover {
    color: var(--clms-accent-orange) !important;
  }

  /* Selected/active dates */
  .datepicker-days .active,
  .datepicker-months .active,
  .datepicker-years .active {
    background-color: var(--clms-accent-orange) !important;
    color: var(--clms-white) !important;
  }

  /* Today's date */
  .datepicker-days .today,
  .datepicker-months .today,
  .datepicker-years .today {
    background-color: var(--clms-bg-tertiary) !important;
    color: var(--clms-text-primary) !important;
  }

  /* Hover states */
  .datepicker-days .day:hover,
  .datepicker-months .month:hover,
  .datepicker-years .year:hover {
    background-color: var(--clms-hover-bg) !important;
    color: var(--clms-text-primary) !important;
  }
}