/**
 * Wills Wing DataTables Custom Styles
 * Overrides for DataTables defaults to match site palette.
 */

/* Loading state */
.ww-datatable-container {
  min-height: 200px;
  position: relative;
}

.ww-dt-loader {
  text-align: center;
  padding: 40px 20px;
  color: #666;
  font-style: italic;
}

.ww-dt-error {
  color: #c00;
  font-style: normal;
}

.ww-dt-loading table {
  display: none;
}

/* Fade-in when ready */
.ww-dt-ready table {
  animation: wwDtFadeIn 0.3s ease-in;
}

@keyframes wwDtFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Header row: charcoal, white text */
.ww-datatable-container table.dataTable thead th,
.ww-datatable-container table.dataTable thead td {
  background-color: var(--ww-table-header-bg);
  color: var(--ww-table-header-color);
  font-family: 'Roboto Condensed', Arial, sans-serif;
  font-weight: 700;
  border-bottom: 2px solid #222;
  padding: 10px 12px;
}

/* Sort arrow color override for dark header */
.ww-datatable-container table.dataTable thead .dt-orderable-asc span.dt-column-order,
.ww-datatable-container table.dataTable thead .dt-orderable-desc span.dt-column-order,
.ww-datatable-container table.dataTable thead .dt-ordering-asc span.dt-column-order,
.ww-datatable-container table.dataTable thead .dt-ordering-desc span.dt-column-order {
  color: #fff;
}

/* Alternating row colors */
.ww-datatable-container table.dataTable tbody tr:nth-child(odd) {
  background-color: #f7fafc;
}

.ww-datatable-container table.dataTable tbody tr:nth-child(even) {
  background-color: #fff;
}

.ww-datatable-container table.dataTable tbody tr:hover {
  background-color: var(--ww-table-hover);
}

/* Cell padding */
.ww-datatable-container table.dataTable tbody td {
  padding: 8px 12px;
  vertical-align: middle;
}

/* Links in table cells — match site content link style */
.ww-datatable-container table.dataTable tbody a {
  color: var(--ww-link);
  text-decoration: none;
}

.ww-datatable-container table.dataTable tbody a:hover {
  color: var(--ww-link-hover);
  text-decoration: underline;
}

/* Search input styling */
.ww-datatable-container .dt-search input {
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 6px 10px;
  font-size: 14px;
  outline: none;
}

.ww-datatable-container .dt-search input:focus {
  border-color: #C9442D;
  box-shadow: 0 0 3px rgba(201, 68, 45, 0.3);
}

/* Length menu */
.ww-datatable-container .dt-length select {
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 4px 8px;
}

/* Info text */
.ww-datatable-container .dt-info {
  color: #666;
  font-size: 13px;
}

/* Pagination */
.ww-datatable-container .dt-paging button {
  border: 1px solid #ddd;
  background: #fff;
  color: #333;
  padding: 4px 10px;
  margin: 0 2px;
  border-radius: 3px;
  cursor: pointer;
}

.ww-datatable-container .dt-paging button:hover {
  background: #EDEEEF;
  border-color: #C9442D;
}

.ww-datatable-container .dt-paging button.current {
  background: #C9442D;
  color: #fff;
  border-color: #C9442D;
}

.ww-datatable-container .dt-paging button.disabled {
  color: #ccc;
  cursor: default;
}

/* Responsive: child row details */
.ww-datatable-container table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control::before {
  background-color: #C9442D;
}

/* Right-aligned numeric columns */
.ww-datatable-container table.dataTable td.dt-right {
  text-align: right;
}

/* Ensure table doesn't overflow container */
.ww-datatable-container {
  overflow-x: auto;
}

/* Match site's general table styling */
.ww-datatable-container table.dataTable {
  width: 100% !important;
  border-collapse: collapse;
}

.ww-datatable-container table.dataTable td,
.ww-datatable-container table.dataTable th {
  white-space: normal;
  word-wrap: break-word;
}

/* Compact table variant — smaller font, tighter spacing */
.ww-datatable-container.ww-dt-compact table.dataTable {
  font-size: 12px;
  font-family: 'Roboto Condensed', Arial Narrow, Arial, sans-serif;
}

.ww-dt-compact table.dataTable thead th,
.ww-dt-compact table.dataTable thead td {
  padding: 6px 6px;
  font-size: 11px;
  letter-spacing: 0.02em;
}

.ww-dt-compact table.dataTable tbody td {
  padding: 4px 6px;
  font-size: 12px;
  line-height: 1.3;
}

.ww-dt-compact .dt-search input {
  font-size: 12px;
  padding: 4px 8px;
}

.ww-dt-compact .dt-length select {
  font-size: 12px;
  padding: 2px 6px;
}

.ww-dt-compact .dt-info {
  font-size: 11px;
}

.ww-dt-compact .dt-paging button {
  font-size: 11px;
  padding: 3px 8px;
}

/* Column filters row */
.ww-dt-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
  align-items: center;
}

.ww-dt-filter-group {
  display: flex;
  align-items: center;
  gap: 4px;
}

.ww-dt-filter-group label {
  font-size: 11px;
  font-weight: 600;
  color: #555;
  font-family: 'Roboto Condensed', Arial, sans-serif;
  white-space: nowrap;
}

.ww-dt-filter-group input,
.ww-dt-filter-group select {
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 4px 6px;
  font-size: 12px;
  font-family: 'Roboto Condensed', Arial, sans-serif;
  outline: none;
}

.ww-dt-filter-group input:focus,
.ww-dt-filter-group select:focus {
  border-color: #C9442D;
  box-shadow: 0 0 3px rgba(201, 68, 45, 0.3);
}

.ww-dt-filter-group input {
  width: 100px;
}

.ww-dt-filter-group select {
  max-width: 180px;
}

.ww-dt-filter-clear {
  font-size: 11px;
  color: #C9442D;
  cursor: pointer;
  text-decoration: underline;
  border: none;
  background: none;
  padding: 4px 6px;
  font-family: 'Roboto Condensed', Arial, sans-serif;
}

.ww-dt-filter-clear:hover {
  color: #a0331f;
}
