:root {
  --gh-accent: #e0b341;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, rgba(255,255,255,.02), transparent 30%);
}

main { flex: 1 0 auto; }

.repo-card {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: 16px;
  transition: border-color .15s, transform .15s;
}
.repo-card:hover { border-color: var(--gh-accent); }

.repo-title a { text-decoration: none; }
.repo-desc { color: var(--bs-secondary-color); }

.metric {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: .875rem;
  color: var(--bs-secondary-color);
  margin-right: 12px;
}

.growth-up { color: #3fb950; font-weight: 600; }
.growth-down { color: #f85149; font-weight: 600; }
.growth-flat { color: var(--bs-secondary-color); }

.lang-dot {
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 50%;
  margin-right: 4px;
  background: #888;
  vertical-align: middle;
}

.login-card {
  max-width: 380px;
  margin: 10vh auto;
}

.stat-tile {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: 18px;
  background: var(--bs-body-bg);
}
.stat-tile .value { font-size: 1.6rem; font-weight: 700; line-height: 1; }
.stat-tile .label { color: var(--bs-secondary-color); font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }

.table thead th { white-space: nowrap; }
.truncate-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.btn-track[data-tracked="1"] {
  background: var(--gh-accent);
  border-color: var(--gh-accent);
  color: #000;
}

.search-form .form-control, .search-form .form-select { background: var(--bs-body-bg); }

.kbd {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .75rem;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(255,255,255,.08);
  border: 1px solid var(--bs-border-color);
}
