/* Order table readability layer.
 * Load this after xb-theme-mode.css so order rows are isolated from legacy
 * global table hover and reconciliation background rules.
 */

/* Background refreshes must not fade every value in a table operators scan. */
.xb-orders-page .opacity-60:has(table.xb-orders-table) {
  opacity: 1 !important;
}

.xb-orders-page .responsive-table.xb-orders-table {
  color: hsl(var(--foreground));
}

.xb-orders-page .responsive-table.xb-orders-table thead th {
  color: hsl(var(--foreground) / 0.7) !important;
}

/* Keep status meaning in a narrow rail and a restrained semantic tint. */
.xb-orders-page .responsive-table.xb-orders-table tbody tr,
.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received,
.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received {
  background: transparent !important;
  box-shadow: none !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr > td,
.xb-orders-page .responsive-table.xb-orders-table tbody tr > td.sticky {
  background: hsl(var(--card)) !important;
  transition: background-color 120ms ease;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr:hover > td,
.xb-orders-page .responsive-table.xb-orders-table tbody tr:hover > td.sticky {
  background: hsl(var(--muted) / 0.82) !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received > td,
.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received > td.sticky {
  background: rgb(91 119 161 / 0.16) !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received:hover > td,
.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received:hover > td.sticky {
  background: rgb(91 119 161 / 0.19) !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received > td,
.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received > td.sticky {
  background: hsl(var(--destructive) / 0.035) !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received:hover > td,
.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received:hover > td.sticky {
  background: hsl(var(--destructive) / 0.06) !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received > td:first-child {
  box-shadow: inset 3px 0 0 #6f92c8 !important;
}

.xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received > td:first-child {
  box-shadow: inset 3px 0 0 hsl(var(--destructive)) !important;
}

/* Reserve green for completed payment/reconciliation states. Preparation is
 * informational, while reverse and retry commands stay visually secondary. */
.xb-orders-page .responsive-table.xb-orders-table .xb-order-workflow-badge[data-tone="ready"] {
  border-color: #bae6fd !important;
  background: #f0f9ff !important;
  color: #0369a1 !important;
}

.dark .xb-orders-page .responsive-table.xb-orders-table .xb-order-workflow-badge[data-tone="ready"] {
  border-color: rgb(56 189 248 / 0.35) !important;
  background: rgb(14 165 233 / 0.12) !important;
  color: #7dd3fc !important;
}

.xb-orders-page .responsive-table.xb-orders-table .xb-order-actions .xb-review-btn-received {
  border-color: transparent !important;
  background: transparent !important;
  color: hsl(var(--destructive) / 0.88) !important;
  box-shadow: none !important;
}

.xb-orders-page .responsive-table.xb-orders-table .xb-order-actions .xb-review-btn-received:hover {
  border-color: hsl(var(--destructive) / 0.18) !important;
  background: hsl(var(--destructive) / 0.08) !important;
  color: hsl(var(--destructive)) !important;
}

.xb-orders-page .responsive-table.xb-orders-table .xb-order-actions button[style*="#059669"],
.xb-orders-page .responsive-table.xb-orders-table .xb-order-actions button[style*="rgb(5, 150, 105)"] {
  background: transparent !important;
  color: hsl(var(--primary)) !important;
  box-shadow: none !important;
}

/* The sticky action column needs a stable edge while horizontally scrolling. */
.xb-orders-page .responsive-table.xb-orders-table tbody td[data-label="操作"] {
  border-left: 1px solid hsl(var(--border) / 0.72);
}

/* Existing 35-45% utility text falls below comfortable contrast on the light
 * operations theme. These floors remain visibly secondary without washing out. */
.xb-orders-page .responsive-table.xb-orders-table .text-foreground\/35,
.xb-orders-page .responsive-table.xb-orders-table .text-foreground\/40,
.xb-orders-page .responsive-table.xb-orders-table .text-foreground\/45 {
  color: hsl(var(--foreground) / 0.66) !important;
}

.xb-orders-page .responsive-table.xb-orders-table .text-foreground\/50,
.xb-orders-page .responsive-table.xb-orders-table .text-foreground\/55 {
  color: hsl(var(--foreground) / 0.72) !important;
}

@media (max-width: 767px) {
  .xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received {
    box-shadow: inset 3px 0 0 #6f92c8 !important;
  }

  .xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received {
    box-shadow: inset 3px 0 0 hsl(var(--destructive)) !important;
  }

  .xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--received > td:first-child,
  .xb-orders-page .responsive-table.xb-orders-table tbody tr.xb-order-reviewed--not-received > td:first-child {
    box-shadow: none !important;
  }

  .xb-orders-page .responsive-table.xb-orders-table tbody td[data-label="操作"] {
    border-left: 0;
  }
}
