.sparkline { display: flex; align-items: flex-end; gap: 2px; height: 48px; margin: 0.75rem 0; }
.sparkline a, .sparkline .spark-bar {
  flex: 1; min-width: 3px; max-width: 8px; border-radius: 1px; display: block;
  text-decoration: none; cursor: pointer; transition: opacity 0.15s, transform 0.15s;
}
.sparkline .spark-bar.PASSED { background: var(--tblr-success, #2fb344); height: 70%; }
.sparkline .spark-bar.FAILED { background: var(--tblr-danger, #d63939); height: 100%; }
.sparkline .spark-bar.ERROR { background: var(--tblr-warning, #f59f00); height: 50%; }
.sparkline .spark-bar:hover { opacity: 0.85; transform: scaleY(1.1); }
.sparkline-empty {
  align-items: center; justify-content: center;
  background: var(--tblr-secondary-bg, var(--bs-secondary-bg)); border-radius: 4px;
}
.sparkline-empty .sparkline-empty-label {
  flex: none; min-width: auto; max-width: none; font-size: 0.8125rem;
}

.chart-box { min-height: 280px; }

.log-pre, .CodeMirror { font-size: 0.8125rem; border-radius: var(--tblr-border-radius, 4px); font-family: var(--tblr-font-monospace, ui-monospace, monospace); }
.log-pre {
  max-height: 320px; overflow: auto;
  padding: 0.75rem 1rem; white-space: pre-wrap; word-break: break-all;
  background: var(--tblr-bg-surface-dark, #1f2937);
  color: var(--tblr-light, #f8fafc);
  border: 1px solid var(--tblr-border-color-translucent, rgba(0, 0, 0, 0.1));
}

.log-section h4 {
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.log-section pre {
  font-size: 0.8125rem;
  margin-bottom: 0;
  padding: 0.75rem 1rem;
  background: var(--tblr-bg-surface-dark, #1f2937);
  color: var(--tblr-light, #f8fafc);
  border: 1px solid var(--tblr-border-color-translucent, rgba(0, 0, 0, 0.1));
  border-radius: var(--tblr-border-radius, 4px);
  overflow: auto;
  max-height: 400px;
  white-space: pre-wrap;
  word-break: break-all;
  font-family: var(--tblr-font-monospace, ui-monospace, monospace);
  line-height: 1.5;
}

.log-section pre code {
  color: inherit;
  background: transparent;
  padding: 0;
}

.step-card { border-left: 3px solid var(--tblr-primary, var(--bs-primary)); }
.sticky-action-bar {
  position: sticky; bottom: 0; background: var(--tblr-body-bg, var(--bs-body-bg));
  border-top: 1px solid var(--tblr-border-color, var(--bs-border-color));
  padding: 0.75rem 1rem; margin: 1rem -1rem -1rem; z-index: 10;
}
.skeleton-line {
  height: 1rem;
  background: linear-gradient(90deg, var(--tblr-secondary-bg), var(--tblr-tertiary-bg), var(--tblr-secondary-bg));
  background-size: 200%; animation: sk 1.2s infinite; border-radius: 4px;
}
@keyframes sk { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

.diff-bad {
  background: color-mix(in srgb, var(--tblr-danger) 20%, var(--tblr-bg-surface-dark, #1f2937));
  color: var(--tblr-light, #f8fafc);
}
.diff-ok {
  background: color-mix(in srgb, var(--tblr-success) 20%, var(--tblr-bg-surface-dark, #1f2937));
  color: var(--tblr-light, #f8fafc);
}

.filter-card { overflow: visible; }
.filter-card .card-body { overflow: visible; }

/* Tom Select — Tabler 1.4 não define --bs-body-bg; dropdown ficava transparente */
.ts-wrapper .ts-control,
.ts-wrapper.single.input-active .ts-control {
  background-color: var(--tblr-bg-surface, #fff);
  color: var(--tblr-body-color, inherit);
  border-color: var(--tblr-border-color, #dee2e6);
}

.ts-dropdown,
.ts-dropdown .optgroup-header {
  z-index: 1055 !important;
  background-color: var(--tblr-bg-surface, #fff) !important;
  color: var(--tblr-body-color, inherit);
  border: 1px solid var(--tblr-border-color, #dee2e6);
  box-shadow: var(--tblr-box-shadow-dropdown, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));
}

.ts-dropdown .option,
.ts-dropdown .create,
.ts-dropdown .no-results {
  color: var(--tblr-body-color, inherit);
}

.ts-dropdown .active,
.ts-dropdown .option:hover,
.ts-dropdown .option.active {
  background-color: var(--tblr-bg-surface-secondary, #f8f9fa) !important;
  color: var(--tblr-body-color, inherit);
}

.ts-wrapper.multi .ts-control > div {
  background: var(--tblr-bg-surface-secondary, #f8f9fa);
  color: var(--tblr-body-color, inherit);
}

.ts-wrapper.multi .ts-control > div.active {
  background: var(--tblr-primary, #066fd1);
  color: var(--tblr-primary-fg, #fff);
}

.ts-wrapper.disabled .ts-control {
  background-color: var(--tblr-bg-surface-secondary, #f8f9fa);
}

.ts-dropdown .optgroup-header {
  color: var(--tblr-secondary, #6c757d);
}

#refresh-badge { font-size: 0.75rem; }

.card-header-tabs .nav-link { cursor: pointer; }

.login-logo svg { display: block; margin: 0 auto; }
