/* TablixJS - Core Theme Skeleton */

/* Base wrapper */
.tablix-wrapper {
  font-family: var(--tablix-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif);
  font-size: var(--tablix-font-size, 14px);
  color: var(--tablix-text-color, #333);
}

/* Table wrapper for horizontal scrolling */
.tablix-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
  width: 100%;
}

/* When inside virtual scroll container, disable separate horizontal scroll */
.tablix-scroll-container .tablix-table-wrapper {
  overflow-x: visible;
}

/* Table structure */
.tablix-table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--tablix-table-bg, #fff);
  border: var(--tablix-table-border, 1px solid #e0e0e0);
}

/* Table header */
.tablix-thead {
  background-color: var(--tablix-header-bg, #f5f5f5);
}

.tablix-th {
  background-color: var(--tablix-header-bg, #f5f5f5);
  border: var(--tablix-cell-border, 1px solid #e0e0e0);
  padding: var(--tablix-cell-padding, 12px 8px);
  text-align: left;
  font-weight: var(--tablix-header-font-weight, 600);
  color: var(--tablix-header-text-color, #333);
}

/* Table body */
.tablix-tbody {
  background-color: var(--tablix-table-bg, #fff);
}

.tablix-td {
  border: var(--tablix-cell-border, 1px solid #e0e0e0);
  padding: var(--tablix-cell-padding, 10px 8px);
  color: var(--tablix-text-color, #666);
}

/* Row states */
.tablix-row:nth-child(even) {
  background-color: var(--tablix-row-even-bg, #fafafa);
}

.tablix-row:hover {
  background-color: var(--tablix-row-hover-bg, #f0f0f0);
}

/* Empty state */
.tablix-empty-cell {
  text-align: center;
  color: var(--tablix-empty-text-color, #999);
  font-style: italic;
  padding: var(--tablix-empty-padding, 20px);
}

/* Loading and error states */
.tablix-loading {
  text-align: center;
  padding: var(--tablix-loading-padding, 40px);
  color: var(--tablix-loading-text-color, #666);
  font-style: italic;
}

.tablix-error {
  text-align: center;
  padding: var(--tablix-error-padding, 40px);
  color: var(--tablix-error-text-color, #d32f2f);
  background-color: var(--tablix-error-bg, #ffebee);
  border: var(--tablix-error-border, 1px solid #ffcdd2);
  border-radius: var(--tablix-border-radius, 4px);
}

.tablix-row:hover {
  background-color: var(--tablix-row-hover-bg, #f8f9fa);
}

/* Responsive design */
@media (max-width: 768px) {
  .tablix-table {
    font-size: var(--tablix-mobile-font-size, 13px);
  }
  
  .tablix-th,
  .tablix-td {
    padding: var(--tablix-mobile-cell-padding, 8px 6px);
  }
  
  /* Ensure wrapper allows scrolling on mobile */
  .tablix-table-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  /* Prevent table from shrinking on mobile */
  .tablix-table {
    min-width: 100%;
  }
}
