.table-report { width: 100%; min-width: 1400px; border-collapse: collapse; background: #fff; border: 1px solid #dee2e6; border-radius: 6px; overflow: hidden; font-size: 13px; }
.table-report th, .table-report td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #dee2e6; border-right: 1px solid #dee2e6; vertical-align: middle; }
.table-report th:last-child, .table-report td:last-child { border-right: none; }
.table-report th { background: #f8f9fa; font-weight: 600; color: #495057; white-space: nowrap; }
.table-report tbody tr:hover { background: #f8f9fa; }
.status-success { display: inline-block; padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; background: #dcfce7 !important; color: #15803d !important; }
.status-failure { display: inline-block; padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; background: #fee2e2 !important; color: #b91c1c !important; }
.status-pending { display: inline-block; padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; background: #fef3c7 !important; color: #92400e !important; }
.json-log { margin: 0; padding: 10px 12px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 6px; font-family: monospace; font-size: 12px; white-space: pre-wrap; word-break: break-all; max-height: 260px; overflow-y: auto; }
.json-log .json-key { color: #7c3aed; }
.json-log .json-string { color: #15803d; }
.json-log .json-number { color: #b45309; }
.table-report tfoot td { font-weight: 700; background: #f8f9fa; }

.loader {
  width: 32px;
  --b: 6px;
  aspect-ratio: 1;
  border-radius: 50%;
  padding: 1px;
  background: conic-gradient(#0000 10%, #556ee6) content-box;
  -webkit-mask:
    repeating-conic-gradient(#0000 0deg, #000 1deg 20deg, #0000 21deg 36deg),
    radial-gradient(farthest-side, #0000 calc(100% - var(--b) - 1px), #000 calc(100% - var(--b)));
  -webkit-mask-composite: destination-in;
          mask-composite: intersect;
  animation: loader-spin 1s infinite steps(10);
  display: inline-block;
  vertical-align: middle;
}
@keyframes loader-spin { to { transform: rotate(1turn); } }
.loader-sm { width: 16px; --b: 3px; }
