* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: #1a1a2e;
  background: #f8f9fa;
  line-height: 1.5;
}

header {
  background: #1a1a2e;
  color: #fff;
  padding: 1rem 2rem;
}

header a { color: inherit; text-decoration: none; }

main { max-width: 960px; margin: 2rem auto; padding: 0 1rem; }

h2 { margin-bottom: 1rem; }

table { width: 100%; border-collapse: collapse; margin-bottom: 2rem; }
th, td { text-align: left; padding: 0.5rem 0.75rem; border-bottom: 1px solid #dee2e6; }

table.failures { table-layout: fixed; }
table.failures td { overflow: hidden; vertical-align: top; }
table.failures col.test-id { width: 40%; }
table.failures col.details { width: 60%; }
th { background: #e9ecef; font-weight: 600; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.03em; }
tr:hover td { background: #f1f3f5; }

a { color: #364fc7; }
a:hover { text-decoration: underline; }

.bar-container {
  width: 100%;
  height: 20px;
  background: #e9ecef;
  border-radius: 4px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.3s;
}

.bar-pass { background: #40c057; }
.bar-warn { background: #fab005; }
.bar-fail { background: #fa5252; }

.back { display: inline-block; margin-bottom: 1rem; }

.chart-container { margin-bottom: 2rem; }
canvas { max-width: 100%; }

.badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 3px;
  font-size: 0.8rem;
  font-weight: 600;
}

.badge-pass { background: #d3f9d8; color: #2b8a3e; }
.badge-fail { background: #ffe3e3; color: #c92a2a; }

.mono { font-family: "SF Mono", Monaco, Consolas, monospace; font-size: 0.85rem; }

.empty { color: #868e96; font-style: italic; padding: 2rem 0; }

details summary { cursor: pointer; color: #364fc7; }
details summary:hover { text-decoration: underline; }

.detail-body { margin-top: 0.5rem; }
.detail-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: #868e96; margin-top: 0.5rem; }
.detail-label:first-child { margin-top: 0; }
.detail-pre {
  background: #f1f3f5;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  padding: 0.5rem;
  font-family: "SF Mono", Monaco, Consolas, monospace;
  font-size: 0.8rem;
  overflow-x: auto;
  white-space: pre;
  margin: 0.25rem 0 0 0;
  max-height: 300px;
  overflow-y: auto;
}
