/* Back link */
.backLink {
  font-size: 13px;
  color: var(--text-muted);
  text-decoration: none;
  margin-bottom: 12px;
  display: inline-block;
}

.backLink:hover {
  color: var(--text-primary);
}

/* Route header card */
.headerCard {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 16px;
  margin-bottom: 16px;
}

.headerRow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.headerLeft {
  display: flex;
  align-items: center;
  gap: 12px;
}

.headerRight {
  display: flex;
  gap: 20px;
}

.headerStat {
  text-align: center;
}

.headerStatLabel {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--text-muted);
  margin-bottom: 2px;
}

.headerStatValue {
  font-size: 14px;
  font-weight: 700;
  font-family: var(--font-mono);
  color: var(--text-primary);
}

/* Diagram + Stats side-by-side */
.diagramStatsGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}

.diagramPane,
.statsPane {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 16px;
  overflow: hidden;
}

.paneTitle {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
}

/* Processor type badges */
.processorType {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.typeConsumer {
  background: var(--running-bg);
  color: var(--running);
}

.typeProducer {
  background: var(--success-bg);
  color: var(--success);
}

.typeEnricher {
  background: var(--amber-bg);
  color: var(--amber);
}

.typeValidator {
  background: var(--running-bg);
  color: var(--running);
}

.typeTransformer {
  background: var(--bg-hover);
  color: var(--text-muted);
}

.typeRouter {
  background: var(--purple-bg);
  color: var(--purple);
}

.typeProcessor {
  background: var(--bg-hover);
  color: var(--text-secondary);
}

/* Tabs section */
.tabSection {
  margin-top: 20px;
}

/* Route name in table */
.routeNameCell {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-primary);
  font-family: var(--font-mono);
}

.tableSection {
  margin-bottom: 20px;
}

/* Chart grid */
.chartGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.chartTitle {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-secondary);
  margin-bottom: 12px;
}

/* Executions table */
.executionsTable {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

/* Error patterns */
.errorPatterns {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.errorRow {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  font-size: 12px;
}

.errorMessage {
  flex: 1;
  font-family: var(--font-mono);
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 400px;
}

.errorCount {
  font-weight: 700;
  color: var(--error);
  margin: 0 12px;
}

.errorTime {
  color: var(--text-muted);
  font-size: 12px;
}

/* Route flow section */
.routeFlowSection {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 16px;
  margin-top: 16px;
}

/* Empty / muted text */
.emptyText {
  color: var(--text-muted);
  font-size: 13px;
  padding: 8px 0;
}

/* Recording pill */
.recordingPill {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 6px 12px;
}

.recordingLabel {
  font-size: 12px;
  color: var(--text-muted);
}

/* Taps section */
.tapsSection {
  margin-top: 16px;
}

.tapsHeader {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
}

.tapsTitle {
  font-size: 13px;
  font-weight: 600;
}

.emptyState {
  padding: 40px;
  text-align: center;
  color: var(--text-muted);
  font-size: 13px;
}

.tapActions {
  display: flex;
  gap: 6px;
  align-items: center;
}

.tapActionBtn {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 14px;
  padding: 2px 4px;
  border-radius: var(--radius-sm);
  line-height: 1;
  transition: color 0.15s;
}

.tapActionBtn:hover {
  color: var(--text-primary);
}

/* Tap modal */
.tapModalBody {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tapFormRow {
  display: flex;
  gap: 12px;
}

.tapFormRow > * {
  flex: 1;
}

.monoTextarea {
  font-family: var(--font-mono);
  font-size: 12px;
}

.tapModalFooter {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--border-subtle);
}

