/*
 * Probe 15 (CSS isolation, app to host): this rule is deliberately hostile. Inside a
 * shadow root it cannot reach the host document, so Admin must not turn red. The same
 * stylesheet linked into a standalone document DOES turn that document red - that
 * contrast is the finding.
 */
body { background: red !important; }

/*
 * Probe 16 (CSS isolation, host to app): a loud, unmistakable button border. If the
 * computed border of a probe button is still 4px dashed magenta, the host's Tabler has
 * not reached inside.
 */
button.probe { border: 4px dashed magenta; }

:host {
  display: block;
  color: #1f2937;
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 14px;
  line-height: 1.45;
}

* {
  box-sizing: border-box;
}

.spike-root {
  padding: 12px;
}

.spike-banner {
  align-items: center;
  background: #0f172a;
  border-radius: 6px;
  color: #f8fafc;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 12px;
  padding: 10px 14px;
}

.spike-version {
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 1px;
}

.spike-meta {
  font-family: Consolas, 'Courier New', monospace;
  font-size: 12px;
  opacity: 0.85;
  text-align: right;
}

.spike-route {
  background: #fef08a;
  border: 2px solid #ca8a04;
  border-radius: 6px;
  font-family: Consolas, 'Courier New', monospace;
  font-size: 20px;
  margin-bottom: 12px;
  padding: 8px 12px;
}

.spike-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

button.probe {
  background: #e2e8f0;
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  padding: 4px 10px;
}

button.probe:hover {
  background: #cbd5f5;
}

button.probe:disabled {
  cursor: progress;
  opacity: 0.6;
}

table.spike-table {
  border-collapse: collapse;
  width: 100%;
}

table.spike-table th,
table.spike-table td {
  border: 1px solid #cbd5e1;
  padding: 4px 8px;
  text-align: left;
  vertical-align: top;
}

table.spike-table th {
  background: #f1f5f9;
}

table.spike-table td.detail {
  font-family: Consolas, 'Courier New', monospace;
  font-size: 12px;
  word-break: break-word;
}

.status {
  border-radius: 4px;
  display: inline-block;
  font-weight: 700;
  min-width: 54px;
  padding: 1px 6px;
  text-align: center;
}

.status-PASS { background: #bbf7d0; color: #14532d; }
.status-FAIL { background: #fecaca; color: #7f1d1d; }
.status-NA { background: #e2e8f0; color: #334155; }
.status-RUNNING { background: #fde68a; color: #78350f; }
.status-IDLE { background: #f8fafc; color: #64748b; }

.spike-tall-item {
  border-bottom: 1px solid #e2e8f0;
  height: 30px;
  padding: 4px 8px;
}

.spike-links a {
  margin-right: 12px;
}
