:root {
  --sc-blue: #2f5f8f;
  --sc-blue-dark: #234a70;
  --sc-blue-soft: #e8f0f8;
  --sc-bg: #f6f8fb;
  --sc-border: #e3e8ef;
  --sc-text: #1f2933;
  --sc-muted: #5f6b7a;
}

body {
  background: var(--sc-bg);
  color: var(--sc-text);
}

.navbar {
  background: #fff;
  border-bottom: 1px solid var(--sc-border);
}

.navbar-brand {
  font-weight: 600;
  font-size: 1.9rem;
  letter-spacing: -0.01em;
}

.hero {
  padding: 2.5rem 0 1.5rem;
}

.hero h1 {
  font-weight: 700;
  letter-spacing: -0.015em;
  max-width: 40rem;
}

.hero .lead {
  max-width: 44rem;
  color: var(--sc-muted);
}

.badge-soft {
  background: var(--sc-blue-soft);
  color: var(--sc-blue-dark);
  font-weight: 500;
  padding: 0.4em 0.7em;
}

.card {
  border: 1px solid var(--sc-border);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.card-title {
  font-weight: 600;
}

.step-number {
  display: inline-flex;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--sc-blue);
  color: #fff;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 0.9rem;
  margin-right: 0.5rem;
  flex-shrink: 0;
}

.step-label {
  display: flex;
  align-items: center;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.file-picker select {
  flex: 0 0 11rem;
}

@media (max-width: 575.98px) {
  .file-picker select {
    flex: 0 0 auto;
  }
}

.btn-primary {
  background: var(--sc-blue);
  border-color: var(--sc-blue);
}

.btn-primary:hover,
.btn-primary:focus {
  background: var(--sc-blue-dark);
  border-color: var(--sc-blue-dark);
}

.btn-outline-primary {
  color: var(--sc-blue);
  border-color: var(--sc-blue);
}

.btn-outline-primary:hover {
  background: var(--sc-blue);
  border-color: var(--sc-blue);
}

a {
  color: var(--sc-blue);
}

.stat {
  padding: 0.75rem 1rem;
  background: var(--sc-blue-soft);
  border-radius: 0.5rem;
}

.stat .value {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--sc-blue-dark);
  line-height: 1.2;
}

.stat .label {
  font-size: 0.8rem;
  color: var(--sc-muted);
}

pre.log {
  max-height: 260px;
  overflow: auto;
  font-size: 0.78rem;
  background: #f1f3f6;
  border-radius: 0.5rem;
  padding: 0.75rem;
  white-space: pre-wrap;
  margin-bottom: 0;
}

details summary {
  cursor: pointer;
  color: var(--sc-muted);
  font-size: 0.9rem;
}

.how-it-works h2 {
  font-size: 1.25rem;
  font-weight: 600;
}

.how-it-works h3 {
  font-size: 1rem;
  font-weight: 600;
}

footer {
  color: var(--sc-muted);
  font-size: 0.9rem;
  padding: 2rem 0 2.5rem;
  border-top: 1px solid var(--sc-border);
  margin-top: 2rem;
}

.citation {
  background: #fff;
  border: 1px solid var(--sc-border);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  font-size: 0.9rem;
}

/* vega-embed sets inline-block, which collapses charts that use width: "container" */
.vega-embed {
  display: block;
  width: 100%;
}

.table-references td,
.table-references th {
  vertical-align: top;
}
