/**
 * @copyright Stevie-Ray
 * Table Component - shadcn/ui inspired
 */
/**
 * @copyright Stevie-Ray
 * Global Color System - Neutral Palette
 * CSS Custom Properties for consistent theming
 */
/* ===========================================
   CSS CUSTOM PROPERTIES - ROOT
   =========================================== */
:root {
  /* Neutral Color Palette */
  --neutral: #ffffff;
  --neutral-50: #fafafa;
  --neutral-100: #f5f5f5;
  --neutral-200: #e5e5e5;
  --neutral-300: #d4d4d4;
  --neutral-400: #a3a3a3;
  --neutral-500: #737373;
  --neutral-600: #525252;
  --neutral-700: #404040;
  --neutral-800: #262626;
  --neutral-900: #171717;
  --neutral-950: #0a0a0a;
  /* Semantic Color Mappings */
  --background: var(--neutral-50);
  --foreground: var(--neutral-900);
  --muted: var(--neutral-100);
  --muted-foreground: var(--neutral-600);
  --border: var(--neutral-200);
  --input: var(--neutral-100);
  --ring: var(--neutral-400);
  /* Brand Colors */
  --primary: hsl(221.2 83.2% 53.3%);
  --primary-foreground: hsl(210 40% 98%);
  --secondary: var(--neutral-100);
  --secondary-foreground: var(--neutral-900);
  --accent: var(--neutral-100);
  --accent-foreground: var(--neutral-900);
  /* Status Colors */
  --destructive: #FF80AB;
  --destructive-foreground: #000000;
  --success: #CCFF90;
  --success-foreground: #000000;
  --warning: #FFAB40;
  --warning-foreground: #000000;
  --info: #82B1FF;
  --info-foreground: #000000;
  /* Sidebar Specific Colors */
  --sidebar-bg: var(--neutral-50);
  --sidebar-border: var(--neutral-200);
  --sidebar-foreground: var(--neutral-900);
  --sidebar-muted: var(--neutral-600);
  --sidebar-accent: var(--neutral-100);
  --sidebar-accent-foreground: var(--neutral-900);
  --sidebar-hover: var(--neutral-100);
  --sidebar-active-bg: var(--neutral-100);
  --sidebar-active-foreground: var(--neutral-900);
}

/* ===========================================
   SCSS VARIABLES FOR BACKWARDS COMPATIBILITY
   =========================================== */
table.Nothing {
  box-shadow: none !important;
  border: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
}
table.Nothing thead tr {
  background: transparent !important;
  background-color: transparent !important;
}
table.Nothing thead tr th {
  background: transparent !important;
  background-color: transparent !important;
}
table.Nothing tbody tr {
  background-color: transparent !important;
  background: transparent !important;
}
table.Nothing tbody tr td {
  background-color: transparent !important;
  background: transparent !important;
}
table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 0.5rem;
  overflow: hidden;
  background-color: #fff;
  color: #171717;
  font-size: 0.875rem;
  line-height: 1.25rem;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
}

.table-container {
  width: 100%;
  overflow-x: auto;
  border-radius: 0.5rem;
  background-color: #fff;
  border: 1px solid #e5e5e5;
}

thead {
  background-color: #fff;
}
thead th {
  background-color: #fff;
  color: #171717;
  font-weight: 500;
  font-size: 0.875rem;
  text-transform: none;
  letter-spacing: normal;
}

tbody tr {
  background-color: #fff;
  transition: all 0.2s ease-in-out;
}
tbody tr:hover {
  background-color: #f5f5f5;
}
tr {
  border-bottom: 1px solid #e5e5e5;
}
tr:last-child {
  border-bottom: none;
}
tr:first-child th {
  border-top: none;
}
tr:last-child td {
  border-bottom: none;
}

th {
  padding: 0.5rem 1rem;
  text-align: left;
  font-weight: 600;
  border-bottom: 1px solid #e5e5e5;
  white-space: nowrap;
}
th:first-child {
  padding-left: 1rem;
}
th:last-child {
  padding-right: 1rem;
}

td {
  padding: 0.5rem 1rem;
  border-bottom: 1px solid #e5e5e5;
  vertical-align: middle;
}
td:first-child {
  padding-left: 1rem;
}
td:last-child {
  padding-right: 1rem;
}

.table-compact th, .table-compact td {
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}

.table-spacious th, .table-spacious td {
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}

.table-status {
  font-weight: 500;
}
.table-status .status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.125rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.table-status .status-badge.status-active {
  background-color: hsla(142.1, 76.2%, 36.3%, 0.1);
  color: hsl(142.1, 76.2%, 36.3%);
}
.table-status .status-badge.status-inactive {
  background-color: hsla(0, 84.2%, 60.2%, 0.1);
  color: hsl(0, 84.2%, 60.2%);
}
.table-status .status-badge.status-pending {
  background-color: hsla(47.9, 95.8%, 53.1%, 0.1);
  color: hsl(47.9, 95.8%, 53.1%);
}

.table-email {
  color: hsl(221.2, 83.2%, 53.3%);
  font-weight: 500;
  word-break: break-all;
}

.table-amount {
  font-weight: 500;
  text-align: right;
  white-space: nowrap;
}
.table-amount.amount-positive {
  color: hsl(142.1, 76.2%, 36.3%);
}
.table-amount.amount-negative {
  color: hsl(0, 84.2%, 60.2%);
}
.table-amount.amount-neutral {
  color: #171717;
}

.table-actions {
  text-align: right;
  white-space: nowrap;
}
.table-actions .action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.5rem;
  margin: 0 0.125rem;
  border: none;
  border-radius: 0.25rem;
  background-color: transparent;
  color: #171717;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  font-size: 0.75rem;
}
.table-actions .action-button:hover {
  background-color: #f5f5f5;
}
.table-actions .action-button.action-edit {
  color: hsl(221.2, 83.2%, 53.3%);
}
.table-actions .action-button.action-edit:hover {
  background-color: hsla(221.2, 83.2%, 53.3%, 0.1);
}
.table-actions .action-button.action-delete {
  color: hsl(0, 84.2%, 60.2%);
}
.table-actions .action-button.action-delete:hover {
  background-color: hsla(0, 84.2%, 60.2%, 0.1);
}

.table-avatar .avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  object-fit: cover;
}
.table-avatar .avatar-sm {
  width: 1.5rem;
  height: 1.5rem;
}
.table-avatar .avatar-lg {
  width: 2.5rem;
  height: 2.5rem;
}

@media (max-width: 768px) {
  .table-responsive .table-container {
    overflow-x: auto;
  }
  .table-responsive th, .table-responsive td {
    min-width: 120px;
  }
}

.table-bordered {
  border: 1px solid #e5e5e5;
}
.table-bordered th, .table-bordered td {
  border: 1px solid #e5e5e5;
}

.table-borderless {
  border: none;
}
.table-borderless th, .table-borderless td {
  border: none;
}

.table-sm {
  font-size: 0.75rem;
}
.table-sm th, .table-sm td {
  padding: 0.25rem 0.5rem;
}

.table-lg {
  font-size: 1rem;
}
.table-lg th, .table-lg td {
  padding: 0.75rem 1.5rem;
}

.table-loading {
  opacity: 0.6;
  pointer-events: none;
}
.table-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid #e5e5e5;
  border-top-color: hsl(221.2, 83.2%, 53.3%);
  border-radius: 50%;
  animation: table-spin 1s linear infinite;
  transform: translate(-50%, -50%);
}

@keyframes table-spin {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.table-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: hsl(215.4, 16.3%, 46.9%);
}
.table-empty .empty-icon {
  width: 3rem;
  height: 3rem;
  margin: 0 auto 1rem;
  opacity: 0.5;
}
.table-empty .empty-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.table-empty .empty-description {
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

th.sortable {
  cursor: pointer;
  user-select: none;
  position: relative;
}
th.sortable:hover {
  background-color: hsla(210, 40%, 96%, 0.8);
}
th.sortable::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 0.25rem solid transparent;
  border-right: 0.25rem solid transparent;
  border-top: 0.25rem solid hsl(215.4, 16.3%, 46.9%);
  opacity: 0.3;
}
th.sortable.sort-asc::after {
  border-top: none;
  border-bottom: 0.25rem solid hsl(215.4, 16.3%, 46.9%);
}
th.sortable.sort-desc::after {
  border-top: 0.25rem solid hsl(215.4, 16.3%, 46.9%);
}
th.sortable.sort-active::after {
  opacity: 1;
}

/*# sourceMappingURL=table.css.map */
