.btn {
  @apply px-4 py-2 rounded-2xl bg-brand text-bg hover:opacity-90 shadow-soft transition;
}
.btn-secondary {
  @apply px-4 py-2 rounded-2xl bg-card text-ink hover:bg-slate-800 border border-slate-700 transition;
}
.card {
  @apply bg-card border border-slate-800 rounded-2xl p-4 shadow-soft;
}
.loader {
  width: 22px;
  height: 22px;
  border: 3px solid rgba(148,163,184,0.25);
  border-top-color: #60a5fa;
  border-radius: 50%;
  animation: spin 1s ease-in-out infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.tabulator {
  background: transparent !important;
  border: 1px solid #1f2937 !important;
  border-radius: 14px !important;
}
.tabulator .tabulator-header {
  background: #0f172a !important;
}
.tabulator .tabulator-cell, .tabulator .tabulator-header .tabulator-col {
  border-right: 1px solid rgba(255,255,255,0.05) !important;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: 9999px;
  font-size: 12px;
}
.badge-idle { background: rgba(147,197,253,0.15); color: #93c5fd; }
.badge-error { background: rgba(248,113,113,0.15); color: #f87171; }
.badge-success { background: rgba(34,197,94,0.15); color: #22c55e; }
.icon { width: 14px; height: 14px; display: inline-block; }